Repository navigation
buckconfig: run the daemon in its own cgroup - #282
Merged
Merged
Conversation
Buck runs the daemon and every local action in the cgroup of the shell that started it. Buck therefore cannot measure how much memory an action used, and it cannot kill processes that an action leaves running. Turn on resource control. The daemon then starts in a systemd user scope and runs each action in its own cgroup. `tine init` copies the section, so projects get it too. When memory runs out during a build, Buck keeps every local action running. systemd-oomd or the kernel OOM killer can then kill the daemon, and the build fails. Turn on suspension, so that Buck freezes the newest actions when memory pressure rises and thaws them once it drops. Signed-off-by: Daan De Meyer <daan@amutable.com>
martinpitt
approved these changes
Oct 9, 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.
Buck runs the daemon and every local action in the cgroup of the shell that
started it. Buck therefore cannot measure how much memory an action used, and
it cannot kill processes that an action leaves running. Turn on resource
control. The daemon then starts in a systemd user scope and runs each action
in its own cgroup.
tine initcopies the section, so projects get it too.When memory runs out during a build, Buck keeps every local action running.
systemd-oomd or the kernel OOM killer can then kill the daemon, and the build
fails. Turn on suspension, so that Buck freezes the newest actions when memory
pressure rises and thaws them once it drops.
Signed-off-by: Daan De Meyer daan@amutable.com