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 00044f932533..daf821a8f434 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 e21bcc7df22e..c4b18701cd7f 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 bc7f05c70ec9..ae71eb2c5d43 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 337f5b849ac3..c1f65063383e 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 b1dc0abff667..fe3438b1ea70 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 caf7d79105fc..b5c7c78c5ee2 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 03a55e275015..a5aa726efdd0 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 06358c352cca..1dcc58a7903b 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 8cd8444d1d2f..16fc73577377 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 394dfd3376b1..7b1124dda7d8 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 bdb286292d10..fc8229c677d1 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 0195bf80d1f0..148ac62509a6 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 2222446ef8f2..3fbe0cba726f 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 c64db89290aa..a437a17ae7ec 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 e79c446c87f8..b07f0da78512 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 1d54e404c6b3..8d0938586bd0 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 8e87cc5d88d9..1afbb656043a 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 0bb3772f0bdb..e7e5b14a5f4f 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 7d67358e7856..f448a3a13361 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 d5441276c8b0..f9f120f11efb 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 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 71666a48c23b..c45808504eff 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 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 7ce4f9319db2..2370c475a7ee 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 00089c1cc269..79a096f2dea2 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 bae9ecbeba32..9855d0c37bc0 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),