From a29de015037404d6bbf7c31cb63f2f9fe65dfdb7 Mon Sep 17 00:00:00 2001 From: sumitagrawl Date: Wed, 2 Aug 2023 16:41:14 +0530 Subject: [PATCH 1/4] HDDS-9110. Bucket owner is getting unset on setting quota on that bucket --- .../bucket/OMBucketSetPropertyRequest.java | 44 ++----------------- 1 file changed, 4 insertions(+), 40 deletions(-) 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 912289f8434f..dbbd6c7ee4f2 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 @@ -146,15 +146,12 @@ public OMClientResponse validateAndUpdateCache(OzoneManager ozoneManager, OMException.ResultCodes.NOT_SUPPORTED_OPERATION); } - OmBucketInfo.Builder bucketInfoBuilder = OmBucketInfo.newBuilder(); - bucketInfoBuilder.setVolumeName(dbBucketInfo.getVolumeName()) - .setBucketName(dbBucketInfo.getBucketName()) - .setObjectID(dbBucketInfo.getObjectID()) - .setBucketLayout(dbBucketInfo.getBucketLayout()) - .setBucketEncryptionKey(dbBucketInfo.getEncryptionKeyInfo()) - .setUpdateID(transactionLogIndex); + OmBucketInfo.Builder bucketInfoBuilder = dbBucketInfo.toBuilder(); + bucketInfoBuilder.setUpdateID(transactionLogIndex); bucketInfoBuilder.addAllMetadata(KeyValueUtil .getFromProtobuf(bucketArgs.getMetadataList())); + bucketInfoBuilder.setModificationTime( + setBucketPropertyRequest.getModificationTime()); //Check StorageType to update StorageType storageType = omBucketArgs.getStorageType(); @@ -162,8 +159,6 @@ public OMClientResponse validateAndUpdateCache(OzoneManager ozoneManager, bucketInfoBuilder.setStorageType(storageType); LOG.debug("Updating bucket storage type for bucket: {} in volume: {}", bucketName, volumeName); - } else { - bucketInfoBuilder.setStorageType(dbBucketInfo.getStorageType()); } //Check Versioning to update @@ -172,9 +167,6 @@ public OMClientResponse validateAndUpdateCache(OzoneManager ozoneManager, bucketInfoBuilder.setIsVersionEnabled(versioning); LOG.debug("Updating bucket versioning for bucket: {} in volume: {}", bucketName, volumeName); - } else { - bucketInfoBuilder - .setIsVersionEnabled(dbBucketInfo.getIsVersionEnabled()); } //Check quotaInBytes and quotaInNamespace to update @@ -184,15 +176,10 @@ public OMClientResponse validateAndUpdateCache(OzoneManager ozoneManager, if (checkQuotaBytesValid(omMetadataManager, omVolumeArgs, omBucketArgs, dbBucketInfo)) { bucketInfoBuilder.setQuotaInBytes(omBucketArgs.getQuotaInBytes()); - } else { - bucketInfoBuilder.setQuotaInBytes(dbBucketInfo.getQuotaInBytes()); } if (checkQuotaNamespaceValid(omVolumeArgs, omBucketArgs, dbBucketInfo)) { bucketInfoBuilder.setQuotaInNamespace( omBucketArgs.getQuotaInNamespace()); - } else { - bucketInfoBuilder.setQuotaInNamespace( - dbBucketInfo.getQuotaInNamespace()); } DefaultReplicationConfig defaultReplicationConfig = @@ -200,31 +187,8 @@ public OMClientResponse validateAndUpdateCache(OzoneManager ozoneManager, if (defaultReplicationConfig != null) { // Resetting the default replication config. bucketInfoBuilder.setDefaultReplicationConfig(defaultReplicationConfig); - } else if (dbBucketInfo.getDefaultReplicationConfig() != null) { - // Retaining existing default replication config - bucketInfoBuilder.setDefaultReplicationConfig( - dbBucketInfo.getDefaultReplicationConfig()); - } - - bucketInfoBuilder.setCreationTime(dbBucketInfo.getCreationTime()); - bucketInfoBuilder.setModificationTime( - setBucketPropertyRequest.getModificationTime()); - // Set acls from dbBucketInfo if it has any. - if (dbBucketInfo.getAcls() != null) { - bucketInfoBuilder.setAcls(dbBucketInfo.getAcls()); - } - - // Set the objectID to dbBucketInfo objectID, if present - if (dbBucketInfo.getObjectID() != 0) { - bucketInfoBuilder.setObjectID(dbBucketInfo.getObjectID()); } - // Set the updateID to current transaction log index - bucketInfoBuilder.setUpdateID(transactionLogIndex); - // Quota used remains unchanged - bucketInfoBuilder.setUsedBytes(dbBucketInfo.getUsedBytes()); - bucketInfoBuilder.setUsedNamespace(dbBucketInfo.getUsedNamespace()); - omBucketInfo = bucketInfoBuilder.build(); // Update table cache. From 9d2aeb60a200b51367459684ac6d4db3b7536a1c Mon Sep 17 00:00:00 2001 From: Sumit Agrawal Date: Fri, 1 Dec 2023 11:56:36 +0530 Subject: [PATCH 2/4] HDDS-9816. NPE for access to MXBean during shutdown of OM --- .../main/java/org/apache/hadoop/ozone/om/OzoneManager.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java index 5fb3872d8819..d23d846d98f0 100644 --- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java +++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java @@ -2223,7 +2223,6 @@ public boolean stop() { } if (omRatisServer != null) { omRatisServer.stop(); - omRatisServer = null; OMHAMetrics.unRegister(); } isOmRpcServerRunning = false; @@ -2260,6 +2259,7 @@ public boolean stop() { if (omhaMetrics != null) { OMHAMetrics.unRegister(); } + omRatisServer = null; return true; } catch (Exception e) { LOG.error("OzoneManager stop failed.", e); @@ -3031,7 +3031,7 @@ public String getRatisRoles() { List serviceList; int port = omNodeDetails.getRatisPort(); RaftPeer leaderId; - if (isRatisEnabled) { + if (isRatisEnabled && null != omRatisServer) { try { leaderId = omRatisServer.getLeader(); if (leaderId == null) { From 2519d6f5a46957ab32de3f287ed7ec97006a72fd Mon Sep 17 00:00:00 2001 From: Sumit Agrawal Date: Tue, 5 Dec 2023 11:25:55 +0530 Subject: [PATCH 3/4] HDDS-9816. NPE for access to MXBean during shutdown of OM --- .../src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java index d23d846d98f0..bce9fb39ee09 100644 --- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java +++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java @@ -2259,7 +2259,6 @@ public boolean stop() { if (omhaMetrics != null) { OMHAMetrics.unRegister(); } - omRatisServer = null; return true; } catch (Exception e) { LOG.error("OzoneManager stop failed.", e); @@ -3031,7 +3030,7 @@ public String getRatisRoles() { List serviceList; int port = omNodeDetails.getRatisPort(); RaftPeer leaderId; - if (isRatisEnabled && null != omRatisServer) { + if (isRatisEnabled) { try { leaderId = omRatisServer.getLeader(); if (leaderId == null) { From 61e2881f2ecec5bce314a08e48e0507dbcc1213a Mon Sep 17 00:00:00 2001 From: Sumit Agrawal Date: Wed, 6 Dec 2023 15:00:35 +0530 Subject: [PATCH 4/4] HDDS-9816. NPE for access to MXBean during shutdown of OM --- .../main/java/org/apache/hadoop/ozone/om/OzoneManager.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java index bce9fb39ee09..65cd28836ac2 100644 --- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java +++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java @@ -2259,6 +2259,7 @@ public boolean stop() { if (omhaMetrics != null) { OMHAMetrics.unRegister(); } + omRatisServer = null; return true; } catch (Exception e) { LOG.error("OzoneManager stop failed.", e); @@ -3031,6 +3032,9 @@ public String getRatisRoles() { int port = omNodeDetails.getRatisPort(); RaftPeer leaderId; if (isRatisEnabled) { + if (null == omRatisServer) { + return "Server is shutting down"; + } try { leaderId = omRatisServer.getLeader(); if (leaderId == null) {