[ 
https://issues.apache.org/jira/browse/IGNITE-28840?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Anton Vinogradov resolved IGNITE-28840.
---------------------------------------
    Resolution: Fixed

> 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
>            Priority: Major
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> 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