Skip to content

plan: UB-289 addendum, the address reuse follows the allocator cache fill - #2286

Merged
bherbruck merged 1 commit into
mainfrom
plan/ub289-addendum
Nov 1, 2026
Merged

bherbruck merged 1 commit into
mainfrom
plan/ub289-addendum

Conversation

@bherbruck

Copy link
Copy Markdown
Collaborator

Docs only: one addendum to UB-289 (#2258).

A gdb trace of the C++ heal on STEP Tools ap203/gehaeuse.stp body 0 (heal stopped after Fix_DegenFaces) shows, per merge, the freed vertex props and the new survivor props allocation:

  • Top-level Fix_CoinVertices: the new props take the deleted vertex's freed address, so the loop's rewrite points later pairs at a dead address, and they don't follow. This matches the port's result.
  • The catch-up Fix_CoinVertices inside Fix_DegenFaces: the new props take the survivor's own freed address, so later pairs follow. That accounts for the 2-vertex gap.
  • No allocation separates the two cases. Which address comes back follows glibc's per-thread cache for that size class. That part is read from glibc's documented behaviour, not traced.

So no deterministic rule reproduces C++ here short of emulating the allocator. The port keeps its deterministic default, and no opt-in is planned. The addendum gives counts and the mechanism only, with no addresses or coordinates.

🤖 Generated with Claude Code

…fill

A gdb trace of the C++ heal on ap203/gehaeuse.stp body 0 shows the freed
vertex-props address reuse going opposite ways at the top-level
Fix_CoinVertices and in the Fix_DegenFaces catch-up, with no allocation in
between: glibc's per-thread cache decides it. No deterministic rule matches
C++ there; the port's default stays.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@bherbruck
bherbruck enabled auto-merge November 1, 2026 23:05
@bherbruck
bherbruck merged commit 4d3ce62 into main Nov 1, 2026
13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant