Hi, The CI reports that the new misc/exec-bad-unicode test fails (during "make distcheck", not during "make check"). The system is an Ubuntu 24.04/x86_64.
Find attached the log file. Bruno
====================================================== GNU coreutils 2026-10-06: ./tests/test-suite.log ====================================================== # TOTAL: 763 # PASS: 538 # SKIP: 224 # XFAIL: 0 # FAIL: 1 # XPASS: 0 # ERROR: 0 System information (uname -a): Linux 6.17.0-1022-azure #22-Ubuntu SMP Mon Jul 27 17:24:03 UTC 2026 x86_64 x86_64 x86_64 Distribution information (/etc/os-release): PRETTY_NAME="Ubuntu 24.04.5 LTS" NAME="Ubuntu" VERSION_ID="24.04" VERSION="24.04.5 LTS (Noble Numbat)" VERSION_CODENAME=noble ID=ubuntu ID_LIKE=debian HOME_URL="https://www.ubuntu.com/" .. contents:: :depth: 2 FAIL: tests/misc/exec-bad-unicode ================================= ++ initial_cwd_='/home/runner/work/ci-check/ci-check/coreutils/tests/torture/taint/a b/coreutils-2026-10-06' +++ testdir_prefix_ +++ printf gt ++ pfx_=gt +++ mktempd_ '/home/runner/work/ci-check/ci-check/coreutils/tests/torture/taint/a b/coreutils-2026-10-06' gt-exec-bad-unicode.sh.XXXX +++ case $# in +++ destdir_='/home/runner/work/ci-check/ci-check/coreutils/tests/torture/taint/a b/coreutils-2026-10-06' +++ template_=gt-exec-bad-unicode.sh.XXXX +++ MAX_TRIES_=4 +++ case $destdir_ in +++ destdir_slash_='/home/runner/work/ci-check/ci-check/coreutils/tests/torture/taint/a b/coreutils-2026-10-06/' +++ case $template_ in ++++ unset TMPDIR +++ d='/home/runner/work/ci-check/ci-check/coreutils/tests/torture/taint/a b/coreutils-2026-10-06/gt-exec-bad-unicode.sh.F44n' +++ case $d in +++ : +++ test -d '/home/runner/work/ci-check/ci-check/coreutils/tests/torture/taint/a b/coreutils-2026-10-06/gt-exec-bad-unicode.sh.F44n' ++++ ls -dgo '/home/runner/work/ci-check/ci-check/coreutils/tests/torture/taint/a b/coreutils-2026-10-06/gt-exec-bad-unicode.sh.F44n' +++ perms='drwx------ 2 4096 Oct 6 00:15 /home/runner/work/ci-check/ci-check/coreutils/tests/torture/taint/a b/coreutils-2026-10-06/gt-exec-bad-unicode.sh.F44n' +++ case $perms in +++ : +++ echo '/home/runner/work/ci-check/ci-check/coreutils/tests/torture/taint/a b/coreutils-2026-10-06/gt-exec-bad-unicode.sh.F44n' +++ return ++ test_dir_='/home/runner/work/ci-check/ci-check/coreutils/tests/torture/taint/a b/coreutils-2026-10-06/gt-exec-bad-unicode.sh.F44n' ++ cd '/home/runner/work/ci-check/ci-check/coreutils/tests/torture/taint/a b/coreutils-2026-10-06/gt-exec-bad-unicode.sh.F44n' ++ 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/tests/torture/taint/a b/coreutils-2026-10-06/src/.' ++ new_PATH='/home/runner/work/ci-check/ci-check/coreutils/tests/torture/taint/a b/coreutils-2026-10-06/src' ++ for dir in $PATH ++ IFS=' ' ++ case "$dir" in ++ test -d /opt/pipx_bin/. ++ new_PATH='/home/runner/work/ci-check/ci-check/coreutils/tests/torture/taint/a b/coreutils-2026-10-06/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/tests/torture/taint/a b/coreutils-2026-10-06/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/tests/torture/taint/a b/coreutils-2026-10-06/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/tests/torture/taint/a b/coreutils-2026-10-06/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/tests/torture/taint/a b/coreutils-2026-10-06/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/tests/torture/taint/a b/coreutils-2026-10-06/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/tests/torture/taint/a b/coreutils-2026-10-06/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/tests/torture/taint/a b/coreutils-2026-10-06/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/tests/torture/taint/a b/coreutils-2026-10-06/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/tests/torture/taint/a b/coreutils-2026-10-06/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/tests/torture/taint/a b/coreutils-2026-10-06/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/tests/torture/taint/a b/coreutils-2026-10-06/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/tests/torture/taint/a b/coreutils-2026-10-06/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/tests/torture/taint/a b/coreutils-2026-10-06/./src' + case $abs_path_dir_ in + PATH='/home/runner/work/ci-check/ci-check/coreutils/tests/torture/taint/a b/coreutils-2026-10-06/./src:/home/runner/work/ci-check/ci-check/coreutils/tests/torture/taint/a b/coreutils-2026-10-06/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/tests/torture/taint/a b/coreutils-2026-10-06/./src' + case $EXEEXT in + return 0 + shift + test 0 '!=' 0 + export PATH ++ bad_unicode ++ require_built_ printf ++ skip_=no ++ for i in "$@" ++ case " $built_programs " in ++ test no = yes ++ env printf '\xFF|\xED\xBA\xAD|\u0089|\xED\xA6\xBF\xED\xBF\xBF\n' + script='�|�|\u0089|��' + cat + test 0 = 0 + chmod u+x '�|�|\u0089|��' + './�|�|\u0089|��' '�|�|\u0089|��' + sort -k 1b,1 ++ id -Z id: --context (-Z) works only on an SELinux-enabled kernel + printf %s '\ chroot --skip-chdir / env nice nohup runcon stdbuf -oL timeout 10 ' + printf '%s\n' '[' b2sum base32 base64 basename basenc cat chcon chgrp chmod chown chroot cksum comm cp csplit cut date dd df dir dircolors dirname du echo env expand expr factor false fmt fold ginstall groups head hostid id join link ln logname ls md5sum mkdir mkfifo mknod mktemp mv nice nl nohup nproc numfmt od paste pathchk pinky pr printenv printf ptx pwd readlink realpath rm rmdir runcon seq sha1sum sha224sum sha256sum sha384sum sha512sum shred shuf sleep sort split stat stdbuf stty sum sync tac tail tee test timeout touch tr true truncate tsort tty uname unexpand uniq unlink users vdir wc who whoami yes + sort -k 1b,1 + join all_executors built_programs + for loc in C "$LOCALE_FR" "$LOCALE_FR_UTF8" + test -z C + test C = none + read executor + LC_ALL=C + chroot --skip-chdir / './�|�|\u0089|��' '�|�|\u0089|��' + test 125 = 0 + case "$executor" in + uid_is_privileged_ ++ id -u + my_uid=1001 + case $my_uid in + return 1 + read executor + LC_ALL=C + env './�|�|\u0089|��' '�|�|\u0089|��' + test 0 = 0 + 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 + compare /dev/null err + compare_dev_null_ /dev/null err + test 2 = 2 + test x/dev/null = x/dev/null + test -s err + return 0 + return 0 + read executor + LC_ALL=C + nice './�|�|\u0089|��' '�|�|\u0089|��' + test 0 = 0 + 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 + compare /dev/null err + compare_dev_null_ /dev/null err + test 2 = 2 + test x/dev/null = x/dev/null + test -s err + return 0 + return 0 + read executor + LC_ALL=C + nohup './�|�|\u0089|��' '�|�|\u0089|��' + test 0 = 0 + 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 + compare /dev/null err + compare_dev_null_ /dev/null err + test 2 = 2 + test x/dev/null = x/dev/null + test -s err + return 0 + return 0 + read executor + LC_ALL=C + runcon './�|�|\u0089|��' '�|�|\u0089|��' + test 125 = 0 + case "$executor" in + grep 'runcon: runcon may be used only on a SELinux kernel' err runcon: runcon may be used only on a SELinux kernel + read executor + LC_ALL=C + stdbuf -oL './�|�|\u0089|��' '�|�|\u0089|��' + test 0 = 0 + 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 + compare /dev/null err + compare_dev_null_ /dev/null err + test 2 = 2 + test x/dev/null = x/dev/null + test -s err + emit_diff_u_header_ /dev/null err + printf '%s\n' 'diff -u /dev/null err' '--- /dev/null 1970-01-01' '+++ err 1970-01-01' diff -u /dev/null err --- /dev/null 1970-01-01 +++ err 1970-01-01 + sed 's/^/+/' err +ERROR: ld.so: object '/home/runner/work/ci-check/ci-check/coreutils/tests/torture/taint/a' from LD_PRELOAD cannot be preloaded (cannot read file data): ignored. +ERROR: ld.so: object 'b/coreutils-2026-10-06/src/libstdbuf.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored. + return 1 + case $? in + return 1 + fail=1 + read executor + LC_ALL=C + timeout 10 './�|�|\u0089|��' '�|�|\u0089|��' + test 0 = 0 + 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 + compare /dev/null err + compare_dev_null_ /dev/null err + test 2 = 2 + test x/dev/null = x/dev/null + test -s err + return 0 + return 0 + read executor + for loc in C "$LOCALE_FR" "$LOCALE_FR_UTF8" + test -z none + test none = none + continue + for loc in C "$LOCALE_FR" "$LOCALE_FR_UTF8" + test -z none + test none = none + continue + cat + seq -w 2000 + tac exp + for loc in C "$LOCALE_FR" "$LOCALE_FR_UTF8" + test -z C + test C = none + LC_ALL=C + sort -S 1k '--compress-program=./�|�|\u0089|��' in + 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 + compare /dev/null err + compare_dev_null_ /dev/null err + test 2 = 2 + test x/dev/null = x/dev/null + test -s err + return 0 + return 0 + test -f ok + for loc in C "$LOCALE_FR" "$LOCALE_FR_UTF8" + test -z none + test none = none + continue + for loc in C "$LOCALE_FR" "$LOCALE_FR_UTF8" + test -z none + test none = none + continue + cat + for loc in C "$LOCALE_FR" "$LOCALE_FR_UTF8" + test -z C + test C = none + echo abc + echo aBc + LC_ALL=C + ginstall src dest -s '--strip-program=./�|�|\u0089|��' + compare /dev/null out + compare_dev_null_ /dev/null out + test 2 = 2 + test x/dev/null = x/dev/null + test -s out + return 0 + return 0 + compare /dev/null err + compare_dev_null_ /dev/null err + test 2 = 2 + test x/dev/null = x/dev/null + test -s err + return 0 + return 0 + compare exp dest + compare_dev_null_ exp dest + test 2 = 2 + test xexp = x/dev/null + test xdest = x/dev/null + return 2 + case $? in + compare_ exp dest + LC_ALL=C + diff -u exp dest + rm -f dest + for loc in C "$LOCALE_FR" "$LOCALE_FR_UTF8" + test -z none + test none = none + continue + for loc in C "$LOCALE_FR" "$LOCALE_FR_UTF8" + test -z none + test none = none + continue + cat + for f in a b c + echo a + for f in a b c + echo b + for f in a b c + echo c + cat + for loc in C "$LOCALE_FR" "$LOCALE_FR_UTF8" + test -z C + test C = none + LC_ALL=C + split -l1 '--filter=./'\''�|�|\u0089|��'\'' > $FILE.filtered' in out- + compare /dev/null out + compare_dev_null_ /dev/null out + test 2 = 2 + test x/dev/null = x/dev/null + test -s out + return 0 + return 0 + compare /dev/null err + compare_dev_null_ /dev/null err + test 2 = 2 + test x/dev/null = x/dev/null + test -s err + return 0 + return 0 + for f in a b c + compare exp-a out-aa.filtered + compare_dev_null_ exp-a out-aa.filtered + test 2 = 2 + test xexp-a = x/dev/null + test xout-aa.filtered = x/dev/null + return 2 + case $? in + compare_ exp-a out-aa.filtered + LC_ALL=C + diff -u exp-a out-aa.filtered + rm -f out-aa.filtered + for f in a b c + compare exp-b out-ab.filtered + compare_dev_null_ exp-b out-ab.filtered + test 2 = 2 + test xexp-b = x/dev/null + test xout-ab.filtered = x/dev/null + return 2 + case $? in + compare_ exp-b out-ab.filtered + LC_ALL=C + diff -u exp-b out-ab.filtered + rm -f out-ab.filtered + for f in a b c + compare exp-c out-ac.filtered + compare_dev_null_ exp-c out-ac.filtered + test 2 = 2 + test xexp-c = x/dev/null + test xout-ac.filtered = x/dev/null + return 2 + case $? in + compare_ exp-c out-ac.filtered + LC_ALL=C + diff -u exp-c out-ac.filtered + rm -f out-ac.filtered + for loc in C "$LOCALE_FR" "$LOCALE_FR_UTF8" + test -z none + test none = none + continue + for loc in C "$LOCALE_FR" "$LOCALE_FR_UTF8" + test -z none + test none = none + continue + Exit 1 + set +e + exit 1 + exit 1 + remove_tmp_ + __st=1 + cleanup_ + : + test '' = yes + cd '/home/runner/work/ci-check/ci-check/coreutils/tests/torture/taint/a b/coreutils-2026-10-06' + chmod -R u+rwx '/home/runner/work/ci-check/ci-check/coreutils/tests/torture/taint/a b/coreutils-2026-10-06/gt-exec-bad-unicode.sh.F44n' + rm -rf '/home/runner/work/ci-check/ci-check/coreutils/tests/torture/taint/a b/coreutils-2026-10-06/gt-exec-bad-unicode.sh.F44n' + exit 1 FAIL tests/misc/exec-bad-unicode.sh (exit status: 1)
