<div dir="ltr"><div class="gmail_default" style="font-family:comic sans ms,sans-serif">Hi Reindl,<br><br>I have attached a minimalistic repro along with the codes of all the scripts, service files. I suppose Silvio was able to see the files. Please refer to <a href="https://www.mail-archive.com/systemd-devel@lists.freedesktop.org/msg46055.html">https://www.mail-archive.com/systemd-devel@lists.freedesktop.org/msg46055.html</a>.<br><br></div><div class="gmail_default" style="font-family:comic sans ms,sans-serif">I have re-attached the tar again in this email.<br><br><br></div><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><span style="font-family:'comic sans ms',sans-serif">Regards,</span><br></div><div><font face="comic sans ms, sans-serif">Aravindhan Krishnan...</font></div></div></div></div><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, 7 Jun 2021 at 21:53, Reindl Harald <<a href="mailto:h.reindl@thelounge.net">h.reindl@thelounge.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
<br>
Am 07.06.21 um 17:57 schrieb Aravindhan Krishnan:<br>
> Adding Raghav.<br>
> <br>
> And sorry the subject should have stated: Discrepancy in using dhclient <br>
> b/w ubuntu 20.04 and ubuntu 16.04<br>
<br>
and why didn't you fix it in your own reply?<br>
<br>
to your problem:<br>
you have a wild mix of docker, systemd-units and shellscripts but don't <br>
provide the source of the scripts nor the systemd unit<br>
<br>
overly complex for something that can be trivial as:<br>
<br>
[root@srv-rhsoft:~]$ cat /etc/systemd/system/network-wan-dhcp.service<br>
[Unit]<br>
Description=Internet DHCP-Client<br>
<br>
[Service]<br>
Type=forking<br>
ExecStart=/usr/sbin/dhclient -4 -q --no-pid --request-options <br>
subnet-mask,broadcast-address,routers br-wan<br>
PermissionsStartOnly=yes<br>
SuccessExitStatus=80<br>
Restart=always<br>
RestartSec=5<br>
ProtectSystem=strict<br>
ProtectHome=yes<br>
ReadWritePaths=-/var/lib/dhclient<br>
PrivateTmp=yes<br>
NoNewPrivileges=yes<br>
ProtectKernelTunables=yes<br>
ProtectKernelModules=yes<br>
ProtectControlGroups=yes<br>
MemoryDenyWriteExecute=yes<br>
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE <br>
CAP_NET_BROADCAST CAP_NET_RAW<br>
LockPersonality=yes<br>
PrivateDevices=yes<br>
ProtectHostname=yes<br>
RestrictNamespaces=yes<br>
RestrictRealtime=yes<br>
RestrictSUIDSGID=yes<br>
ProtectClock=true<br>
ProtectKernelLogs=true<br>
UMask=077<br>
SystemCallArchitectures=native<br>
SystemCallFilter=@system-service @network-io @privileged<br>
SystemCallFilter=~@aio @chown @clock @cpu-emulation @debug @keyring <br>
@module @mount @obsolete @raw-io @reboot @resources @swap<br>
InaccessiblePaths=-/boot<br>
InaccessiblePaths=-/efi<br>
InaccessiblePaths=-/root<br>
<br>
> On Mon, 7 Jun 2021 at 21:26, Aravindhan Krishnan <br>
> <<a href="mailto:aravindhank11@gmail.com" target="_blank">aravindhank11@gmail.com</a> <mailto:<a href="mailto:aravindhank11@gmail.com" target="_blank">aravindhank11@gmail.com</a>>> wrote:<br>
> <br>
>     Hi Folks,<br>
> <br>
>     I am finding anomalous behavior when I am trying to run dhclient<br>
>     process inside my docker container in vanilla Ubuntu 16.04 host. The<br>
>     service gets into "deactivating" state and is stuck forever. In the<br>
>     mail I have attached a minimalistic reproduction of the issue seen.<br>
> <br>
>     Working logic:<br>
> <br>
>       * There is a sample trial@.service script which invokes the<br>
>         `trial` binary with the option passed to the systemd service via<br>
>         @ option<br>
>       * The valid options are sleep and dhclient_<interface_name><br>
>       * The binary either invokes a long-lived sleep process or dhclient<br>
>         process on the said interface_name based on the input<br>
>       * The binary then spawns `kill_trial.sh` script. The script sleeps<br>
>         for 20 seconds and kills the parent `trial` binary. The kill<br>
>         signal is SIGKILL in the trial example. In the real-world, this<br>
>         can be a SIGSEGV indicating a crash in the parent process.<br>
>       * If the trial binary was started for sleep process things work<br>
>         fine and service goes into "failed" state as expected<br>
>       * However, in case of dhclient, the service is stuck in<br>
>         "deactivating" state if the underlying host OS is Ubuntu 16.04.<br>
>         This works well if the host is running Ubuntu 20.04.<br>
>       * We have kept TimeoutStopSec to infinity, because in real-word<br>
>         deployments, the core collection post a crash takes varying time<br>
>         depending on the memory config on the host.<br>
> <br>
> <br>
>     Steps to reproduce<br>
>     # tar -xf minimal_repro.tar -C minimal_repro/<br>
>     # cd minimal_repro/<br>
>     # docker build -t trial .<br>
>     # docker rm -f trial<br>
>     # docker run -it -d --net=host --privileged -v<br>
>     /sys/fs/cgroup:/sys/fs/cgroup:ro --name trial trial<br>
>     # docker exec -it trial bash<br>
> <br>
>     # systemctl start trial@dhclient_eth1.service<br>
> <br>
>     # #Keep monitoring trial@dhclient_eth1.service -- issue should be<br>
>     seen within 20-30 seconds on Ubuntu 16.04 host<br>
> <br>
>     # systemctl status trial@dhclient_eth1.service<br>
>     ● trial@dhclient_eth1.service - Trial<br>
>           Loaded: loaded (/etc/systemd/system/trial@.service; static;<br>
>     vendor preset: enabled)<br>
>           Active: deactivating (stop-sigterm) (Result: signal) since Mon<br>
>     2021-06-07 13:19:12 UTC; 1min 11s ago<br>
>          Process: 55 ExecStartPre=/bin/bash<br>
>     /etc/systemd/system/trial_service_script.sh pre_start dhclient_eth1<br>
>     (code=exited, status=0/SUCCESS)<br>
>          Process: 56 ExecStart=/bin/bash<br>
>     /etc/systemd/system/trial_service_script.sh start dhclient_eth1<br>
>     (code=killed, signal=KILL)<br>
>         Main PID: 56 (code=killed, signal=KILL)<br>
>            Tasks: 0 (limit: 38590)<br>
>           Memory: 588.0K<br>
>           CGroup:<br>
>     /docker/903fca0cee1387b7c2113a36ee5efdb3a25edd1e60584fe5da5d0c5b5ffd8241/system.slice/system-trial.slice/trial@dhclient_eth1.service<br>
> <br>
>     # #NOTE: `Active: deactivating` -- in stuck state<br>
>     # #Running `systemctl daemon-reload` forces the service to go to<br>
>     failed state<br>
> <br>
>     # systemctl start trial@sleep.service<br>
> <br>
>     # #Keep monitoring trial@sleep.service -- would be killed in 20-30<br>
>     seconds and goes into failed state as expected<br>
> <br>
>     # # systemctl status trial@sleep.service<br>
>     ● trial@sleep.service - Trial<br>
>           Loaded: loaded (/etc/systemd/system/trial@.service; static;<br>
>     vendor preset: enabled)<br>
>           Active: failed (Result: signal) since Mon 2021-06-07 13:38:19<br>
>     UTC; 21s ago<br>
>          Process: 113 ExecStartPre=/bin/bash<br>
>     /etc/systemd/system/trial_service_script.sh pre_start sleep<br>
>     (code=exited, status=0/SUCCESS)<br>
>          Process: 114 ExecStart=/bin/bash<br>
>     /etc/systemd/system/trial_service_script.sh start sleep<br>
>     (code=killed, signal=KILL)<br>
>          Process: 129 ExecStopPost=/bin/bash<br>
>     /etc/systemd/system/trial_service_script.sh post_stop sleep<br>
>     (code=exited, status=0/SUCCESS)<br>
>         Main PID: 114 (code=killed, signal=KILL)<br>
> <br>
>     Please advise on what can help us in alleviating the issue.<br>
_______________________________________________<br>
systemd-devel mailing list<br>
<a href="mailto:systemd-devel@lists.freedesktop.org" target="_blank">systemd-devel@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/systemd-devel" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/systemd-devel</a><br>
</blockquote></div>