rr-debugger / rr-debugger/rr

Test string_instructions-32-no-syscallbuf failing on fedora 21 ("Assertion `(pending_sig() == SIGTRAP || ReplaySession::is_ignored_signal(pending_sig()))' failed to hold. PENDING SIG IS SIGSTKFLT")

Open
#1,431 5 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

Seeing the following gdb interaction

(gdb) break string_store
break string_store
Breakpoint 1 at 0x8048841: file /home/cjones/rr/obj/32/string_instructions.c, line 36.
c
(gdb) c
Continuing.

Breakpoint 1, string_store (dest=0x55995008 "", a=1633771873, size=10485760, unit=1, dir=1) at /home/cjones/rr/obj/32/string_instructions.c:36
36    set_dir(dir);
finish
watch -l p[1000000]
(gdb) finish
Run till exit from #0  string_store (dest=0x55995008 "", a=1633771873, size=10485760, unit=1, dir=1) at /home/cjones/rr/obj/32/string_instructions.c:36
0x08048c51 in main (argc=1, argv=0xffffd5c4) at /home/cjones/rr/obj/32/string_instructions.c:254
254     string_store(p, pattern, size_units, unit, dir);
(gdb) watch -l p[1000000]
Hardware watchpoint 2: -location p[1000000]reverse-continue

(gdb) reverse-continue
Continuing.
[FATAL /home/cjones/rr/rr/src/task.cc:353:finish_emulated_syscall() errno: 0 'Success'] 
 (task 31530 (rec:31475) at time 294)
 ->  Assertion `(pending_sig() == SIGTRAP || ReplaySession::is_ignored_signal(pending_sig()))' failed to hold. PENDING SIG IS SIGSTKFLT

Seeing if I can repro.

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

Reproduce string_instructions-32-no-syscallbuf on Fedora 21 using the reported GDB reverse-continue interaction. Start at rr/src/task.cc:353 in finish_emulated_syscall() and trace why SIGSTKFLT remains pending; done means the failing test no longer aborts and the signal behavior is covered by an appropriate regression test.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.