Unrecorded SIGSEGV during replay
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 10.7k
- Forks
- 662
- Avg merge
- 2d 3h
- Merged PRs (30d)
- 2
Description
While attempting to replay trace julia-3 in https://julialang-dumps.s3.amazonaws.com/linux64/3824/rr-run_3824-gitsha_da727d3563-2021-09-26_10_41_36.tar.zst, encountered a crash in rr at global_time 27:
[FATAL /workspace/srcdir/rr/src/ReplaySession.cc:491:cont_syscall_boundary()]
(task 21565 (rec:12113) at time 27)
-> Assertion `false' failed to hold. Replay got unrecorded signal {signo:SIGSEGV,errno:SUCCESS,code:SEGV_MAPERR,addr:0x7fe971f79048}
Tail of trace dump:
[snip] ...
{
real_time:69877284.393712 global_time:27, event:`SYSCALL: brk' (state:ENTERING_SYSCALL) tid:12113, ticks:189
rax:0xffffffffffffffda rbx:0x400040 rcx:0xffffffffffffffff rdx:0x0 rsi:0x4007e0 rdi:0x0 rbp:0x7fe971d587c0 rsp:0x7ffe547dd468 r8:0x6fffd000 r9:0x37f r10:0x64 r11:0x246 r12:0xa r13:0x7ffe547dd7e9 r14:0x0 r15:0x1000 rip:0x7fe971d6cb8a eflags:0x246 cs:0x33 ss:0x2b ds:0x0 es:0x0 fs:0x0 gs:0x0 orig_rax:0xc fs_base:0x0 gs_base:0x0
}
{
real_time:69877284.393746 global_time:28, event:`SYSCALL: brk' (state:EXITING_SYSCALL) tid:12113, ticks:189
rax:0x14df000 rbx:0x400040 rcx:0xffffffffffffffff rdx:0x0 rsi:0x4007e0 rdi:0x0 rbp:0x7fe971d587c0 rsp:0x7ffe547dd468 r8:0x6fffd000 r9:0x37f r10:0x64 r11:0x246 r12:0xa r13:0x7ffe547dd7e9 r14:0x0 r15:0x1000 rip:0x7fe971d6cb8a eflags:0x246 cs:0x33 ss:0x2b ds:0x0 es:0x0 fs:0x0 gs:0x0 orig_rax:0xc fs_base:0x0 gs_base:0x0
{ map_file:"<ZERO>", addr:0x14df000, length:(nil), prot_flags:"---p", file_offset:0x0, device:0, inode:0, data_file:"", data_offset:0x0, file_size:0x0 }
}
Replays fine with replay -a, so we believe there is an issue with the replayer rather than the trace itself
CC: @Keno
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at ReplaySession.cc:491 in cont_syscall_boundary() and attempt to replay the linked julia-3 trace, comparing normal replay with replay -a. Use the global-time-27 brk events and the unrecorded SIGSEGV details as the initial reproduction point. Done means identifying and correcting the replayer behavior so this trace replays without the unrecorded signal.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, linux
- Domain
- devtools, operating-systems, reverse-engineering
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 18/100