fix: raise shared-runner process headroom #25
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/shared-runner-nproc"
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?
RLIMIT_NPROC counts every thread owned by the runner UID, including workloads outside a job's visible process namespace. The default of 64 prevents thread-based runtimes such as Node from starting on the shared Nova runner. Raise the finite default to 4096, document the shared-runner behaviour, and cover the default with a unit test.\n\nValidated with python3 -m unittest discover -s tests and nix flake check.
Automated code review
Reviewed commit:
14ad1d98d0dd7c0a03c75dc1e333b1c52bdde96dVerdict: Ready to merge
No blocking or important findings were retained, and deterministic checks passed. Suggestions remain advisory.
Overall assessment
The pull request increases the default process limit from 64 to 4096 in configuration, source code, and documentation, while adding unit tests to verify both the new default and explicit overrides. The change includes appropriate caveats regarding RLIMIT_NPROC scope on shared runners.
Blocking findings
None.
Important findings
None.
Suggestions
None.
Tests and validation
Questions
Review limitations
Diff coverage
README.md: reviewed — included in a context-limited batchreviewer.py: reviewed — included in a context-limited batchtests/test_reviewer.py: reviewed — included in a context-limited batchReview metadata
Implemented the valid suggestion in commit
14ad1d9: command_preexec now has explicit test coverage confirming a configured max_processes value overrides the shared-runner default. All 44 unit tests and nix flake check pass. The README intentionally leaves isolated-runner values to operator discretion because appropriate per-UID headroom depends on runner topology and concurrent workloads.Final readiness update: the refreshed automated review covers
14ad1d9, reports no findings, and its deterministic unit tests pass. The 4096 default is based on direct shared-runner reproduction: Node startup failed with RLIMIT_NPROC values from 64 through 1024 and succeeded at 2048; 4096 provides one doubling of headroom for concurrent runner-UID workloads while retaining a finite limit. All 44 reviewer unit tests and nix flake check pass. PR #25 is ready to merge.