row-label-wrap intermittently crashes the engine (signal 4, cowdata.h:197) at teardown nf-cw7 ← Beads

open priority 2 task unassigned

Twinned from https://github.com/cfsh/ninefold/issues/796 by tools/beads/import_github.py's reconcile pass.

Unclaimed, unlabelled. Surfaced by probe_gate's post-merge sweep on c80b89e (#772), reproduced by hand immediately after.

row-label-wrap crashes the Godot engine outright on some runs — not an assertion failure:

``` ================================================================ handle_crash: Program crashed with signal 4 Engine version: Godot Engine v4.7.1.stable.mono.official … at: get (./core/templates/cowdata.h:197) ```

cowdata.h:197 is the bounds check in Godot's CowData::get — an out-of-range index into a Vector/Array.

It is intermittent, and the assertions are not what fails

Three consecutive standalone runs on the sandbox box, same tree, same command:

| run | outcome | |---|---| | 1 | crash, signal 4 at cowdata.h:197 | | 2 | all 5 expect_row_label / expect_focus assertions OK, then a wall of Leaked unsafe reference to object at csharp_script.cpp:179 finalize | | 3 | clean — [probe] done, exit 0, 5/5 OK |

So the probe's own assertions pass whenever it gets far enough to run them. The failure is at or near teardown, which is why it reads as a probe failure rather than a UI bug — and why it will keep being attributed to whichever merge happens to run the sweep.

⚠ It was NOT caused by the merge that surfaced it

probe_gate said *"this merge regressed main"* and named c80b89e. That merge's whole diff is .claude/settings.json, notes/chunks.md, tools/nflib/*, tools/pr/session_start.py and three test files — no games/, no shared/, no .cs, no .tscn, no tools/probes/. Nothing the engine loads. Recording that attribution as fact would send the next reader hunting through a tooling diff for a C++ crash.

Where I would start
Related

Dependencies

None.

Comments

No comments.

Add a comment