Skip to content

test: exercise pool spills in sessions write readback - #2731

Merged
ashhart merged 2 commits into
ashhart:mainfrom
garvrao80:fix/sessions-writes-readback
Nov 10, 2026
Merged

ashhart merged 2 commits into
ashhart:mainfrom
garvrao80:fix/sessions-writes-readback

Conversation

@garvrao80

@garvrao80 garvrao80 commented Nov 10, 2026 •

Copy link
Copy Markdown
Contributor

What this changes

The Linux sessions write/readback test requires a pool spill, but its 65,536-token pool had enough room for the seeded workload. The test now sizes the pool to one 32,768-token slot so the same workload exercises spill admission in both policy modes. The test still compares every real-file counter and peak disk use with the accounting run.

Checks on this head

  • Head commit 8cc4b72c0090808ec346f770153184c97a145753.
  • Lean checker python tools/zig/lean_check.py reported 386 findings on base and 386 on head. python tools/zig/lean_new.py reported zero new findings.
  • Tests zig build -Dfixed-cpu test-sessions-writes-host -j2 --test-timeout 5m --seed=0xece1bd70 --summary all passed 3/3 on Linux x86-64 with Zig 0.17.0, zero failures or skips. On base, the target had two passes and one failure. The diagnostic read 572,493,824 bytes back with matching counters and peak, then failed the nonzero spill assertion. On head the seeded workload produced 44 spills in each policy mode, and the covered mode also produced 61 deltas.
  • Formatting zig fmt --check build.zig zig and git diff --check origin/main...HEAD passed.
  • CI All eight PR checks passed, including zig build test and zig build test-golden in the Linux no-GPU job. Both scheduled host-nightly jobs skipped on the PR event. The targeted Linux run above covers this fixture. The Linux nightly failure on main is the baseline.
  • Not run The full host and golden suites were deferred locally because the Windows volume backing WSL had under 500 MB free. The real-file test runs on Linux. macOS, native Windows and GPU device runs were outside this fixture's path.

Receipt

  • Main against branch See the named Linux test above. Inference cells are n/a for a test fixture.
  • Boxes it reaches Linux x86-64 real-file host test.
  • New switch n/a, fixture-only change.
  • Environment Base and head above, Zig 0.17.0, Linux x86-64 under WSL. GPU and checkpoint are n/a.
  • Paths and platforms Real files and the accounting path in both policy modes on Linux. See the skipped platforms above.
  • Exactness n/a, no inference code.
  • Main against this branch on a checkpoint n/a, no inference code.
  • Decode speed n/a, no inference code.
  • Prompt speed n/a, no prompt processing change.
  • Licence n/a, no new weights or drafter.

Checklist

  • The title and description match the head commit, including the receipt and the stack.
  • The existing regression fails on base and passes on head. Its Linux dependency guard is unchanged.
  • Comments and docstrings are one line. No measurements or history in the source.
  • No personal data, machine names, internal hosts or local paths in the diff or its commits. No AI attribution lines.

@garvrao80
garvrao80 marked this pull request as ready for review November 10, 2026 08:05
@joshuaswarren

Copy link
Copy Markdown
Contributor

GREEN at 8cc4b72 — opencode-go/glm-5.3-flash as routed by Main (model id unverifiable); implementer model unverified. Red-first reproduced with Zig 0.17.0 at seed 0xece1bd70: base 21ea8de runs 2 pass / 1 fail (the nonzero-spill assertion — the 65,536-token pool never spilled), the head runs 3 pass / 0 fail. The one-line pool sizing to one slot's capacity is exactly what forces the mixed workload through spill admission in both policy modes while keeping the counter/peak comparison against the accounting run. CI 8x SUCCESS here.

@ashhart ashhart left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks. Holding the pool to one slot's capacity makes the mixed load spill, which the test meant to cover. Landing after the 1.2.6 cut.

@ashhart
ashhart force-pushed the fix/sessions-writes-readback branch from 8cc4b72 to 0b14945 Compare November 10, 2026 12:54
@ashhart
ashhart merged commit bf6904b into ashhart:main Nov 10, 2026
10 checks passed
@ashhart

ashhart commented Nov 10, 2026

Copy link
Copy Markdown
Owner

Thank you @garvrao80. This is merged into main with your commits under your own name, so you're listed as a TensorFold contributor. It ships in the next release, credited to you in the changelog and the release notes.

@ashhart

ashhart commented Nov 11, 2026

Copy link
Copy Markdown
Owner

Thanks @garvrao80! This is in TensorFold 1.2.7, out now: https://github.com/ashhart/TensorFold/releases/tag/v1.2.7

  • Synthena (Ash's Agent)

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.

3 participants