diff options
author | Ashod Nakashian <ashod.nakashian@collabora.co.uk> | 2021-10-03 11:01:49 -0400 |
---|---|---|
committer | Ashod Nakashian <Ashod@users.noreply.github.com> | 2021-10-06 12:28:06 -0400 |
commit | 31913d56c2e062e2962fbce7ab2f69d84fb05014 (patch) | |
tree | 5548d993626763dcd58eb14e077d26380b19ec42 /wsd | |
parent | wsd: log discovery.xml response at trace level (diff) | |
download | online-31913d56c2e062e2962fbce7ab2f69d84fb05014.tar.gz online-31913d56c2e062e2962fbce7ab2f69d84fb05014.zip |
wsd: avoid misbehaving library cleanup
We cleanup all the relevant objects and instances
before exiting the wsd process, however some libraries
may still misbehave and deadlock during this final
cleanup stage. Notably, Poco has been observed to
deadlock during cleaning up the SSL context static
instance (used for the singleton) by waiting on
its internal mutex indefinitely.
Here we exit forcefully after cleaning up.
Change-Id: I76621c1de7f9a4ff918624b3019b9869c08787c2
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
(cherry picked from commit f776d87cf595bab084e53202777251a38e482147)
Diffstat (limited to 'wsd')
-rw-r--r-- | wsd/LOOLWSD.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/wsd/LOOLWSD.cpp b/wsd/LOOLWSD.cpp index 1795c76ecc..d8157d2e77 100644 --- a/wsd/LOOLWSD.cpp +++ b/wsd/LOOLWSD.cpp @@ -4429,6 +4429,10 @@ int LOOLWSD::innerMain() JailUtil::cleanupJails(ChildRoot); #endif // !MOBILEAPP + // At least on centos7, Poco deadlocks while + // cleaning up its SSL context singleton. + Util::forcedExit(EX_OK); + return EX_OK; } |