anton-vinogradov opened a new pull request, #13300:
URL: https://github.com/apache/ignite/pull/13300

   ## [IGNITE-28841](https://issues.apache.org/jira/browse/IGNITE-28841)
   
   ### Problem
   
   [IGNITE-28840](https://github.com/apache/ignite/pull/13299) tried to fix the 
intermittent codestyle `test-compile` failure by adding 
`-Dmaven.compiler.useIncrementalCompilation=false`, but the job still fails the 
same way:
   
   ```
   [ERROR] IgniteKernal.java:[176,45] cannot find symbol
     symbol:   class ConfigurationViewWalker
     location: package org.apache.ignite.internal.systemview
   [ERROR] IgniteDataTransferObject.java:[27,47] package 
org.apache.ignite.internal.codegen.idto does not exist
   ```
   
   Example with the IGNITE-28840 flag already in place: [run 
28435576909](https://github.com/apache/ignite/actions/runs/28435576909/job/84260595716).
   
   ### Root cause
   
   The trigger is `-T 1C` (introduced in 
[IGNITE-28823](https://github.com/apache/ignite/pull/13281)), not incremental 
compilation.
   
   `maven-compiler-plugin` runs the compiler **in-process** (`fork` is not 
enabled), so javac executes inside the Maven JVM. The `ignite-core` annotation 
processors — `MessageProcessor`, `SystemViewRowAttributeWalkerProcessor`, 
`IgniteDataTransferObjectProcessor` — reach into `com.sun.tools.javac` 
internals (which is why `MAVEN_OPTS` and the surefire `argLine` open 
`jdk.compiler/com.sun.tools.javac.*`).
   
   Under `-T 1C` several reactor modules compile concurrently in that single 
JVM. The shared in-process javac / `com.sun.tools.javac` machinery is not 
thread-safe, so generation of the Walker / Factory sources for `ignite-core` is 
intermittently dropped while the files referencing them are compiled — hence 
`cannot find symbol`. Single-threaded there is no concurrent compilation and 
the issue does not occur.
   
   Forking the compiler is not viable here: a forked javac would not inherit 
the `--add-opens=jdk.compiler/...` that `MAVEN_OPTS` grants the in-process 
compiler, breaking the processors outright.
   
   ### Change
   
   Run the codestyle / `test-compile` step single-threaded again (drop `-T 1C`) 
and remove the ineffective `-Dmaven.compiler.useIncrementalCompilation=false` 
from this step. The primary IGNITE-28823 improvement — avoiding the second full 
reactor recompile on the *abandoned tests* step — is untouched.
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)


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