[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