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();
     }
 
 }