Skip to content

System reboot is blocked by containers in the setup state #980

Closed
@wkz

Description

@wkz

Current Behavior

If a container is configured, but for some reason is not able to complete its setup phase, e.g. because there is no network access to the container registry, then the corresponding Finit service will be "stuck" in the setup state:

admin@infix-00-00-00:~$ initctl
PID   IDENT                STATUS   RUNLEVELS     DESCRIPTION
999   udevd                running  [S-12345-789] Device event daemon (udev)
2393  dbus                 running  [S-123456789] D-Bus message bus daemon
3760  confd                running  [S-12345----] Configuration daemon
6065  netopeer             running  [--12345----] NETCONF server
2394  dnsmasq              running  [S-12345----] DHCP/DNS proxy
6069  tty:0                running  [--12345-789] Getty on tty0
6070  tty:S0               running  [--12345-789] Getty on ttyS0
0     iitod                waiting  [S0123456789] LED daemon
6071  klishd               running  [---2345----] CLI backend daemon
6304  mdns-alias           running  [---2345----] mDNS alias advertiser
0     mstpd                stopped  [S0123456789] Spanning Tree daemon
6073  rauc                 running  [---2345----] Software update service
0     resolvconf           done     [S-12345----] Update DNS configuration
6009  statd                running  [S-12345----] Status daemon
6203  staticd              running  [---2345----] Static routing daemon
2389  syslogd              running  [S0123456789] System log daemon
2390  watchdogd            running  [S0123456789] System watchdog daemon
6079  zebra                running  [---2345----] Zebra routing daemon
6082  mdns                 running  [---2345----] Avahi mDNS-SD daemon
6084  container:foo        setup    [---2345----] container foo
6087  lldpd                running  [---2345----] LLDP daemon (IEEE 802.1ab)
6095  netbrowse            running  [---2345----] Network browser
6098  nginx                running  [---2345----] Web server
6101  rousette             running  [--12345----] RESTCONF server
6106  sshd                 running  [---2345----] OpenSSH daemon
6110  ttyd                 running  [---2345----] Web terminal daemon (ttyd)

When a service is in this state, Finit is not able to stop the service:

admin@infix-00-00-00:~$ initctl stop container:foo
admin@infix-00-00-00:~$ initctl
PID   IDENT                STATUS   RUNLEVELS     DESCRIPTION
999   udevd                running  [S-12345-789] Device event daemon (udev)
2393  dbus                 running  [S-123456789] D-Bus message bus daemon
3760  confd                running  [S-12345----] Configuration daemon
6065  netopeer             running  [--12345----] NETCONF server
2394  dnsmasq              running  [S-12345----] DHCP/DNS proxy
6069  tty:0                running  [--12345-789] Getty on tty0
6070  tty:S0               running  [--12345-789] Getty on ttyS0
0     iitod                waiting  [S0123456789] LED daemon
6071  klishd               running  [---2345----] CLI backend daemon
6304  mdns-alias           running  [---2345----] mDNS alias advertiser
0     mstpd                stopped  [S0123456789] Spanning Tree daemon
6073  rauc                 running  [---2345----] Software update service
0     resolvconf           done     [S-12345----] Update DNS configuration
6009  statd                running  [S-12345----] Status daemon
6203  staticd              running  [---2345----] Static routing daemon
2389  syslogd              running  [S0123456789] System log daemon
2390  watchdogd            running  [S0123456789] System watchdog daemon
6079  zebra                running  [---2345----] Zebra routing daemon
6082  mdns                 running  [---2345----] Avahi mDNS-SD daemon
6084  container:foo        setup    [---2345----] container foo
6087  lldpd                running  [---2345----] LLDP daemon (IEEE 802.1ab)
6095  netbrowse            running  [---2345----] Network browser
6098  nginx                running  [---2345----] Web server
6101  rousette             running  [--12345----] RESTCONF server
6106  sshd                 running  [---2345----] OpenSSH daemon
6110  ttyd                 running  [---2345----] Web terminal daemon (ttyd)

For the same reason, the Finit is not able to reboot the system either, since it will be stuck waiting for foo to complete its setup.

Expected Behavior

Finit should enforce the same signaling behavior with setup/teardown as i does for running services, i.e. send the setup/teardown a SIGTERM, give it a few seconds to shutdown gracefully, and send a SIGKILL as a last resort.

Steps To Reproduce

No response

Additional information

No response

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingcn:styx

Type

No type

Projects

Status

Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions