worker: override DefaultTasksMax
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
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 email@example.com