diff --git a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/ozoneimpl/ContainerMetadataScanner.java b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/ozoneimpl/ContainerMetadataScanner.java index 46aaf73a12dd..3eb1f9743a74 100644 --- a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/ozoneimpl/ContainerMetadataScanner.java +++ b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/ozoneimpl/ContainerMetadataScanner.java @@ -94,10 +94,11 @@ void runIteration() { metrics.getNumScanIterations(), metrics.getNumContainersScanned(), metrics.getNumUnHealthyContainers()); - // ensure to delay next metadata scan with respect to user config. - if (interval < metadataScanInterval) { + long elapsedMillis = TimeUnit.NANOSECONDS.toMillis(interval); + long remainingSleep = metadataScanInterval - elapsedMillis; + if (remainingSleep > 0) { try { - Thread.sleep(metadataScanInterval - interval); + Thread.sleep(remainingSleep); } catch (InterruptedException e) { LOG.info("Background ContainerMetadataScanner interrupted." + " Going to exit");