<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/150380>150380</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Hang in __sanitizer::StopTheWorld when ptrace system call is disallowed
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
correctmost
</td>
</tr>
</table>
<pre>
### Description
This hang was initially described in https://github.com/google/sanitizers/issues/777. I see the hang locally with a systemd service that has a `SystemCallFilter` setting that blocks `ptrace`.
### Steps to reproduce
The steps to reproduce from https://github.com/google/sanitizers/issues/777 still work:
1 - Save `hang-stop-the-world.c`
```c
#include <seccomp.h>
int main(int argc, char *argv[]) {
scmp_filter_ctx ctx;
int r = -1;
ctx = seccomp_init(SCMP_ACT_ALLOW);
if (!ctx)
goto out;
r = seccomp_rule_add(ctx, SCMP_ACT_KILL, SCMP_SYS(ptrace), 0);
if (r < 0)
goto out;
r = seccomp_load(ctx);
if (r < 0)
goto out;
out:
seccomp_release(ctx);
return -r;
}
```
2 - Run `clang -o hang-stop-the-world -ggdb3 -fsanitize=address -lseccomp ./hang-stop-the-world.c`
3 - Run `./hang-stop-the-world`
### Backtrace
```
0x00007ffff7d5d98b in __GI_sched_yield () at ../sysdeps/unix/syscall-template.S:120
120 T_PSEUDO (SYSCALL_SYMBOL, SYSCALL_NAME, SYSCALL_NARGS)
(gdb) bt
#0 0x00007ffff7d5d98b in __GI_sched_yield () at ../sysdeps/unix/syscall-template.S:120
#1 0x00005555556b1386 in __sanitizer::StopTheWorld(void (*)(__sanitizer::SuspendedThreadsList const&, void*), void*) ()
#2 0x00005555556c8ca1 in __lsan::LockStuffAndStopTheWorldCallback(dl_phdr_info*, unsigned long, void*) ()
#3 0x00007ffff7dc5287 in __GI___dl_iterate_phdr (callback=0x5555556c8c80 <__lsan::LockStuffAndStopTheWorldCallback(dl_phdr_info*, unsigned long, void*)>, data=0x7fffffffdfc0)
at dl-iteratephdr.c:74
#4 0x00005555556c9001 in __lsan::LockStuffAndStopTheWorld(void (*)(__sanitizer::SuspendedThreadsList const&, void*), __lsan::CheckForLeaksParam*) ()
#5 0x00005555556c5630 in __lsan::CheckForLeaksOnce() ()
#6 0x00005555556c5945 in __lsan::DoLeakCheck() ()
#7 0x00007ffff7c9d060 in __cxa_finalize (d=0x55555570d028) at cxa_finalize.c:97
#8 0x0000555555580178 in ?? ()
#9 0x00007fffffffe180 in ?? ()
#10 0x00007ffff7fc7fd2 in _dl_call_fini (closure_map=0x7ffff7ffe310) at dl-call_fini.c:43
```
### Expected behavior
An error is emitted with a note about missing ptrace capabilities (to make the issue easier to debug)
### Version info
clang 20.1.8-1 on Arch Linux
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJy0Vl2To7oR_TXySxcuIWwDD35gPeubrXizW9eT3NonSkiNUSwjShIznvvrUwLGH7M7m1SSpVwzgFrnnJaOmubOqUOLuCbLD2T5MOO9b4xdC2MtCn8yzs8qI1_WhCXjDx7QCas6r0xLaEFo8dgoBw1vD_DMHahWecW1fgE5BFYoQbXQeN85khSEbQnbHpRv-mouzCk8GHPQSNjW8TD3T7SOsK1yrsdwk6bpHOATOETwDY5M2oiB41n5Bji4F-fxJMGhfVIixHEPDXfAgazofhjdcK23Snu0ZEXBofeqPYyRlTbi6EJo5y0XSFZ0PuZ2TXvvsXPgDVjsrJG9wNfsEdx3Y1Bbc_rfkgbnldbwbOwxQAxkMUSw508YpIZ1iJw3XeQbjJ6N1XIuyIpOwld0_IkxC9UK3UsEkmwcCmFO3bwhyccxWLUeTly1hGXhltuDIGwDouEWCCu4PTyN9iAsB5J-ILSA6XLi1JX1sKyl8GcQ_kyS24AAaIEkDxDF40gYDKHh3aSlDK4hLNtvPn8ti81jWex2X_4gLH-DVQNhGWFxYGH5zcjrdTDegOn9lWm67B2d7TWWXErCsgFqAxfmv37a7S4v9t_2hGWTKVge3tN3VAWCafS_lqUNv0j6P5AM9wPbJW_UyB2-w2HR97aFyE4I6cOtkUZMBhH83rfBgEKHkxgZ-IETITocZJVAVL_6myQPXEqLzkGkJz0wJ2z7Ex8nV7J3Iq9-vxzUD1wcxw27F0_PlFKa1nVdp3Ip86wKdaksf_tUOtGgLF8UajkaLAfuYR443YuT2IUj2bfqPL4IpSfyeOo09zjfk6SIWWAY_uaP5df9x78_fAlI-2_7TbHblftvnz98GW01vflb8fnj_fPvv-3HfSUsO8gqiKj8mBkF-PXqCUviiWY5XKsqTrLVSHOpUsFQSbH3pnts8I9hC1j2ZNREXQynJPt-Qu86bCXKx8Yil26nnAdhWucJW4V1CBCv02-fpoxGfexen8gEj0d92vF2ZNoZcdz7vq6LVt7KDOW_4uJIWCZ12TXSlqqtzcCygb4dPoMStGkPP1GQvNkJsWRZetmJspS6VB4t9zhQhLnilTh5oOer8oyGs_xLlYf6zjYguecD-aC5rmtZi5sSwj1IHU2qA_pckKRIF2PCizdLnlP6Hy_5r3DGLe-mQXHcGrtDfnRfueWnH-zYEt5ksFwl9G0Gd0hf2lDss7dAq--A8sXyLdCDCRAD3A8g0nv3iFzS1aRFnHlZq5Zr9SeGOfLGLimV9HKubwOHncrTETy717fMaJxmAZwkW5Js74TktzrqusY4o--ExvROcy3SWrJBs9Rl8HZQowaja-N6i-WJd1e7pXWNSUwn8VJHlymD-EXy_SfmWso_njsUHiVU2PAnZSyhRdECWmssKAd4Uj4MT11gazwCr0zv4aScC-3d-OkGwTteKa28QhekegMnfhz7yaHnAuROoQ09nMSqP0zp34r5B1qnTAvD2aPF-PVjdB7PsygG00JhRQM71fbnmVwnMk9yPsN1nC6TZBGzmM6adSUrluV1xTIqeJ2lq2qRJbLKclyIupbLmVozypY0ZQuaxklC5_Uqy2O2XC0ZVlJkFVlQPHGl51o_nebGHmaD_nW8pElGZ5pXqN3QzDPW4vOYHWEs9PZ2HSZFVX9wZEG1ct5dYbzyGtd_CUn9u4oPzw22r0s7tt4QtjVsiVSOa22eUc56q9c_6YAD8_Qv6qz5Jwp_2wFPCT2t2b8CAAD__yIAxro">