Hello again,
On Fri, 29 Oct 2021 13:52:31 +0200
Stefano Brivio
On Fri, 29 Oct 2021 19:02:15 +0800 Li Feng
wrote: [...]
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLDstrace: Process 172939 attached , child_tidptr=0x7f7b89b1da10) = 172939 [pid 172921] exit_group(0
[pid 172939] set_robust_list(0x7f7b89b1da20, 24 [pid 172921] <... exit_group resumed>) = ? [pid 172921] +++ exited with 0 +++ <... set_robust_list resumed>) = ? +++ killed by SIGSYS (core dumped) +++ ``` Which is the bad syscall? Oh, it's set_robust_list(), it's normal that exit_group() doesn't return. That new usage probably comes from: https://sourceware.org/git/?p=glibc.git;a=commit;h=9a7565403758f65c07fe3705e...
and that code path is not really needed for passt, so I would have a quick try at avoiding it rather than adding a syscall, perhaps with a small replacement of daemon() using clone() instead of fork().
I forgot to follow up here: in the end I pushed a change that, among other calls, allows set_robust_list() unconditionally: https://passt.top/passt/commit/?id=33b1bdd079f1b40dffb040e40579d7434c28d10a alternatives looked quite awkward, a replacement of daemon() also didn't look very small, other suggestions warmly welcome. By the way, the new tests checking build and basic functionality also cover Fedora 35. -- Stefano