[
https://issues.apache.org/jira/browse/HDDS-8475?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Duong updated HDDS-8475:
------------------------
Description:
Unexpected IOException is returned as KEY_NOT_FOUND and the original error is
swallowed, ref:
[KeyManagerImpl|https://github.com/apache/ozone/blob/master/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/KeyManagerImpl.java#L420-L420]
{code:java}
private OmKeyInfo readKeyInfo(OmKeyArgs args) throws IOException {
try {
...
if (bucketLayout.isFileSystemOptimized()) {
value = getOmKeyInfoFSO(volumeName, bucketName, keyName);
} else {
value = getOmKeyInfoDirectoryAware(volumeName, bucketName, keyName);
if (bucketLayout.isLegacy() && value != null && !value.isFile()) {
value = null; // Legacy buckets do not report key info for directories
}
}
} catch (IOException ex) {
if (ex instanceof OMException) {
throw ex;
}
if (LOG.isDebugEnabled()) {
LOG.debug("Get key failed for volume:{} bucket:{} key:{}", volumeName,
bucketName, keyName, ex);
}
throw new OMException(ex.getMessage(), KEY_NOT_FOUND);
}{code}
was:
{code:java}
private OmKeyInfo readKeyInfo(OmKeyArgs args) throws IOException {
String volumeName = args.getVolumeName();
String bucketName = args.getBucketName();
String keyName = args.getKeyName();
OmKeyInfo value = null;
metadataManager.getLock().acquireReadLock(BUCKET_LOCK, volumeName,
bucketName);
try {
BucketLayout bucketLayout =
getBucketLayout(metadataManager, args.getVolumeName(),
args.getBucketName());
keyName = OMClientRequest
.validateAndNormalizeKey(enableFileSystemPaths, keyName,
bucketLayout);
if (bucketLayout.isFileSystemOptimized()) {
value = getOmKeyInfoFSO(volumeName, bucketName, keyName);
} else {
value = getOmKeyInfoDirectoryAware(volumeName, bucketName, keyName);
if (bucketLayout.isLegacy() && value != null && !value.isFile()) {
value = null; // Legacy buckets do not report key info for directories
}
}
} catch (IOException ex) {
if (ex instanceof OMException) {
throw ex;
}
if (LOG.isDebugEnabled()) {
LOG.debug("Get key failed for volume:{} bucket:{} key:{}", volumeName,
bucketName, keyName, ex);
}
throw new OMException(ex.getMessage(), KEY_NOT_FOUND);
} finally {
metadataManager.getLock().releaseReadLock(BUCKET_LOCK, volumeName,
bucketName);
} {code}
> Unexpected IOException is returned as KEY_NOT_FOUND
> ---------------------------------------------------
>
> Key: HDDS-8475
> URL: https://issues.apache.org/jira/browse/HDDS-8475
> Project: Apache Ozone
> Issue Type: Improvement
> Reporter: Duong
> Priority: Major
>
> Unexpected IOException is returned as KEY_NOT_FOUND and the original error is
> swallowed, ref:
> [KeyManagerImpl|https://github.com/apache/ozone/blob/master/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/KeyManagerImpl.java#L420-L420]
> {code:java}
> private OmKeyInfo readKeyInfo(OmKeyArgs args) throws IOException {
> try {
> ...
> if (bucketLayout.isFileSystemOptimized()) {
> value = getOmKeyInfoFSO(volumeName, bucketName, keyName);
> } else {
> value = getOmKeyInfoDirectoryAware(volumeName, bucketName, keyName);
> if (bucketLayout.isLegacy() && value != null && !value.isFile()) {
> value = null; // Legacy buckets do not report key info for directories
> }
> }
> } catch (IOException ex) {
> if (ex instanceof OMException) {
> throw ex;
> }
> if (LOG.isDebugEnabled()) {
> LOG.debug("Get key failed for volume:{} bucket:{} key:{}", volumeName,
> bucketName, keyName, ex);
> }
> throw new OMException(ex.getMessage(), KEY_NOT_FOUND);
> }{code}
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]