rr-debugger / rr-debugger/rr

[FATAL src/ReplaySession.cc:516:cont_syscall_boundary()]

Open
#3,520 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
10.7k
Forks
662
Avg merge
2d 3h
Merged PRs (30d)
2

Description

This happened when replaying a recording of a 32-bit process.

I am using commit 0348e30.

[FATAL src/ReplaySession.cc:516:cont_syscall_boundary()]
 (task 498914 (rec:325249) at time 762)
 -> Assertion `false' failed to hold. Replay got unrecorded signal {signo:SIGSEGV,errno:SUCCESS,code:SEGV_ACCERR,addr:0xf62ffba4}
Tail of trace dump:
{
  real_time:2184067.762886 global_time:742, event:`SYSCALL: mmap2' (state:EXITING_SYSCALL) tid:325249, ticks:1200877
eax:0xf0dea000 ecx:0x1000 edx:0x0 ebx:0xf0dea000 esp:0x681ffda0 ebp:0x0 esi:0x22 edi:0xffffffff eip:0x70000002 eflags:0x246 xcs:0x23 xss:0x2b xds:0x2b xes:0x2b xfs:0x0 xgs:0x63 orig_eax:0xc0
  { map_file:"<ZERO>", addr:0xf0dea000, length:0x1000, prot_flags:"---p", file_offset:0x0, device:0, inode:0, data_file:"", data_offset:0x0, file_size:0x1000 }
}
{
  real_time:2184067.763099 global_time:743, event:`SYSCALLBUF_FLUSH' tid:325249, ticks:1204996
  { syscall:'openat', ret:0x3, size:0x10, desched:1 }
  { syscall:'readlinkat', ret:0x9, size:0x19 }
  { syscall:'dup', ret:0x4, size:0x10 }
  { syscall:'dup', ret:0x5, size:0x10 }
  { syscall:'clock_gettime64', ret:0x0, size:0x20 }
  { syscall:'gettid', ret:0x4f681, size:0x10 }
} 
{
  real_time:2184067.763101 global_time:744, event:`SYSCALL: mmap2' (state:ENTERING_SYSCALL) tid:325249, ticks:1204996
eax:0xffffffda ecx:0x200000 edx:0x3 ebx:0x0 esp:0x681ffda0 ebp:0x0 esi:0x22 edi:0xffffffff eip:0x70000002 eflags:0x246 xcs:0x23 xss:0x2b xds:0x2b xes:0x2b xfs:0x0 xgs:0x63 orig_eax:0xc0
}
{
  real_time:2184067.763103 global_time:745, event:`SYSCALLBUF_RESET' tid:325249, ticks:1204996
}
{
  real_time:2184067.763134 global_time:746, event:`SYSCALL: mmap2' (state:EXITING_SYSCALL) tid:325249, ticks:1204996
eax:0xf5500000 ecx:0x200000 edx:0x3 ebx:0x0 esp:0x681ffda0 ebp:0x0 esi:0x22 edi:0xffffffff eip:0x70000002 eflags:0x246 xcs:0x23 xss:0x2b xds:0x2b xes:0x2b xfs:0x0 xgs:0x63 orig_eax:0xc0
  { map_file:"<ZERO>", addr:0xf5500000, length:0x200000, prot_flags:"rw-p", file_offset:0x0, device:0, inode:0, data_file:"", data_offset:0x0, file_size:0x200000 }
}
{
  real_time:2184067.763174 global_time:747, event:`SYSCALL: munmap' (state:ENTERING_SYSCALL) tid:325249, ticks:1205020
eax:0xffffffda ecx:0x100000 edx:0x5684e599 ebx:0xf5600000 esp:0x681ffda0 ebp:0x56c62918 esi:0x100000 edi:0x56c62918 eip:0x70000002 eflags:0x246 xcs:0x23 xss:0x2b xds:0x2b xes:0x2b xfs:0x0 xgs:0x63 orig_eax:0x5b
}
{
  real_time:2184067.763206 global_time:748, event:`SYSCALL: munmap' (state:EXITING_SYSCALL) tid:325249, ticks:1205020
eax:0x0 ecx:0x100000 edx:0x5684e599 ebx:0xf5600000 esp:0x681ffda0 ebp:0x56c62918 esi:0x100000 edi:0x56c62918 eip:0x70000002 eflags:0x246 xcs:0x23 xss:0x2b xds:0x2b xes:0x2b xfs:0x0 xgs:0x63 orig_eax:0x5b
}
{
  real_time:2184067.763533 global_time:749, event:`SYSCALLBUF_FLUSH' tid:325249, ticks:1372106
  { syscall:'gettid', ret:0x4f681, size:0x10 }
}
{
  real_time:2184067.763536 global_time:750, event:`SYSCALL: mmap2' (state:ENTERING_SYSCALL) tid:325249, ticks:1372106
eax:0xffffffda ecx:0x200000 edx:0x3 ebx:0x0 esp:0x681ffda0 ebp:0x0 esi:0x22 edi:0xffffffff eip:0x70000002 eflags:0x246 xcs:0x23 xss:0x2b xds:0x2b xes:0x2b xfs:0x0 xgs:0x63 orig_eax:0xc0
}
{
  real_time:2184067.763537 global_time:751, event:`SYSCALLBUF_RESET' tid:325249, ticks:1372106
}
{
  real_time:2184067.763567 global_time:752, event:`SYSCALL: mmap2' (state:EXITING_SYSCALL) tid:325249, ticks:1372106
eax:0xf5300000 ecx:0x200000 edx:0x3 ebx:0x0 esp:0x681ffda0 ebp:0x0 esi:0x22 edi:0xffffffff eip:0x70000002 eflags:0x246 xcs:0x23 xss:0x2b xds:0x2b xes:0x2b xfs:0x0 xgs:0x63 orig_eax:0xc0
  { map_file:"<ZERO>", addr:0xf5300000, length:0x200000, prot_flags:"rw-p", file_offset:0x0, device:0, inode:0, data_file:"", data_offset:0x0, file_size:0x200000 }
}
{
  real_time:2184067.763607 global_time:753, event:`SYSCALL: munmap' (state:ENTERING_SYSCALL) tid:325249, ticks:1372130
eax:0xffffffda ecx:0x100000 edx:0x5684e599 ebx:0xf5400000 esp:0x681ffda0 ebp:0x56c62918 esi:0x100000 edi:0x56c62918 eip:0x70000002 eflags:0x246 xcs:0x23 xss:0x2b xds:0x2b xes:0x2b xfs:0x0 xgs:0x63 orig_eax:0x5b
}
{
  real_time:2184067.763638 global_time:754, event:`SYSCALL: munmap' (state:EXITING_SYSCALL) tid:325249, ticks:1372130
eax:0x0 ecx:0x100000 edx:0x5684e599 ebx:0xf5400000 esp:0x681ffda0 ebp:0x56c62918 esi:0x100000 edi:0x56c62918 eip:0x70000002 eflags:0x246 xcs:0x23 xss:0x2b xds:0x2b xes:0x2b xfs:0x0 xgs:0x63 orig_eax:0x5b
}
{
  real_time:2184067.763824 global_time:755, event:`SYSCALLBUF_FLUSH' tid:325249, ticks:1414523
  { syscall:'clock_gettime64', ret:0x0, size:0x20 }
  { syscall:'gettid', ret:0x4f681, size:0x10 }
}
{
  real_time:2184067.763827 global_time:756, event:`SYSCALL: mmap2' (state:ENTERING_SYSCALL) tid:325249, ticks:1414523
eax:0xffffffda ecx:0x7000 edx:0x3 ebx:0x0 esp:0x681ffda0 ebp:0x0 esi:0x22 edi:0xffffffff eip:0x70000002 eflags:0x246 xcs:0x23 xss:0x2b xds:0x2b xes:0x2b xfs:0x0 xgs:0x63 orig_eax:0xc0
}
{
  real_time:2184067.763828 global_time:757, event:`SYSCALLBUF_RESET' tid:325249, ticks:1414523
}
{
  real_time:2184067.763858 global_time:758, event:`SYSCALL: mmap2' (state:EXITING_SYSCALL) tid:325249, ticks:1414523
eax:0xf74f4000 ecx:0x7000 edx:0x3 ebx:0x0 esp:0x681ffda0 ebp:0x0 esi:0x22 edi:0xffffffff eip:0x70000002 eflags:0x246 xcs:0x23 xss:0x2b xds:0x2b xes:0x2b xfs:0x0 xgs:0x63 orig_eax:0xc0
  { map_file:"<ZERO>", addr:0xf74f4000, length:0x7000, prot_flags:"rw-p", file_offset:0x0, device:0, inode:0, data_file:"", data_offset:0x0, file_size:0x7000 }
}
{
  real_time:2184067.763902 global_time:759, event:`SYSCALL: mmap2' (state:ENTERING_SYSCALL) tid:325249, ticks:1414618
eax:0xffffffda ecx:0x801000 edx:0x0 ebx:0x0 esp:0x681ffda0 ebp:0x0 esi:0x20022 edi:0xffffffff eip:0x70000002 eflags:0x246 xcs:0x23 xss:0x2b xds:0x2b xes:0x2b xfs:0x0 xgs:0x63 orig_eax:0xc0
}
{
  real_time:2184067.763931 global_time:760, event:`SYSCALL: mmap2' (state:EXITING_SYSCALL) tid:325249, ticks:1414618
eax:0xf4aff000 ecx:0x801000 edx:0x0 ebx:0x0 esp:0x681ffda0 ebp:0x0 esi:0x20022 edi:0xffffffff eip:0x70000002 eflags:0x246 xcs:0x23 xss:0x2b xds:0x2b xes:0x2b xfs:0x0 xgs:0x63 orig_eax:0xc0
  { map_file:"<ZERO>", addr:0xf4aff000, length:0x801000, prot_flags:"---p", file_offset:0x0, device:0, inode:0, data_file:"", data_offset:0x0, file_size:0x801000 }
}
{
  real_time:2184067.763989 global_time:761, event:`SYSCALLBUF_FLUSH' tid:325249, ticks:1414801
  { syscall:'mprotect', ret:0x0, size:0x10 }
  { start:'0xf4b00000', size:'800000', prot:rw- }
}
{
  real_time:2184067.764145 global_time:762, event:`SYSCALL: clone' (state:ENTERING_SYSCALL) tid:325249, ticks:1414801
eax:0xffffffda ecx:0xf52ff3e4 edx:0xf52ffba8 ebx:0x3d0f00 esp:0xfff68b50 ebp:0xf7f6d000 esi:0xfff68b9c edi:0xf52ffba8 eip:0xf7b3a888 eflags:0x246 xcs:0x23 xss:0x2b xds:0x2b xes:0x2b xfs:0x0 xgs:0x63 orig_eax:0x78
  { map_file:"<ZERO>", addr:0xf48ff000, length:0x200000, prot_flags:"rwxp", file_offset:0x0, device:0, inode:0, data_file:"", data_offset:0x0, file_size:0x0 }
  { tid:325249, addr:0xf52ffba8, length:0x4 }
  { tid:325249, addr:0xfff68b9c, length:0x10 }
  { tid:325251, addr:0xfff68b9c, length:0x10 }
  { tid:325251, addr:0xf52ffba8, length:0x4 }
  { tid:325251, addr:0xf52ffba8, length:0x4 }
}
{
  real_time:2184067.764147 global_time:763, event:`SYSCALLBUF_RESET' tid:325249, ticks:1414801
}
=== Start rr backtrace:
rr(_ZN2rr9GdbServer15emergency_debugEPNS_4TaskE+0x158)[0x55d9d945f498]
rr(+0x179cb7)[0x55d9d944ccb7]
rr(+0x179f8f)[0x55d9d944cf8f]
rr(_ZN2rr13ReplaySession21cont_syscall_boundaryEPNS_10ReplayTaskERKNS0_15StepConstraintsE+0x197)[0x55d9d93bbd87]
rr(_ZN2rr13ReplaySession13enter_syscallEPNS_10ReplayTaskERKNS0_15StepConstraintsE+0xc2)[0x55d9d93bc042]
rr(_ZN2rr13ReplaySession18try_one_trace_stepEPNS_10ReplayTaskERKNS0_15StepConstraintsE+0xdb)[0x55d9d93bc77b]
rr(_ZN2rr13ReplaySession11replay_stepERKNS0_15StepConstraintsE+0x125)[0x55d9d93bdf85]
rr(_ZN2rr14ReplayTimeline19replay_step_forwardENS_10RunCommandE+0xb0)[0x55d9d93917b0]
rr(_ZN2rr9GdbServer14debug_one_stepERNS_10GdbRequestE+0x384)[0x55d9d94613d4]
rr(_ZN2rr9GdbServer12serve_replayERKNS0_15ConnectionFlagsE+0xaab)[0x55d9d9462c8b]
rr(+0xf3969)[0x55d9d93c6969]
rr(_ZN2rr13ReplayCommand3runERSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EE+0x5ba)[0x55d9d93c7aaa]
rr(main+0x199)[0x55d9d931d739]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0x7f3a77db9083]
rr(_start+0x2e)[0x55d9d931d9ee]
=== End rr backtrace

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at src/ReplaySession.cc:516 in cont_syscall_boundary() and reproduce replaying the reported 32-bit recording from commit 0348e30. Compare the clone and syscall events around trace times 762–763; done means the recording replays without the unrecorded SIGSEGV assertion.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, linux
Domain
devtools, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.