LuciferYang opened a new issue, #12933:
URL: https://github.com/apache/gluten/issues/12933

   ### What happens
   
   Both profiles in the root pom declare a `build-helper-maven-plugin` 
execution with the id `add-iceberg-test-sources`: `pom.xml:1861` under 
`iceberg`, `pom.xml:1912` under `iceberg-test`. Maven merges plugin executions 
by id, so when both profiles are active only one `<sources>` list survives.
   
   `help:effective-pom` with `-Pbackends-clickhouse -Pspark-3.5 -Pspark-ut 
-Pdelta -Piceberg -Piceberg-test` resolves that execution to:
   
   ```
   add-iceberg-test-sources
       src-iceberg-spark35/test/scala
       src-iceberg-spark35/test/java
   ```
   
   The `iceberg` profile's four entries (`src-iceberg/test/{scala,java}` and 
`src-iceberg${iceberg.binary.version}/test/{scala,java}`) are gone. No warning 
is printed; the sources are simply not compiled.
   
   ### Effect on ClickHouse: the combination cannot build
   
   `ClickHouseIcebergHiveTableSupport` lives in 
`backends-clickhouse/src-iceberg/test/scala`, and both Java tests under 
`src-iceberg-spark35/test/java` instantiate it. The class therefore leaves the 
source path at exactly the moment the tests join it:
   
   ```
   $ ./build/mvn -Pbackends-clickhouse -Pspark-3.5 -Pscala-2.13 -Pspark-ut 
-Pdelta \
         -Piceberg -Piceberg-test -DskipTests test-compile -pl 
backends-clickhouse
   [ERROR] 
.../src-iceberg-spark35/test/java/.../TestPositionDeletesTableGluten.java:[41,18]
 cannot find symbol
   [ERROR]   symbol:   class ClickHouseIcebergHiveTableSupport
   ```
   
   Giving the `iceberg-test` execution a distinct id 
(`add-iceberg-spark-test-sources`) and changing nothing else makes the same 
command exit 0 and emit both `ClickHouseIcebergHiveTableSupport.class` and 
`TestPositionDeletesTableGluten.class`.
   
   ### Effect on Velox: harmless today, which is why nobody noticed
   
   Nothing in `backends-velox` needs both directories at once. 
`src-iceberg/test` holds `VeloxIcebergSuite` and `VeloxTPCHIcebergSuite`, which 
run in the jobs that pass `-Piceberg` without `-Piceberg-test` 
(`velox_backend_x86.yml:941` and `:1013`, whose `wildcardSuites` includes 
`org.apache.gluten`), plus a `@EnhancedFeaturesTest` variant that 
`velox_backend_enhanced.yml` covers, a JUnit test surefire picks up, and one 
helper object. The 52 files under `src-iceberg-spark34/test` run in the three 
groups at `:817`, `:821`, `:825` that pass both profiles.
   
   ### Suggested fix
   
   Rename the `iceberg-test` profile's execution so the two lists no longer 
overwrite each other. Both profiles are always passed together in every in-repo 
invocation, so the merged list is what the plugin was meant to produce.
   
   Two things a reviewer will want to know about the blast radius. The three 
x86 groups and the 4.0 `test-compile` at `:1277` would newly compile 
`src-iceberg/test/**`, so those suites run twice across the matrix; expect 
longer jobs rather than new failures. And 
`src-iceberg${iceberg.binary.version}/test` is empty in every module, so 
nothing else appears on the source path.
   
   Only `backends-velox` and `backends-clickhouse` hold files under 
`src-iceberg*/test`, so the change is confined to those two modules.
   
   This blocks #12902's follow-up work on the ClickHouse Iceberg Java tests, 
tracked separately.
   


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