This is an automated email from the ASF dual-hosted git repository.

weichiu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git


The following commit(s) were added to refs/heads/master by this push:
     new 7b8bf98  HDDS-5467. Handle potential InterruptedException in Ozone 
(#2440)
7b8bf98 is described below

commit 7b8bf983a1284b370f783f890cb7c06bbc717cc4
Author: Ke-Yi Sung <[email protected]>
AuthorDate: Wed Jul 21 08:27:48 2021 +0800

    HDDS-5467. Handle potential InterruptedException in Ozone (#2440)
---
 .../java/org/apache/hadoop/ozone/util/ShutdownHookManager.java     | 7 ++++++-
 .../org/apache/hadoop/ozone/container/stream/StreamingClient.java  | 1 +
 .../org/apache/hadoop/ozone/container/stream/StreamingServer.java  | 1 +
 .../main/java/org/apache/hadoop/hdds/server/http/HttpServer2.java  | 1 +
 .../main/java/org/apache/hadoop/hdds/scm/ha/HASecurityUtils.java   | 1 +
 .../java/org/apache/hadoop/hdds/scm/ha/SCMSnapshotProvider.java    | 1 +
 .../apache/hadoop/hdds/scm/server/SCMSecurityProtocolServer.java   | 1 +
 .../apache/hadoop/hdds/scm/server/upgrade/SCMUpgradeFinalizer.java | 2 ++
 .../org/apache/hadoop/hdds/scm/cli/SafeModeWaitSubcommand.java     | 3 ++-
 9 files changed, 16 insertions(+), 2 deletions(-)

diff --git 
a/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/util/ShutdownHookManager.java
 
b/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/util/ShutdownHookManager.java
index 05dc688..45f0638 100644
--- 
a/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/util/ShutdownHookManager.java
+++ 
b/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/util/ShutdownHookManager.java
@@ -35,6 +35,7 @@ import java.util.Comparator;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
+import java.util.concurrent.ExecutionException;
 import java.util.concurrent.Executors;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Future;
@@ -134,7 +135,11 @@ public final class ShutdownHookManager {
         future.cancel(true);
         LOG.warn("ShutdownHook '" + entry.getHook().getClass().
             getSimpleName() + "' timeout, " + ex.toString(), ex);
-      } catch (Throwable ex) {
+      } catch (InterruptedException ex) {
+        LOG.warn("ShutdownHook '" + entry.getHook().getClass().
+            getSimpleName() + "' failed, " + ex.toString(), ex);
+        Thread.currentThread().interrupt();
+      } catch (ExecutionException ex) {
         LOG.warn("ShutdownHook '" + entry.getHook().getClass().
             getSimpleName() + "' failed, " + ex.toString(), ex);
       }
diff --git 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/stream/StreamingClient.java
 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/stream/StreamingClient.java
index 21582d8..bf4536c 100644
--- 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/stream/StreamingClient.java
+++ 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/stream/StreamingClient.java
@@ -99,6 +99,7 @@ public class StreamingClient implements AutoCloseable {
             + dirstreamClientHandler.getCurrentFileName());
       }
     } catch (InterruptedException e) {
+      Thread.currentThread().interrupt();
       throw new StreamingException(e);
     }
   }
diff --git 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/stream/StreamingServer.java
 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/stream/StreamingServer.java
index 7f9ac98..be6f71e 100644
--- 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/stream/StreamingServer.java
+++ 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/stream/StreamingServer.java
@@ -94,6 +94,7 @@ public class StreamingServer implements AutoCloseable {
       port = socketAddress.getPort();
       LOG.info("Started streaming server on {}", port);
     } catch (InterruptedException ex) {
+      Thread.currentThread().interrupt();
       throw new StreamingException(ex);
     }
   }
diff --git 
a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/server/http/HttpServer2.java
 
b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/server/http/HttpServer2.java
index f293ffa..42235cb 100644
--- 
a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/server/http/HttpServer2.java
+++ 
b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/server/http/HttpServer2.java
@@ -1212,6 +1212,7 @@ public final class HttpServer2 implements FilterContainer 
{
     } catch (IOException e) {
       throw e;
     } catch (InterruptedException e) {
+      Thread.currentThread().interrupt();
       throw (IOException) new InterruptedIOException(
           "Interrupted while starting HTTP server").initCause(e);
     } catch (Exception e) {
diff --git 
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/HASecurityUtils.java
 
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/HASecurityUtils.java
index a314057..5023e93 100644
--- 
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/HASecurityUtils.java
+++ 
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/HASecurityUtils.java
@@ -219,6 +219,7 @@ public final class HASecurityUtils {
     } catch (InterruptedException | ExecutionException| IOException |
         CertificateException  e) {
       LOG.error("Error while fetching/storing SCM signed certificate.", e);
+      Thread.currentThread().interrupt();
       throw new RuntimeException(e);
     }
 
diff --git 
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/SCMSnapshotProvider.java
 
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/SCMSnapshotProvider.java
index bf8264e..ac6716c 100644
--- 
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/SCMSnapshotProvider.java
+++ 
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/SCMSnapshotProvider.java
@@ -118,6 +118,7 @@ public class SCMSnapshotProvider {
       downloadClient.download(targetFile.toPath()).get();
     } catch (ExecutionException | InterruptedException e) {
       LOG.error("Rocks DB checkpoint downloading failed", e);
+      Thread.currentThread().interrupt();
       throw new IOException(e);
     }
 
diff --git 
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMSecurityProtocolServer.java
 
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMSecurityProtocolServer.java
index 3392454..2b27861 100644
--- 
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMSecurityProtocolServer.java
+++ 
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMSecurityProtocolServer.java
@@ -364,6 +364,7 @@ public class SCMSecurityProtocolServer implements 
SCMSecurityProtocol {
       getGrpcUpdateServer().notifyCrlUpdate();
       return crlId;
     } catch (InterruptedException | ExecutionException e) {
+      Thread.currentThread().interrupt();
       throw new SCMException("Fail to revoke certs",
           SCMException.ResultCodes.FAILED_TO_REVOKE_CERTIFICATES);
     }
diff --git 
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/upgrade/SCMUpgradeFinalizer.java
 
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/upgrade/SCMUpgradeFinalizer.java
index aa2d0b8..152285c 100644
--- 
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/upgrade/SCMUpgradeFinalizer.java
+++ 
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/upgrade/SCMUpgradeFinalizer.java
@@ -117,6 +117,7 @@ public class SCMUpgradeFinalizer extends
           Thread.sleep(5000);
         } catch (InterruptedException e) {
           // Try again on next loop iteration.
+          Thread.currentThread().interrupt();
         }
       } else {
         LOG.info("Open pipeline found after SCM finalization");
@@ -154,6 +155,7 @@ public class SCMUpgradeFinalizer extends
           Thread.sleep(5000);
         }
       } catch (InterruptedException e) {
+        Thread.currentThread().interrupt();
         continue;
       }
     }
diff --git 
a/hadoop-hdds/tools/src/main/java/org/apache/hadoop/hdds/scm/cli/SafeModeWaitSubcommand.java
 
b/hadoop-hdds/tools/src/main/java/org/apache/hadoop/hdds/scm/cli/SafeModeWaitSubcommand.java
index 49a40a2..abaca08 100644
--- 
a/hadoop-hdds/tools/src/main/java/org/apache/hadoop/hdds/scm/cli/SafeModeWaitSubcommand.java
+++ 
b/hadoop-hdds/tools/src/main/java/org/apache/hadoop/hdds/scm/cli/SafeModeWaitSubcommand.java
@@ -78,12 +78,13 @@ public class SafeModeWaitSubcommand implements 
Callable<Void> {
             LOG.info("SCM is in safe mode. No more retries.");
           }
         } while (remainingTime > 0);
-      } catch (Exception ex) {
+      } catch (InterruptedException ex) {
         LOG.info(
             "SCM is not available (yet?). Error is {}. Will retry in 1 sec. "
                 + "Remaining time (sec): {}",
             ex.getMessage(), getRemainingTimeInSec());
         Thread.sleep(1000);
+        Thread.currentThread().interrupt();
       }
     }
     throw new TimeoutException(

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to