Raw test failure: # env GCONV_PATH=/var/tmp/portage/sys-libs/glibc-2.30-r8/work/build-arm64-aarch64-unknown-linux-gnu-nptl/iconvdata LOCPATH=/var/tmp/portage/sys-libs/glibc-2.30-r8/work/build-arm64-aarch64-unknown-linux-gnu-nptl/localedata LC_ALL=C /var/tmp/portage/sys-libs/glibc-2.30-r8/work/build-arm64-aarch64-unknown-linux-gnu-nptl/elf/ld-linux-aarch64.so.1 --library-path /var/tmp/portage/sys-libs/glibc-2.30-r8/work/build-arm64-aarch64-unknown-linux-gnu-nptl:/var/tmp/portage/sys-libs/glibc-2.30-r8/work/build-arm64-aarch64-unknown-linux-gnu-nptl/math:/var/tmp/portage/sys-libs/glibc-2.30-r8/work/build-arm64-aarch64-unknown-linux-gnu-nptl/elf:/var/tmp/portage/sys-libs/glibc-2.30-r8/work/build-arm64-aarch64-unknown-linux-gnu-nptl/dlfcn:/var/tmp/portage/sys-libs/glibc-2.30-r8/work/build-arm64-aarch64-unknown-linux-gnu-nptl/nss:/var/tmp/portage/sys-libs/glibc-2.30-r8/work/build-arm64-aarch64-unknown-linux-gnu-nptl/nis:/var/tmp/portage/sys-libs/glibc-2.30-r8/work/build-arm64-aarch64-unknown-linux-gnu-nptl/rt:/var/tmp/portage/sys-libs/glibc-2.30-r8/work/build-arm64-aarch64-unknown-linux-gnu-nptl/resolv:/var/tmp/portage/sys-libs/glibc-2.30-r8/work/build-arm64-aarch64-unknown-linux-gnu-nptl/mathvec:/var/tmp/portage/sys-libs/glibc-2.30-r8/work/build-arm64-aarch64-unknown-linux-gnu-nptl/support:/var/tmp/portage/sys-libs/glibc-2.30-r8/work/build-arm64-aarch64-unknown-linux-gnu-nptl/crypt:/var/tmp/portage/sys-libs/glibc-2.30-r8/work/build-arm64-aarch64-unknown-linux-gnu-nptl/nptl::/var/tmp/portage/sys-libs/glibc-2.30-r8/work/build-arm64-aarch64-unknown-linux-gnu-nptl//dlfcn /var/tmp/portage/sys-libs/glibc-2.30-r8/work/build-arm64-aarch64-unknown-linux-gnu-nptl/support/tst-support_descriptors info: initial descriptor set info: 0: target="/dev/pts/4" major=0 minor=17 ino=7 info: 1: target="/dev/pts/4" major=0 minor=17 ino=7 info: 2: target="/dev/pts/4" major=0 minor=17 ino=7 info: descriptor set with additional free descriptor info: 0: target="/dev/pts/4" major=0 minor=17 ino=7 info: 1: target="/dev/pts/4" major=0 minor=17 ino=7 info: 2: target="/dev/pts/4" major=0 minor=17 ino=7 info: 3: target="/dev/null" major=0 minor=6 ino=1030 info: BEGIN subprocess_closed_descriptor output error: Differences found in descriptor set Reference descriptor set: 0: target="/dev/pts/4" major=0 minor=17 ino=7 1: target="pipe:[535141268]" major=0 minor=10 ino=535141268 2: target="pipe:[535141269]" major=0 minor=10 ino=535141269 3: target="/dev/null" major=0 minor=6 ino=1030 Current descriptor set: 0: target="/dev/pts/4" major=0 minor=17 ino=7 1: target="pipe:[535141268]" major=0 minor=10 ino=535141268 2: target="pipe:[535141269]" major=0 minor=10 ino=535141269 Differences: error: descriptor 3 was closed EOT info: END subprocess_closed_descriptor output info: BEGIN subprocess_opened_descriptor output error: Differences found in descriptor set Reference descriptor set: 0: target="/dev/pts/4" major=0 minor=17 ino=7 1: target="pipe:[535141270]" major=0 minor=10 ino=535141270 2: target="pipe:[535141271]" major=0 minor=10 ino=535141271 Current descriptor set: 0: target="/dev/pts/4" major=0 minor=17 ino=7 1: target="pipe:[535141270]" major=0 minor=10 ino=535141270 2: target="pipe:[535141271]" major=0 minor=10 ino=535141271 3: target="/dev/null" major=0 minor=6 ino=1030 Differences: error: descriptor 3 was opened ("/dev/null") EOT info: END subprocess_opened_descriptor output info: BEGIN subprocess_changed_descriptor output error: Differences found in descriptor set Reference descriptor set: 0: target="/dev/pts/4" major=0 minor=17 ino=7 1: target="pipe:[535141272]" major=0 minor=10 ino=535141272 2: target="pipe:[535141273]" major=0 minor=10 ino=535141273 3: target="/dev/null" major=0 minor=6 ino=1030 Current descriptor set: 0: target="/dev/pts/4" major=0 minor=17 ino=7 1: target="pipe:[535141272]" major=0 minor=10 ino=535141272 2: target="pipe:[535141273]" major=0 minor=10 ino=535141273 3: target="/dev" major=8 minor=3 ino=8634469 Differences: error: descriptor 3 changed from "/dev/null" to "/dev" error: descriptor 3 changed device from 0:6 to 8:3 error: descriptor 3 changed ino from 1030 to 8634469 EOT info: END subprocess_changed_descriptor output error: tst-support_descriptors.c:141: not true: strstr (proc.out.buffer, expected) != NULL info: descriptor set with sentinel descriptor info: 0: target="/dev/pts/4" major=0 minor=17 ino=7 info: 1: target="/dev/pts/4" major=0 minor=17 ino=7 info: 2: target="/dev/pts/4" major=0 minor=17 ino=7 info: 4: target="/dev/full" major=0 minor=6 ino=1033 info: BEGIN subprocess_closed_descriptor output error: Differences found in descriptor set Reference descriptor set: 0: target="/dev/pts/4" major=0 minor=17 ino=7 1: target="pipe:[535141276]" major=0 minor=10 ino=535141276 2: target="pipe:[535141277]" major=0 minor=10 ino=535141277 3: target="/dev/null" major=0 minor=6 ino=1030 4: target="/dev/full" major=0 minor=6 ino=1033 Current descriptor set: 0: target="/dev/pts/4" major=0 minor=17 ino=7 1: target="pipe:[535141276]" major=0 minor=10 ino=535141276 2: target="pipe:[535141277]" major=0 minor=10 ino=535141277 4: target="/dev/full" major=0 minor=6 ino=1033 Differences: error: descriptor 3 was closed EOT info: END subprocess_closed_descriptor output info: BEGIN subprocess_opened_descriptor output error: Differences found in descriptor set Reference descriptor set: 0: target="/dev/pts/4" major=0 minor=17 ino=7 1: target="pipe:[535141278]" major=0 minor=10 ino=535141278 2: target="pipe:[535141279]" major=0 minor=10 ino=535141279 4: target="/dev/full" major=0 minor=6 ino=1033 Current descriptor set: 0: target="/dev/pts/4" major=0 minor=17 ino=7 1: target="pipe:[535141278]" major=0 minor=10 ino=535141278 2: target="pipe:[535141279]" major=0 minor=10 ino=535141279 3: target="/dev/null" major=0 minor=6 ino=1030 4: target="/dev/full" major=0 minor=6 ino=1033 Differences: error: descriptor 3 was opened ("/dev/null") EOT info: END subprocess_opened_descriptor output info: BEGIN subprocess_changed_descriptor output error: Differences found in descriptor set Reference descriptor set: 0: target="/dev/pts/4" major=0 minor=17 ino=7 1: target="pipe:[535141280]" major=0 minor=10 ino=535141280 2: target="pipe:[535141281]" major=0 minor=10 ino=535141281 3: target="/dev/null" major=0 minor=6 ino=1030 4: target="/dev/full" major=0 minor=6 ino=1033 Current descriptor set: 0: target="/dev/pts/4" major=0 minor=17 ino=7 1: target="pipe:[535141280]" major=0 minor=10 ino=535141280 2: target="pipe:[535141281]" major=0 minor=10 ino=535141281 3: target="/dev" major=8 minor=3 ino=8634469 4: target="/dev/full" major=0 minor=6 ino=1033 Differences: error: descriptor 3 changed from "/dev/null" to "/dev" error: descriptor 3 changed device from 0:6 to 8:3 error: descriptor 3 changed ino from 1030 to 8634469 EOT info: END subprocess_changed_descriptor output error: tst-support_descriptors.c:141: not true: strstr (proc.out.buffer, expected) != NULL error: 12 test failures
AFAIU the main mismatch here is the following missing assert: expected = xasprintf ( "\nDifferences:\n" "error: descriptor %d changed from \"/dev/null\" to \"/dev\"\n" "error: descriptor %d changed ino ", free_descriptor, free_descriptor); while actual output is: error: descriptor 3 changed from "/dev/null" to "/dev" error: descriptor 3 changed device from 0:6 to 8:3 error: descriptor 3 changed ino from 1030 to 8634469 Note: the extra 'error: descriptor 3 changed device from 0:6 to 8:3'. It happens because my test environment populated /dev/ entries from another filesystem as: # mkdir chroot/dev/ # mount --bind /dev/null chroot/dev/ # stat /dev File: /dev Size: 4096 Blocks: 8 IO Block: 4096 directory Device: 803h/2051d Inode: 8634469 Links: 5 Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2020-05-02 10:07:21.166534333 +0000 Modify: 2020-05-02 10:07:14.646384106 +0000 Change: 2020-05-02 10:07:14.646384106 +0000 Birth: - # stat /dev/null File: /dev/null Size: 0 Blocks: 0 IO Block: 4096 character special file Device: 6h/6d Inode: 1030 Links: 1 Device type: 1,3 Access: (0666/crw-rw-rw-) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2020-05-02 09:35:10.340194554 +0000 Modify: 2020-05-02 09:35:10.340194554 +0000 Change: 2020-05-02 09:35:10.340194554 +0000 Birth: - Note the device difference. Would it be reasonable to tweak the test to search for: - "error: descriptor %d changed from \"/dev/null\" to \"/dev\"\n" - "error: descriptor %d changed ino " strings independently to allow for optional device wibble?