Repository navigation
Conversation
Reproduction: a trusted server with a mismatched SAN cannot connect under Netty 4.2 even when zookeeper.ssl.hostnameVerification=false. Clear the builder default so the existing ZooKeeper configured verifier continues to own the policy. Extend the existing DNS/IP and FIPS mismatch matrix to cover disabled verification.
xiangfu0
force-pushed
the
xiangfu0/codex2/zookeeper-netty42-hostname-policy
branch
from
October 14, 2026 00:04
7c90259 to
a7b5fb4
Compare
Merged
1 task
xiangfu0
deleted the
xiangfu0/codex2/zookeeper-netty42-hostname-policy
branch
October 14, 2026 01:59
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Netty 4.2 defaults client builders to HTTPS endpoint identification. ZooKeeper’s existing trust-manager/engine policy honors
zookeeper.ssl.hostnameVerification, but the new builder default rejects a trusted mismatched SAN even when that setting is false.Clear only the client builder’s endpoint-identification default, leaving the existing configured ZooKeeper verifier and server mutual-TLS policy in control. Extend the existing DNS/IP × FIPS mismatch cases to test both enabled and disabled hostname verification. The call also compiles with the current Netty 4.1.138 pin; this PR does not upgrade Netty.
How to reproduce
Run
SSLHostnameVerificationTest#testClientHostnameVerificationWithMismatchNameswith runtime Netty 4.2.19. Before the production fix, all fourhostnameVerification=falsecases fail; the four enabled-policy cases retain rejection. With the fix, all eight pass.Using a Maven wrapper against this checkout after compiling/installing its source at the normal pin:
Repeat with
-Dzookeeper.ssl.sslProvider=OPENSSLfor the native provider.Validation
ClientSSLTestpositive provider/FIPS/policy cases pass at runtime Netty 4.2.19, including matching-name verification and create/delete operations on three server sessions.ClientSSLTestruns retain existing negative-assertion failures at parameter cases [2]/[4], also reproduced on unmodified production source (that control additionally failed [6]). No expectation was changed or test disabled; full upstream CI has not been certified.This is a master fix. The released 3.9.6 client used by apache/pinot#19828 remains affected; a release-line fix and published artifact are separate prerequisites before that consumer can claim compatibility.