Created attachment 8626516 bug336193.patch Summary:
* nsProfileLock is already rigged for handling signals and is already terminating (fatally) so it is only a small change to make it clean, this is preferable to a GTK-specific implementation. * A clean quit should be performed for SIGINT and SIGTERM, but not SIGQUIT as it is not intended to be clean. * nsAppStartup::Quit calls nsIAppShell::Exit asynchronously which does most of the work so it doesn't block the signal handler. * raise() needs to be called at some point after calling Quit(). * To avoid SessionStore attempting to restore a crashed session, SessionFile needs to be closed properly, complete a final write, notify CrashMonitor with "sessionstore-final-state-write-complete" which then needs to write a checkpoint to a file asynchronously. This appears to happen before the observer notification "profile-change-teardown", even if it takes a long time, however documentation suggests the later notification "profile-before-change" is more appropriate. This patch avoids SessionStore problems with SIGINT/SIGTERM by calling Quit(eForceQuit) in the nsProfileLock signal handler and observing "profile-before-change" for later raising the signal. As usual, if termination takes too long a second SIGINT/SIGTERM can be sent which causes immediate termination via the default handler and most systems have a timeout that will also eventually kill the process. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/73536 Title: MASTER Firefox crashes on instant X server shutdown To manage notifications about this bug go to: https://bugs.launchpad.net/firefox/+bug/73536/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs