Skip to content

linuxmuster-release-upgrade: fix networkd-wait-online typo, stop masking systemd-resolved wholesale #203

Description

@HappyBasher

Description

Reported by a customer on the beta forum:
https://ask.linuxmuster.net/t/beta-test-linuxmuster-net-7-4/12176/212

sbin/linuxmuster-release-upgrade's "disable obsolete services" step
(lines ~163-169) had two problems:

  1. networkd-wait-online.service isn't a real unit name on Ubuntu
    26.04 - the actual unit is systemd-networkd-wait-online.service.
    systemctl mask networkd-wait-online.service silently created a mask
    for a phantom unit; the real
    systemd-networkd-wait-online.service was never touched. Same class
    of typo as systemd-resolvd vs systemd-resolved, already fixed once
    before in f62a7db (Jan 2025).

  2. Blanket-masking systemd-resolved and
    systemd-networkd-wait-online.service deviates from Ubuntu's standard
    service setup and risks breaking other units that still expect
    network-online.target or systemd-resolved's NSS/D-Bus interface to
    work.

The concrete symptom reported: systemd-resolved's DNS stub listener
binds 127.0.0.1:53 by default, conflicting with samba-ad-dc's own
internal DNS server trying to bind 0.0.0.0:53:

Failed to listen on 0.0.0.0:53 - NT_STATUS_ADDRESS_ALREADY_ASSOCIATED

Fix

Fixed by f504317 (branch 7.3):

  • systemd-networkd-wait-online.service is no longer touched at all.
  • systemd-resolved stays enabled; only its DNS stub listener is
    disabled via /etc/systemd/resolved.conf.d/no-stub.conf
    (DNSStubListener=no) - the actual, narrower cause of the port
    conflict. /etc/resolv.conf itself is unaffected either way, since
    it's already backed up/restored around this whole block regardless of
    what happens to systemd-resolved.
  • isc-dhcp-server6 keeps being masked (genuinely obsolete, unrelated to
    this).

Follow-up

A separate, idempotent repair step for hosts that already completed the
upgrade under the old (masking) code is planned for the 7.4.20 release's
postinst script (unmask + re-enable + apply the same drop-in), so
already-upgraded systems self-heal on their next package update without
needing to re-run the whole release-upgrade script.

🤖 Generated with Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions