Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 31 May 1999 10:24:55 -0700 (PDT)
From:      Matthew Dillon <dillon@apollo.backplane.com>
To:        Kevin Day <toasty@home.dragondata.com>
Cc:        hackers@FreeBSD.ORG
Subject:   Re: Possible race in pipe device driver, esp on multi-cpu machines.
Message-ID:  <199905311724.KAA76020@apollo.backplane.com>
References:   <199905310829.DAA10969@home.dragondata.com>

next in thread | previous in thread | raw e-mail | index | archive | help
:While I really doubt that this is related, I discovered today that I'm able
:to repeatably lock up my -current machine with:
:
:find /home -print | afio -T 3k -G 6 -Z -z -v -o - | tee /scratch/backup.afio >/dev/rsa0
:
:It runs for about 5 minutes, then hangs completely. Removing the tee and
:writing to either of them doesn't cause a hang. Running two afio's with run
:going to the file and one going to tape doesn't cause a hang.
:
:When it locks up, it's doing it pretty solidly. (no ddb, no keyboard echo,
:etc).
:
:I haven't ruled out hardware issues yet though, but it looks slightly pipe
:related.
:
:Kevin

    Alan and I are working on it.  We are testing a fix for pipe_read() now
    and I'm working on one for pipe_write().  The fixes basically involve
    holding the pipe's lock throughout all calculations and I/O ops except 
    when the code needs to explicitly tsleep() on a pipe-empty or pipe-full
    condition.

    The race conditions in the pipe code can lead to a crash in the case
    where you have multiple writers or multiple readers accessing the same
    pipe, but should only lead to corruption in certain cases where one reader
    and one writer exist.  It may or may not be related to your problem.

						-Matt



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199905311724.KAA76020>