Is there an existing issue for this?
Current Behavior
svc-de/run is #!/usr/bin/with-contenv bash, so it snapshots the container environment when it starts. Variables written at runtime into /run/s6/container_environment/ by a legacy cont-init.d script (or an init-* oneshot that is not a declared dependency of svc-de) race against it: s6-rc-db all-dependencies svc-de does not list the legacy-cont-init compatibility oneshot. On slow storage, svc-de can win the race and start the openbox session (and any app it launches) before those vars exist, so the desktop comes up without them. It is deterministic on slow appdata because cont-init does heavy I/O first.
Expected Behavior
Either svc-de declares a dependency on the legacy cont-init compatibility oneshot, or it is documented that variables the desktop must see should be image ENV (or re-exported in autostart), not only runtime /run/s6/container_environment/ writes.
Steps To Reproduce
- In a downstream cont-init.d script, do some heavy I/O, then write
printf '%s' value > /run/s6/container_environment/FOO.
- Start the container on slow storage.
- The openbox session sometimes starts without FOO in its environment.
Environment
- Base: ghcr.io/linuxserver/baseimage-selkies (current), X11 mode (Xvfb + openbox)
Docker creation
docker run -d --name selkies-test -p 3001:3001 --shm-size=1g ghcr.io/linuxserver/baseimage-selkies:ubunturesolute
Container logs
No error; the session simply lacks the runtime-written vars when svc-de wins the race.
Workaround downstream is to re-export in autostart, but a dependency edge or a short docs note would save others the debugging. Happy to help if a dependency edge is the preferred fix.
Is there an existing issue for this?
Current Behavior
svc-de/runis#!/usr/bin/with-contenv bash, so it snapshots the container environment when it starts. Variables written at runtime into/run/s6/container_environment/by a legacycont-init.dscript (or aninit-*oneshot that is not a declared dependency of svc-de) race against it:s6-rc-db all-dependencies svc-dedoes not list the legacy-cont-init compatibility oneshot. On slow storage, svc-de can win the race and start the openbox session (and any app it launches) before those vars exist, so the desktop comes up without them. It is deterministic on slow appdata because cont-init does heavy I/O first.Expected Behavior
Either svc-de declares a dependency on the legacy cont-init compatibility oneshot, or it is documented that variables the desktop must see should be image ENV (or re-exported in autostart), not only runtime
/run/s6/container_environment/writes.Steps To Reproduce
printf '%s' value > /run/s6/container_environment/FOO.Environment
Docker creation
Container logs
No error; the session simply lacks the runtime-written vars when svc-de wins the race.
Workaround downstream is to re-export in autostart, but a dependency edge or a short docs note would save others the debugging. Happy to help if a dependency edge is the preferred fix.