You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@omid.apache.org by yo...@apache.org on 2019/01/29 13:58:10 UTC
[incubator-omid] 04/04: [OMID-125] Fix deadlock when lease manager
panics
This is an automated email from the ASF dual-hosted git repository.
yonigo pushed a commit to branch 1.0.1
in repository https://gitbox.apache.org/repos/asf/incubator-omid.git
commit 36313d117ee9d17996bbcddf7a646ef41f1fbce2
Author: Yonatan Gottesman <yo...@gmail.com>
AuthorDate: Tue Jan 29 15:51:29 2019 +0200
[OMID-125] Fix deadlock when lease manager panics
---
.../src/main/java/org/apache/omid/tso/SystemExitPanicker.java | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/tso-server/src/main/java/org/apache/omid/tso/SystemExitPanicker.java b/tso-server/src/main/java/org/apache/omid/tso/SystemExitPanicker.java
index 908d86a..4892699 100644
--- a/tso-server/src/main/java/org/apache/omid/tso/SystemExitPanicker.java
+++ b/tso-server/src/main/java/org/apache/omid/tso/SystemExitPanicker.java
@@ -32,7 +32,16 @@ public class SystemExitPanicker implements Panicker {
@Override
public void panic(String reason, Throwable cause) {
LOG.error(reason, cause);
- System.exit(-1);
+ // Execute the shutdown sequence from a different thread to avoid deadlocks during the shutdown hooks
+ Runnable shutdown = new Runnable() {
+ @Override
+ public void run() {
+ System.exit(-1);
+ }
+ };
+ Thread panicThread = new Thread(shutdown, "SystemExitPanicker Thread");
+ panicThread.setDaemon(true);
+ panicThread.start();
}
}