I've noticed that Jitsi sometimes doesn't shutdown cleanly - the normal shutdown blocks and the shutdown timeout eventually kills Jitsi with a 500 error code.
This happens if you have an XMPP account and run Jitsi without any network connection. This is because the normal shutdown thread gets blocked in ProtocolProviderServiceJabberImpl.shutdown(), waiting for the initialisation lock.
I've got a fix for this problem and have attached a patch of it. Please could you apply this to Jitsi?
I was able to diagnose this problem by adding extra logs to ShutdownTimeout, which caused the stack of all threads to be dumped to file before halt is called. I found this pretty useful - is it something that you would be interested in having in Jitsi too?
shutdown_hang.patch (1.07 KB)