Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Schedule tasks where we've seen but not processed PTRACE_EVENT_EXIT #3883

Conversation

KJTsanaktsidis
Copy link
Contributor

If we see the PTRACE_EVENT_EXIT for a task while running a different task in unlimited-ticks mode in Scheduler::reschedule, it looks like nothing ever actually calls handle_ptrace_exit_event on it, and so nothing ever PTRACE_CONT's the task out of the exit-stop and into the zombie state.

This seems to manifest itself as rr not reaping processes properly when they receive asynchronous core-dumping signals (e.g. SIGSEGV sent by raise or kill).

Fix this issue by checking if there's a pending PTRACE_EVENT_EXIT to deal with on the task in Scheduler::is_task_runnable, and allowing the task to be executed if so.

Fixes #3882

If we see the PTRACE_EVENT_EXIT for a task while running a different
task in unlimited-ticks mode in `Scheduler::reschedule`, it looks like
nothing ever actually calls `handle_ptrace_exit_event` on it, and so
nothing ever PTRACE_CONT's the task out of the exit-stop and into the
zombie state.

This seems to manifest itself as rr not reaping processes properly when
they receive asynchronous core-dumping signals (e.g. SIGSEGV sent by
`raise` or `kill`).

Fix this issue by checking if there's a pending PTRACE_EVENT_EXIT to
deal with on the task in `Scheduler::is_task_runnable`, and allowing the
task to be executed if so.

Fixes rr-debugger#3882
@rocallahan rocallahan merged commit 28e7f5d into rr-debugger:master Dec 14, 2024
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

rr --wait stuck not reaping zombie process
2 participants