Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
deb/common/rules: fix uncommenting TasksMax
Since systemd version 228, a new setting, `TasksMax`, has appeared, which limits the number of tasks used by a service (via pids cgroup controller). Unfortunately, a default for this setting, `DefaultTaskMax`, is set to 512. In systemd version 231 it is changed to 15% which practically is 4195, as the value from /proc/sys/kernel/pid_max is treated like 100%). Either 512 or 4195 is severily limited value for Docker Engine, as it can run thousands of containers with thousands of tasks in each, and the number of tasks limit should be set on a per-container basis by the Docker user. So, the most reasonable setting for `TasksMax` is `unlimited`. Unfortunately, older versions of systemd warn about unknown `TasksMax` parameter in `docker.service` file, and the warning is rather annoying, therefore this setting is commented out by default, and is supposed to be uncommented by the user. The problem with that is, once the limit is hit, all sorts of bad things happen and it's not really clear even to an advanced user that this setting is the source of issues. Now, `rules` file already contain a hack to check for the systemd version (during build time) and in case the version is greater than 227, uncomment the `TasksMax=unlimited` line. Alas, it does not work during normal builds, the reason being systemd is not installed into build environments. An obvious fix would be to add systemd to the list of installed packages in all Dockerfiles used to build debs. Fortunately, there is a simpler way, as libsystemd-dev is installed, and it's a subpackage of systemd built from the same source and carrying the same version, so it can also be checked. Signed-off-by: Kir Kolyshkin <[email protected]>
- Loading branch information