networkd-dispatcher starts too late to take effect on boot
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
networkd-dispatcher (Ubuntu) |
Fix Released
|
High
|
Julian Andres Klode | ||
Bionic |
Fix Released
|
High
|
Unassigned |
Bug Description
[Impact]
networkd-
[Test Case]
Start systemd-networkd / boot system with it, ensure the current status is replayed when networkd-dispatcher starts.
[Regression potential]
The current status is replayed when the service is restarted, and more events run at boot, potentially causing slowdown/problems with hooks not expecting to receive an event a second time (after restart). That said, not replaying the current status on restart would mean we might lose important events during that window.
[Original approach]
We should instead have systemd unit dependencies like this (replicating systemd-networkd's own):
[Unit]
Description=
DefaultDependen
After=systemd-
Before=
In local testing, this DTRT.
Changed in networkd-dispatcher (Ubuntu): | |
assignee: | nobody → Julian Andres Klode (juliank) |
importance: | Undecided → High |
tags: | added: id-5affa8cf4534263e12fd1d5b |
description: | updated |
Changed in networkd-dispatcher (Ubuntu Bionic): | |
status: | Triaged → In Progress |
tags: | added: id-5b1030780cc11291cbe073af |
Changed in networkd-dispatcher (Ubuntu): | |
status: | In Progress → Fix Committed |
description: | updated |
We probably also should replace WantedBy= multi-user. target with WantedBy= systemd- networkd. service so we only start it if systemd-networkd is started. Or add an Also=networkd- dispatcher. service to systemd- networkd. service; I don't know what I prefer.