FrankChen021 commented on PR #19963:
URL: https://github.com/apache/druid/pull/19963#issuecomment-5248619900

   `WONT_FIX_LARGE_CHANGE` — closing after exact-head verification of 
`e90f9c5754b61b3471a3ffafee7ff706e27be448` against current upstream `master` 
`b3f08c83aa0492a8ed0e16b1b715f5abc0fa3d3a`.
   
   The PR is a one-line `google-api-client` 2.2.0 → 2.9.0 bump, but all five 
red jobs are deterministic PR-caused Maven Enforcer failures, not flaky or 
infrastructure failures:
   
   - packaging (job 93635261386), strict-compilation (93635261322), 
static-checks (93635261298), and openrewrite (93635261311) fail 
`RequireUpperBoundDeps` in `druid-iceberg-extensions`: 
`google-auth-library-{credentials,oauth2-http}` resolves to 1.20.0 through 
`google-cloud-storage:2.29.1`, while `google-api-client:2.9.0` requires 1.30.0.
   - Those jobs, and validate-dist (93635261711), also expose `druid-server` 
selecting `auto-value-annotations:1.8.1` through test Truth while the upgraded 
auth client requires 1.11.0.
   - A focused local validate additionally reproduces the auth conflict in 
`google-extensions`.
   
   Adding only the two obvious version pins would make the current checks 
quieter without making the dependency graph supported. The authoritative 2.9.0 
POM upgrades the Google HTTP client family to 2.0.0, and the published 2.9.0 
JAR manifest imports its HTTP/JSON/util packages in `[2.0,3)`. Druid still 
centrally forces `google-http-client` core/Jackson to 1.42.3, while 
`google-cloud-storage:2.29.1` contributes other HTTP modules at 1.43.3 and auth 
at 1.20.0. The resulting effective graph mixes 1.42.3, 1.43.3, and 2.0.0 HTTP 
modules plus auth 1.20.0/1.30.0. That is not compatibility-safe.
   
   Compatibility review:
   
   - The affected surface is broader than the root POM: `cloud/gcp-common`, 
`server`, Google, GCE, Iceberg, Kubernetes-overlord, and embedded-test modules. 
`GcpModule` also exposes Google HTTP types through bindings, so 
extension/plugin classloader compatibility is part of the change.
   - Google API Client 2.9 changes trust-store selection and deprecates 
`GoogleNetHttpTransport`; Druid directly uses 
`GoogleNetHttpTransport.newTrustedTransport()` in GCP/GCE code. This can alter 
outbound TLS/private-CA/proxy behavior and needs deployment-level GCS/GCE/ADC 
testing.
   - Google HTTP Client 2.0 documents a breaking Guava-family update. Java 
runtime level itself is acceptable for Druid, but coordinated HTTP 2, 
storage/gax/auth/grpc dependency management and live integration verification 
are required.
   - `japicmp` (with missing optional classes ignored) found no general public 
binary/source break in API Client 2.2→2.9 or auth 1.20→1.30. It did flag a 
Java-serialization UID change for HTTP Client's public 
`DateTime.SecondsAndNanos`; Druid has no direct use, so no Druid stored-data 
format change was identified. Druid REST/SQL/config and persistence formats are 
otherwise untouched, but the network/TLS and extension-SPI risks remain 
unresolved.
   - Licenses remain compatible (Apache-2.0/BSD-3-Clause), but the coordinated 
version alignment would require updating `licenses.yaml`, which still records 
the old API/auth/HTTP/AutoValue versions.
   - GitHub's reviewed advisory database returned no exact-version advisory for 
API Client 2.2.0 that would justify rushing an unsafe partial migration.
   
   There is concrete scope precedent: #16483 attempted only Google HTTP Client 
1.42.3 → 1.44.2 and accumulated four follow-up alignment commits spanning 
Google, Iceberg, gRPC, OpenTelemetry, and license metadata before it was 
closed. Moving this PR to HTTP 2 safely is a larger migration.
   
   A compatibility-safe repair therefore requires widespread dependency 
alignment and integration work outside a surgical dependency-PR fix. No patch, 
push, approval, or merge was performed.
   


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to