Pull requests / #1679
#1679 Windows: cap conversation-memory admission at the commit limit too (#1607)
open · @nekomario28 · 0 comments · View on GitHub
Description
Fixes #1607. The conversation-cache/checkpoint admission reads `ullAvailPhys` only, so it admits allocations the **commit limit** (RAM + page file) then refuses — the engine exits `0xC0000409` with no message even with GiB of physical RAM free. Under WDDM the card's VRAM is charged to the commit too (#141), and the reporter reproduced the crash 6 times, every time within 0.1 GiB of the limit. ## Change `conversation_available_memory()` on Windows now returns `min(ullAvailPhys, ullAvailPageFile)` — the same pair `host_available_memory` already exposes to the expert-source path. It never admits *more* than today (when the page file is generous, physical RAM is still the bound); the admission floor logic is untouched, and Linux still reads `MemAvailable`. The two parking log lines drop the word "physical" since the bound can now be the commit charge. ## Test plan - `x86_64-w64-mingw32-g++ -fsyntax-only` on `conversation_memory.cpp` and `_conversation_memory_test.cpp`: the `_WIN32` TU type-checks against real windows.h. - Native build + run of `conversation_memory_test`: 23 checks pass; the Windows-specific check (`*available <= ullTotalPhys`) still holds since the bound only tightens. - `g++ -fsyntax-only` on the Linux path: unchanged, clean. Not tested: the actual 0xC0000409 crash on Windows (no Windows box here) — the change only tightens admission, and the reporter's trace ties every crash to the commit boundary this now respects.
Related on strata.com
Editorial links to help you install, pick models, or read release notes — not part of the upstream thread.