Repository navigation
[fix](fe) Upgrade gRPC and remove unused LZ4 dependencies - #67585
Merged
Merged
Conversation
### What problem does this PR solve? Related PR: apache#67065 Problem Summary: gRPC 1.65.1 brings grpc-netty-shaded affected by CVE-2025-55163. Upgrade the managed gRPC BOM to 1.75.0, matching the master PR. Both MaxCompute connectors directly exclude org.lz4:lz4-pure-java from each ODPS SDK dependency and explicitly depend on parent-managed at.yawk.lz4:lz4-java 1.11.1, preserving the SDK dependency closure without relying on dependencyManagement exclusion merging. ODPS ownership has moved from fe-common/fe-core to fe-connector-maxcompute in this branch. Current MaxCompute reads and writes select ZSTD; the LZ4 replacement preserves SDK dependencies rather than changing the selected codec. Limit flight-sql-jdbc-driver to test scope: only the FE test client uses it, while production FlightServer and FlightSqlClient use the retained Flight protocol dependencies. ### Release note Upgrade gRPC to 1.75.0 and replace the legacy ODPS LZ4 dependency with lz4-java 1.11.1. Stop bundling the test-only Flight SQL JDBC driver in FE. ### Check List (For Author) - Test: Manual validation - Maven validate (including Checkstyle) passed for fe-core and both MaxCompute connectors with their reactor dependencies. - Maven dependency:tree verified gRPC 1.75.0, LZ4 1.11.1, no lz4-pure-java in the connector trees, and JDBC driver test scope. - XML assertions verified exclusions on all four actual ODPS declarations. - git diff --check passed. - ./build.sh --fe was interrupted before FE compilation: missing thirdparty libhdfs.a triggered thirdparty reconstruction. Full build, unit tests and cluster regression tests were not completed. - Behavior changed: Yes (dependency versions and FE runtime packaging; MaxCompute compression selection is unchanged) - Does this need documentation: No
Contributor
|
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
Member
Author
|
run buildall |
### What problem does this PR solve? Related PR: apache#67585 Problem Summary: Both MaxCompute connectors repeated the same LZ4 exclusion on each ODPS SDK dependency. Manage these exclusions once in fe/pom.xml for odps-sdk-core and odps-sdk-table-api. Keep the BE connector-specific Jackson exclusions local and retain explicit parent-versioned LZ4 replacement dependencies in both consuming modules. The resolved dependency trees are unchanged. ### Release note None ### Check List (For Author) - Test: Manual validation - Maven validate, including Checkstyle, passed for both connectors and their reactor dependencies with the build cache disabled. - Compared complete Maven dependency trees before and after the change for fe-core and both MaxCompute connectors: byte-for-byte identical. - Effective POM checks verified managed LZ4 exclusions and preserved connector-specific Jackson exclusions. - git diff --check passed. - No additional full build or test execution: this relocation leaves the resolved dependency graphs unchanged from the successful FE build. - Behavior changed: No - Does this need documentation: No
### What problem does this PR solve? Related PR: apache#67585 Problem Summary: The explicit at.yawk.lz4 dependencies were added to preserve the ODPS SDK dependency closure without establishing that Doris uses the legacy Tunnel LZ4 paths. Both connectors use the Table API, and Doris data reads and writes select ZSTD. Remove the two unnecessary dependencies while retaining the centrally managed exclusions of org.lz4:lz4-pure-java. Add an ODPS Arrow ZSTD round-trip test to verify actual compression and reading after removal, with test-only Java 17 direct-buffer access options. The existing isolated ODPS client test and the new round-trip test execute without net.jpountz.lz4 classes on their runtime classpaths. ### Release note Stop bundling the unused Java LZ4 dependency in the MaxCompute connectors. ### Check List (For Author) - Test: Unit Test and Manual test - run-fe-ut.sh with both MaxCompute test packages: 160 tests passed, including isolated ODPS class loading and the new ZSTD round trip. The credential-gated live connectivity test was excluded. - build.sh --fe with BE Java extensions enabled and unrelated extensions ignored passed with the build cache disabled, including Checkstyle and FE/BE MaxCompute packaging (64 modules, Maven wall time 02:31). - Both resolved connector trees and successful test classpaths contain no Java LZ4 implementation. FE plugin zip and BE connector jar contain no Java LZ4 jars/classes. Removed a stale LZ4 jar from the previous incremental output and rechecked the FE runtime plugin directory. - git diff --check passed. No live MaxCompute or cluster test was run. - Behavior changed: Yes (remove unused connector dependencies; ZSTD compression selection is unchanged) - Does this need documentation: No
Member
Author
|
run buildall |
Contributor
FE UT Coverage ReportIncrement line coverage `` 🎉 |
Contributor
TPC-H: Total hot run time: 16750 ms |
Contributor
TPC-DS: Total hot run time: 81427 ms |
Contributor
ClickBench: Total hot run time: 14.63 s |
morningman
approved these changes
Sep 8, 2026
924060929
approved these changes
Sep 8, 2026
yiguolei
pushed a commit
that referenced
this pull request
Sep 16, 2026
yiguolei
pushed a commit
that referenced
this pull request
Sep 17, 2026
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.
What problem does this PR solve?
Related PR: #67065
Problem Summary:
Upgrade the managed gRPC BOM from 1.65.1 to 1.75.0, matching #67065 and replacing the
grpc-netty-shadedversion affected by CVE-2025-55163.Exclude
org.lz4:lz4-pure-javacentrally from the managedodps-sdk-coreandodps-sdk-table-apidependencies. Neither MaxCompute connector needs a replacement Java LZ4 dependency: the FE uses the ODPS metadata/session APIs, and the BE uses Table API Arrow readers/writers with ZSTD. The legacy SDK Tunnel LZ4 implementations are outside the active Doris data path. The BE connector retains its local Jackson exclusions.Limit
flight-sql-jdbc-driverto test scope. Only the FE test client loads the JDBC driver; production code uses the retainedFlightServerandFlightSqlClientprotocol libraries. The regression framework keeps its independent JDBC driver dependency.Add a ZSTD round-trip test through the ODPS Arrow writer/reader factories, with the Java 17 direct-buffer access options required by the test JVM. This verifies 1,024 rows including a null after removing LZ4, alongside the existing isolated ODPS class-loading test.
Release note
Upgrade gRPC to 1.75.0. Stop bundling the unused Java LZ4 dependency in MaxCompute connectors and the test-only Flight SQL JDBC driver in the FE runtime distribution.
Check List (For Author)
Test
Validation of the final implementation in
d9613e32c86:EXTRA_FE_MODULES=maxcompute=be-java-extensions/max-compute-connector ./run-fe-ut.sh --run 'org.apache.doris.connector.maxcompute.*Test,org.apache.doris.maxcompute.*Test,!org.apache.doris.connector.maxcompute.OdpsLiveConnectivityTest': 146 FE and 14 BE connector tests passed, including ODPS class-loader isolation and the new ZSTD round trip. The successful test runtime classpaths were checked and contain nonet.jpountz.lz4classes.build.sh --fepassed withDISABLE_BE_JAVA_EXTENSIONS=OFF,FE_MAVEN_THREADS=4,MVN_OPT=-Dmaven.build.cache.enabled=false, and--be-extension-ignore iceberg-metadata-scanner,hadoop-hudi-scanner,java-common,java-udf,jdbc-scanner,paimon-scanner,trino-connector-scanner,preload-extensions,hadoop-deps,java-writer. All 64 reactor modules passed, including Checkstyle, FE compilation and FE/BE MaxCompute packaging. Maven wall time: 2m 31s.output/fe/libcontainsgrpc-netty-shaded-1.75.0.jar; no Flight SQL JDBC driver jar is present underoutput/fe.git diff --checkpassed. Live MaxCompute connectivity, cluster startup and regression tests were not run.Behavior changed:
Does this need documentation?
Check List (For Reviewer who merge this PR)