DynamoRIO / DynamoRIO/dynamorio

ASSERT suspend_count>0 on 32-bit linux.fork-multithread test

Open
#8,069 0 comments 0 reactions 0 assignees View on GitHub
Bug-Assert OpSys-Linux OpSys-x86-32
Dominant language
C
Stars
3.2k
Forks
629
Avg merge
2d 15h
Merged PRs (30d)
31

Description

My new linux.fork-multithread app consistently hits this assert in 32-bit:

https://github.com/DynamoRIO/dynamorio/actions/runs/32322802312/job/96288112750?pr=8068
```
57: suspend_count > 0
57: (Error occurred @4113 frags in tid 26424)
57: version 11.91.20685, custom build
57: -no_dynamic_options -code_api -stderr_mask 12 -stack_size 56K -signal_stack_size 32K -max_elide_jmp 0 -max_elide_call 0 -early_inject -emulate_brk -no_inline_ignored_syscalls -native_exec_default_list '' -no_native_exec_managed_code -no_indcall2direct
57: 0x4ebbca58 0xee9ccae2
57: 0x4ebbcc98 0xeeb74283
57: 0x4ebbccc8 0xeeaa50e7
57: 0x4ebbccf8 0xeeaa5285
57: 0x4ebbcd28 0xeeb71ccd
57: 0x4ebbcd68 0xeeb8184d
57: 0x4ebbce98 0xee9c28f9
57: 0x4ebbcec8 0xee9b9b38
57: 0x4ebbcf58 0xee9b5673
57: 0x4ebbcfe8 0x4eb7efce
57: 0xee8c4000 0xee8dc4a0
57: /home/runner/work/dynamorio/dynamorio/build_debug-internal-32/lib32/debug/libdynamorio.so=0xee91d000>
```

32-bit is not high priority so I am disabling the test there.

Contributor guide

Open the contributing guide

Research direction

Start with the failing linux.fork-multithread test and the assertion at core/unix/os.c:4004, then inspect the linked CI run for the 32-bit failure context. Reproduce or investigate the suspend_count assertion on 32-bit Linux; done means determining and addressing the failure rather than only disabling the test.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, linux
Domain
operating-systems, testing-qa
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.