Hi,

The openbsd/netbsd CI tasks are occasionally failing due to reaching the
process limit. See e.g.
https://cirrus-ci.com/task/5559228405907456
+psql: error: connection to server on socket 
"/tmp/pg_regress-nQ1wk1/.s.PGSQL.40056" failed: could not fork new process for 
connection: Resource temporarily unavailable

This is due to the ulimit -p 256 in .cirrus.tasks.yml not being high enough.
The ulimit on openbsd couldn't trivially be increased with ulimit, because of
hitting the hard limit.  Instead of increasing the limit in the CI script, the
CI image generation now increases the limits:
  https://github.com/anarazel/pg-vm-images/pull/129

I plan to push this patch soon.

Greetings,

Andres Freund
>From ae6334f514403b60a23d31ab5adfa3ccd29c1a83 Mon Sep 17 00:00:00 2001
From: Andres Freund <[email protected]>
Date: Mon, 5 Jan 2026 13:09:03 -0500
Subject: [PATCH v1] ci: Remove ulimit -p for netbsd/openbsd

Previously the ulimit -p 256 was needed to increase the limit on
openbsd. However, sometimes the limit actually was too low, causing
  "could not fork new process for connection: Resource temporarily unavailable"
errors.  Most commonly on netbsd, but also on openbsd.

The ulimit on openbsd couldn't trivially be increased with ulimit, because of
hitting the hard limit.

Instead of increasing the limit in the CI script, the CI image generation now
increases the limits: https://github.com/anarazel/pg-vm-images/pull/129

Backpatch-through: 18
---
 .cirrus.tasks.yml | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/.cirrus.tasks.yml b/.cirrus.tasks.yml
index 038d043d00e..745bd198b42 100644
--- a/.cirrus.tasks.yml
+++ b/.cirrus.tasks.yml
@@ -384,9 +384,6 @@ task:
     su postgres <<-EOF
       set -e
       ulimit -c unlimited
-      # Otherwise tests will fail on OpenBSD, due to inability to start enough
-      # processes.
-      ulimit -p 256
       meson test $MTEST_ARGS --num-processes ${TEST_JOBS}
     EOF
 
-- 
2.48.1.76.g4e746b1a31.dirty

Reply via email to