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]