yihua commented on PR #19130:
URL: https://github.com/apache/hudi/pull/19130#issuecomment-4850345340
Note on scope: this intentionally leaves the Flink jobs (`test-flink-1`,
`test-flink-2`) out of coverage.
When Codecov was first wired up (#18230), jacoco was briefly enabled on the
Flink jobs and then removed due to a jacoco + Apache Calcite incompatibility.
The agent instruments bytecode with synthetic fields/methods, which breaks the
reflection-based structural assertions in Calcite's `MetadataDef` constructor,
failing with:
```
java.lang.NoClassDefFoundError: Could not initialize class
org.apache.calcite.rel.metadata.DefaultRelMetadataProvider
at org.apache.calcite.plan.RelOptCluster.<init>(RelOptCluster.java:97)
at
org.apache.flink.table.planner.calcite.FlinkRelOptClusterFactory$.create(FlinkRelOptClusterFactory.scala:36)
```
This PR keeps that constraint intact:
- Coverage is scoped to the `integration-tests` job, whose IT step runs `mvn
verify -Pintegration-tests -pl !hudi-flink-datasource/hudi-flink`, so the Flink
Calcite planner path is not exercised.
- The `prepare-agent` added to the `integration-tests` profile is a no-op
unless a job overrides `-Djacoco.skip=false`. The Flink IT jobs keep the
default `-Djacoco.skip` from `MVN_ARGS`, so they stay uninstrumented and the
Calcite failure cannot recur.
The one thing to watch is any non-Flink IT that loads Calcite (e.g.
Hive-based paths). Monitoring the `integration-tests` run on this PR to confirm
it stays green.
--
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]