Keep compile memory reservations per invocation #1047
No reviewers
Labels
No labels
accessibility
autorelease: pending
autorelease: tagged
bug
dependencies
documentation
duplicate
enhancement
github_actions
good first issue
help wanted
invalid
question
testing wanted
wontfix
No milestone
No assignees
1 participant
Due date
No due date set.
Dependencies
No dependencies set
Reference
MagicBeanDev/Hookshot!1047
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/compile-memory-leases"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Compiling one source into separate WebGPU and Vulkan objects can overlap. The memory gate keyed both jobs by the source path, so one job could overwrite the other's reservation and then remove it before
started()registered its process, raisingKeyErrorand undercounting reserved memory.Give each compile invocation its own lease and use it for process registration and cleanup. Memory estimates, RSS accounting, minimum concurrency, worker sizing, scheduling, cache keys and compiler-error handling remain unchanged.
Checks: the actual
MemoryGateandcompile_oneregression deterministically reproduces the originalKeyErrorand lost reservation, then verifies separate reservations, child mappings, compiler/process-creation error cleanup and cache bypass. The existing memory-policy and compiler-failure tests also pass through the focused strict runner on Windows and Linux (3 checks on each). No native compiler, game build or memory-pressure test was run.Refs #1029. This addresses its Windows bookkeeping traceback. The AppImage missing-header symptom mentioned in that thread was independently fixed by #1012.
All hosted checks on
c4a4d053pass: Linux source regressions, Windows source regressions, Windows Vulkan renderer, Builder packaging, AppImage packaging, SPIR-V checks and workflow lint. Release publishing was intentionally skipped for this pull request.Release integration: the official v2.0.8-rc.2 and rc.3 history contains this fix through merge commit 64fdba2. GitHub's PR metadata remains open while the default main branch is at a different revision; this note records released-source incorporation separately from a formal PR merge.