arp7 commented on a change in pull request #1016: HDDS-1672. Improve locking in 
OzoneManager.
URL: https://github.com/apache/hadoop/pull/1016#discussion_r298357461
 
 

 ##########
 File path: 
hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/BucketManagerImpl.java
 ##########
 @@ -114,9 +115,11 @@ public void createBucket(OmBucketInfo bucketInfo) throws 
IOException {
     Preconditions.checkNotNull(bucketInfo);
     String volumeName = bucketInfo.getVolumeName();
     String bucketName = bucketInfo.getBucketName();
-    metadataManager.getLock().acquireVolumeLock(volumeName);
-    metadataManager.getLock().acquireBucketLock(volumeName, bucketName);
+    boolean acquiredBucketLock = false;
+    metadataManager.getLock().acquireLock(VOLUME_LOCK, volumeName);
 
 Review comment:
   We have no option but to assume that it can fail for two reasons:
   
   1. Because of the following check:
   ```
     public void acquireVolumeLock(String volume) {
       // Calling thread should not hold any bucket lock.
       // You can take an Volume while holding S3 bucket lock, since
       // semantically an S3 bucket maps to the ozone volume. So we check here
       // only if ozone bucket lock is taken.
       if (hasAnyBucketLock()) {
         throw new RuntimeException(
             "Thread '" + Thread.currentThread().getName() +
                 "' cannot acquire volume lock while holding bucket lock(s).");
       }
   ```
   1. The wrapped call to `lockPool.borrowObject()` in `LockManager#lock` 
declares that it can throw `Exception`. So that covers pretty much any 
exception under the earth.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: common-issues-h...@hadoop.apache.org

Reply via email to