You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ozone.apache.org by "ptlrs (via GitHub)" <gi...@apache.org> on 2025/05/19 16:04:29 UTC
[PR] HDDS-13073. Randomize pipeline id for the checksums verifier [ozone]
ptlrs opened a new pull request, #8480:
URL: https://github.com/apache/ozone/pull/8480
## What changes were proposed in this pull request?
Please describe your PR in detail:
This PR adds a random id when a new pipeline is created for the checksums verification tool.
### Background
For a 3 way Ratis replicated key, the checksums tool returns the wrong results.
The checksum verification for each key on each node is always the same for all three replicas. i.e., all replicas fail the checksums or none fail when one replica should.
The checksums verifier provides incorrect results.
This can be traced down to the way the pipeline is created for the checksum verification.
https://github.com/apache/ozone/blob/1825cdf6057ae4ac2d0bcbdcfb0bed1302054e9e/hadoop-ozone/tools/src/main/java/org/apache/hadoop/ozone/debug/replicas/ChecksumVerifier.java#L62-L66
When a client is created using this pipeline, it is cached https://github.com/apache/ozone/blob/1825cdf6057ae4ac2d0bcbdcfb0bed1302054e9e/hadoop-hdds/client/src/main/java/org/apache/hadoop/hdds/scm/XceiverClientManager.java#L150-L161
The key for the cached entry is generated in `getPipelineCacheKey` https://github.com/apache/ozone/blob/1825cdf6057ae4ac2d0bcbdcfb0bed1302054e9e/hadoop-hdds/client/src/main/java/org/apache/hadoop/hdds/scm/XceiverClientManager.java#L163-L165
When the pipeline is created via Pipeline.newBuilder(keyLocation.getPipeline()), it inherits the original pipeline's id. This results in the first cached client being reused for subsequent checksums verification.
## What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-13073
## How was this patch tested?
Manual testing using https://issues.apache.org/jira/browse/HDDS-12715
CI: https://github.com/ptlrs/ozone/actions/runs/15115169085
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@ozone.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@ozone.apache.org
For additional commands, e-mail: issues-help@ozone.apache.org
Re: [PR] HDDS-13073. Set pipeline ID in checksums verifier to avoid cached pipeline with different node [ozone]
Posted by "ptlrs (via GitHub)" <gi...@apache.org>.
ptlrs commented on PR #8480:
URL: https://github.com/apache/ozone/pull/8480#issuecomment-2898822787
Thank you for the reviews @adoroszlai @errose28
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@ozone.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@ozone.apache.org
For additional commands, e-mail: issues-help@ozone.apache.org
Re: [PR] HDDS-13073. Randomize pipeline id for the checksums verifier [ozone]
Posted by "errose28 (via GitHub)" <gi...@apache.org>.
errose28 commented on PR #8480:
URL: https://github.com/apache/ozone/pull/8480#issuecomment-2891835686
I think we do want the caching provided by the `XceiverClientManager`. We will be keeping one verifier instance (per thread as of #8363) and these will likely need to hit the same datanodes multiple times while working through keys in the namespace.
@swamirishi suggested at the community sync to set the pipeline ID to the datanode ID like the [EC read path](https://github.com/apache/ozone/blob/ae0d757f0d0547a0a9958c3a97e668fc7eabd570/hadoop-hdds/client/src/main/java/org/apache/hadoop/ozone/client/io/ECBlockInputStream.java#L177) to use the client cache correctly in this case.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@ozone.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@ozone.apache.org
For additional commands, e-mail: issues-help@ozone.apache.org
Re: [PR] HDDS-13073. Set pipeline ID in checksums verifier to avoid cached pipeline with different node [ozone]
Posted by "adoroszlai (via GitHub)" <gi...@apache.org>.
adoroszlai merged PR #8480:
URL: https://github.com/apache/ozone/pull/8480
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@ozone.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@ozone.apache.org
For additional commands, e-mail: issues-help@ozone.apache.org
Re: [PR] HDDS-13073. Randomize pipeline id for the checksums verifier [ozone]
Posted by "adoroszlai (via GitHub)" <gi...@apache.org>.
adoroszlai commented on PR #8480:
URL: https://github.com/apache/ozone/pull/8480#issuecomment-2891572273
Thanks @ptlrs for the patch.
`ChecksumVerifier` can use `XceiverClientCreator` directly, does not need to create `ContainerOperationClient` and `XceiverClientManager`. Then you don't need to work around the caching that `XceiverClientManager` adds on top of `XceiverClientCreator`.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@ozone.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@ozone.apache.org
For additional commands, e-mail: issues-help@ozone.apache.org