Dear Linux folks,
Running the selftests in a QEMU q35 VM, they hang.
``` $ make kselftest […] ok 6 selftests: pidfd: pidfd_getfd_test # timeout set to 45 # selftests: pidfd: pidfd_setns_test # TAP version 13 # 1..7 # # Starting 7 tests from 2 test cases. # # RUN global.setns_einval ... # # OK global.setns_einval # ok 1 global.setns_einval # # RUN current_nsset.invalid_flags ... # # pidfd_setns_test.c:161:invalid_flags:Expected self->child_pid_exited (0) > 0 (0) # # OK current_nsset.invalid_flags # ok 2 current_nsset.invalid_flags # # RUN current_nsset.pidfd_exited_child ... # # pidfd_setns_test.c:161:pidfd_exited_child:Expected self->child_pid_exited (0) > 0 (0) # # OK current_nsset.pidfd_exited_child # ok 3 current_nsset.pidfd_exited_child # # RUN current_nsset.pidfd_incremental_setns ... # # pidfd_setns_test.c:161:pidfd_incremental_setns:Expected self->child_pid_exited (0) > 0 (0) # # pidfd_setns_test.c:408:pidfd_incremental_setns:Managed to correctly setns to user namespace of 31570 via pidfd 20 # # pidfd_setns_test.c:408:pidfd_incremental_setns:Managed to correctly setns to mnt namespace of 31570 via pidfd 20 # # pidfd_setns_test.c:408:pidfd_incremental_setns:Managed to correctly setns to pid namespace of 31570 via pidfd 20 # # pidfd_setns_test.c:408:pidfd_incremental_setns:Managed to correctly setns to uts namespace of 31570 via pidfd 20 # # pidfd_setns_test.c:408:pidfd_incremental_setns:Managed to correctly setns to ipc namespace of 31570 via pidfd 20 # # pidfd_setns_test.c:408:pidfd_incremental_setns:Managed to correctly setns to net namespace of 31570 via pidfd 20 # # pidfd_setns_test.c:408:pidfd_incremental_setns:Managed to correctly setns to cgroup namespace of 31570 via pidfd 20 # # pidfd_setns_test.c:408:pidfd_incremental_setns:Managed to correctly setns to pid_for_children namespace of 31570 via pidfd 20 # # pidfd_setns_test.c:391:pidfd_incremental_setns:Expected setns(self->child_pidfd1, info->flag) (-1) == 0 (0) # # pidfd_setns_test.c:392:pidfd_incremental_setns:Too many users - Failed to setns to time namespace of 31570 via pidfd 20 # # pidfd_incremental_setns: Test terminated by timeout # # FAIL current_nsset.pidfd_incremental_setns # not ok 4 current_nsset.pidfd_incremental_setns # # RUN current_nsset.nsfd_incremental_setns ... # # pidfd_setns_test.c:161:nsfd_incremental_setns:Expected self->child_pid_exited (0) > 0 (0) # # pidfd_setns_test.c:444:nsfd_incremental_setns:Managed to correctly setns to user namespace of 31577 via nsfd 19 # # pidfd_setns_test.c:444:nsfd_incremental_setns:Managed to correctly setns to mnt namespace of 31577 via nsfd 24 # # pidfd_setns_test.c:444:nsfd_incremental_setns:Managed to correctly setns to pid namespace of 31577 via nsfd 27 # # pidfd_setns_test.c:444:nsfd_incremental_setns:Managed to correctly setns to uts namespace of 31577 via nsfd 30 # # pidfd_setns_test.c:444:nsfd_incremental_setns:Managed to correctly setns to ipc namespace of 31577 via nsfd 33 # # pidfd_setns_test.c:444:nsfd_incremental_setns:Managed to correctly setns to net namespace of 31577 via nsfd 36 # # pidfd_setns_test.c:444:nsfd_incremental_setns:Managed to correctly setns to cgroup namespace of 31577 via nsfd 39 # # pidfd_setns_test.c:444:nsfd_incremental_setns:Managed to correctly setns to pid_for_children namespace of 31577 via nsfd 42 # # pidfd_setns_test.c:427:nsfd_incremental_setns:Expected setns(self->child_nsfds1[i], info->flag) (-1) == 0 (0) # # pidfd_setns_test.c:428:nsfd_incremental_setns:Too many users - Failed to setns to time namespace of 31577 via nsfd 45 ```
Ctrl + c gets me back to the shell prompt.
``` $ ps auxf […] build 31574 0.0 0.0 2528 1024 pts/0 D 09:57 0:00 ./pidfd_setns_test build 31575 99.9 0.0 2528 1024 pts/0 R 09:57 37:37 _ ./pidfd_setns_test build 31576 0.0 0.0 0 0 pts/0 Z 09:57 0:00 _ [pidfd_setns_tes] <defunct> build 31577 0.0 0.0 0 0 pts/0 Z 09:57 0:00 _ [pidfd_setns_tes] <defunct> build 31578 0.0 0.0 2528 512 pts/0 S 09:57 0:00 _ ./pidfd_setns_test ```
During shutdown, the system waits for that process:
[42733.704347] systemd-shutdown[1]: Waiting for process: 31578 (pidfd_setns_tes)
This is commit 8d025e2092e2 with one patch on top:
$ git log --no-decorate --oneline -2 a2ce022afcbb a2ce022afcbb [PATCH] kbuild: Disable KCSAN for autogenerated *.mod.c intermediaries 8d025e2092e2 Merge tag 'erofs-for-6.9-rc2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs
KCSAN is not enabled though.
Kind regards,
Paul