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