The CI today reports a test failure of tests/tail/pipe-f. Log is attached.
It looks like a consequence of the "head,tail: quote name in file headers appropriately" commit from today. Bruno
====================================================== GNU coreutils 2026-05-25: ./tests/test-suite.log ====================================================== # TOTAL: 743 # PASS: 590 # SKIP: 152 # XFAIL: 0 # FAIL: 1 # XPASS: 0 # ERROR: 0 System information (uname -a): Linux 6.17.0-1013-azure #13~24.04.1-Ubuntu SMP Wed Apr 15 16:52:17 UTC 2026 x86_64 x86_64 x86_64 Distribution information (/etc/os-release): PRETTY_NAME="Ubuntu 24.04.4 LTS" NAME="Ubuntu" VERSION_ID="24.04" VERSION="24.04.4 LTS (Noble Numbat)" VERSION_CODENAME=noble ID=ubuntu ID_LIKE=debian HOME_URL="https://www.ubuntu.com/" .. contents:: :depth: 2 FAIL: tests/tail/pipe-f ======================= ++ initial_cwd_=/home/runner/work/ci-check/ci-check/coreutils +++ testdir_prefix_ +++ printf gt ++ pfx_=gt +++ mktempd_ /home/runner/work/ci-check/ci-check/coreutils gt-pipe-f.sh.XXXX +++ case $# in +++ destdir_=/home/runner/work/ci-check/ci-check/coreutils +++ template_=gt-pipe-f.sh.XXXX +++ MAX_TRIES_=4 +++ case $destdir_ in +++ destdir_slash_=/home/runner/work/ci-check/ci-check/coreutils/ +++ case $template_ in ++++ unset TMPDIR +++ d=/home/runner/work/ci-check/ci-check/coreutils/gt-pipe-f.sh.akMb +++ case $d in +++ : +++ test -d /home/runner/work/ci-check/ci-check/coreutils/gt-pipe-f.sh.akMb ++++ ls -dgo /home/runner/work/ci-check/ci-check/coreutils/gt-pipe-f.sh.akMb +++ perms='drwx------ 2 4096 May 25 20:02 /home/runner/work/ci-check/ci-check/coreutils/gt-pipe-f.sh.akMb' +++ case $perms in +++ : +++ echo /home/runner/work/ci-check/ci-check/coreutils/gt-pipe-f.sh.akMb +++ return ++ test_dir_=/home/runner/work/ci-check/ci-check/coreutils/gt-pipe-f.sh.akMb ++ cd /home/runner/work/ci-check/ci-check/coreutils/gt-pipe-f.sh.akMb ++ case $srcdir in ++ srcdir=../. ++ builddir=.. ++ export srcdir builddir ++ gl_init_sh_nl_=' ' ++ IFS=' ' ++ for sig_ in 1 2 3 13 15 +++ expr 1 + 128 ++ eval 'trap '\''Exit 129'\'' 1' +++ trap 'Exit 129' 1 ++ for sig_ in 1 2 3 13 15 +++ expr 2 + 128 ++ eval 'trap '\''Exit 130'\'' 2' +++ trap 'Exit 130' 2 ++ for sig_ in 1 2 3 13 15 +++ expr 3 + 128 ++ eval 'trap '\''Exit 131'\'' 3' +++ trap 'Exit 131' 3 ++ for sig_ in 1 2 3 13 15 +++ expr 13 + 128 ++ eval 'trap '\''Exit 141'\'' 13' +++ trap 'Exit 141' 13 ++ for sig_ in 1 2 3 13 15 +++ expr 15 + 128 ++ eval 'trap '\''Exit 143'\'' 15' +++ trap 'Exit 143' 15 ++ saved_IFS=' ' ++ IFS=: ++ new_PATH= ++ for dir in $PATH ++ IFS=' ' ++ case "$dir" in ++ test -d /home/runner/work/ci-check/ci-check/coreutils/src/. ++ new_PATH=/home/runner/work/ci-check/ci-check/coreutils/src ++ for dir in $PATH ++ IFS=' ' ++ case "$dir" in ++ test -d /opt/pipx_bin/. ++ new_PATH=/home/runner/work/ci-check/ci-check/coreutils/src:/opt/pipx_bin ++ for dir in $PATH ++ IFS=' ' ++ case "$dir" in ++ test -d /home/runner/.cargo/bin/. ++ new_PATH=/home/runner/work/ci-check/ci-check/coreutils/src:/opt/pipx_bin:/home/runner/.cargo/bin ++ for dir in $PATH ++ IFS=' ' ++ case "$dir" in ++ test -d /usr/local/.ghcup/bin/. ++ new_PATH=/home/runner/work/ci-check/ci-check/coreutils/src:/opt/pipx_bin:/home/runner/.cargo/bin:/usr/local/.ghcup/bin ++ for dir in $PATH ++ IFS=' ' ++ case "$dir" in ++ test -d /home/runner/.dotnet/tools/. ++ new_PATH=/home/runner/work/ci-check/ci-check/coreutils/src:/opt/pipx_bin:/home/runner/.cargo/bin:/usr/local/.ghcup/bin:/home/runner/.dotnet/tools ++ for dir in $PATH ++ IFS=' ' ++ case "$dir" in ++ test -d /usr/local/sbin/. ++ new_PATH=/home/runner/work/ci-check/ci-check/coreutils/src:/opt/pipx_bin:/home/runner/.cargo/bin:/usr/local/.ghcup/bin:/home/runner/.dotnet/tools:/usr/local/sbin ++ for dir in $PATH ++ IFS=' ' ++ case "$dir" in ++ test -d /usr/local/bin/. ++ new_PATH=/home/runner/work/ci-check/ci-check/coreutils/src:/opt/pipx_bin:/home/runner/.cargo/bin:/usr/local/.ghcup/bin:/home/runner/.dotnet/tools:/usr/local/sbin:/usr/local/bin ++ for dir in $PATH ++ IFS=' ' ++ case "$dir" in ++ test -d /usr/sbin/. ++ new_PATH=/home/runner/work/ci-check/ci-check/coreutils/src:/opt/pipx_bin:/home/runner/.cargo/bin:/usr/local/.ghcup/bin:/home/runner/.dotnet/tools:/usr/local/sbin:/usr/local/bin:/usr/sbin ++ for dir in $PATH ++ IFS=' ' ++ case "$dir" in ++ test -d /usr/bin/. ++ new_PATH=/home/runner/work/ci-check/ci-check/coreutils/src:/opt/pipx_bin:/home/runner/.cargo/bin:/usr/local/.ghcup/bin:/home/runner/.dotnet/tools:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin ++ for dir in $PATH ++ IFS=' ' ++ case "$dir" in ++ test -d /sbin/. ++ new_PATH=/home/runner/work/ci-check/ci-check/coreutils/src:/opt/pipx_bin:/home/runner/.cargo/bin:/usr/local/.ghcup/bin:/home/runner/.dotnet/tools:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin ++ for dir in $PATH ++ IFS=' ' ++ case "$dir" in ++ test -d /bin/. ++ new_PATH=/home/runner/work/ci-check/ci-check/coreutils/src:/opt/pipx_bin:/home/runner/.cargo/bin:/usr/local/.ghcup/bin:/home/runner/.dotnet/tools:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin ++ for dir in $PATH ++ IFS=' ' ++ case "$dir" in ++ test -d /usr/games/. ++ new_PATH=/home/runner/work/ci-check/ci-check/coreutils/src:/opt/pipx_bin:/home/runner/.cargo/bin:/usr/local/.ghcup/bin:/home/runner/.dotnet/tools:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games ++ for dir in $PATH ++ IFS=' ' ++ case "$dir" in ++ test -d /usr/local/games/. ++ new_PATH=/home/runner/work/ci-check/ci-check/coreutils/src:/opt/pipx_bin:/home/runner/.cargo/bin:/usr/local/.ghcup/bin:/home/runner/.dotnet/tools:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games ++ IFS=' ' ++ PATH=/home/runner/work/ci-check/ci-check/coreutils/src:/opt/pipx_bin:/home/runner/.cargo/bin:/usr/local/.ghcup/bin:/home/runner/.dotnet/tools:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games ++ export PATH ++ trap remove_tmp_ EXIT + path_prepend_ ./src + test 1 '!=' 0 + path_dir_=./src + case $path_dir_ in + abs_path_dir_=/home/runner/work/ci-check/ci-check/coreutils/./src + case $abs_path_dir_ in + PATH=/home/runner/work/ci-check/ci-check/coreutils/./src:/home/runner/work/ci-check/ci-check/coreutils/src:/opt/pipx_bin:/home/runner/.cargo/bin:/usr/local/.ghcup/bin:/home/runner/.dotnet/tools:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games + create_exe_shims_ /home/runner/work/ci-check/ci-check/coreutils/./src + case $EXEEXT in + return 0 + shift + test 0 '!=' 0 + export PATH + print_ver_ tail test head + require_built_ tail test head + skip_=no + for i in "$@" + case " $built_programs " in + for i in "$@" + case " $built_programs " in + for i in "$@" + case " $built_programs " in + test no = yes + test yes = yes + local i + for i in $* + env tail --version tail (GNU coreutils) 2026-05-25 Copyright (C) 2026 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by Paul Rubin, David MacKenzie, Ian Lance Taylor, and Jim Meyering. + for i in $* + env test --version + for i in $* + env head --version head (GNU coreutils) 2026-05-25 Copyright (C) 2026 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by David MacKenzie and Jim Meyering. + trap_sigpipe_or_skip_ + timeout 1 true + grep 'Broken pipe' + fastpoll='-s.1 --max-unchanged-stats=1' + for mode in '' '---disable-inotify' + echo oo + echo foo + timeout 10 tail -f -s.1 --max-unchanged-stats=1 -c3 + compare exp out + compare_dev_null_ exp out + test 2 = 2 + test xexp = x/dev/null + test xout = x/dev/null + return 2 + case $? in + compare_ exp out + LC_ALL=C + diff -u exp out + cat + echo bar + returns_ 1 timeout 10 tail -f -s.1 --max-unchanged-stats=1 -c3 - missing tail: cannot open 'missing' for reading: No such file or directory tail: no files remaining + compare exp out + compare_dev_null_ exp out + test 2 = 2 + test xexp = x/dev/null + test xout = x/dev/null + return 2 + case $? in + compare_ exp out + LC_ALL=C + diff -u exp out --- exp 2026-05-25 20:02:07.337515647 +0000 +++ out 2026-05-25 20:02:07.339589109 +0000 @@ -1,2 +1,2 @@ -==> standard input <== +==> 'standard input' <== ar + fail=1 + case $host_os in + for disposition in '' '-' + trap '' PIPE + returns_ 124 timeout 10 tail -n2 -f -s.1 --max-unchanged-stats=1 out + head -n2 + test -e timed_out + compare exp out2 + compare_dev_null_ exp out2 + test 2 = 2 + test xexp = x/dev/null + test xout2 = x/dev/null + return 2 + case $? in + compare_ exp out2 + LC_ALL=C + diff -u exp out2 --- exp 2026-05-25 20:02:07.337515647 +0000 +++ out2 2026-05-25 20:02:07.344589206 +0000 @@ -1,2 +1,2 @@ -==> standard input <== +==> 'standard input' <== ar + fail=1 + rm -f timed_out + for disposition in '' '-' + trap - PIPE + returns_ 124 timeout 10 tail -n2 -f -s.1 --max-unchanged-stats=1 out + head -n2 + test -e timed_out + compare exp out2 + compare_dev_null_ exp out2 + test 2 = 2 + test xexp = x/dev/null + test xout2 = x/dev/null + return 2 + case $? in + compare_ exp out2 + LC_ALL=C + diff -u exp out2 --- exp 2026-05-25 20:02:07.337515647 +0000 +++ out2 2026-05-25 20:02:07.349589302 +0000 @@ -1,2 +1,2 @@ -==> standard input <== +==> 'standard input' <== ar + fail=1 + rm -f timed_out + env test -w /dev/stdout + env test '!' -w /dev/stdout + returns_ 1 timeout 10 tail -f -s.1 --max-unchanged-stats=1 /dev/null tail: standard output: Bad file descriptor + for mode in '' '---disable-inotify' + echo oo + echo foo + timeout 10 tail -f ---disable-inotify -s.1 --max-unchanged-stats=1 -c3 + compare exp out + compare_dev_null_ exp out + test 2 = 2 + test xexp = x/dev/null + test xout = x/dev/null + return 2 + case $? in + compare_ exp out + LC_ALL=C + diff -u exp out + cat + echo bar + returns_ 1 timeout 10 tail -f ---disable-inotify -s.1 --max-unchanged-stats=1 -c3 - missing tail: cannot open 'missing' for reading: No such file or directory tail: no files remaining + compare exp out + compare_dev_null_ exp out + test 2 = 2 + test xexp = x/dev/null + test xout = x/dev/null + return 2 + case $? in + compare_ exp out + LC_ALL=C + diff -u exp out --- exp 2026-05-25 20:02:07.363589573 +0000 +++ out 2026-05-25 20:02:07.365589612 +0000 @@ -1,2 +1,2 @@ -==> standard input <== +==> 'standard input' <== ar + fail=1 + case $host_os in + for disposition in '' '-' + trap '' PIPE + returns_ 124 timeout 10 tail -n2 -f ---disable-inotify -s.1 --max-unchanged-stats=1 out + head -n2 + test -e timed_out + compare exp out2 + compare_dev_null_ exp out2 + test 2 = 2 + test xexp = x/dev/null + test xout2 = x/dev/null + return 2 + case $? in + compare_ exp out2 + LC_ALL=C + diff -u exp out2 --- exp 2026-05-25 20:02:07.363589573 +0000 +++ out2 2026-05-25 20:02:07.370589709 +0000 @@ -1,2 +1,2 @@ -==> standard input <== +==> 'standard input' <== ar + fail=1 + rm -f timed_out + for disposition in '' '-' + trap - PIPE + returns_ 124 timeout 10 tail -n2 -f ---disable-inotify -s.1 --max-unchanged-stats=1 out + head -n2 + test -e timed_out + compare exp out2 + compare_dev_null_ exp out2 + test 2 = 2 + test xexp = x/dev/null + test xout2 = x/dev/null + return 2 + case $? in + compare_ exp out2 + LC_ALL=C + diff -u exp out2 --- exp 2026-05-25 20:02:07.363589573 +0000 +++ out2 2026-05-25 20:02:07.476591759 +0000 @@ -1,2 +1,2 @@ -==> standard input <== +==> 'standard input' <== ar + fail=1 + rm -f timed_out + env test -w /dev/stdout + env test '!' -w /dev/stdout + returns_ 1 timeout 10 tail -f ---disable-inotify -s.1 --max-unchanged-stats=1 /dev/null tail: standard output: Bad file descriptor + Exit 1 + set +e + exit 1 + exit 1 + remove_tmp_ + __st=1 + cleanup_ + : + test '' = yes + cd /home/runner/work/ci-check/ci-check/coreutils + chmod -R u+rwx /home/runner/work/ci-check/ci-check/coreutils/gt-pipe-f.sh.akMb + rm -rf /home/runner/work/ci-check/ci-check/coreutils/gt-pipe-f.sh.akMb + exit 1 FAIL tests/tail/pipe-f.sh (exit status: 1) ============================================================================ Testsuite summary for GNU coreutils 2026-05-25 ============================================================================ # TOTAL: 743 # PASS: 590 # SKIP: 152 # XFAIL: 0 # FAIL: 1 # XPASS: 0 # ERROR: 0 ============================================================================
