This is an automated email from the ASF dual-hosted git repository. jojochuang pushed a commit to branch ozone-2.1 in repository https://gitbox.apache.org/repos/asf/ozone.git
commit b89d03c718c87a660b093f255c3fca89fcb4cd8b Author: Ivan Andika <[email protected]> AuthorDate: Fri Jun 26 11:21:37 2026 +0800 HDDS-15578. Prevent throwing InvalidStateTransitionException from updateContainerStateWithSequenceId (#10525) (cherry picked from commit 7543cfd53906d5f0f221d2e6257b48b71a46b9a5) Change-Id: Ib54404f292588b4c6ec5d1dd3c84aa0d6968a232 --- .../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 | 5 ++++- .../scm/container/IncrementalContainerReportHandler.java | 3 +-- .../hdds/scm/container/replication/ReplicationManager.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 +-- .../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 +-- 22 files changed, 32 insertions(+), 57 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 7f2030f6e74..214731f16d6 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 @@ -35,7 +35,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; @@ -106,7 +105,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. @@ -241,7 +240,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 fb349720d23..29bf4248911 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 @@ -29,7 +29,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 @@ -126,11 +125,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 or DELETED to CLOSED. This API was 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 d255bc9a672..5277e70c734 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 @@ -47,7 +47,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 0cebcb10ef2..800b24efe55 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 @@ -34,7 +34,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; @@ -227,7 +226,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 0194e65fe00..3cf93ee680b 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 @@ -29,7 +29,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 @@ -165,7 +164,7 @@ void addContainer(ContainerInfoProto containerInfo) @Replicate void updateContainerState(HddsProtos.ContainerID id, HddsProtos.LifeCycleEvent event) - 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 4b4578894a6..726a22da6a7 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 @@ -355,7 +355,7 @@ public boolean contains(ContainerID id) { @Override public void updateContainerState(final HddsProtos.ContainerID containerID, final LifeCycleEvent event) - throws IOException, InvalidStateTransitionException { + throws IOException { // TODO: Remove the protobuf conversion after fixing ContainerStateMap. final ContainerID id = ContainerID.getFromProtobuf(containerID); @@ -378,6 +378,9 @@ public void updateContainerState(final HddsProtos.ContainerID containerID, .accept(oldInfo); } } + } catch (InvalidStateTransitionException e) { + LOG.warn("Failed to updateContainerState for container {}, ignoring it.", + id, 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 247e3667d9e..6add893b025 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 @@ -29,7 +29,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; @@ -117,7 +116,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 33ab37a9387..813cc0d218a 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; @@ -735,7 +734,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/pipeline/PipelineManagerImpl.java b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/pipeline/PipelineManagerImpl.java index 45d85a1a3ae..9461eb8a3b1 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 @@ -61,7 +61,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 eed37f4fad9..2920e38dd1b 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 @@ -545,8 +545,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 dd5edf38193..43adc24f11f 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 @@ -59,7 +59,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; @@ -201,7 +200,7 @@ void testUpdateContainerState() throws Exception { @EnumSource(value = HddsProtos.LifeCycleState.class, names = {"DELETING", "DELETED"}) void testTransitionDeletingOrDeletedToClosedState(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 61001b9d38f..8f009ec59bc 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 @@ -72,7 +72,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/TestIncrementalContainerReportHandler.java b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/TestIncrementalContainerReportHandler.java index d9ecaba4935..58eb5be51c0 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 e956956e468..0a6f4e28786 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 @@ -44,7 +44,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; @@ -59,7 +58,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 1e6aa4e04bc..291a42176a4 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; @@ -131,8 +130,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 7e604774470..66574345ec5 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().updateContainerState( 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 90c67133ac5..6fc0049f36c 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 @@ -66,7 +66,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; @@ -239,7 +238,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 4794ecf1f30..f95c54f8a21 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 @@ -69,7 +69,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; @@ -1323,7 +1322,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]
