gnu-arch-users
[Top][All Lists]
Advanced

[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...

Attachment: tla-hammer.pl
Description: Binary data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]