DynamoRIO / DynamoRIO/dynamorio
CRASH in DR on all signal-using tests on certain Github runners
- Dominant language
- C
- Stars
- 3.2k
- Forks
- 629
- Avg merge
- 2d 18h
- Merged PRs (30d)
- 30
Description
Happened once in x86-64 and once in x86-32 on a master merge for a PR that was
green on its pre-merge testing. Tests were green on the merge on re-running:
https://github.com/DynamoRIO/dynamorio/actions/runs/29052820531/job/86237398055
https://github.com/DynamoRIO/dynamorio/actions/runs/29052820531/job/86267245348
Tests all crash like this:
```
101: sending SIGUSR1
101: in handler 10
101:
102/472 Test #101: code_api|linux.eintr .............................................***Failed
```
Long list of failing tests:
```
====> FAILURE in debug-internal-32 <====
debug-internal-32: 379 tests passed, **** 93 tests failed, of which 3 were flaky, but ignoring 7 for i#2941: ****
code_api|common.decode-bad
code_api|common.decode
code_api|common.segfault
code_api|linux.fork-sleep
code_api|linux.signal0000
code_api|linux.signal0001
code_api|linux.signal0010
code_api|linux.signal0011
code_api|linux.signal0100
code_api|linux.signal0101
code_api|linux.signal0110
code_api|linux.signal0111
code_api|linux.signal1000
code_api|linux.signal1001
code_api|linux.signal1010
code_api|linux.signal1011
code_api|linux.signal1101
code_api|linux.signal1100
code_api|linux.signal1110
code_api|linux.signal1111
code_api|linux.sigplain000
code_api|linux.sigplain001
code_api|linux.sigplain010
code_api|linux.sigplain011
code_api|linux.sigplain100
code_api|linux.sigplain101
code_api|linux.sigplain110
code_api|linux.sigplain111
code_api|linux.syscall_pwait
code_api|linux.sigcontext
code_api|linux.signal_race
code_api|linux.signal_pre_syscall
code_api|linux.bad-signal-stack
code_api|linux.alarm
(ignore: i#2941) code_api|common.decode-stress
code_api|linux.sigsuspend
code_api|linux.signest
code_api|linux.sigmask
code_api|linux.eintr
code_api|linux.sigmask-noalarm
code_api|linux.eintr-noinline
(ignore: i#2941) code_api|linux.thread-reset
(ignore: i#2941) code_api|linux.clone-reset
(ignore: i#2941) code_api|pthreads.ptsig
code_api|security-common.decode-bad-stack_FLAKY
code_api|security-common.selfmod
code_api|client.cleancall
code_api|client.cleancall.prof-pcs
code_api|client.cleancall.prof-pcs.thread-private
(ignore: i#2941) code_api|client.exception
code_api|client.segfault
(ignore: i#2941) code_api|client.detach_test
code_api|client.events_cpp
code_api|client.events
code_api|client.cleancallsig
code_api|client.drx_buf-test
code_api|client.drreg-test
code_api|client.drx-scattergather
code_api|client.drx-scattergather-bbdup
code_api|client.drutil-test
code_api|sample.memval_simple
code_api|sample.memval_simple_scattergather
code_api|tool.drcov.eintr
code_api|tool.basic_counts
code_api|tool.drcachesim.scattergather-x86
code_api|tool.drcacheoff.sysnums
code_api|tool.drcacheoff.basic_counts
code_api|tool.drcacheoff.gencode
code_api|tool.drcacheoff.gencode_filtered
code_api|tool.drcacheoff.scale_time
code_api|tool.drcacheoff.burst_threads
code_api|tool.drcacheoff.synch_attach
code_api|tool.drcacheoff.burst_threads_counts
code_api|tool.drcacheoff.burst_threadfilter
code_api|tool.drcacheoff.burst_threadL0filter
code_api|tool.histogram.offline
code_api|tool.record_filter_bycore_multi
code_api|client.drx_time_scale-test
code_api|client.drx_sleep_scale-test
code_api|api.detach
code_api|api.detach_spawn_FLAKY
(ignore: i#2941) code_api|client.drwrap-test-detach
code_api|api.detach_spawn_quick_exit
code_api|api.detach_spawn_stress_FLAKY
code_api|api.static_signal
code_api|api.static_sideline
code_api,opt_memory|client.events
code_api,thread_private|client.events
code_api,opt_speed|client.events
code_api,disable_traces|client.events
code_api,thread_private,disable_traces|client.events
code_api,no_early_inject|client.events
code_api|client.signal
```
Contributor guide
Research direction
Start by reproducing the crash from the linked GitHub Actions runs, focusing on the debug-internal-32 signal tests and suite/tests/bin/linux.eintr. Compare the failing signal-related tests with a rerun that passes and inspect the reported internal crash context. Done means identifying and fixing the runner-specific crash so the affected signal-using tests pass reliably.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c, github-actions, linux
- Domain
- operating-systems, testing-qa
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 38/100