Skip to content

Commit

Permalink
HDDS-1672. Improve locking in OzoneManager. (apache#1016)
Browse files Browse the repository at this point in the history
  • Loading branch information
bharatviswa504 authored Jun 28, 2019
1 parent f02b0e1 commit 49c5e8a
Show file tree
Hide file tree
Showing 26 changed files with 324 additions and 703 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import org.apache.hadoop.ozone.om.helpers.OmPrefixInfo;
import org.apache.hadoop.ozone.om.helpers.OmVolumeArgs;
import org.apache.hadoop.ozone.om.helpers.S3SecretValue;
import org.apache.hadoop.ozone.om.lock.OzoneManagerLock;
import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.VolumeList;
import org.apache.hadoop.ozone.security.OzoneTokenIdentifier;
import org.apache.hadoop.utils.db.DBStore;
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@

import java.io.IOException;

import static org.apache.hadoop.ozone.om.lock.OzoneManagerLock.Resource.S3_SECRET_LOCK;
import static org.apache.hadoop.ozone.security.OzoneSecurityException.ResultCodes.S3_SECRET_NOT_FOUND;

/**
Expand Down Expand Up @@ -60,7 +61,7 @@ public S3SecretValue getS3Secret(String kerberosID) throws IOException {
Preconditions.checkArgument(Strings.isNotBlank(kerberosID),
"kerberosID cannot be null or empty.");
S3SecretValue result = null;
omMetadataManager.getLock().acquireS3SecretLock(kerberosID);
omMetadataManager.getLock().acquireLock(S3_SECRET_LOCK, kerberosID);
try {
S3SecretValue s3Secret =
omMetadataManager.getS3SecretTable().get(kerberosID);
Expand All @@ -72,7 +73,7 @@ public S3SecretValue getS3Secret(String kerberosID) throws IOException {
return s3Secret;
}
} finally {
omMetadataManager.getLock().releaseS3SecretLock(kerberosID);
omMetadataManager.getLock().releaseLock(S3_SECRET_LOCK, kerberosID);
}
LOG.trace("Secret for accessKey:{}, proto:{}", kerberosID, result);
return result;
Expand All @@ -86,15 +87,15 @@ public String getS3UserSecretString(String kerberosID)
LOG.trace("Get secret for awsAccessKey:{}", kerberosID);

S3SecretValue s3Secret;
omMetadataManager.getLock().acquireS3SecretLock(kerberosID);
omMetadataManager.getLock().acquireLock(S3_SECRET_LOCK, kerberosID);
try {
s3Secret = omMetadataManager.getS3SecretTable().get(kerberosID);
if (s3Secret == null) {
throw new OzoneSecurityException("S3 secret not found for " +
"awsAccessKeyId " + kerberosID, S3_SECRET_NOT_FOUND);
}
} finally {
omMetadataManager.getLock().releaseS3SecretLock(kerberosID);
omMetadataManager.getLock().releaseLock(S3_SECRET_LOCK, kerberosID);
}

return s3Secret.getAwsSecret();
Expand Down
Loading

0 comments on commit 49c5e8a

Please sign in to comment.