Subject: bug#45772: [core-updates] Non-deterministic GNU awk test failure

From: Maxim Cournoyer <[email-masked]>
Date: Thu, 28 Jan 2021 23:57:13 -0500

Maxim Cournoyer <[email-masked]> writes:

> Seen trying to rebuild the world on core-updates, with gawk-5.1.0:
>
> for i in _* ; \
> do  \
>         if [ "$i" != "_*" ]; then \
>         echo ============== $i ============= ; \
>         base=`echo $i | sed 's/^_//'` ; \
>         if [ -r ${base}.ok ]; then \
>         diff -c ${base}.ok $i ; \
>         else \
>         diff -c "."/${base}.ok  $i ; \
>         fi ; \
>         fi ; \
> done 
> ============== _sigpipe1 =============
> *** sigpipe1.ok Wed Aug 28 18:43:58 2019
> --- _sigpipe1   Sun Jan 10 19:08:15 2021
> ***************
> *** 1,3 ****
>   system
>   pipe to command
> ! pipe from command
> --- 1,4 ----
>   system
>   pipe to command
> ! gawk: sigpipe1.awk:7: fatal: print to "yes | true" failed: Broken pipe
> ! EXIT CODE: 2
>
> Re-running later
>
> On a second attempt the same test passed.
>
> Maxim

I just encountered another failure:

--8<---------------cut here---------------start------------->8---
============================================================================
Testsuite summary for GNU findutils 4.8.0
============================================================================
# TOTAL: 254
# PASS:  228
# SKIP:  26
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 0
============================================================================
make[5]: Leaving directory '/tmp/guix-build-findutils-4.8.0.drv-0/findutils-4.8.0/gnulib-tests'
make[4]: Leaving directory '/tmp/guix-build-findutils-4.8.0.drv-0/findutils-4.8.0/gnulib-tests'
make[3]: Leaving directory '/tmp/guix-build-findutils-4.8.0.drv-0/findutils-4.8.0/gnulib-tests'
make[2]: Leaving directory '/tmp/guix-build-findutils-4.8.0.drv-0/findutils-4.8.0/gnulib-tests'
make[1]: Leaving directory '/tmp/guix-build-findutils-4.8.0.drv-0/findutils-4.8.0/gnulib-tests'
make[1]: Entering directory '/tmp/guix-build-findutils-4.8.0.drv-0/findutils-4.8.0'
make  check-TESTS
make[2]: Entering directory '/tmp/guix-build-findutils-4.8.0.drv-0/findutils-4.8.0'
make[3]: Entering directory '/tmp/guix-build-findutils-4.8.0.drv-0/findutils-4.8.0'
many-dir-entries-vs-OOM.sh: skipped test: expensive: disabled by default
SKIP: tests/find/many-dir-entries-vs-OOM.sh
PASS: tests/find/depth-unreadable-dir.sh
PASS: tests/find/debug-missing-arg.sh
PASS: tests/find/name-lbracket-literal.sh
PASS: tests/find/printf_inode.sh
PASS: tests/find/printf_escape_c.sh
PASS: tests/find/refuse-noop.sh
PASS: tests/xargs/verbose-quote.sh
PASS: tests/find/printf_escapechars.sh
PASS: tests/misc/help-version.sh
PASS: tests/find/used.sh
./time.ok _time differ: char 26, line 1
make[3]: [Makefile:5077: time] Error 1 (ignored)
make[3]: Leaving directory '/tmp/guix-build-gawk-5.1.0.drv-0/gawk-5.1.0/test'
PASS: tests/find/exec-plus-last-file.sh
PASS: tests/xargs/conflicting_opts.sh
PASS: tests/find/execdir-fd-leak.sh
make[3]: Entering directory '/tmp/guix-build-gawk-5.1.0.drv-0/gawk-5.1.0/test'
1 TESTS FAILED
make[3]: *** [Makefile:5145: pass-fail] Error 1
make[3]: Leaving directory '/tmp/guix-build-gawk-5.1.0.drv-0/gawk-5.1.0/test'
make[3]: Entering directory '/tmp/guix-build-gawk-5.1.0.drv-0/gawk-5.1.0/test'
for i in _* ; \
do  \
        if [ "$i" != "_*" ]; then \
        echo ============== $i ============= ; \
        base=`echo $i | sed 's/^_//'` ; \
        if [ -r ${base}.ok ]; then \
        diff -c ${base}.ok $i ; \
        else \
        diff -c "."/${base}.ok  $i ; \
        fi ; \
        fi ; \
done 
============== _time =============
*** time.ok     Thu Dec 14 17:53:45 2017
--- _time       Fri Jan 29 04:47:01 2021
***************
*** 1,3 ****
! gettimeofday - systime = 0
  sleep(1.3) = 0
  gettimeofday - systime = 0
--- 1,3 ----
! gettimeofday - systime = 1
  sleep(1.3) = 0
  gettimeofday - systime = 0
make[3]: *** [Makefile:5154: diffout] Error 1
make[3]: Leaving directory '/tmp/guix-build-gawk-5.1.0.drv-0/gawk-5.1.0/test'
make[2]: *** [Makefile:2034: check] Error 1
make[2]: Leaving directory '/tmp/guix-build-gawk-5.1.0.drv-0/gawk-5.1.0/test'
make[1]: *** [Makefile:747: check-recursive] Error 1
make[1]: Leaving directory '/tmp/guix-build-gawk-5.1.0.drv-0/gawk-5.1.0'
make: *** [Makefile:1047: check] Error 2

Test suite failed, dumping logs.
error: in phase 'check': uncaught exception:
%exception #<&invoke-error program: "make" arguments: ("check" "-j"
"24") exit-status: 2 term-signal: #f stop-signal: #f>
--8<---------------cut here---------------end--------------->8---