Comment 64 for bug 73536

Revision history for this message
In , Tolf Tolfsen (tolf) wrote :

(In reply to Karl Tomlinson (:karlt) from comment #48)

> (In reply to James Graham [:jgraham] from comment #45)
>
> > Marionette has a method to invoke shutdown, but sending the
> > response races with closing the marionette connection, so it
> > isn't reliable. Signalling the process with SIGTERM would be
> > the obvious solution, except for this bug. So we either need a
> > way to ensure that the marionette response is sent before the
> > corresponding socket is closed, or a fix here.
>
> What kind of response are you expecting from SIGTERM that you
> would not get from a marionette shutdown?

As I understand it, handling SIGTERM would ensure a graceful
shutdown allowing leak logs to be generated before the process
exits.

The problem with the Marionette shutdown command (Marionette:Quit)
is that the TCP socket is not guaranteed to be flushed before
calling Services.startup.quit causes the process to end. If there
was a way through the nsIServerSocket XPCOM interface to set
SO_LINGER or similar this would block process termination, but the
Marionette issue here is essentially irrelevant to the context of
this bug.