nntpsend claims to wait until innxmit is finished, doesn't really
Julien ÉLIE
julien at trigofacile.com
Fri Oct 23 18:08:31 UTC 2015
Hi Jonathan,
> The documentation for nntpsend claims that it waits until all of the
> child innxmit processes exit before it does, but it doesn't.
>
> The reason it does not is because it starts the innxmit processes,
> or more accurately the subshells that start the innxmit processes, in
> a while loop that is itself in a child process of the main shell,
> because of this line:
>
> cat ${INPUT} | while read SITE HOST SIZE_ARG FLAGS; do
>
> Since the while loop is in a pipe, it's executed in a child process.
> As a result, its child processes, i.e., the ones running innxmit,
> are notdirect children of the nntpsend shell script's process, so it
> doesn't wait for them.
>
> Note that this bug causes nntpsend to fail to work properly on
> systems that use systemd, because when nntpsend exits prematurely,
> systemd kills all of the processes it launched, including the innxmit
> processes.
Well, many thanks for your comments and the fix. Very much appreciated.
It will be included in the next release (INN 2.6.1).
Have a good week-end,
--
Julien ÉLIE
« Pour célébrer ce jour heureux, buvons un coup, buvons-en deux. »
(Aristophane)
More information about the inn-workers
mailing list