summaryrefslogtreecommitdiffstats
path: root/wsd
diff options
context:
space:
mode:
authorAshod Nakashian <ashod.nakashian@collabora.co.uk>2021-10-03 11:01:49 -0400
committerAshod Nakashian <Ashod@users.noreply.github.com>2021-10-06 12:28:06 -0400
commit31913d56c2e062e2962fbce7ab2f69d84fb05014 (patch)
tree5548d993626763dcd58eb14e077d26380b19ec42 /wsd
parentwsd: log discovery.xml response at trace level (diff)
downloadonline-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.cpp4
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;
}