HDDS-8371. Avoid concatenating unexpected a full path and prefix #4530
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What changes were proposed in this pull request?
This is a workaround for HDDS-8371 when we have a dirty OMKeyInfo entry in the keyTable. The dirty in this context means keyName includes a prefix to the key in the keyName. As the listStatus API assumes non-prefixed keys to concatenate keys, we eventually get a wrong result from listStatus.
As a workaround, we can use fileName instead of keyName. I noticed keyInfo#fileName is not dirty in this case, which means does not include the prefix.
I think this is a short-term fix for this problem. But I'm not confident about how this change is valuable because it is something ad-hoc. The background is described as the above and Jira, so could you give me some comments?
For the root cause, I don't make sure whether this is from persistent information or dynamically generated information, but it seems OMKeyInfo#fromPersistedFormat() returns the dirty result. We need to fix the root cause later by reviewing the write path for keys.
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-8371
How was this patch tested?
mvn test
locally