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

adoroszlai 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 2085ebeddb HDDS-9720. XceiverServerRatis.triggerPipelineClose throws 
NPE in test. (#5624)
2085ebeddb is described below

commit 2085ebeddb75def4a9ba4ce9ecf3c9d6b4d7584d
Author: Tsz-Wo Nicholas Sze <[email protected]>
AuthorDate: Sat Nov 18 02:30:49 2023 -0800

    HDDS-9720. XceiverServerRatis.triggerPipelineClose throws NPE in test. 
(#5624)
---
 .../common/transport/server/ratis/ContainerStateMachine.java | 12 +++++-------
 .../common/transport/server/ratis/XceiverServerRatis.java    | 10 ++++++----
 2 files changed, 11 insertions(+), 11 deletions(-)

diff --git 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/transport/server/ratis/ContainerStateMachine.java
 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/transport/server/ratis/ContainerStateMachine.java
index 354d203328..6a028d26c5 100644
--- 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/transport/server/ratis/ContainerStateMachine.java
+++ 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/transport/server/ratis/ContainerStateMachine.java
@@ -856,7 +856,7 @@ public class ContainerStateMachine extends BaseStateMachine 
{
 
   private CompletableFuture<ContainerCommandResponseProto> submitTask(
       ContainerCommandRequestProto request, DispatcherContext.Builder context,
-      Consumer<Exception> exceptionHandler) {
+      Consumer<Throwable> exceptionHandler) {
     final long containerId = request.getContainerID();
     final CheckedSupplier<ContainerCommandResponseProto, Exception> task
         = () -> {
@@ -928,9 +928,9 @@ public class ContainerStateMachine extends BaseStateMachine 
{
       }
       CompletableFuture<Message> applyTransactionFuture =
           new CompletableFuture<>();
-      final Consumer<Exception> exceptionHandler = e -> {
-        LOG.error("gid {} : ApplyTransaction failed. cmd {} logIndex "
-            + "{} exception {}", gid, requestProto.getCmdType(), index, e);
+      final Consumer<Throwable> exceptionHandler = e -> {
+        LOG.error(gid + ": failed to applyTransaction at logIndex " + index
+            + " for " + requestProto.getCmdType(), e);
         stateMachineHealthy.compareAndSet(true, false);
         metrics.incNumApplyTransactionsFails();
         applyTransactionFuture.completeExceptionally(e);
@@ -991,9 +991,7 @@ public class ContainerStateMachine extends BaseStateMachine 
{
         return applyTransactionFuture;
       }).whenComplete((r, t) -> {
         if (t != null) {
-          stateMachineHealthy.set(false);
-          LOG.error("gid {} : ApplyTransaction failed. cmd {} logIndex "
-              + "{} exception {}", gid, requestProto.getCmdType(), index, t);
+          exceptionHandler.accept(t);
         }
         applyTransactionSemaphore.release();
         metrics.recordApplyTransactionCompletionNs(
diff --git 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/transport/server/ratis/XceiverServerRatis.java
 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/transport/server/ratis/XceiverServerRatis.java
index 5c53eb6b95..47f2a54ce8 100644
--- 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/transport/server/ratis/XceiverServerRatis.java
+++ 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/transport/server/ratis/XceiverServerRatis.java
@@ -712,10 +712,12 @@ public final class XceiverServerRatis implements 
XceiverServerSpi {
         .setClosePipeline(closePipelineInfo)
         .setAction(PipelineAction.Action.CLOSE)
         .build();
-    context.addPipelineActionIfAbsent(action);
-    // wait for the next HB timeout or right away?
-    if (triggerHB) {
-      context.getParent().triggerHeartbeat();
+    if (context != null) {
+      context.addPipelineActionIfAbsent(action);
+      // wait for the next HB timeout or right away?
+      if (triggerHB) {
+        context.getParent().triggerHeartbeat();
+      }
     }
     LOG.error("pipeline Action {} on pipeline {}.Reason : {}",
             action.getAction(), pipelineID,


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

Reply via email to