[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Gnu-arch-users] [BUG] Something fishy in vfdbuf_write
From: |
Jeremy Shaw |
Subject: |
Re: [Gnu-arch-users] [BUG] Something fishy in vfdbuf_write |
Date: |
Tue, 27 Jul 2004 19:48:50 -0700 |
User-agent: |
Wanderlust/2.11.30 (Wonderwall) SEMI/1.14.6 (Maruoka) FLIM/1.14.6 (Marutamachi) APEL/10.6 Emacs/21.3 (i386-pc-linux-gnu) MULE/5.0 (SAKAKI) |
At Wed, 28 Jul 2004 03:26:47 +0100,
Andrew Suffield wrote:
>
> [1 <multipart/signed (7bit)>]
> [1.1 <text/plain; us-ascii (quoted-printable)>]
> This is based on a preliminary examination of a bug via IRC.
Here is how to recreate the bug for your own enjoyment:
(0) I am using this version of hackerlab:
address@hidden/hackerlab--devo--1.0--patch-92
(1) register a local archive on your machine via sftp (yes, I mean
sftp://localhost/...). This is because I have only been able to
replicate the bug via sftp AND with a fast connection -- for
example, the test never fails on a wireless connection, but does
over 100baseT, but fails almost everytime over loopback (the
fastest).
(2) find or create a patch-log with at least 5000 lines
(3) modify the attached script so that the line:
my @cmd = qw(tla cat-archive-log address@hidden/gimp--upstream--2.0.3--base-0);
points to that patch-log from (2).
now run the script. If tla exits normally, it prints GOOD. If tla
exits with non-zero, the script prints BAD and the return code.
modifying the script to run strace, we see this in the case of a 'BAD' run:
write(1, "s/script-fu/scripts/beveled-pattern-hrule.scm\n
plug-ins/script-fu/scripts/blend-anim.scm\n plug"..., 4096) = 4096
write(1, "ile.in\n plug-ins/script-fu/siod/regex.c\n
plug-ins/script-fu/siod/siod.h\n plug-ins/script-fu"..., 4096) = -1 EAGAIN
(Resource temporarily unavailable)
write(2, "/root/projects/debian/tla-1.2/src/hackerlab/vu/vfdbuf.c", 55) = -1
EAGAIN (Resource temporarily unavailable)
write(2, ":", 1) = -1 EAGAIN (Resource temporarily
unavailable)
write(2, "1679", 4) = -1 EAGAIN (Resource temporarily
unavailable)
write(2, ":", 1) = -1 EAGAIN (Resource temporarily
unavailable)
write(2, "botched invariant\n ", 22) = -1 EAGAIN (Resource temporarily
unavailable)
write(2, "( !bufs.vfd[fd].is_pipe || ( (((bufs.vfd[fd].flags & 0003) == 00) &&
(bufs.vfd[fd].fd_offset == (buf"..., 297) = -1 EAGAIN (Resource temporarily
unavailable)
write(2, "\n", 1) = -1 EAGAIN (Resource temporarily
unavailable)
write(2, "PANIC: ", 7) = -1 EAGAIN (Resource temporarily
unavailable)
write(2, "exiting on botched invariant", 28) = -1 EAGAIN (Resource temporarily
unavailable)
write(2, "\n", 1) = -1 EAGAIN (Resource temporarily
unavailable)
exit_group(2) = ?
Let me know if there is more useful information I could provide.
Jeremy Shaw.
ps. the perl script could have bugs too, I don't know perl and I
didn't write the script... But the botched invariant seems like a bad
thing no matter what the perl script is doing...
tla-hammer.pl
Description: Binary data