rr-debugger / rr-debugger/rr

[FATAL src/ReplaySession.cc:881:guard_overshoot()]

Open
#3,946 2 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

I am hitting this issue or a hang when trying to replay (rr replay -a) recordings I've made. The recordings are made by using a Firefox Nightly (139) debug build and visiting www.escapistmagazine.com waiting ~15 seconds and then closing the browser. On close the browser hits an assertion and creates a minidump. No rr issues are observed when recording. When replaying (with -a) is when I have issues. I am using the latest rr commit 18258fa.

This sounds similar to issue #3246 maybe this is a duplicate?

[FATAL src/ReplaySession.cc:881:guard_overshoot()]
 (task 25349 (rec:23443) at time 1085092)
 -> Assertion `false' failed to hold. overshot target ticks=6811713115 by 35; target registers mismatched: replay != rec: rax 0x7a18173210e0 != 0x7a1817321098, rbx 0x7a1817321138 != 0x7a18173210e0, rdx 0x7a18173210e0 != 0x7a1817321098, rsi 0x7a1817321138 != 0x7a18173210e0, rbp 0x7a182e0faac0 != 0x7a182e0fab00, r12 0x7a18173210e0 != 0x7a1817321098, r15 0x48 != 0x38
Tail of trace dump:
{
  real_time:11982.304742 global_time:1085072, event:`SYSCALLBUF_RESET' tid:24022, ticks:248989693
}
{
  real_time:11982.304800 global_time:1085073, event:`SYSCALL: munmap' (state:EXITING_SYSCALL) tid:24022, ticks:248989693
rax:0x0 rbx:0x7a18373fffa0 rcx:0xffffffffffffffff rdx:0x7ffceb02af40 rsi:0xa15c8 rdi:0x7a183475e000 rbp:0x7ffceb02af10 rsp:0x7a18373ffdf0 r8:0x7a18345d4100 r9:0x2c r10:0x7a18345d4200 r11:0x246 r12:0x7a184edcc710 r13:0x7ffceb02b018 r14:0x7ffceb02b018 r15:0x7ffceb02af80 rip:0x70000002 eflags:0x246 cs:0x33 ss:0x2b ds:0x0 es:0x0 fs:0x0 gs:0x0 orig_rax:0xb fs_base:0x7a184f4b8d80 gs_base:0x0
}
{
  real_time:11982.306798 global_time:1085074, event:`SYSCALLBUF_FLUSH' tid:24022, ticks:251104749
  { syscall:'clock_gettime', ret:0x0, size:0x20 }
  { syscall:'clock_gettime', ret:0x0, size:0x20 }
  { syscall:'clock_gettime', ret:0x0, size:0x20 }
  { syscall:'clock_gettime', ret:0x0, size:0x20 }
  { syscall:'clock_gettime', ret:0x0, size:0x20 }
  { syscall:'clock_gettime', ret:0x0, size:0x20 }
  { syscall:'clock_gettime', ret:0x0, size:0x20 }
  { syscall:'clock_gettime', ret:0x0, size:0x20 }
}
{
  real_time:11982.306804 global_time:1085075, event:`SCHED' tid:24022, ticks:251104749
rax:0x3dc0a51cbee8 rbx:0x3dc0a51cbee8 rcx:0x7a183e9bb530 rdx:0x3fff rsi:0x0 rdi:0x3dc0a5100000 rbp:0x7ffceb02b030 rsp:0x7ffceb02b030 r8:0x7a18320f4858 r9:0x14 r10:0x947b3034 r11:0x1000 r12:0x0 r13:0x3dc0a51cbee8 r14:0x7a18375dc600 r15:0x3dc0a51cbee8 rip:0x7a18407ff92b eflags:0x202 cs:0x33 ss:0x2b ds:0x0 es:0x0 fs:0x0 gs:0x0 orig_rax:0xffffffffffffffff fs_base:0x7a184f4b8d80 gs_base:0x0
}
{
  real_time:11982.306807 global_time:1085076, event:`SYSCALLBUF_RESET' tid:24022, ticks:251104749
}
{
  real_time:11982.306823 global_time:1085077, event:`SYSCALL: futex' (state:EXITING_SYSCALL) tid:24105, ticks:589362931
rax:0x0 rbx:0x0 rcx:0xffffffffffffffff rdx:0x0 rsi:0x189 rdi:0x7a1833922508 rbp:0x7a18339224e0 rsp:0x7ffceb02a2f0 r8:0x0 r9:0xffffffff r10:0x0 r11:0x246 r12:0x0 r13:0x0 r14:0x74 r15:0x7a1833922508 rip:0x7a184ee91117 eflags:0x246 cs:0x33 ss:0x2b ds:0x0 es:0x0 fs:0x0 gs:0x0 orig_rax:0xca fs_base:0x7a184f4b8d80 gs_base:0x0
}
{
  real_time:11982.307234 global_time:1085078, event:`SYSCALLBUF_FLUSH' tid:24105, ticks:589617894
  { syscall:'clock_gettime', ret:0x0, size:0x20 }
  { syscall:'clock_gettime', ret:0x0, size:0x20 }
  { syscall:'clock_gettime', ret:0x0, size:0x20 }
  { syscall:'clock_gettime', ret:0x0, size:0x20 }
  { syscall:'clock_gettime', ret:0x0, size:0x20 }
  { syscall:'clock_gettime', ret:0x0, size:0x20 }
  { syscall:'clock_gettime', ret:0x0, size:0x20 }
  { syscall:'futex', ret:0x0, size:0x14 }
  { syscall:'clock_gettime', ret:0x0, size:0x20 }
  { syscall:'clock_gettime', ret:0x0, size:0x20 }
  { syscall:'clock_gettime', ret:0x0, size:0x20 }
  { syscall:'clock_gettime', ret:0x0, size:0x20 }
  { syscall:'clock_gettime', ret:0x0, size:0x20 }
  { syscall:'clock_gettime', ret:0x0, size:0x20 }
  { syscall:'clock_gettime', ret:0x0, size:0x20 }
  { syscall:'clock_gettime', ret:0x0, size:0x20 }
  { syscall:'clock_gettime', ret:0x0, size:0x20 }
  { syscall:'clock_gettime', ret:0x0, size:0x20 }
  { syscall:'clock_gettime', ret:0x0, size:0x20 }
  { syscall:'clock_gettime', ret:0x0, size:0x20 }
  { syscall:'clock_gettime', ret:0x0, size:0x20 }
  { syscall:'clock_gettime', ret:0x0, size:0x20 }
}
{
  real_time:11982.307241 global_time:1085079, event:`SYSCALL: mmap' (state:ENTERING_SYSCALL) tid:24105, ticks:589617894
rax:0xffffffffffffffda rbx:0x7a18373fffa0 rcx:0xffffffffffffffff rdx:0x0 rsi:0x10000 rdi:0x20fbd3806000 rbp:0x7ffceb02aa90 rsp:0x7a18373ffdf0 r8:0xffffffff r9:0x0 r10:0x32 r11:0x246 r12:0x1 r13:0x20fbd3786000 r14:0x32 r15:0x10000 rip:0x70000002 eflags:0x246 cs:0x33 ss:0x2b ds:0x0 es:0x0 fs:0x0 gs:0x0 orig_rax:0x9 fs_base:0x7a184f4b8d80 gs_base:0x0
}
{
  real_time:11982.307245 global_time:1085080, event:`SYSCALLBUF_RESET' tid:24105, ticks:589617894
}
{
  real_time:11982.307295 global_time:1085081, event:`SYSCALL: mmap' (state:EXITING_SYSCALL) tid:24105, ticks:589617894
rax:0x20fbd3806000 rbx:0x7a18373fffa0 rcx:0xffffffffffffffff rdx:0x0 rsi:0x10000 rdi:0x20fbd3806000 rbp:0x7ffceb02aa90 rsp:0x7a18373ffdf0 r8:0xffffffff r9:0x0 r10:0x32 r11:0x246 r12:0x1 r13:0x20fbd3786000 r14:0x32 r15:0x10000 rip:0x70000002 eflags:0x246 cs:0x33 ss:0x2b ds:0x0 es:0x0 fs:0x0 gs:0x0 orig_rax:0x9 fs_base:0x7a184f4b8d80 gs_base:0x0
  { map_file:"<ZERO>", addr:0x20fbd3806000, length:0x10000, prot_flags:"---p", file_offset:0x0, device:0, inode:0, data_file:"", data_offset:0x0, file_size:0x10000 }
}
{
  real_time:11982.307335 global_time:1085082, event:`SYSCALL: prctl' (state:ENTERING_SYSCALL) tid:24105, ticks:589617910
rax:0xffffffffffffffda rbx:0x7a18373fffa0 rcx:0xffffffffffffffff rdx:0x20fbd3806000 rsi:0x0 rdi:0x53564d41 rbp:0x7ffceb02aa90 rsp:0x7a18373ffdf0 r8:0x7a183cf0ab08 r9:0x0 r10:0x10000 r11:0x246 r12:0x1 r13:0x20fbd3786000 r14:0x1 r15:0x10000 rip:0x70000002 eflags:0x246 cs:0x33 ss:0x2b ds:0x0 es:0x0 fs:0x0 gs:0x0 orig_rax:0x9d fs_base:0x7a184f4b8d80 gs_base:0x0
}
{
  real_time:11982.307378 global_time:1085083, event:`SYSCALL: prctl' (state:EXITING_SYSCALL) tid:24105, ticks:589617910
rax:0x0 rbx:0x7a18373fffa0 rcx:0xffffffffffffffff rdx:0x20fbd3806000 rsi:0x0 rdi:0x53564d41 rbp:0x7ffceb02aa90 rsp:0x7a18373ffdf0 r8:0x7a183cf0ab08 r9:0x0 r10:0x10000 r11:0x246 r12:0x1 r13:0x20fbd3786000 r14:0x1 r15:0x10000 rip:0x70000002 eflags:0x246 cs:0x33 ss:0x2b ds:0x0 es:0x0 fs:0x0 gs:0x0 orig_rax:0x9d fs_base:0x7a184f4b8d80 gs_base:0x0
}
{
  real_time:11982.309173 global_time:1085084, event:`SYSCALLBUF_FLUSH' tid:24105, ticks:590475438
  { syscall:'clock_gettime', ret:0x0, size:0x20 }
  { syscall:'clock_gettime', ret:0x0, size:0x20 }
  { syscall:'madvise', ret:0x0, size:0x10 }
  { syscall:'madvise', ret:0x0, size:0x10 }
  { syscall:'clock_gettime', ret:0x0, size:0x20 }
  { syscall:'clock_gettime', ret:0x0, size:0x20 }
  { syscall:'madvise', ret:0x0, size:0x10 }
  { syscall:'madvise', ret:0x0, size:0x10 }
}
{
  real_time:11982.309178 global_time:1085085, event:`SCHED' tid:24105, ticks:590475438
rax:0xde53f2f305c4cf00 rbx:0x58 rcx:0x58 rdx:0xd rsi:0x7a18339307d8 rdi:0xee08cd83000 rbp:0x7ffceb02a370 rsp:0x7ffceb02a368 r8:0x7ffceb02a4e0 r9:0x2060404 r10:0x4040603 r11:0xee08cd8a088 r12:0x1 r13:0x0 r14:0xee08cd83000 r15:0xd rip:0x7a1846e64d45 eflags:0x283 cs:0x33 ss:0x2b ds:0x0 es:0x0 fs:0x0 gs:0x0 orig_rax:0xffffffffffffffff fs_base:0x7a184f4b8d80 gs_base:0x0
}
{
  real_time:11982.309181 global_time:1085086, event:`SYSCALLBUF_RESET' tid:24105, ticks:590475438
}
{
  real_time:11982.311249 global_time:1085087, event:`SCHED' tid:23210, ticks:1460493974
rax:0xde53f2f305c4cf00 rbx:0x7ffceb02af40 rcx:0x7a183e9bb530 rdx:0x7a183cd74b0d rsi:0x16adcb55ae80 rdi:0x7ffceb02af40 rbp:0x7ffceb02ad90 rsp:0x7ffceb02ad20 r8:0x7a182f903000 r9:0xbf75 r10:0x7a182f943000 r11:0x16adcb55aec8 r12:0x7ffceb02ae20 r13:0x7ffceb02adf0 r14:0x7a183cd74b0d r15:0x16adcb55ae80 rip:0x7a1846f2afa7 eflags:0x202 cs:0x33 ss:0x2b ds:0x0 es:0x0 fs:0x0 gs:0x0 orig_rax:0xffffffffffffffff fs_base:0x7a184f4b8d80 gs_base:0x0
}
{
  real_time:11982.312718 global_time:1085088, event:`SCHED' tid:23362, ticks:13787259728
rax:0x28 rbx:0x7a1829dddc50 rcx:0x3fff rdx:0x3fff rsi:0x7a1829dddc50 rdi:0x289978c00000 rbp:0x7ffceb029ea0 rsp:0x7ffceb029e88 r8:0x7a1832181400 r9:0x2 r10:0x7a1832181480 r11:0x5 r12:0x289978cf2240 r13:0x0 r14:0x7a183cc47e08 r15:0x7a1833929060 rip:0x7a1846628e4e eflags:0x206 cs:0x33 ss:0x2b ds:0x0 es:0x0 fs:0x0 gs:0x0 orig_rax:0xffffffffffffffff fs_base:0x7a184f4b8d80 gs_base:0x7a1600000000
}
{
  real_time:11982.313962 global_time:1085089, event:`SCHED' tid:23444, ticks:6750473079
rax:0xde53f2f305c4cf00 rbx:0x7ffceb02a390 rcx:0x3 rdx:0x7a18345aeaf0 rsi:0x210f228169d0 rdi:0x7a1849e8d518 rbp:0x7a182dbfe910 rsp:0x7a182dbfe910 r8:0x6 r9:0x7 r10:0x7a1832181480 r11:0x2 r12:0x6 r13:0x7a18339291c0 r14:0x210f228180b0 r15:0x6 rip:0x7a1846ec3a9d eflags:0x206 cs:0x33 ss:0x2b ds:0x0 es:0x0 fs:0x0 gs:0x0 orig_rax:0xffffffffffffffff fs_base:0x7a182dbff640 gs_base:0x0
}
{
  real_time:11982.313976 global_time:1085090, event:`SYSCALL: futex' (state:EXITING_SYSCALL) tid:23443, ticks:6809748659
rax:0x0 rbx:0x0 rcx:0xffffffffffffffff rdx:0x0 rsi:0x189 rdi:0x7a1837128c6c rbp:0x7a1837128c40 rsp:0x7a182e0fea60 r8:0x0 r9:0xffffffff r10:0x0 r11:0x246 r12:0x0 r13:0x0 r14:0x1103 r15:0x7a1837128c6c rip:0x7a184ee91117 eflags:0x246 cs:0x33 ss:0x2b ds:0x0 es:0x0 fs:0x0 gs:0x0 orig_rax:0xca fs_base:0x7a182e0ff640 gs_base:0x0
}
{
  real_time:11982.315996 global_time:1085091, event:`SYSCALLBUF_FLUSH' tid:23443, ticks:6811713115
  { syscall:'futex', ret:0x0, size:0x14 }
  { syscall:'clock_gettime', ret:0x0, size:0x20 }
  { syscall:'clock_gettime', ret:0x0, size:0x20 }
  { syscall:'clock_gettime', ret:0x0, size:0x20 }
  { syscall:'clock_gettime', ret:0x0, size:0x20 }
  { syscall:'clock_gettime', ret:0x0, size:0x20 }
  { syscall:'clock_gettime', ret:0x0, size:0x20 }
  { syscall:'clock_gettime', ret:0x0, size:0x20 }
  { syscall:'clock_gettime', ret:0x0, size:0x20 }
  { syscall:'clock_gettime', ret:0x0, size:0x20 }
}
{
  real_time:11982.316008 global_time:1085092, event:`SCHED' tid:23443, ticks:6811713115
rax:0x7a1817321098 rbx:0x7a18173210e0 rcx:0x0 rdx:0x7a1817321098 rsi:0x7a18173210e0 rdi:0x7a1817300000 rbp:0x7a182e0fab00 rsp:0x7a182e0faaf0 r8:0x0 r9:0x6e0 r10:0x0 r11:0x699 r12:0x7a1817321098 r13:0x0 r14:0x4000 r15:0x38 rip:0x7a18466665fa eflags:0x283 cs:0x33 ss:0x2b ds:0x0 es:0x0 fs:0x0 gs:0x0 orig_rax:0xffffffffffffffff fs_base:0x7a182e0ff640 gs_base:0x0
}
{
  real_time:11982.316013 global_time:1085093, event:`SYSCALLBUF_RESET' tid:23443, ticks:6811713115
}
=== Start rr backtrace:
rr(_ZN2rr13dump_rr_stackERNS_8ScopedFdE+0x5b)[0x56f43fdadc2b]
rr(_ZN2rr15emergency_debugEPNS_4TaskE+0x152)[0x56f43fc7fe22]
rr(+0xdf992)[0x56f43fc80992]
rr(+0xdff9f)[0x56f43fc80f9f]
rr(+0x178f99)[0x56f43fd19f99]
rr(_ZN2rr13ReplaySession20emulate_async_signalEPNS_10ReplayTaskERKNS0_15StepConstraintsElNS_15remote_code_ptrE+0x658)[0x56f43fd1b6e8]
rr(_ZN2rr13ReplaySession18try_one_trace_stepEPNS_10ReplayTaskERKNS0_15StepConstraintsE+0x289)[0x56f43fd20b49]
rr(_ZN2rr13ReplaySession11replay_stepERKNS0_15StepConstraintsE+0x21d)[0x56f43fd228ed]
rr(_ZN2rr13ReplayCommand3runERSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS7_EE+0x167c)[0x56f43fd15d1c]
rr(main+0x1a1)[0x56f43fbf63c1]
/lib/x86_64-linux-gnu/libc.so.6(+0x29d90)[0x71a763029d90]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x80)[0x71a763029e40]
rr(_start+0x25)[0x56f43fbf8e55]
=== 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 by reproducing the failure with rr replay -a using the Firefox Nightly recording, then inspect src/ReplaySession.cc at guard_overshoot() around line 881 and compare the trace tail with issue #3246. Done means determining the cause of the replay hang or assertion and making this recording replay successfully, or confirming that it is a duplicate of #3246.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, linux
Domain
devtools, operating-systems
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.