You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ozone.apache.org by na...@apache.org on 2022/06/24 07:52:57 UTC
[ozone] branch master updated: HDDS-6941. Setting Bucket Property can corrupt bucket layout. (#3543)
This is an automated email from the ASF dual-hosted git repository.
nanda 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 24a046c224 HDDS-6941. Setting Bucket Property can corrupt bucket layout. (#3543)
24a046c224 is described below
commit 24a046c2244d4af40a976425fc2a980e46e6d295
Author: GeorgeJahad <gi...@blackbirdsystems.net>
AuthorDate: Fri Jun 24 00:52:51 2022 -0700
HDDS-6941. Setting Bucket Property can corrupt bucket layout. (#3543)
---
.../request/bucket/OMBucketSetPropertyRequest.java | 1 +
.../bucket/TestOMBucketSetPropertyRequest.java | 30 ++++++++++++++++++++++
2 files changed, 31 insertions(+)
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/bucket/OMBucketSetPropertyRequest.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/bucket/OMBucketSetPropertyRequest.java
index d237c1c880..850df00815 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/bucket/OMBucketSetPropertyRequest.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/bucket/OMBucketSetPropertyRequest.java
@@ -147,6 +147,7 @@ public class OMBucketSetPropertyRequest extends OMClientRequest {
bucketInfoBuilder.setVolumeName(dbBucketInfo.getVolumeName())
.setBucketName(dbBucketInfo.getBucketName())
.setObjectID(dbBucketInfo.getObjectID())
+ .setBucketLayout(dbBucketInfo.getBucketLayout())
.setUpdateID(transactionLogIndex);
bucketInfoBuilder.addAllMetadata(KeyValueUtil
.getFromProtobuf(bucketArgs.getMetadataList()));
diff --git a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/bucket/TestOMBucketSetPropertyRequest.java b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/bucket/TestOMBucketSetPropertyRequest.java
index 243adfe0c4..d1d0475164 100644
--- a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/bucket/TestOMBucketSetPropertyRequest.java
+++ b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/bucket/TestOMBucketSetPropertyRequest.java
@@ -22,6 +22,7 @@ package org.apache.hadoop.ozone.om.request.bucket;
import java.util.UUID;
import org.apache.commons.logging.LogFactory;
+import org.apache.hadoop.ozone.om.helpers.BucketLayout;
import org.apache.hadoop.ozone.om.request.OMRequestTestUtils;
import org.apache.ozone.test.GenericTestUtils;
import org.junit.Assert;
@@ -99,6 +100,35 @@ public class TestOMBucketSetPropertyRequest extends TestBucketRequest {
omClientResponse.getOMResponse().getStatus());
}
+ @Test
+ public void testNonDefaultLayout() throws Exception {
+
+ String volumeName = UUID.randomUUID().toString();
+ String bucketName = UUID.randomUUID().toString();
+
+ OMRequest omRequest = createSetBucketPropertyRequest(volumeName,
+ bucketName, true, Long.MAX_VALUE);
+
+ // Create FSO Bucket
+ OMRequestTestUtils.addVolumeAndBucketToDB(volumeName, bucketName,
+ omMetadataManager, BucketLayout.FILE_SYSTEM_OPTIMIZED);
+
+ OMBucketSetPropertyRequest omBucketSetPropertyRequest =
+ new OMBucketSetPropertyRequest(omRequest);
+
+ OMClientResponse omClientResponse =
+ omBucketSetPropertyRequest.validateAndUpdateCache(ozoneManager, 1,
+ ozoneManagerDoubleBufferHelper);
+
+ Assert.assertEquals(BucketLayout.FILE_SYSTEM_OPTIMIZED,
+ omMetadataManager.getBucketTable().get(
+ omMetadataManager.getBucketKey(volumeName, bucketName))
+ .getBucketLayout());
+
+ Assert.assertEquals(OzoneManagerProtocolProtos.Status.OK,
+ omClientResponse.getOMResponse().getStatus());
+ }
+
@Test
public void testValidateAndUpdateCacheFails() throws Exception {
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@ozone.apache.org
For additional commands, e-mail: commits-help@ozone.apache.org