s6-rc gets stuck easily (reboot doesn't work, or "s6-rc: fatal: unable to take locks") #9

Open
opened 2024-02-08 17:50:41 +00:00 by dan · 1 comment

It seems all too common to get into a state where any s6-rc operation results in either nothing happening (e.g. when you type "reboot" and it doesn't) you get a message s6-rc: fatal: unable to take locks: Resource busy. Usually this is when some service has failed to start.

Hopefully this is some simple configuration thing I've messed up

It seems all too common to get into a state where any `s6-rc` operation results in either nothing happening (e.g. when you type "reboot" and it doesn't) you get a message `s6-rc: fatal: unable to take locks: Resource busy`. Usually this is when some service has failed to start. Hopefully this is some simple configuration thing I've messed up
dan added the
bug
label 2024-02-08 17:50:41 +00:00
Poster
Owner

On devices with bridges, the reason we can't reboot is that there is a service to add each
lan device to the bridge which does ifwait $dev running, which doesn't
return until there's something plugged in. So s6-rc hangs indefinitely
until the lan switch is fully populated.

Another example of "thing that depends on other thing but which it
is actually OK if neither of them happen" might be "mount a
filesystem if there is a usb mass storage device attached"

We probably need some affordance for services (or bundles) that aren't part of the default target,
but are plumbed them into events of some kind (netlink?) to bring them up/down

(we can use s6-rc instanced services:
https://skarnet.org/software/s6/instances.html)

On devices with bridges, the reason we can't reboot is that there is a service to add each lan device to the bridge which does `ifwait $dev running`, which doesn't return until there's something plugged in. So s6-rc hangs indefinitely until the lan switch is fully populated. Another example of "thing that depends on other thing but which it is actually OK if neither of them happen" might be "mount a filesystem if there is a usb mass storage device attached" We probably need some affordance for services (or bundles) that aren't part of the default target, but are plumbed them into events of some kind (netlink?) to bring them up/down (we can use s6-rc instanced services: https://skarnet.org/software/s6/instances.html)
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: dan/liminix#9
There is no content yet.