danny0405 commented on code in PR #20020:
URL: https://github.com/apache/hudi/pull/20020#discussion_r4118537057
##########
packaging/hudi-gcp-bundle/pom.xml:
##########
@@ -99,7 +99,18 @@
<include>org.apache.hudi:hudi-hive-sync</include>
<include>org.apache.hudi:hudi-gcp</include>
<include>org.apache.parquet:parquet-avro</include>
- <include>com.google.cloud:google-cloud-bigquery</include>
+ <!-- Google Cloud SDK -->
+ <include>com.google.cloud:*</include>
+ <include>com.google.api:*</include>
+ <include>com.google.api-client:*</include>
+ <include>com.google.api.grpc:*</include>
+ <include>com.google.auth:*</include>
+ <include>com.google.http-client:*</include>
+ <include>com.google.oauth-client:*</include>
+ <include>com.google.protobuf:*</include>
Review Comment:
Adding reproduction evidence for the current head (`0fbfa29`). I built an
isolated SDK bundle using this PR's include/relocation rules, its Google
BOM/Protobuf versions, and Maven Shade 3.5.3 (not a full Spark/GCS integration
run).
With `protobuf-java:2.5.0` before the bundle on the classpath, this fails:
```java
com.google.protobuf.Timestamp.newBuilder().setSeconds(1).build().toByteArray();
```
```
java.lang.IllegalAccessError: class com.google.protobuf.Timestamp tried to
access private field com.google.protobuf.AbstractMessage.memoizedSize
```
The same call succeeds without the older host Protobuf. This demonstrates
incompatible classes being loaded from the two jars; it does not establish that
the HTTP lock path itself reaches this serialization call. Please isolate the
bundled Protobuf dependency, audit the gRPC/API boundary, and add a runtime
compatibility test with host Protobuf present before treating this as a
low-risk packaging change.
--
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]