Skip to content

"optional" libidn2 in systemd-resolved breaks it entirely #18078

@flokli

Description

@flokli

systemd version the issue has been seen with

247.2

Used distribution

NixOS unstable

Linux kernel version used (uname -a)

Linux pine 5.10.2 #1-NixOS SMP Mon Dec 21 12:30:08 UTC 2020 aarch64 GNU/Linux

CPU architecture issue was seen on

x86_64-linux, aarch64-linux

NixOS uses rpaths to reason about runtime dependencies. Contrary to other distros, there's no default path that's dlopen()'ed, as /usr/lib doesn't exist.

When switching to 247.2, we noticed a regression in systemd-resolved (NixOS/nixpkgs#107067 (comment)). Apparently we first confused it with #18025, but we managed to reproduce resolution failures without DNSOverHTTPS.

There were some reports about it not being able to find libidn2 (at runtime), and together with me seeing the following logs while trying to reproduce it locally:

Dec 24 16:43:10 pine systemd-resolved[689]: Failed to escape hostname: Invalid argument
Dec 24 16:43:10 pine systemd-resolved[689]: Defaulting to hostname 'linux'.

… this did ring a bell.

Apparently, #17292 wasn't correct, and systemd-resolved always needs libidn2 to properly work. This PR should probably be reverted.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bug 🐛Programming errors, that need preferential fixingresolve

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions