This is an automated email from the ASF dual-hosted git repository.
ivandika3 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 7543cfd5390 HDDS-15578. Prevent throwing
InvalidStateTransitionException from updateContainerStateWithSequenceId (#10525)
7543cfd5390 is described below
commit 7543cfd53906d5f0f221d2e6257b48b71a46b9a5
Author: Ivan Andika <[email protected]>
AuthorDate: Fri Jun 26 11:21:37 2026 +0800
HDDS-15578. Prevent throwing InvalidStateTransitionException from
updateContainerStateWithSequenceId (#10525)
---
.../hdds/scm/container/AbstractContainerReportHandler.java | 5 ++---
.../hdds/scm/container/CloseContainerEventHandler.java | 3 +--
.../apache/hadoop/hdds/scm/container/ContainerManager.java | 4 +---
.../hadoop/hdds/scm/container/ContainerManagerImpl.java | 4 +---
.../hadoop/hdds/scm/container/ContainerReportHandler.java | 3 +--
.../hadoop/hdds/scm/container/ContainerStateManager.java | 3 +--
.../hdds/scm/container/ContainerStateManagerImpl.java | 8 ++++++--
.../scm/container/IncrementalContainerReportHandler.java | 3 +--
.../hdds/scm/container/replication/ReplicationManager.java | 3 +--
.../hdds/scm/ha/invoker/ContainerStateManagerInvoker.java | 3 +--
.../hadoop/hdds/scm/pipeline/PipelineManagerImpl.java | 14 ++++++--------
.../java/org/apache/hadoop/hdds/scm/HddsTestUtils.java | 3 +--
.../hdds/scm/container/TestCloseContainerEventHandler.java | 2 +-
.../hdds/scm/container/TestContainerManagerImpl.java | 3 +--
.../hdds/scm/container/TestContainerReportHandler.java | 3 +--
.../hdds/scm/container/TestContainerStateManager.java | 3 +--
.../container/TestIncrementalContainerReportHandler.java | 3 +--
.../replication/health/TestEmptyContainerHandler.java | 3 +--
.../container/TestContainerStateManagerIntegration.java | 7 ++-----
.../hadoop/hdds/scm/pipeline/TestNode2PipelineMap.java | 5 +----
.../apache/hadoop/hdds/scm/pipeline/TestPipelineClose.java | 4 +---
.../hadoop/hdds/scm/storage/TestContainerCommandsEC.java | 3 +--
.../java/org/apache/hadoop/ozone/om/TestScmSafeMode.java | 3 +--
.../hadoop/ozone/recon/api/TestContainerEndpoint.java | 3 +--
24 files changed, 36 insertions(+), 62 deletions(-)
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/AbstractContainerReportHandler.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/AbstractContainerReportHandler.java
index 00044f93253..daf821a8f43 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/AbstractContainerReportHandler.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/AbstractContainerReportHandler.java
@@ -36,7 +36,6 @@
import org.apache.hadoop.hdds.scm.ha.SCMContext;
import org.apache.hadoop.hdds.scm.node.NodeManager;
import org.apache.hadoop.hdds.server.events.EventPublisher;
-import
org.apache.hadoop.ozone.common.statemachine.InvalidStateTransitionException;
import org.apache.hadoop.ozone.protocol.commands.CommandForDatanode;
import org.apache.hadoop.ozone.protocol.commands.DeleteContainerCommand;
import org.apache.hadoop.ozone.protocol.commands.SCMCommand;
@@ -107,7 +106,7 @@ public String toString() {
protected void processContainerReplica(final DatanodeDetails datanodeDetails,
final ContainerInfo containerInfo,
final ContainerReplicaProto replicaProto, final EventPublisher
publisher, Object detailsForLogging)
- throws IOException, InvalidStateTransitionException {
+ throws IOException {
getLogger().debug("Processing replica {}", detailsForLogging);
// Synchronized block should be replaced by container lock,
// once we have introduced lock inside ContainerInfo.
@@ -242,7 +241,7 @@ private boolean updateContainerState(final DatanodeDetails
datanode,
final ContainerInfo container,
final ContainerReplicaProto replica,
final EventPublisher publisher,
- Object detailsForLogging) throws IOException,
InvalidStateTransitionException {
+ Object detailsForLogging) throws IOException {
final ContainerID containerId = container.containerID();
boolean replicaIsEmpty = replica.hasIsEmpty() && replica.getIsEmpty();
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/CloseContainerEventHandler.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/CloseContainerEventHandler.java
index e21bcc7df22..c4b18701cd7 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/CloseContainerEventHandler.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/CloseContainerEventHandler.java
@@ -33,7 +33,6 @@
import org.apache.hadoop.hdds.scm.server.StorageContainerManager;
import org.apache.hadoop.hdds.server.events.EventHandler;
import org.apache.hadoop.hdds.server.events.EventPublisher;
-import
org.apache.hadoop.ozone.common.statemachine.InvalidStateTransitionException;
import org.apache.hadoop.ozone.lease.LeaseAlreadyExistException;
import org.apache.hadoop.ozone.lease.LeaseManager;
import org.apache.hadoop.ozone.protocol.commands.CloseContainerCommand;
@@ -135,7 +134,7 @@ public void onMessage(ContainerID containerID,
EventPublisher publisher) {
} catch (NotLeaderException nle) {
LOG.warn("Skip sending close container command,"
+ " since current SCM is not leader.", nle);
- } catch (IOException | InvalidStateTransitionException ex) {
+ } catch (IOException ex) {
LOG.error("Failed to close the container {}.", containerID, ex);
}
}
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/ContainerManager.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/ContainerManager.java
index bc7f05c70ec..ae71eb2c5d4 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/ContainerManager.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/ContainerManager.java
@@ -30,7 +30,6 @@
import org.apache.hadoop.hdds.protocol.proto.HddsProtos.ReplicationType;
import org.apache.hadoop.hdds.scm.pipeline.Pipeline;
import org.apache.hadoop.hdds.utils.db.Table;
-import
org.apache.hadoop.ozone.common.statemachine.InvalidStateTransitionException;
/**
* ContainerManager is responsible for keeping track of all Containers and
@@ -163,11 +162,10 @@ ContainerInfo allocateContainer(ReplicationConfig
replicationConfig,
* @param containerID - Container ID
* @param event - container life cycle event
* @throws IOException
- * @throws InvalidStateTransitionException
*/
void updateContainerState(ContainerID containerID,
LifeCycleEvent event)
- throws IOException, InvalidStateTransitionException;
+ throws IOException;
/**
* Bypasses the container state machine to change a container's state from
DELETING/DELETED to CLOSED/QUASI_CLOSED.
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/ContainerManagerImpl.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/ContainerManagerImpl.java
index 337f5b849ac..c1f65063383 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/ContainerManagerImpl.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/ContainerManagerImpl.java
@@ -44,7 +44,6 @@
import org.apache.hadoop.hdds.scm.pipeline.Pipeline;
import org.apache.hadoop.hdds.scm.pipeline.PipelineManager;
import org.apache.hadoop.hdds.utils.db.Table;
-import
org.apache.hadoop.ozone.common.statemachine.InvalidStateTransitionException;
import org.apache.hadoop.util.Time;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -275,8 +274,7 @@ private ContainerInfo allocateContainer(final Pipeline
pipeline,
@Override
public void updateContainerState(final ContainerID cid,
- final LifeCycleEvent event)
- throws IOException, InvalidStateTransitionException {
+ final LifeCycleEvent event) throws
IOException {
HddsProtos.ContainerID protoId = cid.getProtobuf();
lock.lock();
try {
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/ContainerReportHandler.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/ContainerReportHandler.java
index b1dc0abff66..fe3438b1ea7 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/ContainerReportHandler.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/ContainerReportHandler.java
@@ -35,7 +35,6 @@
import org.apache.hadoop.hdds.scm.server.SCMDatanodeProtocolServer;
import org.apache.hadoop.hdds.server.events.EventHandler;
import org.apache.hadoop.hdds.server.events.EventPublisher;
-import
org.apache.hadoop.ozone.common.statemachine.InvalidStateTransitionException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -234,7 +233,7 @@ private void processSingleReplica(final DatanodeDetails
datanodeDetails,
}
try {
processContainerReplica(datanodeDetails, container, replicaProto,
publisher, detailsForLogging);
- } catch (IOException | InvalidStateTransitionException e) {
+ } catch (IOException e) {
getLogger().error("Failed to process {}", detailsForLogging, e);
}
}
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/ContainerStateManager.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/ContainerStateManager.java
index caf7d79105f..b5c7c78c5ee 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/ContainerStateManager.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/ContainerStateManager.java
@@ -31,7 +31,6 @@
import org.apache.hadoop.hdds.scm.metadata.Replicate;
import org.apache.hadoop.hdds.scm.pipeline.PipelineID;
import org.apache.hadoop.hdds.utils.db.Table;
-import
org.apache.hadoop.ozone.common.statemachine.InvalidStateTransitionException;
/**
* A ContainerStateManager is responsible for keeping track of all the
@@ -179,7 +178,7 @@ void addContainer(ContainerInfoProto containerInfo)
void updateContainerStateWithSequenceId(HddsProtos.ContainerID id,
HddsProtos.LifeCycleEvent event,
Long sequenceId)
- throws IOException, InvalidStateTransitionException;
+ throws IOException;
/**
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/ContainerStateManagerImpl.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/ContainerStateManagerImpl.java
index 03a55e27501..a5aa726efdd 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/ContainerStateManagerImpl.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/ContainerStateManagerImpl.java
@@ -389,7 +389,7 @@ public boolean contains(ContainerID id) {
public void updateContainerStateWithSequenceId(final HddsProtos.ContainerID
containerID,
final LifeCycleEvent event,
final Long sequenceId)
- throws IOException, InvalidStateTransitionException {
+ throws IOException {
// TODO: Remove the protobuf conversion after fixing ContainerStateMap.
final ContainerID id = ContainerID.getFromProtobuf(containerID);
@@ -404,10 +404,11 @@ public void updateContainerStateWithSequenceId(final
HddsProtos.ContainerID cont
LOG.warn("Container sequenceId is {} greater than the leader
container sequenceId {}",
containerInfo.getSequenceId(), sequenceId);
}
-
+
final LifeCycleState oldState = containerInfo.getState();
final LifeCycleState newState = stateMachine.getNextState(
oldState, event);
+
if (newState.getNumber() > oldState.getNumber()) {
ExecutionUtil.create(() -> {
containers.updateState(id, oldState, newState);
@@ -423,6 +424,9 @@ public void updateContainerStateWithSequenceId(final
HddsProtos.ContainerID cont
.accept(containerInfo);
}
}
+ } catch (InvalidStateTransitionException e) {
+ LOG.warn("Failed to updateContainerStateWithSequenceId for container {}
at sequenceId {}, ignoring it.",
+ id, sequenceId, e);
}
}
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/IncrementalContainerReportHandler.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/IncrementalContainerReportHandler.java
index 06358c352cc..1dcc58a7903 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/IncrementalContainerReportHandler.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/IncrementalContainerReportHandler.java
@@ -30,7 +30,6 @@
import
org.apache.hadoop.hdds.scm.server.SCMDatanodeHeartbeatDispatcher.IncrementalContainerReportFromDatanode;
import org.apache.hadoop.hdds.server.events.EventHandler;
import org.apache.hadoop.hdds.server.events.EventPublisher;
-import
org.apache.hadoop.ozone.common.statemachine.InvalidStateTransitionException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -122,7 +121,7 @@ protected void
processICR(IncrementalContainerReportFromDatanode report,
} else {
getLogger().info("Failed to process {}", detailsForLogging, ex);
}
- } catch (IOException | InvalidStateTransitionException e) {
+ } catch (IOException e) {
getLogger().info("Failed to process {}", detailsForLogging, e);
}
}
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/replication/ReplicationManager.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/replication/ReplicationManager.java
index 8cd8444d1d2..16fc7357737 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/replication/ReplicationManager.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/replication/ReplicationManager.java
@@ -85,7 +85,6 @@
import org.apache.hadoop.hdds.scm.server.StorageContainerManager;
import org.apache.hadoop.hdds.server.events.EventPublisher;
import org.apache.hadoop.hdds.utils.HddsServerUtil;
-import
org.apache.hadoop.ozone.common.statemachine.InvalidStateTransitionException;
import org.apache.hadoop.ozone.container.replication.ReplicationServer;
import org.apache.hadoop.ozone.protocol.commands.CloseContainerCommand;
import org.apache.hadoop.ozone.protocol.commands.DeleteContainerCommand;
@@ -737,7 +736,7 @@ public void updateContainerState(ContainerID containerID,
HddsProtos.LifeCycleEvent event) {
try {
containerManager.updateContainerState(containerID, event);
- } catch (IOException | InvalidStateTransitionException e) {
+ } catch (IOException e) {
LOG.error("Failed to update the state of container {}, update Event {}",
containerID, event, e);
}
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/invoker/ContainerStateManagerInvoker.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/invoker/ContainerStateManagerInvoker.java
index 394dfd3376b..7b1124dda7d 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/invoker/ContainerStateManagerInvoker.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/invoker/ContainerStateManagerInvoker.java
@@ -35,7 +35,6 @@
import org.apache.hadoop.hdds.scm.ha.SCMRatisServer;
import org.apache.hadoop.hdds.scm.pipeline.PipelineID;
import org.apache.hadoop.hdds.utils.db.Table;
-import
org.apache.hadoop.ozone.common.statemachine.InvalidStateTransitionException;
import org.apache.ratis.protocol.Message;
/** Code generated for {@link ContainerStateManager}. Do not modify. */
@@ -181,7 +180,7 @@ public void updateContainerReplica(ContainerReplica arg0) {
@Override
public void updateContainerStateWithSequenceId(HddsProtos.ContainerID
arg0, LifeCycleEvent arg1, Long arg2) throws
- IOException, InvalidStateTransitionException {
+ IOException {
final Object[] args = {arg0, arg1, arg2};
invoker.invokeReplicateDirect(ReplicateMethod.updateContainerStateWithSequenceId,
args);
}
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/pipeline/PipelineManagerImpl.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/pipeline/PipelineManagerImpl.java
index bdb286292d1..fc8229c677d 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/pipeline/PipelineManagerImpl.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/pipeline/PipelineManagerImpl.java
@@ -63,7 +63,6 @@
import org.apache.hadoop.hdds.utils.db.Table;
import org.apache.hadoop.metrics2.util.MBeans;
import org.apache.hadoop.ozone.ClientVersion;
-import
org.apache.hadoop.ozone.common.statemachine.InvalidStateTransitionException;
import org.apache.hadoop.util.Time;
import org.apache.ratis.protocol.exceptions.NotLeaderException;
import org.slf4j.Logger;
@@ -478,14 +477,13 @@ private void closeContainersForPipeline(final PipelineID
pipelineId)
for (ContainerID containerID : containerIDs) {
if (containerManager.getContainer(containerID).getState()
== HddsProtos.LifeCycleState.OPEN) {
- try {
- containerManager.updateContainerState(containerID,
- HddsProtos.LifeCycleEvent.FINALIZE);
- } catch (InvalidStateTransitionException ex) {
- throw new IOException(ex);
- }
+ containerManager.updateContainerState(containerID,
+ HddsProtos.LifeCycleEvent.FINALIZE);
+ }
+ if (containerManager.getContainer(containerID).getState() ==
+ HddsProtos.LifeCycleState.CLOSING) {
+ eventPublisher.fireEvent(SCMEvents.CLOSE_CONTAINER, containerID);
}
- eventPublisher.fireEvent(SCMEvents.CLOSE_CONTAINER, containerID);
LOG.info("Container {} closed for pipeline={}", containerID, pipelineId);
}
}
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/HddsTestUtils.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/HddsTestUtils.java
index 0195bf80d1f..148ac62509a 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/HddsTestUtils.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/HddsTestUtils.java
@@ -546,8 +546,7 @@ public static void closeContainer(ContainerManager
containerManager,
* @throws IOException
*/
public static void quasiCloseContainer(ContainerManager containerManager,
- ContainerID id) throws IOException,
- InvalidStateTransitionException, TimeoutException {
+ ContainerID id) throws IOException {
containerManager.updateContainerState(
id, HddsProtos.LifeCycleEvent.FINALIZE);
containerManager.updateContainerState(
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/TestCloseContainerEventHandler.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/TestCloseContainerEventHandler.java
index 2222446ef8f..3fbe0cba726 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/TestCloseContainerEventHandler.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/TestCloseContainerEventHandler.java
@@ -180,7 +180,7 @@ public void testCloseContainerEventECContainer()
private void closeContainerForValidContainer(ReplicationConfig repConfig,
int nodeCount, boolean forceClose)
- throws IOException, InvalidStateTransitionException, TimeoutException {
+ throws IOException {
final Pipeline pipeline = createPipeline(repConfig, nodeCount);
final ContainerInfo container =
createContainer(repConfig, pipeline.getId());
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/TestContainerManagerImpl.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/TestContainerManagerImpl.java
index c64db89290a..a437a17ae7e 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/TestContainerManagerImpl.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/TestContainerManagerImpl.java
@@ -58,7 +58,6 @@
import org.apache.hadoop.hdds.scm.pipeline.PipelineManager;
import org.apache.hadoop.hdds.utils.db.DBStore;
import org.apache.hadoop.hdds.utils.db.DBStoreBuilder;
-import
org.apache.hadoop.ozone.common.statemachine.InvalidStateTransitionException;
import org.apache.hadoop.ozone.container.common.SCMTestUtils;
import org.apache.ozone.test.GenericTestUtils;
import org.junit.jupiter.api.AfterEach;
@@ -213,7 +212,7 @@ void testUpdateContainerState() throws Exception {
@EnumSource(value = HddsProtos.LifeCycleState.class,
names = {"DELETING", "DELETED"})
void testTransitionDeletingOrDeletedToTargetState(HddsProtos.LifeCycleState
desiredState)
- throws IOException, InvalidStateTransitionException {
+ throws IOException {
// Allocate OPEN Ratis and Ec containers, and do a series of state changes
to transition them to DELETING / DELETED
final ContainerInfo container = containerManager.allocateContainer(
RatisReplicationConfig.getInstance(
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/TestContainerReportHandler.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/TestContainerReportHandler.java
index e79c446c87f..b07f0da7851 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/TestContainerReportHandler.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/TestContainerReportHandler.java
@@ -73,7 +73,6 @@
import org.apache.hadoop.hdds.server.events.EventPublisher;
import org.apache.hadoop.hdds.utils.db.DBStore;
import org.apache.hadoop.hdds.utils.db.DBStoreBuilder;
-import
org.apache.hadoop.ozone.common.statemachine.InvalidStateTransitionException;
import org.apache.hadoop.ozone.container.common.SCMTestUtils;
import org.apache.hadoop.ozone.protocol.commands.CommandForDatanode;
import org.junit.jupiter.api.AfterEach;
@@ -100,7 +99,7 @@ public class TestContainerReportHandler {
private PipelineManager pipelineManager;
@BeforeEach
- void setup() throws IOException, InvalidStateTransitionException {
+ void setup() throws IOException {
final OzoneConfiguration conf = SCMTestUtils.getConf(testDir);
nodeManager = new MockNodeManager(true, 10);
containerManager = mock(ContainerManager.class);
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/TestContainerStateManager.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/TestContainerStateManager.java
index 1d54e404c6b..8d0938586bd 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/TestContainerStateManager.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/TestContainerStateManager.java
@@ -66,7 +66,6 @@
import org.apache.hadoop.hdds.server.events.EventPublisher;
import org.apache.hadoop.hdds.utils.db.DBStore;
import org.apache.hadoop.hdds.utils.db.DBStoreBuilder;
-import
org.apache.hadoop.ozone.common.statemachine.InvalidStateTransitionException;
import org.apache.hadoop.ozone.protocol.commands.CommandForDatanode;
import org.apache.hadoop.ozone.protocol.commands.DeleteContainerCommand;
import org.junit.jupiter.api.AfterEach;
@@ -94,7 +93,7 @@ public class TestContainerStateManager {
private EventPublisher publisher;
@BeforeEach
- public void init() throws IOException, TimeoutException,
InvalidStateTransitionException {
+ public void init() throws IOException, TimeoutException {
OzoneConfiguration conf = new OzoneConfiguration();
SCMHAManager scmhaManager = SCMHAManagerStub.getInstance(true);
conf.set(HddsConfigKeys.OZONE_METADATA_DIRS, testDir.getAbsolutePath());
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/TestIncrementalContainerReportHandler.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/TestIncrementalContainerReportHandler.java
index 8e87cc5d88d..1afbb656043 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/TestIncrementalContainerReportHandler.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/TestIncrementalContainerReportHandler.java
@@ -86,7 +86,6 @@
import org.apache.hadoop.hdds.upgrade.HDDSLayoutVersionManager;
import org.apache.hadoop.hdds.utils.db.DBStore;
import org.apache.hadoop.hdds.utils.db.DBStoreBuilder;
-import
org.apache.hadoop.ozone.common.statemachine.InvalidStateTransitionException;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -110,7 +109,7 @@ public class TestIncrementalContainerReportHandler {
private DBStore dbStore;
@BeforeEach
- public void setup() throws IOException, InvalidStateTransitionException,
+ public void setup() throws IOException,
TimeoutException {
final OzoneConfiguration conf = new OzoneConfiguration();
Path scmPath = Paths.get(testDir.getPath(), "scm-meta");
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/health/TestEmptyContainerHandler.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/health/TestEmptyContainerHandler.java
index 0bb3772f0bd..e7e5b14a5f4 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/health/TestEmptyContainerHandler.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/health/TestEmptyContainerHandler.java
@@ -47,7 +47,6 @@
import org.apache.hadoop.hdds.scm.container.replication.ContainerCheckRequest;
import org.apache.hadoop.hdds.scm.container.replication.ReplicationManager;
import org.apache.hadoop.hdds.scm.container.replication.ReplicationTestUtil;
-import
org.apache.hadoop.ozone.common.statemachine.InvalidStateTransitionException;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -63,7 +62,7 @@ public class TestEmptyContainerHandler {
@BeforeEach
public void setup()
- throws IOException, InvalidStateTransitionException, TimeoutException {
+ throws IOException, TimeoutException {
ecReplicationConfig = new ECReplicationConfig(3, 2);
ratisReplicationConfig = RatisReplicationConfig.getInstance(
HddsProtos.ReplicationFactor.THREE);
diff --git
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/container/TestContainerStateManagerIntegration.java
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/container/TestContainerStateManagerIntegration.java
index 7d67358e785..f448a3a1336 100644
---
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/container/TestContainerStateManagerIntegration.java
+++
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/container/TestContainerStateManagerIntegration.java
@@ -47,7 +47,6 @@
import org.apache.hadoop.hdds.scm.server.StorageContainerManager;
import org.apache.hadoop.ozone.MiniOzoneCluster;
import org.apache.hadoop.ozone.OzoneConsts;
-import
org.apache.hadoop.ozone.common.statemachine.InvalidStateTransitionException;
import org.apache.hadoop.ozone.container.common.SCMTestUtils;
import
org.apache.hadoop.security.authentication.client.AuthenticationException;
import org.apache.ozone.test.tag.Flaky;
@@ -145,8 +144,7 @@ public void testAllocateContainerWithDifferentOwner()
throws IOException {
@Test
public void testContainerStateManagerRestart() throws IOException,
- TimeoutException, InterruptedException, AuthenticationException,
- InvalidStateTransitionException {
+ TimeoutException, InterruptedException, AuthenticationException {
// Allocate 5 containers in ALLOCATED state and 5 in CREATING state
for (int i = 0; i < 10; i++) {
@@ -271,8 +269,7 @@ void assertContainerCount(LifeCycleState state, int
expected) {
}
@Test
- public void testUpdateContainerState() throws IOException,
- InvalidStateTransitionException {
+ public void testUpdateContainerState() throws IOException {
assertContainerCount(LifeCycleState.OPEN, 0);
// Allocate container1 and update its state from
diff --git
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/pipeline/TestNode2PipelineMap.java
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/pipeline/TestNode2PipelineMap.java
index d5441276c8b..f9f120f11ef 100644
---
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/pipeline/TestNode2PipelineMap.java
+++
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/pipeline/TestNode2PipelineMap.java
@@ -23,7 +23,6 @@
import java.io.IOException;
import java.util.List;
import java.util.Set;
-import java.util.concurrent.TimeoutException;
import org.apache.hadoop.hdds.client.RatisReplicationConfig;
import org.apache.hadoop.hdds.protocol.DatanodeDetails;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
@@ -33,7 +32,6 @@
import org.apache.hadoop.hdds.scm.container.ContainerManager;
import
org.apache.hadoop.hdds.scm.container.common.helpers.ContainerWithPipeline;
import org.apache.hadoop.hdds.scm.server.StorageContainerManager;
-import
org.apache.hadoop.ozone.common.statemachine.InvalidStateTransitionException;
import org.apache.ozone.test.NonHATests;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -62,8 +60,7 @@ public void init() throws Exception {
}
@Test
- public void testPipelineMap() throws IOException,
- InvalidStateTransitionException, TimeoutException {
+ public void testPipelineMap() throws IOException {
Set<ContainerID> set = pipelineManager
.getContainersInPipeline(ratisContainer.getPipeline().getId());
diff --git
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/pipeline/TestPipelineClose.java
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/pipeline/TestPipelineClose.java
index 71666a48c23..c45808504ef 100644
---
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/pipeline/TestPipelineClose.java
+++
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/pipeline/TestPipelineClose.java
@@ -58,7 +58,6 @@
import org.apache.hadoop.hdds.server.events.EventQueue;
import org.apache.hadoop.ozone.MiniOzoneCluster;
import org.apache.hadoop.ozone.OzoneConfigKeys;
-import
org.apache.hadoop.ozone.common.statemachine.InvalidStateTransitionException;
import
org.apache.hadoop.ozone.container.common.statemachine.DatanodeStateMachine;
import
org.apache.hadoop.ozone.container.common.statemachine.commandhandler.ClosePipelineCommandHandler;
import
org.apache.hadoop.ozone.container.common.transport.server.ratis.XceiverServerRatis;
@@ -123,8 +122,7 @@ public void shutdown() {
}
@Test
- public void testPipelineCloseWithClosedContainer() throws IOException,
- InvalidStateTransitionException, TimeoutException {
+ public void testPipelineCloseWithClosedContainer() throws IOException {
Set<ContainerID> set = pipelineManager
.getContainersInPipeline(ratisContainer.getPipeline().getId());
diff --git
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/storage/TestContainerCommandsEC.java
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/storage/TestContainerCommandsEC.java
index 7ce4f9319db..2370c475a7e 100644
---
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/storage/TestContainerCommandsEC.java
+++
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/hdds/scm/storage/TestContainerCommandsEC.java
@@ -99,7 +99,6 @@
import org.apache.hadoop.ozone.client.io.KeyOutputStream;
import org.apache.hadoop.ozone.client.io.OzoneOutputStream;
import org.apache.hadoop.ozone.common.ChunkBuffer;
-import
org.apache.hadoop.ozone.common.statemachine.InvalidStateTransitionException;
import org.apache.hadoop.ozone.common.utils.BufferUtils;
import org.apache.hadoop.ozone.container.ContainerTestHelper;
import
org.apache.hadoop.ozone.container.common.statemachine.DatanodeConfiguration;
@@ -934,7 +933,7 @@ public void
testECReconstructionCoordinatorShouldCleanupContainersOnFailure()
}
private void closeContainer(long conID)
- throws IOException, InvalidStateTransitionException {
+ throws IOException {
//Close the container first.
scm.getContainerManager().getContainerStateManager().updateContainerStateWithSequenceId(
HddsProtos.ContainerID.newBuilder().setId(conID).build(),
diff --git
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestScmSafeMode.java
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestScmSafeMode.java
index 00089c1cc26..79a096f2dea 100644
---
a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestScmSafeMode.java
+++
b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestScmSafeMode.java
@@ -67,7 +67,6 @@
import org.apache.hadoop.ozone.client.OzoneBucket;
import org.apache.hadoop.ozone.client.OzoneClient;
import org.apache.hadoop.ozone.client.OzoneVolume;
-import
org.apache.hadoop.ozone.common.statemachine.InvalidStateTransitionException;
import org.apache.ozone.test.GenericTestUtils;
import org.apache.ozone.test.GenericTestUtils.LogCapturer;
import org.apache.ozone.test.tag.Unhealthy;
@@ -252,7 +251,7 @@ void testSCMSafeMode() throws Exception {
HddsProtos.LifeCycleEvent.FINALIZE);
mapping.updateContainerState(c.containerID(),
LifeCycleEvent.CLOSE);
- } catch (IOException | InvalidStateTransitionException e) {
+ } catch (IOException e) {
LOG.info("Failed to change state of open containers.", e);
}
});
diff --git
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/api/TestContainerEndpoint.java
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/api/TestContainerEndpoint.java
index bae9ecbeba3..9855d0c37bc 100644
---
a/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/api/TestContainerEndpoint.java
+++
b/hadoop-ozone/recon/src/test/java/org/apache/hadoop/ozone/recon/api/TestContainerEndpoint.java
@@ -75,7 +75,6 @@
import org.apache.hadoop.hdds.scm.server.OzoneStorageContainerManager;
import org.apache.hadoop.hdds.utils.db.RDBBatchOperation;
import org.apache.hadoop.hdds.utils.db.Table;
-import
org.apache.hadoop.ozone.common.statemachine.InvalidStateTransitionException;
import org.apache.hadoop.ozone.om.OMMetadataManager;
import org.apache.hadoop.ozone.om.helpers.BucketLayout;
import org.apache.hadoop.ozone.om.helpers.OmBucketInfo;
@@ -1331,7 +1330,7 @@ public void testGetSCMDeletedContainersPrevKeyParam()
throws Exception {
}
private void updateContainerStateToDeleted(long containerId)
- throws IOException, InvalidStateTransitionException, TimeoutException {
+ throws IOException {
reconContainerManager.updateContainerState(ContainerID.valueOf(containerId),
HddsProtos.LifeCycleEvent.FINALIZE);
reconContainerManager.updateContainerState(ContainerID.valueOf(containerId),
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]