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]