Subject: Re: bug#12891: test-suite AIX 6.1 non-root xlC compiler

From: Michael Felt <[email-masked]>
Date: Tue, 20 Nov 2012 21:31:50 +0100

root@x104:[/data/prj/gnu/
coreutils/coreutils-8.20]cd tests
root@x104:[/data/prj/gnu/coreutils/coreutils-8.20/tests]truss -f -o /tmp/tr
m>
cd .. && make check TESTS=tests/tail-2/F-vs-missing.sh SUBDIRS=.
make[1]: Entering directory `/data/prj/gnu/coreutils/coreutils-8.20'
  GEN    public-submodule-commit
make  check-recursive
make[2]: Entering directory `/data/prj/gnu/coreutils/coreutils-8.20'
Making check in .
make[3]: Entering directory `/data/prj/gnu/coreutils/coreutils-8.20'
make  check-TESTS check-local
make[4]: Entering directory `/data/prj/gnu/coreutils/coreutils-8.20'
make[5]: Entering directory `/data/prj/gnu/coreutils/coreutils-8.20'
PASS: tests/tail-2/F-vs-missing.sh
=============
1 test passed
=============
make[5]: Leaving directory `/data/prj/gnu/coreutils/coreutils-8.20'
  GEN    check-README
  GEN    check-duplicate-no-install
  GEN    sc-avoid-builtin
  GEN    sc-avoid-io
  GEN    sc-avoid-non-zero
  GEN    sc-avoid-path
  GEN    sc-avoid-timezone
  GEN    sc-avoid-zeroes
  GEN    sc-exponent-grouping
  GEN    sc-lower-case-var
  GEN    sc-use-small-caps-NUL
  GEN    check-texinfo
make[4]: Leaving directory `/data/prj/gnu/coreutils/coreutils-8.20'
make[3]: Leaving directory `/data/prj/gnu/coreutils/coreutils-8.20'
make[2]: Leaving directory `/data/prj/gnu/coreutils/coreutils-8.20'
make[1]: Leaving directory `/data/prj/gnu/coreutils/coreutils-8.20'
root@x104:[/data/prj/gnu/coreutils/coreutils-8.20/tests]

So, for directory ./tests it passes; from . it does not :)
=========
root@x104:[/data/prj/gnu/coreutils/coreutils-8.20/tests]cd ..
root@x104:[/data/prj/gnu/coreutils/coreutils-8.20]truss -f -o /tmp/tr make
check TESTS=tail-2/F-vs-missing.sh
  GEN    public-submodule-commit
make  check-recursive
make[1]: Entering directory `/data/prj/gnu/coreutils/coreutils-8.20'
Making check in po
make[2]: Entering directory `/data/prj/gnu/coreutils/coreutils-8.20/po'
make[2]: Leaving directory `/data/prj/gnu/coreutils/coreutils-8.20/po'
Making check in .
make[2]: Entering directory `/data/prj/gnu/coreutils/coreutils-8.20'
make  check-TESTS check-local
make[3]: Entering directory `/data/prj/gnu/coreutils/coreutils-8.20'
make[4]: Entering directory `/data/prj/gnu/coreutils/coreutils-8.20'
cat: tail-2/F-vs-missing.log: No such file or directory
================================================
   GNU coreutils 8.20: ./tests/test-suite.log
================================================

1 of 1 test failed.

.. contents:: :depth: 2

======================================
1 of 1 test failed
See ./tests/test-suite.log
Please report to [email-masked]
======================================
make[4]: *** [tests/test-suite.log] Error 1
make[4]: Leaving directory `/data/prj/gnu/coreutils/coreutils-8.20'
make[3]: *** [check-TESTS] Error 2
make[3]: Leaving directory `/data/prj/gnu/coreutils/coreutils-8.20'
make[2]: *** [check-am] Error 2
make[2]: Leaving directory `/data/prj/gnu/coreutils/coreutils-8.20'
make[1]: *** [check-recursive] Error 1
make[1]: Leaving directory `/data/prj/gnu/coreutils/coreutils-8.20'
make: *** [check] Error 2
root@x104:[/data/prj/gnu/coreutils/coreutils-8.20]

Suggestions?

On Thu, Nov 15, 2012 at 6:39 PM, Paul Eggert <[email-masked]> wrote:

> There are a lot of failures there, though none seem to
> be all that serious for real-world use.  Probably the best
> thing to do is to go through them one by one.  The first
> failure is in tests/tail-2/F-vs-missing.sh, and the log
> says:
>
> + rm -rf /data/prj/gnu/coreutils/coreutils-8.20/gt-F-vs-missing.sh.f7EB
> rm: cannot remove
> '/data/prj/gnu/coreutils/coreutils-8.20/gt-F-vs-missing.sh.f7EB': File
> exists
>
> This indicates that coreutils 'rm -rf' somehow missed some
> files under that directory, and then tried to remove the
> directory without removing the files, or perhaps the kernel
> didn't remove the files, or something like that.
>
> Can you please 'truss' the test and see what system calls
> were executed near the point of failure?  One way to do that
> would be something like this:
>
>    cd tests
>    truss -f -o /tmp/tr make check TESTS=tail-2/F-vs-missing.sh
>
> and then look near the end of /tmp/tr.
>