Skip to content

CI only, do not merge: release 2.2.6 tree (2.2.5 + merged-span purge fix) - #53

Closed
Ttimmahlax wants to merge 2 commits into
ci-base/2.2.6from
release/2.2.6
Closed

Ttimmahlax wants to merge 2 commits into
ci-base/2.2.6from
release/2.2.6

Conversation

@Ttimmahlax

Copy link
Copy Markdown
Contributor

Do not merge. This draft exists only to run CI on the exact tree published as 2.2.6: the rusty_alloc-v2.2.5 tag plus the merged-span purge fix (mechanism B of docs/plans/recommit-failure-ignored.md), versions bumped. It is published by hand because main carries the speed work, held for a week. The fix reaches main through its own PR.

🤖 Generated with Claude Code

tim-almond-house and others added 2 commits October 9, 2026 10:41
Mechanism B of docs/plans/recommit-failure-ignored.md. span_recommit reads
only a free span's FIRST slot. span_free merges with free neighbours and
re-purges the whole merged span, but not when the purge fails or purging was
switched off at runtime; the merged span then kept its first part's clear
flag over a decommitted neighbour, and the next tenant wrote to it.
Reproduced on Windows as 0xc0000005 STATUS_ACCESS_VIOLATION, the field
crash's exception. The merged start now keeps the flag if any part was
purged (a spurious flag only re-commits committed memory).

Tests: two merge tests (a failed re-purge via a new test-only "fail the next
N purges" hook in os::purge; purging turned off at runtime), poisoned: both
fail with the fix disabled. They and the mechanism-A test set the
process-wide purge_delay, so all three hold arena::adopt_tests::lock, which
also stops them taking a chunk from an arena an adoption test has just
adopted (each raced about 1 run in 12 without it; 30/30 clean with it).

Cost: about 2 Ir per span_free. Opscan unchanged on every op; allocator Ir
perl +455 (0.002 %), Endless Sky +68. Unsafe census +10, all test-only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Cut from the 2.2.5 tag so the unreleased speed work on main (held for a
week) does not ship with it; published by hand, not by release-plz.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Ttimmahlax

Copy link
Copy Markdown
Contributor Author

CI-only PR for the 2.2.6 release tree; all checks green (miri pending), published as 2.2.6 from 61ae839 (tags rusty_alloc-v2.2.6 / rusty_alloc-api-v2.2.6). Closed by design.

@Ttimmahlax Ttimmahlax closed this Oct 9, 2026
@Ttimmahlax
Ttimmahlax deleted the release/2.2.6 branch October 9, 2026 20:24
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.

2 participants