worker: override DefaultTasksMax
Compare changes
Files
2+ 2
− 0
The following error
[ 67s] Unpacking gcc-7 (7.3.0-16ubuntu3) ...
[ 67s] dpkg-deb: unrecoverable fatal error, aborting:
[ 67s] fork failed: Resource temporarily unavailable
[ 67s] dpkg: error processing archive /var/cache/apt/archives/gcc-7_7.3.0-16ubuntu3_i386.deb (--unpack):
[ 67s] dpkg-deb --fsys-tarfile subprocess returned error exit status 2
[ 67s] dpkg: unrecoverable fatal error, aborting:
[ 67s] fork failed: Resource temporarily unavailable
[ 67s] /usr/sbin/debootstrap: 996: /usr/sbin/debootstrap: Cannot fork
[...]
happens since all builds happen in the same cgroup which is limited to 4915
tasks by systemd's per-service defaults. If it reaches a total of
4915 tasks (processes and threads) calls like fork()
, clone()
,
pthread_create()
will fail.
Raise the limit to 64000 processes, which is similar to the NPROC rlimit that would be used if the cgroup didn't impose a task limit at all.
This is a short term fix proposed by Simon McVittie, while the long term
solution should place each bs_worker
instance in its own systemd-managed
cgroup. The default task limit of 4915 might then be adequate.
Signed-off-by: Héctor Orón Martínez hector.oron@collabora.com