Skip to content

Don't replay a clone() whose task was killed at its entry - #4138

Merged
rocallahan merged 1 commit into
rr-debugger:masterfrom
ChronitonAI:killed-at-clone-entry
Oct 28, 2026
Merged

rocallahan merged 1 commit into
rr-debugger:masterfrom
ChronitonAI:killed-at-clone-entry

Conversation

@Keno

@Keno Keno commented Oct 26, 2026

Copy link
Copy Markdown
Member

[AI Split of #4136, part 2]

When a task died at the entry of a syscall before rr saw the entry, e.g. because a seccomp filter killed it, handle_ptrace_exit_event() recorded a made-up syscall-entry event, and for a clone() replay then tried to create the new task and failed with "Unable to find TraceTaskEvent; trace is corrupt". Mark such events failed_during_preparation: rr lets a clone() go ahead only from its syscall-entry stop, in prepare_clone(), so such a clone() created no task.

Test: seccomp_kill_clone

When a task died at the entry of a syscall before rr saw the entry,
e.g. because a seccomp filter killed it, handle_ptrace_exit_event()
recorded a made-up syscall-entry event, and for a clone() replay then
tried to create the new task and failed with "Unable to find
TraceTaskEvent; trace is corrupt". Mark such events
failed_during_preparation: rr lets a clone() go ahead only from its
syscall-entry stop, in prepare_clone(), so such a clone() created no
task.

Test: seccomp_kill_clone

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@rocallahan
rocallahan merged commit 1005e4a into rr-debugger:master Oct 28, 2026
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.

2 participants