Commit cf96f90
fix(boot): unblock all Quadlet services + dbus-daemon-wsl exec failure
Diagnostics from `quadlet --dryrun` revealed why every Quadlet
"renders but nothing actually starts" -- and `systemctl status
dbus-daemon-wsl` revealed why D-Bus dies even after the OOMScoreAdjust
fix. Three real bugs, all addressed here.
1. Quadlet Label= word-splitting (THE Quadlet boot blocker)
Quadlet's Label= parser word-splits values on whitespace and emits
each word as a separate --label arg to `podman run`. With
`Label=org.opencontainers.image.description=Self-hosted Forgejo on port
3000 (HTTP) and 2222 (git+ssh).` the generated ExecStart looks like:
... --label (Forgejo) --label (HTTP) --label (git+ssh).
--label 2222 --label 3000 --label and --label forge
--label on --label port codeberg.org/forgejo/forgejo:11
The image ref ends up positioned where podman expects another label,
the entire command fails to parse, container never starts. This was
the actual cause of "every Quadlet missing" in the dashboard
(services rendered but ExecStart was malformed).
Fixed in: mios-ai, mios-forge, mios-cockpit-link, mios-forgejo-runner,
ollama, mios-guacamole. Title labels reduced to single tokens
(mios-ai, mios-forge, mios-cockpit-link, mios-forgejo-runner,
mios-ollama, mios-guacamole). Description labels REMOVED entirely --
the unit's [Unit] Description= still carries the long human-readable
text (which doesn't have the parser bug). url + documentation +
io.podman_desktop.openInBrowser labels retained (no spaces).
2. dbus-daemon binary missing -> 203/EXEC
`systemctl status dbus-daemon-wsl.service`:
Process: 154 ExecStart=/usr/bin/dbus-daemon ...
(code=exited, status=203/EXEC)
Fedora CoreOS ships dbus-broker by default and does NOT carry
/usr/bin/dbus-daemon. The MiOS WSL2 fallback unit references that
binary (dbus-broker fails on WSL2 kernels because the audit subsystem
it requires is stripped from MS WSL kernels), so the unit fails
immediately at exec(). Every D-Bus consumer (logind, polkit, cockpit,
homectl, hostnamed) cascade-fails with "Failed to connect to system
scope bus".
Fix: added `dbus-daemon` to PACKAGES.md packages-base so the binary
is present at /usr/bin/dbus-daemon. The unit can now exec it.
3. Dashboard mis-reported every Quadlet as "missing"
service_status() used `systemctl list-unit-files <pattern>` to detect
unit existence. That works for static units in /usr/lib/systemd/system
but doesn't reliably show generator-produced units in
/run/systemd/generator/. Every Quadlet (which IS generator-produced)
showed up as "missing" even when its .service file existed.
Fix: switched to `systemctl show ... LoadState,ActiveState`. LoadState
tells us "does the unit exist at all"; ActiveState tells us whether
it's running. Quadlet-generated units now report their real state.
Adjacent improvement: dashboard previously double-rendered the loop
hint and the ASCII fastfetch logo bled into the multi-line MiOS
custom module output -- both fixed in the previous commit (a2845f4)
by separating fastfetch from the services block.
Cockpit web console at 10.88.0.5:9090 timeout in the latest log: that's
downstream of (2) -- Cockpit needs D-Bus to render the management UI;
bus is dead, web responder hangs. Fixing dbus-daemon should restore it.
Note: 10.88.0.5 is the container subnet IP; from a Windows host, use
https://localhost:9090/ instead (mirrored networking forwards into the
WSL distro).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>1 parent a2845f4 commit cf96f90
8 files changed
Lines changed: 57 additions & 32 deletions
File tree
- etc/containers/systemd
- usr
- libexec/mios
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
39 | | - | |
40 | | - | |
41 | | - | |
42 | | - | |
43 | | - | |
44 | | - | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
45 | 44 | | |
46 | 45 | | |
47 | 46 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
44 | | - | |
45 | | - | |
46 | | - | |
47 | | - | |
48 | | - | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
49 | 50 | | |
50 | 51 | | |
51 | 52 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
33 | | - | |
34 | | - | |
35 | | - | |
36 | | - | |
37 | | - | |
38 | | - | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
91 | 91 | | |
92 | 92 | | |
93 | 93 | | |
94 | | - | |
95 | | - | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
96 | 99 | | |
97 | 100 | | |
98 | 101 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
82 | 82 | | |
83 | 83 | | |
84 | 84 | | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
85 | 91 | | |
86 | 92 | | |
87 | 93 | | |
88 | 94 | | |
89 | 95 | | |
90 | | - | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
91 | 104 | | |
92 | 105 | | |
93 | | - | |
94 | | - | |
95 | | - | |
| 106 | + | |
96 | 107 | | |
97 | 108 | | |
98 | 109 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | | - | |
23 | | - | |
24 | | - | |
25 | | - | |
26 | | - | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
36 | | - | |
37 | | - | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
38 | 41 | | |
39 | | - | |
40 | | - | |
| 42 | + | |
41 | 43 | | |
42 | 44 | | |
43 | 45 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
107 | 107 | | |
108 | 108 | | |
109 | 109 | | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
110 | 119 | | |
111 | 120 | | |
112 | 121 | | |
| |||
0 commit comments