You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ozone.apache.org by iv...@apache.org on 2026/10/13 03:22:07 UTC

(ozone) branch master updated: HDDS-16513. Fix intermittent failure in testGetFileStatusUsesSingleOmRpc (#11364)

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 547522d9cec HDDS-16513. Fix intermittent failure in testGetFileStatusUsesSingleOmRpc (#11364)
547522d9cec is described below

commit 547522d9cecd5c753802142d7767099e44757ed4
Author: Andrey Yarovoy <11...@users.noreply.github.com>
AuthorDate: Mon Oct 12 23:22:00 2026 -0400

    HDDS-16513. Fix intermittent failure in testGetFileStatusUsesSingleOmRpc (#11364)
---
 .../hadoop/ozone/om/TrashOzoneFileSystem.java      |  2 +-
 .../hadoop/ozone/om/TestTrashOzoneFileSystem.java  | 31 ++++++++++++++++++++++
 2 files changed, 32 insertions(+), 1 deletion(-)

diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/TrashOzoneFileSystem.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/TrashOzoneFileSystem.java
index 3ecdd999f1f..3577865b1d7 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/TrashOzoneFileSystem.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/TrashOzoneFileSystem.java
@@ -265,7 +265,7 @@ public boolean mkdirs(Path path,
 
   @Override
   public FileStatus getFileStatus(Path path) throws IOException {
-    ozoneManager.getMetrics().incNumGetFileStatus();
+    ozoneManager.getMetrics().incNumTrashGetFileStatus();
     OmKeyArgs keyArgs = constructOmKeyArgs(path);
     OzoneFileStatus ofs = ozoneManager.getKeyManager().getFileStatus(keyArgs);
     FileStatus fileStatus = convertToFileStatus(ofs);
diff --git a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/TestTrashOzoneFileSystem.java b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/TestTrashOzoneFileSystem.java
index 5ee5067bfe5..4b2832a25cb 100644
--- a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/TestTrashOzoneFileSystem.java
+++ b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/TestTrashOzoneFileSystem.java
@@ -20,6 +20,8 @@
 import static org.apache.hadoop.fs.FileSystem.TRASH_PREFIX;
 import static org.apache.hadoop.hdds.HddsConfigKeys.HDDS_CONTAINER_REPORT_INTERVAL;
 import static org.apache.hadoop.ozone.OzoneConfigKeys.OZONE_FS_LISTING_PAGE_SIZE_MAX;
+import static org.apache.ozone.test.MetricsAsserts.getLongCounter;
+import static org.apache.ozone.test.MetricsAsserts.getMetrics;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 import java.io.File;
@@ -30,6 +32,7 @@
 import java.util.concurrent.atomic.AtomicInteger;
 import org.apache.hadoop.fs.FileStatus;
 import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.hdds.conf.OzoneConfiguration;
 import org.apache.hadoop.hdds.server.ServerUtils;
 import org.apache.hadoop.hdds.utils.db.DBConfigFromFile;
@@ -40,6 +43,7 @@
 import org.apache.hadoop.ozone.om.protocol.OzoneManagerProtocol;
 import org.apache.hadoop.ozone.om.request.OMRequestTestUtils;
 import org.apache.hadoop.security.SecurityUtil;
+import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.io.TempDir;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.ValueSource;
@@ -94,6 +98,33 @@ void testGetTrashRootsBeyondPageSize(BucketLayout bucketLayout,
     }
   }
 
+  @Test
+  void testGetFileStatusDoesNotIncrementOmRpcMetric(@TempDir File testDir) throws Exception {
+    OmTestManagers omTestManagers = newOmTestManagers(testDir);
+    try {
+      OzoneManager om = omTestManagers.getOzoneManager();
+      OzoneManagerProtocol writeClient = omTestManagers.getWriteClient();
+      String volumeName = "vol-" + objectId.incrementAndGet();
+      String bucketName = "bucket-" + objectId.incrementAndGet();
+      createVolumeAndBucket(omTestManagers, volumeName, bucketName,
+          BucketLayout.FILE_SYSTEM_OPTIMIZED, writeClient);
+
+      long getFileStatusBefore = om.getMetrics().getNumGetFileStatus();
+      long trashGetFileStatusBefore = getLongCounter("NumTrashGetFileStatus",
+          getMetrics(OMMetrics.class.getSimpleName()));
+      try (FileSystem fs = SecurityUtil.doAsLoginUser(
+          (PrivilegedExceptionAction<FileSystem>) () -> new TrashOzoneFileSystem(om))) {
+        fs.getFileStatus(new Path("/" + volumeName + "/" + bucketName + "/" + TRASH_PREFIX));
+      }
+
+      assertEquals(getFileStatusBefore, om.getMetrics().getNumGetFileStatus());
+      assertEquals(trashGetFileStatusBefore + 1,
+          getLongCounter("NumTrashGetFileStatus", getMetrics(OMMetrics.class.getSimpleName())));
+    } finally {
+      omTestManagers.stop();
+    }
+  }
+
   private void createVolumeAndBucket(OmTestManagers omTestManagers,
       String volumeName, String bucketName, BucketLayout bucketLayout,
       OzoneManagerProtocol writeClient) throws IOException {


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@ozone.apache.org
For additional commands, e-mail: commits-help@ozone.apache.org