Summary: | start merging the finished builds when the tmpfs goes below a certain amount of free space | ||
---|---|---|---|
Product: | Portage Development | Reporter: | Andreas K. Hüttel <dilfridge> |
Component: | Core | Assignee: | Portage team <dev-portage> |
Status: | IN_PROGRESS --- | ||
Severity: | normal | CC: | eschwartz, esigra, flow, zmedico |
Priority: | Normal | Keywords: | PullRequest |
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
See Also: |
https://bugs.gentoo.org/show_bug.cgi?id=663324 https://github.com/gentoo/portage/pull/1349 https://github.com/gentoo/portage/pull/1351 https://bugs.gentoo.org/show_bug.cgi?id=937037 |
||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 184128 |
Description
Andreas K. Hüttel
2024-06-15 23:15:28 UTC
This should be pretty easy to do, since it will be similar to --load-average in implementation. Like --load-average, it will monitor the value of a system property and prevent new jobs from starting when the value goes beyond a user defined threshold. For background, in bug 663324 portage was enhanced with FEATURES=merge-wait. The goal is that we shouldn't merge one package while another is in the process of being compiled, as that can introduce unpredictable breakage. The downside is that actually merging a package may involve winning a race condition depending on the precise parallelization. Regularly draining the pending mergeable builds is sensible. As discussed on IRC, there's an interesting discussion about whether to do this based on possibly-fragile free space / inode heuristics or whether to use # of packages. But either way, something should be implemented. (In reply to Eli Schwartz from comment #2) > As discussed on IRC, there's an interesting discussion about whether to do > this based on possibly-fragile free space / inode heuristics or whether to > use # of packages. But either way, something should be implemented. Wwe can add a separate option for each, since it only adds an additional user threshold to monitor. For example we could name the options --jobs-tmpdir-space-threshold and --jobs-merge-wait-threshold. (In reply to Eli Schwartz from comment #2) > Regularly draining the pending mergeable builds is sensible. Implemented --jobs-merge-wait-threshold in https://github.com/gentoo/portage/pull/1349. Opened https://github.com/gentoo/portage/pull/1351 to supersede https://github.com/gentoo/portage/pull/1345 and distinguish between both used blocks and used files (inodes). |