Tom Lane wrote:
> Alvaro Herrera <alvherre@commandprompt.com> writes:
>
>> Martijn van Oosterhout wrote:
>>
>>> The whole semantics of PIPEBUF should prevent garbling, as long as each
>>> write is a complete set of lines and no more than PIPEBUF bytes long.
>>> Have we determined the actual cause of the garbling?
>>>
>
>
>> No, that's the main problem -- but it has been reported to happen on
>> entries shorter than PIPE_BUF chars.
>>
>
> It's not entirely clear to me whether there's been proven cases of
> interpolation *into* a message shorter than PIPE_BUF (and remember
> you've got to count all the lines when determining the length).
> The message intruding into the other could certainly be shorter.
>
> If there have been such cases, then our theories about what's going on
> are all wet, or else there are some rather nasty bugs in some kernels'
> pipe handling. So it would be good to pin this down.
>
>
>
Right. But we don't split lines into PIPE_BUF sized chunks. And doing so
would make loadable logs possibly rather less pleasant. Ideally we
should be able to deal with this despite the PIPE_BUF restriction on
atomic writes.
cheers
andrew