[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: |
Wed, 28 Jul 2004 22:29:58 -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 Tue, 27 Jul 2004 20:33:59 -0700,
Jeremy Shaw wrote:
>
> [1 <text/plain; US-ASCII (7bit)>]
> Good news!
>
> Attached is a very crude patch that seems to make tla work much more
> reliably for us[1]. The patch should be fairly self-explanatory.
Now that I am awake a bit more, let me take a moment to explain. It
seems that when write() returns -1, causing vfdbuf_write() to return
-1, the buffers/file pointers are somehow left in a bad state.
The patch I sent, attempts to retry the write immediately, if *errn is
EAGAIN or EINTR. Doing this makes the symptoms go away, but does not
actually solve the problem. For example, if write () fails for some
reason other than EAGAIN or EINTR, then things will still probably be
screwed up. Plus, I don't think this function is supposed to retry
anyway.
So, I don't think this patch is actually going about *solving* the
problem, it just provides a temporary work around for us, and strongly
confirms that there is something fishy going on when write() returns
-1.
Jeremy Shaw.