Skip to content

worker: override DefaultTasksMax

Héctor Orón Martínez requested to merge wip-t13138 into collabora/master

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

Edited by Héctor Orón Martínez

Merge request reports