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