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