voonhous opened a new issue, #19958:
URL: https://github.com/apache/hudi/issues/19958

   hudi-trino's unit tests run on Hudi's dependency versions, while the plugin 
that ships runs on Trino's. A connector bug that only shows up on Trino's 
versions passes the connector CI.
   
   `hudi-trino` inherits the root pom, whose `dependencyManagement` pins 223 
artifacts. Maven lets those inherited entries win over the imported 
`trino-root` BOM. The plugin itself is assembled by `docker/trino/shim`, whose 
parent is `trino-root`, so it bundles Trino's versions.
   
   | Library | hudi-trino tests | Shipped plugin (Trino at `40b70400a8a6`) |
   |---|---|---|
   | Avro | 1.11.4 (root pom) | 1.12.2 |
   | Parquet | 1.15.2 (pinned in hudi-trino) | 1.18.0 |
   
   #19957 is an example: Avro 1.12.2 rejects Hudi's generated classes inside 
Trino, but a hudi-trino unit test for it passes on 1.11.4, so only the Trino 
E2E suite catches it.
   
   Pinning each version in `hudi-trino/pom.xml` does not scale and already 
drifts: the Parquet pin dates from #18837. Options:
   
   1. Make `trino-root` the parent of `hudi-trino`, as the shim does, so tests 
use exactly the shipped versions.
   2. Have the pin-advance job copy selected versions from `trino-root` into 
`hudi-trino`.
   3. Pass Trino's versions to the hudi-trino test run in CI (e.g. 
`-Davro.version`).
   4. Add a CI check that reports where hudi-trino's resolved versions differ 
from `trino-root`.
   


-- 
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]

Reply via email to