New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
check-reqs.eclass: clamp MAKEOPTS based on available memory #23311
base: master
Are you sure you want to change the base?
Conversation
Pull Request assignmentSubmitter: @thesamesam dev-qt/qtwebengine: @gentoo/qt, @gyakovlev Linked bugsBugs linked: 570534 Missing GCO sign-offPlease read the terms of Gentoo Certificate of Origin and acknowledge them by adding a sign-off to all your commits. In order to force reassignment and/or bug reference scan, please append Docs: Code of Conduct ● Copyright policy (expl.) ● Devmanual ● GitHub PRs ● Proxy-maint guide |
Pull request CI reportReport generated at: 2021-12-15 05:35 UTC There are existing issues already. Please look into the report to make sure none of them affect the packages in question: |
To be honest, I'm not sure if this is conceptually sound. The I mean, you're adding a workaround for misconfigured systems to packages where normally it isn't supposed to help anyway. |
I take your point (and agree it is the absolute minimum) but it doesn't change reality either. We get a lot of users who don't realise that's the minimum. The handbook now documents reasonable standards but that doesn't help the thousands and thousands of users over the years who never updated it (and tbh, why should they know to update it?). My expectation would be we use this for pkgs that:
Aside: I don't actually think we're even using check-reqs in its current tree state in enough packages anyway for stuff above the minimum requirements. Not that many fit into both: qtwebengine, maybe llvm/clang, firefox, spidermonkey, rust, webkit-gtk, chromium. So, I don't expect to add this everywhere I just want to have it to avoid having to continue marking qtwebengine dupes and avoid frustration when a long-running build fails. I don't think too much falls into that bin. Alternatively:
Any other ideas? My ultimate goal is avoiding OOM bugs (and ideally users being frustrated by failed long builds). (I also have sympathy for people who try to have a higher |
A warning in Portage would be a good first step. Then we can see how often the problem happens still. |
I've never found the 2G*proc limit to be critical for anything except the largest packages (like firefox, chromium, etc). Those packages are precisely the ones that use the check-reqs eclass. |
Upon reflection (and after spending a lot of time looking at Portage earlier for something else), I don't really want to add even more complexity to Portage if I can help it for now. As probably one of the main devs who handles user support, OOMs happen all the time and part of the reason is that -jN where N = cores without regard for RAM actually works until you hit a big boy like chromium, hence they're confused when they find it doesn't work on a handful of packages. |
5ede9a1
to
9e78c57
Compare
Crank down MAKEOPTS jobs if MAKEOPTS="-jN" is too high for the amount of RAM available (uses amount declared as needed in the ebuild). Typically should be ~2GB per job. Bug: https://bugs.gentoo.org/570534
9e78c57
to
9f7d385
Compare
Pull request CI reportReport generated at: 2022-01-04 21:41 UTC There are existing issues already. Please look into the report to make sure none of them affect the packages in question: |
Kept qtwebengine changes from #23310 in this branch to allow easy testing. Please ignore that for purposes of review.
Very rough and not tested much yet.