OK, I'm an idiot.
That fix is not the correct fix at all - I mean, the functionality
doesn't hurt, but killing the catch-all logger is never the right thing,
because you never know what might still be writing to it.
The catch-all logger should be allowed to exit on its own, always.
And the problem is that it just won't do that, because it has a
supervisor (which won't die until the logger dies) that has a fd
open to the fifo, so s6-log never gets EOF.
... even when there's no more work to do, those two morons keep each
other alive.
The correct fix is to add a "close your descriptors as soon as you're
told to exit" switch to s6-supervise.
Sigh. If something so simple is so hard to get right, I don't want to
touch anything complicated, *ever*.
--
Laurent
Received on Thu Jun 25 2015 - 14:26:11 UTC