cmd_uninstall_linux stops the user quadlets and services and removes the binary, but it never calls lerd uninstall or the DNS teardown, and it prints no warning. The macOS path handles this properly, it explicitly warns that the resolver is only removed by lerd uninstall and offers to abort.
Before the offline resolution work in #936 this leaked two inert config files. Now it leaves /etc/systemd/system/lerd-dns-link.service enabled, so every boot creates a lerd0 interface pinning ~test at a dnsmasq that no longer exists, and /etc/systemd/resolved.conf.d/lerd-fallback.conf still holds an empty FallbackDNS=, so the host has resolved's fallbacks disabled permanently. The NetworkManager rule and the dispatcher script also stay. The binary is gone at that point, so nothing on the machine can undo any of it.
lerd uninstall and lerd dns:disable both clean up correctly, the gap is only in the shell installer.
There is a related durability problem worth folding in. The fallback drop in is written under a link success guard, but the guard only covers the first write, and nothing removes the file if the link later stops working. A host that loses the dummy module after a kernel update ends up with fallbacks disabled and no lerd0, which is the strictly worse state the comment in setup.go says must not happen.
cmd_uninstall_linuxstops the user quadlets and services and removes the binary, but it never callslerd uninstallor the DNS teardown, and it prints no warning. The macOS path handles this properly, it explicitly warns that the resolver is only removed bylerd uninstalland offers to abort.Before the offline resolution work in #936 this leaked two inert config files. Now it leaves
/etc/systemd/system/lerd-dns-link.serviceenabled, so every boot creates alerd0interface pinning~testat a dnsmasq that no longer exists, and/etc/systemd/resolved.conf.d/lerd-fallback.confstill holds an emptyFallbackDNS=, so the host has resolved's fallbacks disabled permanently. The NetworkManager rule and the dispatcher script also stay. The binary is gone at that point, so nothing on the machine can undo any of it.lerd uninstallandlerd dns:disableboth clean up correctly, the gap is only in the shell installer.There is a related durability problem worth folding in. The fallback drop in is written under a link success guard, but the guard only covers the first write, and nothing removes the file if the link later stops working. A host that loses the dummy module after a kernel update ends up with fallbacks disabled and no
lerd0, which is the strictly worse state the comment insetup.gosays must not happen.