Subject: bug#70861: 'pipe-output' test fails on Alpine Linux, macOS, Solaris 11 OmniOS

From: Bruno Haible <[email-masked]>
Date: Fri, 10 May 2024 17:37:17 +0200

Hi,

On Alpine Linux, building gzip from git (with the newest gnulib) and
running "make check" produces 1 test failure:

FAIL: pipe-output
=================

+ initial_cwd_=/work/gzip-2024-05-10/tests
+ testdir_prefix_
+ printf gt
+ pfx_=gt
+ mktempd_ /work/gzip-2024-05-10/tests gt-pipe-output.XXXX
+ destdir_=/work/gzip-2024-05-10/tests
+ template_=gt-pipe-output.XXXX
+ MAX_TRIES_=4
+ destdir_slash_=/work/gzip-2024-05-10/tests/
+ unset TMPDIR
+ d=
+ echo gt-pipe-output.XXXX
+ sed 's/XX*$//'
+ base_template_=gt-pipe-output.
+ echo gt-pipe-output.XXXX
+ wc -c
+ template_length_=20
+ echo gt-pipe-output.
+ wc -c
+ nx_=16
+ expr 20 - 16
+ nx_=4
+ err_=
+ i_=1
+ :
+ rand_bytes_ 4
+ n_=4
+ chars_=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
+ dev_rand_=/dev/urandom
+ test -r /dev/urandom
+ dd 'ibs=4' 'count=1' 'if=/dev/urandom'
+ LC_ALL=C tr -c abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 01234567abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
+ return
+ X_=R3E2
+ candidate_dir_=/work/gzip-2024-05-10/tests/gt-pipe-output.R3E2
+ mkdir -m 0700 /work/gzip-2024-05-10/tests/gt-pipe-output.R3E2
+ err_=
+ echo /work/gzip-2024-05-10/tests/gt-pipe-output.R3E2
+ return
+ test_dir_=/work/gzip-2024-05-10/tests/gt-pipe-output.R3E2
+ cd /work/gzip-2024-05-10/tests/gt-pipe-output.R3E2
+ srcdir=../.
+ builddir=..
+ export srcdir builddir
+ gl_init_sh_nl_='
'
+ IFS=' 	
'
+ expr 1 + 128
+ eval 'trap '"'"'Exit 129'"'"' 1'
+ trap 'Exit 129' 1
+ expr 2 + 128
+ eval 'trap '"'"'Exit 130'"'"' 2'
+ trap 'Exit 130' 2
+ expr 3 + 128
+ eval 'trap '"'"'Exit 131'"'"' 3'
+ trap 'Exit 131' 3
+ expr 13 + 128
+ eval 'trap '"'"'Exit 141'"'"' 13'
+ trap 'Exit 141' 13
+ expr 15 + 128
+ eval 'trap '"'"'Exit 143'"'"' 15'
+ trap 'Exit 143' 15
+ saved_IFS=' 	
'
+ IFS=:
+ new_PATH=
+ sep_=
+ test -d /work/gzip-2024-05-10/.
+ new_PATH=/work/gzip-2024-05-10
+ sep_=:
+ test -d /usr/local/sbin/.
+ continue
+ test -d /usr/local/bin/.
+ new_PATH=/work/gzip-2024-05-10:/usr/local/bin
+ sep_=:
+ test -d /usr/sbin/.
+ new_PATH=/work/gzip-2024-05-10:/usr/local/bin:/usr/sbin
+ sep_=:
+ test -d /usr/bin/.
+ new_PATH=/work/gzip-2024-05-10:/usr/local/bin:/usr/sbin:/usr/bin
+ sep_=:
+ test -d /sbin/.
+ new_PATH=/work/gzip-2024-05-10:/usr/local/bin:/usr/sbin:/usr/bin:/sbin
+ sep_=:
+ test -d /bin/.
+ new_PATH=/work/gzip-2024-05-10:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+ sep_=:
+ IFS=' 	
'
+ PATH=/work/gzip-2024-05-10:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+ export PATH
+ trap remove_tmp_ EXIT
+ path_prepend_ ..
+ test 1 '!=' 0
+ path_dir_=..
+ abs_path_dir_=/work/gzip-2024-05-10/tests/..
+ PATH=/work/gzip-2024-05-10/tests/..:/work/gzip-2024-05-10:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+ create_exe_shims_ /work/gzip-2024-05-10/tests/..
+ return 0
+ shift
+ test 0 '!=' 0
+ export PATH
+ sleep 0.01
+ sleep_amount=0.01
+ echo a
+ echo b
+ gzip a
+ gzip b
+ trap  PIPE
+ sleep 0.01
+ :
+ cat
cat: write error: Broken pipe
+ echo 1
+ cat_status=1
+ test 1 -lt 1
+ trap  PIPE
+ sleep 0.01
+ :
+ gunzip

gzip: stdout: Broken pipe
+ echo 2
+ cmd_status=2
+ test 1 -lt 2
+ test 2 -lt 128
+ cmd_status=1
+ test 1 -eq 1
+ trap  PIPE
+ sleep 0.01
+ :
+ gunzip -q
+ echo 2
+ cmd_status=2
+ test 1 -lt 2
+ test 2 -lt 128
+ cmd_status=1
+ test 1 -eq 1
+ trap  PIPE
+ sleep 0.01
+ :
+ gzip -d

gzip: stdout: Broken pipe
+ echo 2
+ cmd_status=2
+ test 1 -lt 2
+ test 2 -lt 128
+ cmd_status=1
+ test 1 -eq 1
+ trap  PIPE
+ sleep 0.01
+ :
+ gzip -dq
+ echo 2
+ cmd_status=2
+ test 1 -lt 2
+ test 2 -lt 128
+ cmd_status=1
+ test 1 -eq 1
+ trap  PIPE
+ sleep 0.01
+ :
+ zcat

gzip: stdout: Broken pipe
+ echo 2
+ cmd_status=2
+ test 1 -lt 2
+ test 2 -lt 128
+ cmd_status=1
+ test 1 -eq 1
+ trap  PIPE
+ sleep 0.01
+ :
+ zcmp - b.gz
+ echo 1
+ cmd_status=1
+ test 1 -lt 1
+ test 1 -eq 1
+ trap  PIPE
+ sleep 0.01
+ :
+ zdiff - b.gz
+ echo 1
+ cmd_status=1
+ test 1 -lt 1
+ test 1 -eq 1
+ trap  PIPE
+ sleep 0.01
+ :
+ zgrep a
+ echo 0
+ cmd_status=0
+ test 1 -lt 0
+ test 1 -eq 0
+ fail=1
+ :  PIPE
+ sleep 0.01
+ :
+ cat
+ echo 141
+ cat_status=141
+ test 1 -lt 141
+ test 141 -lt 128
+ :  PIPE
+ sleep 0.01
+ :
+ gunzip
+ echo 141
+ cmd_status=141
+ test 1 -lt 141
+ test 141 -lt 128
+ test 141 -eq 141
+ :  PIPE
+ sleep 0.01
+ :
+ gunzip -q
+ echo 141
+ cmd_status=141
+ test 1 -lt 141
+ test 141 -lt 128
+ test 141 -eq 141
+ :  PIPE
+ sleep 0.01
+ :
+ gzip -d
+ echo 141
+ cmd_status=141
+ test 1 -lt 141
+ test 141 -lt 128
+ test 141 -eq 141
+ :  PIPE
+ sleep 0.01
+ :
+ gzip -dq
+ echo 141
+ cmd_status=141
+ test 1 -lt 141
+ test 141 -lt 128
+ test 141 -eq 141
+ :  PIPE
+ sleep 0.01
+ :
+ zcat
+ echo 141
+ cmd_status=141
+ test 1 -lt 141
+ test 141 -lt 128
+ test 141 -eq 141
+ :  PIPE
+ sleep 0.01
+ :
+ zcmp - b.gz
+ echo 141
+ cmd_status=141
+ test 1 -lt 141
+ test 141 -lt 128
+ test 141 -eq 141
+ :  PIPE
+ sleep 0.01
+ :
+ zdiff - b.gz
+ echo 141
+ cmd_status=141
+ test 1 -lt 141
+ test 141 -lt 128
+ test 141 -eq 141
+ :  PIPE
+ sleep 0.01
+ :
+ zgrep a
+ echo 141
+ cmd_status=141
+ test 1 -lt 141
+ test 141 -lt 128
+ test 141 -eq 141
+ Exit 1
+ set +e
+ exit 1
+ exit 1
+ remove_tmp_
+ __st=1
+ cleanup_
+ :
+ test  '=' yes
+ cd /work/gzip-2024-05-10/tests
+ chmod -R u+rwx /work/gzip-2024-05-10/tests/gt-pipe-output.R3E2
+ rm -rf /work/gzip-2024-05-10/tests/gt-pipe-output.R3E2
+ exit 1
FAIL pipe-output (exit status: 1)

The piece that fails is:

+ trap  PIPE
+ sleep 0.01
+ :
+ zgrep a
+ echo 0
+ cmd_status=0
+ test 1 -lt 0
+ test 1 -eq 0
+ fail=1

Likewise on macOS 11 and 12.

On Solaris 11 OmniOS, pipe-output fails as well, but here it's a different
piece that fails:

++ : '' PIPE
++ sleep 0.01
++ :
++ zdiff - b.gz
++ echo 1
+ cmd_status=1
+ test 1 -lt 1
+ test 141 -eq 1
+ fail=1

You can see the full logs at [1]. If you want to get write access to this CI
project, let me know; I can do that.

[1] https://github.com/gnu-gzip/ci-check/actions/runs/9034383029