-
Notifications
You must be signed in to change notification settings - Fork 588
HDDS-9347. Fix Ozone FS listStatus() cache-table inconsistencies. #5399
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
(cherry picked from commit dc872dd)
|
@sadanand48 thanks for the patch. Can you please trigger repeated runs for a few more FS test classes ( |
|
|
|
@swamirishi can you review this change? |
|
@SaketaChalamchala @tanvipenumudy can you take a look at this as well? |
swamirishi
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the patch @sadanand48. Overall the patch looks good to me. Have a minor nitpicky comment you can take care of.
| OzoneFSUtils.getImmediateChild(remainingKey, keyArgs); | ||
| if (!cacheKeyMap.containsKey(immediateChild)) { | ||
| // immediateChild contains volume/bucket prefix remove it. | ||
| String volumeBuckPrefix = OZONE_URI_DELIMITER + entry.getValue() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
from what i understand this list would be for only one bucket. This can be outside the loop, it would be a constant string for this function.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we move this to a follow-up task? It would be nice to avoid blocking the fix for a single nitpicky comment.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @swamirishi for the review. Addressed the comment.
| if (cacheOmKeyInfo != null | ||
| && cacheKey.startsWith(startCacheKey) | ||
| && cacheKey.compareTo(startCacheKey) >= 0) { | ||
| if (cacheOmKeyInfo != null && cacheKey.startsWith( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a test that will fail without this fix?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, e.g. testListStatusIteratorOnPageSize fails intermittently with small page size.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also the new test changes in this PR will fail without code changes
|
Thanks @sadanand48 for the patch, @jojochuang, @kerneltime, @swamirishi for the review. |
…ache#5399) Co-authored-by: Chung En Lee <[email protected]>
What changes were proposed in this pull request?
Few bugs found and fixed while testing with cache unflushed
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-9347
How was this patch tested?
Added an extra combination in TestRootedOzoneFileSystem to test when the OM Table cache is not flushed, This is useful in catching hold of issues that is caused by cache-table inconsistencies
Ran the entire test with extra combinations too : 15x10 times here : https://github.com/sadanand48/hadoop-ozone/actions/runs/6415907619