Thread (5 messages) 5 messages, 3 authors, 11d ago

Re: [PATCH] ci(dockerized): reduce the PID limit for private repositories

From: Junio C Hamano <hidden>
Date: 2026-07-01 16:55:01

"Johannes Schindelin via GitGitGadget" [off-list ref]
writes:
The underlying reason seems to be a substantial difference in the hosted
runners that execute these Dockerized jobs: forcing the PID limit of the
container to a high number lets the jobs pass, even when running the
complete matrix of all 13 Dockerized jobs concurrently.
Is the "reduce" in the title accurate?  The above description tells
me that what you did was to "raise" the PID limit (i.e., forcing the
PID limit to a high number), presumably because the default PID
limit is way too low for the tests to pass?

And that fix turns constant failures into success (albeit the tests
run very slowly, which is a separate topic that you discuss next).
But that's not
the only difference: The jobs seem to take a lot longer in these
containers than, say, in the containers made available to
https://github.com/git/git.

When forcing a PID limit of 64k in that private repository, the jobs
completed successfully, but they also took a lot longer, between 2x to
2.5x longer, i.e. painfully much longer. Reducing the PID limit to 16k,
the CI jobs still passed, but took an equally long amount of time.
Reducing the PID limit to 8k caused the errors to reappear.
...
It does not look as if the PID limit is the reason for the longer
runtime, seeing as the 64k vs 16k timings deviate no more than as is
usual with GitHub workflows. So let's go for 16k.
So 8k is too low to make them pass, just like the default setting
(whatever it is), but 16k is sufficient, so this patch settles at
that number, which makes sense.
quoted hunk ↗ jump to hunk
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index cf341d74db..85cfedf5b0 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -420,7 +420,9 @@ jobs:
       CI_JOB_IMAGE: ${{matrix.vector.image}}
       CUSTOM_PATH: /custom
     runs-on: ubuntu-latest
-    container: ${{matrix.vector.image}}
+    container:
+      image: ${{ matrix.vector.image }}
+      options: ${{ github.repository_visibility == 'private' && '--pids-limit 16384 --ulimit nproc=16384:16384 --ulimit nofile=32768:32768' || '' }}
     steps:
     - name: prepare libc6 for actions
       if: matrix.vector.jobname == 'linux32'
base-commit: e9019fcafe0040228b8631c30f97ae1adb61bcdc
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help