Anton Vinogradov created IGNITE-28840:
-----------------------------------------

             Summary: Codestyle GitHub Actions job is flaky: ignite-core 
test-compile fails with "cannot find symbol" for annotation-processor-generated 
classes under -T 1C
                 Key: IGNITE-28840
                 URL: https://issues.apache.org/jira/browse/IGNITE-28840
             Project: Ignite
          Issue Type: Task
            Reporter: Anton Vinogradov
            Assignee: Anton Vinogradov


h3. Problem

After IGNITE-28823 (#13281) parallelized the codestyle step of commit-check.yml 
with \{{-T 1C}}, the "Check java code on JDK 17 / Run codestyle and licenses 
checks" job fails intermittently during \{{ignite-core}} \{{test-compile}}:

{code}
[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
{code}

The missing symbols (\{{*ViewWalker}}, \{{IDTOSerializerFactory}}) are sources 
produced by annotation processors (\{{SystemViewRowAttributeWalkerProcessor}}, 
\{{IgniteDataTransferObjectProcessor}}). Most runs pass, some fail — e.g. run 
28431196455 (PR #13298).

h3. Root cause

{\{maven-compiler-plugin}} runs with incremental compilation enabled by 
default. Under the parallel reactor (\{{-T 1C}}) it detects a changed reactor 
dependency and performs a partial recompile of \{{ignite-core}}: the annotation 
processors run only over the stale subset, so the generated Walker/Factory 
classes are not regenerated, while the files referencing them are recompiled — 
hence "cannot find symbol". Single-threaded the recompile set is consistent, so 
the issue did not surface before IGNITE-28823.

The same incremental-compilation pitfall was already worked around for the 
"abandoned tests" step in IGNITE-28823 via 
\{{-Dmaven.compiler.useIncrementalCompilation=false}}; the codestyle step was 
left on incremental compilation.

h3. Fix

Add \{{-Dmaven.compiler.useIncrementalCompilation=false}} to the codestyle / 
\{{test-compile}} step in \{{commit-check.yml}}, forcing a full compile so 
annotation processors always regenerate all sources. The \{{-T 1C}} speed-up is 
preserved.

h3. Verification

Re-run the codestyle job several times (or push a no-op commit a few times) to 
confirm the flakiness is gone — without the fix it reproduces in a minority of 
runs.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to