[PATCH] ctdb-common: Avoid race between fd and signal events (bug 13895)

Martin Schwenke martin at meltin.net
Fri Apr 12 07:14:37 UTC 2019


Discussed offline. Already has my RB+ and pushed...

peace & happiness,
martin

On 12 April 2019 5:12:57 pm Amitay Isaacs via samba-technical 
<samba-technical at lists.samba.org> wrote:

> Hi,
>
> In run_proc, there was an implicit assumption that when a process exits,
> fd event (pipe between parent and child) would be processed first and
> signal event (SIGCHLD for the child) would be processed later.
>
> However, that is not the case.  SIGCHLD can be received asynchronously
> any time even when the pipe data has not fully been read.  This causes
> run_proc to miss some of the output from child process in tests.
>
> When SIGCHLD is being processed, if the pipe between parent and child is
> still open, then do an explict read from the pipe to ensure we read any
> data still in the pipe before closing the pipe.
>
> Please review and push.
>
> Amitay.






More information about the samba-technical mailing list