Repository navigation
fix: stage release downloads on disk, not in /tmp - #218
Merged
MickLesk merged 1 commit intoNov 7, 2026
Merged
Conversation
/tmp is a tmpfs on Debian 13, so a release staged there is charged to the container's memory limit, and without swap nothing can reclaim it. Pulse's 273 MiB archive unpacks to 725 MiB, so its 1 GiB container is OOM-killed or stalls during install, and with the default swap it only gets through by swapping. Stage under /var/tmp instead, which is on disk, as /tmp was on Debian 12. TMPDIR still wins.
Contributor
Try this branchThe engine and the scripts resolve independently, so a production script can COMMUNITY_SCRIPTS_CORE_URL=https://raw.githubusercontent.com/rcourtman/core/fix/stage-releases-on-disk \
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/debian.sh)"Swap Run a script from a fork as wellcurl -fsSL https://raw.githubusercontent.com/rcourtman/core/fix/stage-releases-on-disk/tools/run.sh |
bash -s -- https://raw.githubusercontent.com/YOU/DevScripts/your-branch ct/debian.sh \
https://raw.githubusercontent.com/rcourtman/core/fix/stage-releases-on-diskNote that Useful flags while testing
|
MickLesk
approved these changes
Nov 7, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
✍️ Description
The fix asked about on #212, and my last PR for a while, I promise 🙂
lib/forge.funcstaged release downloads and their extraction withmktemp -d, so in/tmp. On Debian 13 that is a tmpfs, so the staged release counts against the container's memory limit, and without swap nothing can reclaim it. Pulse's 273 MiB release unpacks to 725 MiB, so at its default 1 GB an update stalls or is OOM-killed.The six staging sites now use
_forge_workdir, which creates the directory under${TMPDIR:-/var/tmp}and falls back to/tmp. That puts staging back on disk, where it was on Debian 12. Small metadata files stay in/tmp.Tested with
ct/pulse.shat the default 1024 MiB, updating 6.6.0 to 6.7.0:48041b4)/tmpThe new tests in
tests/forge-clean-install.shfail on main. All tests pass, and ShellCheck reports nothing new.🔗 Related Issue
Related: #212
✅ Prerequisites (X in brackets)
API.txtwas updated to match.🛠️ Type of Change (X in brackets)
README,docs/,CONTRIBUTING.md, or other docs.🤖 AI Assistance (X in brackets)