Steve, Can someone from Foundations evaluate this bug? Core issue is that when child process dies, the parent process is also killed. Michael On 09/30/2016 02:02 AM, Launchpad Bug Tracker wrote: > bugproxy (bugproxy) has assigned this bug to you for Ubuntu: > > Problem Description > =========================== > I write a simple systemd service which will fork child processes fiercely. But quickly the service failed: > > % sudo systemctl status reproducer.service > ? reproducer.service - Reproducer of systemd services killed by ips > Loaded: loaded (/etc/systemd/system/reproducer.service; disabled; vendor preset: enabled) > Active: failed (Result: exit-code) since Fri 2016-03-18 06:58:37 CDT; 2min 43s ago > Process: 5103 ExecStart=/home/hpt/reproducer/reproducer.sh (code=exited, status=0/SUCCESS) > Main PID: 5105 (code=exited, status=254) > > Mar 18 06:58:36 pinelp3 reproducer.sh[5103]: /home/hpt/reproducer/reproducer.sh: fork: Resource temporarily unavailable > Mar 18 06:58:36 pinelp3 reproducer.sh[5103]: /home/hpt/reproducer/reproducer.sh: fork: Resource temporarily unavailable > Mar 18 06:58:37 pinelp3 reproducer.sh[5103]: /home/hpt/reproducer/reproducer.sh: fork: Resource temporarily unavailable > Mar 18 06:58:37 pinelp3 reproducer.sh[5103]: /home/hpt/reproducer/reproducer.sh: fork: Resource temporarily unavailable > Mar 18 06:58:37 pinelp3 reproducer.sh[5103]: /home/hpt/reproducer/reproducer.sh: fork: Resource temporarily unavailable > Mar 18 06:58:37 pinelp3 reproducer.sh[5103]: /home/hpt/reproducer/reproducer.sh: fork: Resource temporarily unavailable > Mar 18 06:58:37 pinelp3 systemd[1]: reproducer.service: Main process exited, code=exited, status=254/n/a > Mar 18 06:58:37 pinelp3 reproducer.sh[5103]: /home/hpt/reproducer/reproducer.sh: fork: Resource temporarily unavailable > Mar 18 06:58:37 pinelp3 systemd[1]: reproducer.service: Unit entered failed state. > Mar 18 06:58:37 pinelp3 systemd[1]: reproducer.service: Failed with result 'exit-code'. > > The default task limit of systemd services is 512. Looks like the > service is terminated by the kernel's ips cgroup controller. I think > this isn't correct. Child processes cannot be forked shouldn't cause > parent to die. > > > % cat /etc/systemd/system/reproducer.service > [Unit] > Description=Reproducer of systemd services killed by ips > After=multi-user.target > > [Service] > ExecStart=/home/hpt/reproducer/reproducer.sh > Type=forking > > [Install] > WantedBy=multi-user.target > > % cat /home/hpt/reproducer/reproducer.sh > #!/bin/bash > > foo() > { > #exec sh -c "echo $1: \$\$;sleep 60" > echo $1: > sleep 60 > } > > bar() > { > c=1 > while true > do > for ((i=1;i<=2048;i++)) > do > foo $c & > ((c++)) > done > > wait > c=1 > done > } > > # main > bar & > > disown -a > > exit 0 > > > ---uname output--- > Linux pinelp3 4.4.0-12-generic #28-Ubuntu SMP Wed Mar 9 00:40:38 UTC 2016 ppc64le ppc64le ppc64le GNU/Linux > > Machine Type = IBM,8408-E8E,lpar > > Steps to Reproduce > ================================ > 1. install the simple service in "Problem description" > 2. sudo systemctl start reproducer.service > 3. wait 2~3 minutes > > == Comment: #3 - Vaishnavi Bhat