diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMDirectoriesPurgeRequestWithFSO.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMDirectoriesPurgeRequestWithFSO.java index adbbf58a98f0..9f3ef3a5d12a 100644 --- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMDirectoriesPurgeRequestWithFSO.java +++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/key/OMDirectoriesPurgeRequestWithFSO.java @@ -125,7 +125,8 @@ public OMClientResponse validateAndUpdateCache(OzoneManager ozoneManager, Execut return new OMDirectoriesPurgeResponseWithFSO(createErrorOMResponse(omResponse, e)); } List bucketLockKeys = getBucketLockKeySet(purgeDirsRequest); - boolean lockAcquired = omMetadataManager.getLock().acquireWriteLocks(BUCKET_LOCK, bucketLockKeys).isLockAcquired(); + mergeOmLockDetails(omMetadataManager.getLock().acquireWriteLocks(BUCKET_LOCK, bucketLockKeys)); + boolean lockAcquired = getOmLockDetails().isLockAcquired(); if (!lockAcquired && !purgeDirsRequest.getBucketNameInfosList().isEmpty()) { OMException oe = new OMException("Unable to acquire write locks on buckets while performing DirectoryPurge", OMException.ResultCodes.KEY_DELETION_ERROR); @@ -254,7 +255,9 @@ public OMClientResponse validateAndUpdateCache(OzoneManager ozoneManager, Execut volBucketInfoMap.entrySet()) { entry.setValue(entry.getValue().copyObject()); } - omMetadataManager.getLock().releaseWriteLocks(BUCKET_LOCK, bucketLockKeys); + if (lockAcquired) { + mergeOmLockDetails(omMetadataManager.getLock().releaseWriteLocks(BUCKET_LOCK, bucketLockKeys)); + } } return new OMDirectoriesPurgeResponseWithFSO( diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3ExpiredMultipartUploadsAbortRequest.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3ExpiredMultipartUploadsAbortRequest.java index 5f7d01d9a733..8bf9064a33fe 100644 --- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3ExpiredMultipartUploadsAbortRequest.java +++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3ExpiredMultipartUploadsAbortRequest.java @@ -38,7 +38,6 @@ import org.apache.hadoop.ozone.om.helpers.OmMultipartAbortInfo; import org.apache.hadoop.ozone.om.helpers.OmMultipartKeyInfo; import org.apache.hadoop.ozone.om.helpers.OmMultipartUpload; -import org.apache.hadoop.ozone.om.lock.OMLockDetails; import org.apache.hadoop.ozone.om.request.key.OMKeyRequest; import org.apache.hadoop.ozone.om.request.util.OMMultipartUploadUtils; import org.apache.hadoop.ozone.om.request.util.OmResponseUtil; @@ -198,11 +197,10 @@ private void updateTableCache(OzoneManager ozoneManager, OMMetadataManager omMetadataManager = ozoneManager.getMetadataManager(); OmBucketInfo omBucketInfo = null; BucketLayout bucketLayout = null; - OMLockDetails omLockDetails = null; try { - omLockDetails = omMetadataManager.getLock() - .acquireWriteLock(BUCKET_LOCK, volumeName, bucketName); - acquiredLock = omLockDetails.isLockAcquired(); + mergeOmLockDetails(omMetadataManager.getLock() + .acquireWriteLock(BUCKET_LOCK, volumeName, bucketName)); + acquiredLock = getOmLockDetails().isLockAcquired(); omBucketInfo = getBucketInfo(omMetadataManager, volumeName, bucketName);