On Mon, Sep 5, 2011 at 22:08, Paul Eggert <[email protected]> wrote:
> OK, thanks, I think we've gotten past the openat issues. > The remaining issues in that test case are not something > that we can easily fix for AIX 7.1. It's an unusual torture > test that you won't typically run across in real life, so > let's take a quick look at the other failing tests. > > I've created another tarball at > <http://cs.ucla.edu/%7Eeggert/tar-1.26-experimental.tar.gz> > dated 2011-09-06 05:01 UTC; please give it a try. If our > past experience is a guide, this should fail test 38 (scarce > file descriptors), test 57 (incremental dump when the > parent directory is unreadable), and test 97 > (storing sparse files > 8G). Test 57 is another torture test > and I think I know why it fails in AIX (fstatat doesn't work > and there's no good workaround if you can't read the parent > directory). But I'm not sure why test 97 should fail so let's > see what the problem is. > > Assuming my guess about test failures above is correct, > if you could put the following into a shell script FOO > (with 'tar' and 'genfile' replaced by absolute paths) > and then run "truss -f -o tr sh FOO", we might be able > to figure it out. > > #!/bin/sh > genfile --length 1000 --file begin > genfile --length 1000 --file end > genfile --sparse --file sparsefile --block-size 512 8G A || AT_SKIP_TEST > tar -c -f archive --sparse begin sparsefile end || exit 1 > echo separator > > tar tfv archive > echo separator > mkdir directory > tar Cxf directory archive > genfile --stat=name,size sparsefile > cmp sparsefile directory/sparsefile > Interesting - mebbe you can haz cheezbuger ... $ ./configure && gmake check ## ------------- ## ## Test results. ## ## ------------- ## ERROR: 115 tests were run, 2 failed unexpectedly. 8 tests were skipped. 38: scarce file descriptors FAILED (extrac11.at:26) 57: incremental dump when the parent directory is unreadable FAILED ( listed03.at:25) * 97: storing sparse files > 8G ok * However - let's try the experiment anyway. $ vi FOO && cat FOO #!/bin/sh TOP=/lppdir/build/phs-gtar/tar-1.26-experimental TAR=$TOP/src/tar GNF=$TOP/tests/genfile $GNF --length 1000 --file begin $GNF --length 1000 --file end $GNF --sparse --file sparsefile --block-size 512 8G A || AT_SKIP_TEST $TAR -c -f archive --sparse begin sparsefile end || exit 1 echo separator $TAR tfv archive echo separator mkdir directory $TAR Cxf directory archive $GNF --stat=name,size sparsefile cmp sparsefile directory/sparsefile $ truss -f -o FOO.truss sh FOO ^C at 30 minutes into run Looking at FOO.truss (530M+ at the time I stopped the test) - it looks to me like it got stuck in a loop. The sparsefile was generated in nothing flat - but tar didn't visibly do anything with it. The attached file is the top 10240 lines of the truss output (even compressed the original truss.gz was over 2.5M). So I'm baffled why the gmake test says it passed - and this one required a mercy killing. -- # include <stddisclaimer.h> /* Kevin Brott <[email protected]> */
FOO.truss.short.gz
Description: GNU Zip compressed data
