GNU bug report logs -
#8074
Fix sparse-pipe test on 2.6.26 kernel
Previous Next
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
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your message dated Fri, 18 Feb 2011 13:54:22 +0100
with message-id <87ipwho64h.fsf <at> rho.meyering.net>
and subject line Re: bug#8074: Fix sparse-pipe test on 2.6.26 kernel
has caused the GNU bug report #8074,
regarding Fix sparse-pipe test on 2.6.26 kernel
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)
--
8074: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8074
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
[Message part 3 (text/plain, inline)]
I send 2 messages to bug-coreutils <at> gnu.org in last 2 weeks but that never
reach the list.
I don't know why as this had work in the past and I receive message from
that same address and was able to reply. Isn't the antispam too good? So I
am a bit forced to try with a direct coreutils message.
Anyway, here is the issue. 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.
Gilles
[Fix-unreliable-sparse-to-pipe-test-on-cmp-on-debian-2.6.26.patch (application/octet-stream, attachment)]
[Message part 5 (message/rfc822, inline)]
Gilles Espinasse wrote:
> ----- Original Message -----
> 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>
> Sent: Friday, February 18, 2011 11:54 AM
> Subject: bug#8074: Fix sparse-pipe test on 2.6.26 kernel
>
>
> ...
>> >
>> > 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.
>>
> wait work fine
> Find v2 attached
Thanks to both of you.
That was just a buggy (racy) test, independent of kernel
or distro, so I've adjusted comments accordingly:
From e6067bcb040f110238bd7cbf9f3781f2e149e0c0 Mon Sep 17 00:00:00 2001
From: Gilles Espinasse <g.esp <at> free.fr>
Date: Fri, 18 Feb 2011 13:52:21 +0100
Subject: [PATCH] tests: correct racy sparse-to-pipe test
* tests/cp/sparse-to-pipe: Wait for backgrounded "cat" to complete
before comparing the results.
---
tests/cp/sparse-to-pipe | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/tests/cp/sparse-to-pipe b/tests/cp/sparse-to-pipe
index 4d39458..9bbaafa 100755
--- a/tests/cp/sparse-to-pipe
+++ b/tests/cp/sparse-to-pipe
@@ -25,7 +25,11 @@ mkfifo_or_skip_ pipe
timeout 10 cat pipe > copy &
truncate -s1M sparse || framework_failure_
cp sparse pipe || fail=1
+
+# Ensure that the cat has completed before comparing.
+wait
+
cmp sparse copy || fail=1
Exit $fail
--
1.7.4.1.16.g759e8
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.