فهرست منبع

HDDS-1389. Fix testSCMChillModeRestrictedOp. (#696)

Nanda kumar 6 سال پیش
والد
کامیت
5750bb94ed
1فایلهای تغییر یافته به همراه18 افزوده شده و 9 حذف شده
  1. 18 9
      hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/chillmode/ChillModeHandler.java

+ 18 - 9
hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/chillmode/ChillModeHandler.java

@@ -88,16 +88,25 @@ public class ChillModeHandler implements EventHandler<ChillModeStatus> {
   @Override
   public void onMessage(ChillModeStatus chillModeStatus,
       EventPublisher publisher) {
-    try {
-      isInChillMode.set(chillModeStatus.getChillModeStatus());
-      scmClientProtocolServer.setChillModeStatus(isInChillMode.get());
-      scmBlockManager.setChillModeStatus(isInChillMode.get());
-      Thread.sleep(waitTime);
-    } catch (InterruptedException e) {
-      Thread.currentThread().interrupt();
-    } finally {
-      replicationManager.start();
+
+    isInChillMode.set(chillModeStatus.getChillModeStatus());
+    scmClientProtocolServer.setChillModeStatus(isInChillMode.get());
+    scmBlockManager.setChillModeStatus(isInChillMode.get());
+
+    if (!isInChillMode.get()) {
+      final Thread chillModeExitThread = new Thread(() -> {
+        try {
+          Thread.sleep(waitTime);
+        } catch (InterruptedException e) {
+          Thread.currentThread().interrupt();
+        }
+        replicationManager.start();
+      });
+
+      chillModeExitThread.setDaemon(true);
+      chillModeExitThread.start();
     }
+
   }
 
   public boolean getChillModeStatus() {