HDFS-17970. Exclude failed EC checksum target from reconstruction sources - #8709
zouhuajian wants to merge 1 commit into
Conversation
|
💔 -1 overall
This message was automatically generated. |
2339461 to
ac4a2ce
Compare
|
Hi @Hexiaoqiao , could you please take a look when you have time? Thanks! |
|
Hi @zouhuajian , thanks for this fix. We are evaluating HDFS-17970 for production and have two questions:
We reproduced the following case on trunk For RS-6-3, reconstructing index If opening the first index-6 reader fails,
Our targeted test uses the actual trunk The underlying reader behavior predates this PR. However, retaining duplicate replicas as fallbacks appears to require counting distinct internal-block indices, both during initialization and when replacing failed or slow reads. Does this match your understanding? Have you encountered this case, or is there an existing issue or follow-up patch? Please let us know if there is an invariant we have missed that would prevent it in practice. |
Description of PR
This PR fixes HDFS-17970.
During striped block checksum reconstruction, the DataNode that failed the original checksum request could still be selected as a reconstruction source. This may cause reconstruction to read from the same failed target and prevent the file checksum from being calculated.
This change:
Contains content generated by OpenAI Codex.
How was this patch tested?
TestFileChecksum#testStripedFileChecksumReconstructionExcludesFailedTarget(2tests passed).TestFileChecksumtest class (72tests passed).git diff --check.For code changes:
LICENSE,LICENSE-binary,NOTICE-binaryfiles?The unchecked object storage, dependency, and license-file items are not applicable to this change.
AI Tooling
If an AI tool was used: