https://bugs.documentfoundation.org/show_bug.cgi?id=174268

--- Comment #2 from [email protected] ---
I asked codex to investigate the root cause and suggest a simple fix. I don't
expect it to meet your quality requirements, but I hope it saves you time.

-----

Source analysis identifies a batching defect. lcl_probeLeftOrRightFGs() admits
the active, already rejected E group while calculating the independent D group.
Its speculative dependency probe reaches B4/C3 and re-enters the running A3
calculation, producing false Err:522.

The proposed correction applies the original group’s cycle/disabled eligibility
checks before admitting neighboring groups. Independent threaded calculation
remains available. The batching path dates to 845e1cdca334 (2019-10-01; present
in 6.4 source), not a binary-bisected introduction. Related: bugs 124270 and
132451; exact duplication remains unconfirmed.

On locally patched 27.2.0.0.alpha0+ master 7528c0d40601, macOS 27.0.1 ARM64,
all 500 cells pass three load/hard-recalculation cycles per threading setting.
Both parallelism suites pass all 20 tests. Reverting restores the 392 incorrect
cells. Patched Linux was not tested.

--- a/sc/source/core/data/formulacell.cxx
+++ b/sc/source/core/data/formulacell.cxx
@@ -5379,6 +5379,10 @@
         if (!xNGroup)
             break;

+        // Neighbor groups must satisfy the same eligibility checks as the
entry group.
+        if (xNGroup->mbPartOfCycle || xNGroup->meCalcState ==
sc::GroupCalcDisabled)
+            break;
+
         if (!pCell->GetCode()->IsEnabledForThreading())
             break;

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to