GNU bug report logs - #8074
Fix sparse-pipe test on 2.6.26 kernel

Previous Next

Package: coreutils;

Reported by: "Gilles Espinasse" <g.esp <at> free.fr>

Date: Fri, 18 Feb 2011 08:57:01 UTC

Severity: normal

Done: Jim Meyering <jim <at> meyering.net>

Bug is archived. No further changes may be made.

Full log


Message #8 received at 8074 <at> debbugs.gnu.org (full text, mbox):

From: Pádraig Brady <P <at> draigBrady.com>
To: Gilles Espinasse <g.esp <at> free.fr>
Cc: Jim Meyering <jim <at> meyering.net>, 8074 <at> debbugs.gnu.org
Subject: Re: bug#8074: Fix sparse-pipe test on 2.6.26 kernel
Date: Fri, 18 Feb 2011 10:54:36 +0000
On 18/02/11 08:48, Gilles Espinasse wrote:
> I compile the same code on different machines and
> that's made in a chroot a la LFS. With sparse-fiemap-test.patch, all tests
> are ok on three machines but randomly fail on the fourth (all x86 32-bits).
> The only difference at this stage between the different machines should be
> the running kernel (same glibc-2.11.3 is compiled before coreutils).
> This work on ubuntu 2.6.32-26-generic, 2.6.27.57 vanilia kernel, Centos-5.5
> 2.6.18-194.32.1.el5 but fail in debian v5 2.6.26-2-686
> 
> Tested as root with
> for i in {1..20}; do make -s check -C tests TESTS=cp/sparse-to-pipe
> 2>/dev/null;done | grep '1 test'
> show this result on the debian machine
> 1 of 1 test failed
> 1 of 1 test failed
> 1 test passed
> 1 test passed
> 1 of 1 test failed
> 1 of 1 test failed
> 1 of 1 test failed
> 1 of 1 test failed
> 1 test passed
> 1 test passed
> 1 of 1 test failed
> 1 test passed
> 1 test passed
> 1 of 1 test failed
> 1 of 1 test failed
> 1 of 1 test failed
> 1 test passed
> 1 test passed
> 1 of 1 test failed
> 1 of 1 test failed
> 
> FS is ext3
> failure is
> + require_sparse_support_
> + test 0 = 0
> + t=sparse.17085
> + dd bs=1 seek=128K of=sparse.17085
> ++ du -sk sparse.17085
> + set x 0 sparse.17085
> + kb_size=0
> + rm -f sparse.17085
> + test 0 -ge 128
> + mkfifo_or_skip_ pipe
> + test 1 = 1
> + mkfifo pipe
> + timeout 10 cat pipe
> + truncate -s1M sparse
> + cp sparse pipe
> + cmp sparse copy
> cmp: EOF on copy
> + fail=1
> + Exit 1
> 
> The fun is that if I try to strace the cmp, this change the cmp test to
> reliabily work
> 
> If I add a dd if=/dev/null of=pipe conv=notrunc,fdatasync, test reliabily
> work too.
> So I added that in attached patch.

Good testing!
Interesting to see that fdatasync flushes the pipe to disk.
However it might be more portable/robust to use `wait`
rather than that dd command?

cheers,
Pádraig.




This bug report was last modified 14 years and 153 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.