Comment 24 for bug 600941

Revision history for this message
nutznboltz (nutznboltz-deactivatedaccount) wrote :

Regrettably start-stop-daemon is a C program that resulted from translating a Perl script and it shows. There are far too many global varibles in start-stop-daemon.c and although there are some nice blocks of comments there are far to few comments that explain the intent behind variable names such as "schedule" (the string "schedule" appears in many contexts.) The manual page for start-stop-daemon strongly suggests that unless you use the "--retry" option the start-stop-daemon program may return before the process it sent a signal to actually calls exit() and terminates, however it doesn't actually state this in plain English.

The obtuseness of start-stop-daemon is most likely the reason that the "fixed" version of the script includes a dubious comment indicating that sometimes the pid file has not been removed. I can easily see why someone would not understand that he left the --retry option missing. This bug also causes failures when the script is given the "restart" option; the nrpe daemon will shutdown but not start up again.

Did I mention that since applying the update our nrpe servers started crashing over and over? Repairing this is why I am doing this work.

I have been working on remediating the fix. You can see my current work in this PPA.
https://launchpad.net/~nutznboltz/+archive/nrpe-unbreak-lp-600941