diff --git a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/StorageContainerManager.java b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/StorageContainerManager.java index 2937ff40e14f..2ef7964813cb 100644 --- a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/StorageContainerManager.java +++ b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/StorageContainerManager.java @@ -582,6 +582,9 @@ public static StorageContainerManager createSCM(OzoneConfiguration conf) private void initializeSystemManagers(OzoneConfiguration conf, SCMConfigurator configurator) throws IOException { Clock clock = new MonotonicClock(ZoneOffset.UTC); + // Use SystemClock when data is persisted + // and used again after system restarts. + Clock systemClock = Clock.system(ZoneOffset.UTC); if (configurator.getNetworkTopology() != null) { clusterMap = configurator.getNetworkTopology(); @@ -669,7 +672,7 @@ private void initializeSystemManagers(OzoneConfiguration conf, eventQueue, scmContext, serviceManager, - clock + systemClock ); } diff --git a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/block/TestBlockManager.java b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/block/TestBlockManager.java index 908a21e162d0..d7557b7d8b6e 100644 --- a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/block/TestBlockManager.java +++ b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/block/TestBlockManager.java @@ -18,6 +18,7 @@ package org.apache.hadoop.hdds.scm.block; import java.io.IOException; +import java.time.Clock; import java.time.ZoneId; import java.nio.file.Path; import java.time.ZoneOffset; @@ -143,7 +144,7 @@ public void setUp(@TempDir Path tempDir) throws Exception { eventQueue, scmContext, serviceManager, - new MonotonicClock(ZoneOffset.UTC)); + Clock.system(ZoneOffset.UTC)); PipelineProvider mockRatisProvider = new MockRatisPipelineProvider(nodeManager, diff --git a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestHealthyPipelineSafeModeRule.java b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestHealthyPipelineSafeModeRule.java index 08b0122ee4ac..0b9dbdfbe7a7 100644 --- a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestHealthyPipelineSafeModeRule.java +++ b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestHealthyPipelineSafeModeRule.java @@ -19,6 +19,7 @@ package org.apache.hadoop.hdds.scm.safemode; import java.io.File; +import java.time.Clock; import java.time.ZoneOffset; import java.util.ArrayList; import java.util.List; @@ -44,7 +45,6 @@ import org.apache.hadoop.hdds.scm.pipeline.PipelineProvider; import org.apache.hadoop.hdds.scm.pipeline.PipelineManagerImpl; import org.apache.hadoop.hdds.server.events.EventQueue; -import org.apache.hadoop.ozone.common.MonotonicClock; import org.apache.ozone.test.GenericTestUtils; import org.junit.jupiter.api.Assertions; @@ -88,7 +88,7 @@ public void testHealthyPipelineSafeModeRuleWithNoPipelines() eventQueue, scmContext, serviceManager, - new MonotonicClock(ZoneOffset.UTC)); + Clock.system(ZoneOffset.UTC)); PipelineProvider mockRatisProvider = new MockRatisPipelineProvider(nodeManager, pipelineManager.getStateManager(), config); @@ -143,7 +143,7 @@ public void testHealthyPipelineSafeModeRuleWithPipelines() throws Exception { eventQueue, scmContext, serviceManager, - new MonotonicClock(ZoneOffset.UTC)); + Clock.system(ZoneOffset.UTC)); PipelineProvider mockRatisProvider = new MockRatisPipelineProvider(nodeManager, @@ -242,7 +242,7 @@ public void testHealthyPipelineSafeModeRuleWithMixedPipelines() eventQueue, scmContext, serviceManager, - new MonotonicClock(ZoneOffset.UTC)); + Clock.system(ZoneOffset.UTC)); PipelineProvider mockRatisProvider = new MockRatisPipelineProvider(nodeManager, diff --git a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestSCMSafeModeManager.java b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestSCMSafeModeManager.java index 77bd18faa5a9..20c1a788f898 100644 --- a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestSCMSafeModeManager.java +++ b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/safemode/TestSCMSafeModeManager.java @@ -20,6 +20,7 @@ import java.io.File; import java.io.IOException; import java.nio.file.Path; +import java.time.Clock; import java.time.ZoneOffset; import java.util.ArrayList; import java.util.Collections; @@ -55,7 +56,6 @@ import org.apache.hadoop.hdds.server.events.EventHandler; import org.apache.hadoop.hdds.server.events.EventPublisher; import org.apache.hadoop.hdds.server.events.EventQueue; -import org.apache.hadoop.ozone.common.MonotonicClock; import org.apache.ozone.test.GenericTestUtils; import org.junit.jupiter.api.AfterEach; @@ -254,7 +254,7 @@ public void testFailWithIncorrectValueForHealthyPipelinePercent() queue, scmContext, serviceManager, - new MonotonicClock(ZoneOffset.UTC)); + Clock.system(ZoneOffset.UTC)); scmSafeModeManager = new SCMSafeModeManager( conf, containers, null, pipelineManager, queue, serviceManager, scmContext); @@ -281,7 +281,7 @@ public void testFailWithIncorrectValueForOneReplicaPipelinePercent() queue, scmContext, serviceManager, - new MonotonicClock(ZoneOffset.UTC)); + Clock.system(ZoneOffset.UTC)); scmSafeModeManager = new SCMSafeModeManager( conf, containers, null, pipelineManager, queue, serviceManager, scmContext); @@ -307,7 +307,7 @@ public void testFailWithIncorrectValueForSafeModePercent() throws Exception { queue, scmContext, serviceManager, - new MonotonicClock(ZoneOffset.UTC)); + Clock.system(ZoneOffset.UTC)); scmSafeModeManager = new SCMSafeModeManager( conf, containers, null, pipelineManager, queue, serviceManager, scmContext); @@ -340,7 +340,7 @@ public void testSafeModeExitRuleWithPipelineAvailabilityCheck( queue, scmContext, serviceManager, - new MonotonicClock(ZoneOffset.UTC)); + Clock.system(ZoneOffset.UTC)); PipelineProvider mockRatisProvider = new MockRatisPipelineProvider(mockNodeManager, pipelineManager.getStateManager(), config); @@ -592,7 +592,7 @@ public void testSafeModePipelineExitRule() throws Exception { queue, scmContext, serviceManager, - new MonotonicClock(ZoneOffset.UTC)); + Clock.system(ZoneOffset.UTC)); PipelineProvider mockRatisProvider = new MockRatisPipelineProvider(nodeManager, @@ -657,7 +657,7 @@ public void testPipelinesNotCreatedUntilPreCheckPasses() queue, scmContext, serviceManager, - new MonotonicClock(ZoneOffset.UTC)); + Clock.system(ZoneOffset.UTC)); PipelineProvider mockRatisProvider = new MockRatisPipelineProvider(nodeManager,