[Bug 2078555] Re: Upgrading from 22.04 to 24.04.01 breaks dnsmasq
Nick Rosbrook
2078555 at bugs.launchpad.net
Tue Jan 28 18:07:52 UTC 2025
** Changed in: ubuntu-release-upgrader (Ubuntu Noble)
Milestone: None => ubuntu-24.04.2
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to ubuntu-release-upgrader in
Ubuntu.
https://bugs.launchpad.net/bugs/2078555
Title:
Upgrading from 22.04 to 24.04.01 breaks dnsmasq
Status in Ubuntu:
Triaged
Status in dnsmasq package in Ubuntu:
Invalid
Status in systemd package in Ubuntu:
Invalid
Status in ubuntu-release-upgrader package in Ubuntu:
Invalid
Status in The Jammy Jellyfish:
New
Status in dnsmasq source package in Jammy:
Invalid
Status in systemd source package in Jammy:
In Progress
Status in ubuntu-release-upgrader source package in Jammy:
Invalid
Status in The Noble Numbat:
New
Status in dnsmasq source package in Noble:
Invalid
Status in systemd source package in Noble:
Won't Fix
Status in ubuntu-release-upgrader source package in Noble:
In Progress
Bug description:
[Impact]
During upgrades, systemd-resolved will be started and enabled, even if it was not previously. This is due to (a) the package split that made systemd-resolved its own package (during kinetic cycle, hence between jammy and noble), and (b)
an ubuntu-release-upgrader quirk that (re)starts systemd-resolved out of stub
mode during the upgrade to avoid DNS resolution failures during the upgrade.
[Test Plan]
The complete test plan requires the fixed version of systemd *and*
ubuntu-release-upgrader.
On a Jammy machine, install systemd from jammy-proposed:
$ cat > /etc/apt/sources.list.d/proposed.list << EOF
deb http://archive.ubuntu.com/ubuntu/ jammy-proposed main universe
EOF
$ cat <<EOF >/etc/apt/preferences.d/proposed-updates
Package: *
Pin: release a=jammy-proposed
Pin-Priority: 400
EOF
$ apt update && apt install -y -t jammy-proposed systemd
$ apt policy systemd
Then, disable systemd-resolved, and install dnsmasq:
$ systemctl disable --now systemd-resolved
$ sed -i 's/nameserver.*/nameserver 1.1.1.1/g' /etc/resolv.conf # Use any DNS server
$ apt install dnsmasq -y
$ systemctl status dnsmasq systemd-resolved
At this point, dnsmasq should be running, and systemd-resolved should
not. Now, we can run the upgrade:
$ do-release-upgrade --proposed
[...]
The upgrade should complete normally. At the end, systemd-resolved
should still be disabled/inactive, and dnsmasq should still be
running:
$ systemctl status dnsmasq systemd-resolved
[Where problems could occur]
systemd:
The patch is adding a new systemd.prerm. Any issues here would be seen
during package upgrades of systemd in/from Jammy. It is designed to
only run during upgrades to Noble from Jammy, so the scope is limited
there. If something did occur, it would be within the deb-systemd-
helper script, which would not be fatal to the systemd.prerm script
given the || true after the invocation.
ubuntu-release-upgrader:
The patch adds a call to systemctl is-active to check whether systemd-
resolved is running. If this was broken, systemd-resolved might be
started during the ugprade anyways. This would not lead to systemd-
resolved being enabled, though.
[Other information]
For the complete upgrade experience to be fixed for affected users,
both of these updates need to land. Hence, we should aim to release
these at the same time. However, having one fix but not the other
would not make the situation any worse.
[Original Description]
Was running Ubuntu 22.04 as home gateway/firewall with dnsmasq as
dns/dhcp server. Previous upgrade from Ubuntu 20.04 to 22.04 had
worked without issue.
After the upgrade to 24.04.01, systemd-resovled was automatically
enabled. The result was that after a reboot, dnsmasq failed to start,
as systemd-resolved had already bound to the necessary port. This in
turn meant that my entire home network lost connectivity as it was
dependant on dnsmasq running to provide both correct dns and dhcp
functionality.
Ideally, during the upgrade process, a check should be made for if
another dns/dhcp service is already enabled, and if so, not enable
systemd-resolved.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+bug/2078555/+subscriptions
More information about the foundations-bugs
mailing list