This is an automated email from the ASF dual-hosted git repository.

anton-vinogradov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git


The following commit(s) were added to refs/heads/master by this push:
     new 7d691a3188b IGNITE-28842 Restore parallel codestyle build (-T 1C) and 
report compilation failures clearly (#13302)
7d691a3188b is described below

commit 7d691a3188bf5a6b8547f9c6f027731cb7d73d8b
Author: Anton Vinogradov <[email protected]>
AuthorDate: Tue Jun 30 15:36:50 2026 +0300

    IGNITE-28842 Restore parallel codestyle build (-T 1C) and report 
compilation failures clearly (#13302)
    
    ## [IGNITE-28842](https://issues.apache.org/jira/browse/IGNITE-28842)
    
    ### Background
    
    The *Check java code* codestyle job intermittently looked broken with
    ~288 `cannot find symbol` errors for annotation-processor-generated
    classes (`*ViewWalker`, `*MessageSerializer`, `IDTOSerializerFactory`).
    Root cause: a single **real** compile error in a stale PR branch (a
    removed method still referenced after a clean text merge). javac drops
    all annotation-processor output when a compilation round has errors, so
    one real error cascades into hundreds of generated-class `cannot find
    symbol` errors that bury it.
    
    [IGNITE-28840](https://github.com/apache/ignite/pull/13299) and
    [IGNITE-28841](https://github.com/apache/ignite/pull/13300) chased this
    as a build-infra / parallelism problem; both were misdiagnoses.
    IGNITE-28841 in particular dropped the `-T 1C` parallel build added by
    [IGNITE-28823](https://github.com/apache/ignite/pull/13281). `-T 1C` was
    never the cause — the failure reproduces single-threaded.
    
    ### Change
    
    1. Restore `-T 1C` on the codestyle / `test-compile` step (re-applies
    the IGNITE-28823 speed-up).
    2. On compilation failure, make the job state it plainly and surface the
    real error: a GitHub `::error::` annotation ("compilation failed, not a
    checkstyle violation"), plus a collapsible group listing likely
    root-cause errors with the generated-class cascade
    (`*Walker`/`*Serializer`/`*Factory`, `internal.systemview`,
    `codegen.idto`) filtered out. Checkstyle-only failures are unaffected.
    
    ### Verification
    
    Filtering validated against a real failing build log (PR #13298 merge):
    from 288 errors it surfaces exactly the real one —
    `IgniteTxManager.java:[148,1] cannot find symbol: static
    deriveSyncMode`.
    
    🤖 Generated with [Claude Code](https://claude.com/claude-code)
    
    Co-authored-by: Claude Opus 4.8 <[email protected]>
---
 .github/workflows/commit-check.yml | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/.github/workflows/commit-check.yml 
b/.github/workflows/commit-check.yml
index 62eff119b57..d98eb6be2b3 100644
--- a/.github/workflows/commit-check.yml
+++ b/.github/workflows/commit-check.yml
@@ -97,7 +97,21 @@ jobs:
 
       - name: Run codestyle and licenses checks
         run: |
-          ./mvnw test-compile 
-Pall-java,licenses,lgpl,checkstyle,examples,check-licenses -B -V
+          set -o pipefail
+          rc=0
+          ./mvnw test-compile 
-Pall-java,licenses,lgpl,checkstyle,examples,check-licenses -B -V -T 1C 2>&1 | 
tee mvn-codestyle.log || rc=$?
+          if [ "$rc" -ne 0 ] && grep -q "COMPILATION ERROR" mvn-codestyle.log; 
then
+            echo "::error title=Compilation failed::Java compilation failed - 
this is a compile error, not a checkstyle violation. The flood of 'cannot find 
symbol' for generated *Walker/*Serializer/*Factory classes is a cascade: javac 
drops annotation-processor output when compilation fails. Fix the real error(s) 
listed in the build log group below first."
+            echo "::group::Likely root-cause compile errors (generated-class 
cascade filtered out)"
+            awk '
+              /^\[ERROR\].*cannot find symbol/ { loc=$0; getline s; 
gsub(/^[[:space:]]*(\[ERROR\][[:space:]]*)?/, "", s);
+                if (s !~ /(Walker|Serializer|Factory)([^A-Za-z]|$)/) print loc 
"  ->  " s; next }
+              /^\[ERROR\].*\.java:\[[0-9]+,[0-9]+\]/ {
+                if ($0 !~ /codegen\.idto|internal\.systemview/) print $0 }
+            ' mvn-codestyle.log | sed -E 's#^.*/modules/#modules/#; 
s/^\[ERROR\] //' | sort -u | head -n 40
+            echo "::endgroup::"
+          fi
+          exit "$rc"
 
       - name: Run abandoned tests checks.
         # Reuse classes from the previous step; the differing profiles 
otherwise trigger a full reactor recompile.

Reply via email to