FA-90772 / Garbage collector invariants / Member archive
TLAB: eden cannot be filled exactly · case 02
The final buffer or object that would end exactly at eden_end fails.
Case contract
Bump allocation through a thread-local buffer (TLAB). Requests are rounded up to 8 bytes. Requests larger than half a TLAB go straight to shared eden. Otherwise allocate in the TLAB when it fits (end inclusive). If not, and the TLAB still has more free space than the refill waste limit, allocate this object in eden, keep the TLAB and raise the limit by waste_inc; else retire the TLAB (its remaining space counts as waste) and carve a new TLAB from eden. Eden allocations fail (None) when they would end beyond eden_end. Return addresses, total waste, eden top and the final limit.
Why this case matters
Allocation fast paths decide heap layout and GC frequency; boundary slips waste memory or overlap objects.
One recorded failure
Sample boundary fixtureThis sample comes from the broken implementation of a controlled reproducer.
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| eden filled exactly | {"addrs": [0, 64, null, null, null], "limit": 8, "top": 128, "waste": 0} | {"addrs": [0, 64, 128, 192, null], "limit": 8, "top": 256, "waste": 0} | Failed |
MEMBER ARCHIVE
The complete case is available to members.
This record includes three runnable implementations, regression fixtures, execution results, and source hashes.
Member access is invitation-based. Sign in with your invited account to inspect the sources.
Sign in to the archive ↗