Re: [exim] Exim 4.88(9): failed to read pipe from transport

Top Page
Delete this message
Reply to this message
Author: Kurt Jaeger
Date:  
To: exim-users
Subject: Re: [exim] Exim 4.88(9): failed to read pipe from transport
Hi!

Jeremy wrote:
> On 22/06/17 05:22, Kurt Jaeger wrote:
> > What stops us to read/write in chunks smaller than 512 bytes from/to
> > that pipe ?
>
> Posix specifies that writes of under some specific size (defined by the
> implementation and available as a C #define for compilation time) are
> atomic - meaning that a write of up to that size won't get get split
> by an intervening write into the same pipe.


So we have two cases: The read and the write case ?

I have a write case problem right now 8-} I'm really surprised
I don't have the read case problem described in bug 2130, but
that's what I have 8-}

> The Exim coding assumes that the pipe reader can and will get the
> entire result record from the transport process in one read (ie
> both write and read behaviour is assumed).


I have not digged into all details, so I'll assume this:

If I modify src/deliver.c:rmt_dlv_checked_write() to write
in 512 byte chunks, that would lead to me having a read case problem.

And then I'd have to try to find a fix for par_read_pipe(). Tough.

-- 
pi@???            +49 171 3101372                         3 years to go !