Skip to content

systemd-networkd: Bridge member VLAN configurations lead to segfault #439240

@rdesaintleger

Description

@rdesaintleger

Nixpkgs version

  • Stable (25.05)

Describe the bug

Updating systemd-networkd to 257.8 will lead to segfaults when using bridge vlans. This bug is already corrected upstream : systemd/systemd#38515

Bug appears once upgrade is done. However static network configuration will remain functionnal unless machine is rebooted (in this case, the bridge and slave interfaces are not configured properly).

Steps to reproduce

The following configuration.nix snippet is used :

  systemd.network = {
    enable = true;
      networks = {
        "switch" = {
          enable = true;
          matchConfig = { Name="vmbr1"; };
          networkConfig = {
            LinkLocalAddressing = "no";
            IPv6AcceptRA = "no";
            DHCP = "no";
            VLAN = [ "vmbr1.1" "vmbr1.7" ];
          };
          extraConfig = ''
            [BridgeVLAN]
            VLAN=1
            [BridgeVLAN]
            VLAN=2
            [BridgeVLAN]
            VLAN=3
            [BridgeVLAN]
            VLAN=7
            [BridgeVLAN]
            VLAN=12
            [BridgeVLAN]
            VLAN=15
          '';
        };
        "wifi" = {
          enable = true;
          matchConfig = { Name="wlp2s0"; };
          networkConfig = {
            LinkLocalAddressing = "no";
            IPv6AcceptRA = "no";
            DHCP = "no";
            BatmanAdvanced = "bat0";
          };
        };
        "wired" = {
          enable = true;
          matchConfig = { Name="enp0s31f6"; };
          networkConfig = { Bridge = "vmbr1"; };
          extraConfig = ''
            [BridgeVLAN]
            PVID=1
            VLAN=1
            EgressUntagged=1
            [BridgeVLAN]
            VLAN=2
            [BridgeVLAN]
            VLAN=3
            [BridgeVLAN]
            VLAN=7
            [BridgeVLAN]
            VLAN=12
            [BridgeVLAN]
            VLAN=15
          '';
        };
        "mesh" = {
          enable = true;
          matchConfig = { Name="bat0"; };
          networkConfig = { Bridge = "vmbr1"; };
          extraConfig = ''
            [BridgeVLAN]
            VLAN=1
            [BridgeVLAN]
            VLAN=2
            [BridgeVLAN]
            VLAN=3
            [BridgeVLAN]
            VLAN=7
            [BridgeVLAN]
            VLAN=12
            [BridgeVLAN]
            VLAN=15
          '';
        };
        "lan" = {
          name="vmbr1.1";
          enable = true;
          linkConfig.RequiredForOnline = "no";
          networkConfig = {
            DHCP="yes";
            IPv6AcceptRA = true;
            IPv6LinkLocalAddressGenerationMode="eui64";
            IPv6PrivacyExtensions=false;
          };
          extraConfig = ''
            [DHCPv4]
            UseDNS=false
            UseNTP=false
            UseSIP=false
            UseHostname=false
            UseDomains=false
            UseGateway=false
            [DHCPv6]
            UseDNS=false
            UseHostname=false
            UseDomains=false
            [IPv6AcceptRA]
            UseDNS=no
            UseDomains=no
            UseGateway=false
          '';
        };
        "labo" = {
          name="vmbr1.7";
          enable = true;
          linkConfig.RequiredFamilyForOnline="ipv4";
          networkConfig = {
            DHCP="no";
            IPv6AcceptRA = true;
            IPv6LinkLocalAddressGenerationMode="eui64";
            IPv6PrivacyExtensions=false;
            ConfigureWithoutCarrier="yes";
            MulticastDNS="yes";
          };
          address = [ "x.x.x.x/24" ];
          domains = [ "xxx.net" ];
          dns = [ "x.x.x.x" ];
          routes = [
            { Gateway = "x.x.x.x"; }
            { Gateway = "_ipv6ra"; }
          ];
        };
      };
      netdevs = {
        "lan" = {
          enable = true;
          netdevConfig = { Name = "vmbr1.1"; Kind = "vlan"; };
          vlanConfig = { Id = 1; };
        };
        "labo" = {
          enable = true;
          netdevConfig = { Name = "vmbr1.7"; Kind = "vlan"; };
          vlanConfig = { Id = 7; };
        };
        "switch" = {
          enable = true;
          netdevConfig = {
            Name="vmbr1";
            Kind="bridge";
            MACAddress="xx:xx:xx:xx:xx:xx";
          };
          extraConfig = ''
            [Bridge]
            DefaultPVID=0
            VLANFiltering=yes
          '';
        };
        "mesh" = {
          enable = true;
          netdevConfig = {
            Name = "bat0";
            Kind = "batadv";
          };
          extraConfig = ''
            [BatmanAdvanced]
            GatewayMode=client
            BridgeLoopAvoidance=true
            RoutingAlgorithm=batman-v
            OriginatorIntervalSec=5
          '';
        };
      };
  };

Expected behaviour

Bridge ans slave insterface configured properly

Screenshots

No response

Relevant log output

Aug 31 20:41:49 doko systemd-networkd[1705931]: enp0s31f6: Configuring with /etc/systemd/network/wired.network.
Aug 31 20:41:49 doko systemd-networkd[1705931]: vmbr1.7: Configuring with /etc/systemd/network/labo.network.
Aug 31 20:41:49 doko systemd-networkd[1705931]: wlp2s0: Configuring with /etc/systemd/network/wifi.network.
Aug 31 20:41:49 doko systemd-networkd[1705931]: vmbr1: Configuring with /etc/systemd/network/switch.network.
Aug 31 20:41:49 doko systemd-networkd[1705931]: bat0: Configuring with /etc/systemd/network/mesh.network.
Aug 31 20:41:49 doko systemd-networkd[1705931]: vmbr1.1: Configuring with /etc/systemd/network/lan.network.
Aug 31 20:41:49 doko systemd-networkd[1705931]: bat0: Failed to create netdev: Operation not supported
Aug 31 20:41:49 doko systemd-networkd[1705931]: vmbr1: netdev ready
Aug 31 20:41:49 doko systemd-coredump[1705948]: [🡕] Process 1705931 (systemd-network) of user 152 dumped core.
                                                
                                                Module libcap-ng.so.0 without build-id.
                                                Module libaudit.so.1 without build-id.
                                                Module libattr.so.1 without build-id.
                                                Module libseccomp.so.2 without build-id.
                                                Module libpam.so.0 without build-id.
                                                Module libcrypt.so.2 without build-id.
                                                Module libcap.so.2 without build-id.
                                                Module libacl.so.1 without build-id.
                                                Stack trace of thread 1705931:
                                                #0  0x00007f2ea2977eab __strcmp_avx2 (libc.so.6 + 0x177eab)
                                                #1  0x000055e637c0b35a bridge_vlan_set_message (/nix/store/iq67az90s1wh3962rnja9cpvnzfh8kpg-systemd-257.8/lib/systemd/systemd-networkd + 0x8835a)
                                                #2  0x000055e637c4e7fa link_process_set_link (/nix/store/iq67az90s1wh3962rnja9cpvnzfh8kpg-systemd-257.8/lib/systemd/systemd-networkd + 0xcb7fa)
                                                #3  0x000055e637bb9f76 manager_process_requests (/nix/store/iq67az90s1wh3962rnja9cpvnzfh8kpg-systemd-257.8/lib/systemd/systemd-networkd + 0x36f76)
                                                #4  0x000055e637ba74d0 manager_post_handler (/nix/store/iq67az90s1wh3962rnja9cpvnzfh8kpg-systemd-257.8/lib/systemd/systemd-networkd + 0x244d0)
                                                #5  0x00007f2ea2eadeee source_dispatch (libsystemd-shared-257.so + 0x2adeee)
                                                #6  0x00007f2ea2eae61c sd_event_dispatch (libsystemd-shared-257.so + 0x2ae61c)
                                                #7  0x00007f2ea2eaf180 sd_event_run (libsystemd-shared-257.so + 0x2af180)
                                                #8  0x00007f2ea2eaf3df sd_event_loop (libsystemd-shared-257.so + 0x2af3df)
                                                #9  0x000055e637ba6d42 main (/nix/store/iq67az90s1wh3962rnja9cpvnzfh8kpg-systemd-257.8/lib/systemd/systemd-networkd + 0x23d42)
                                                #10 0x00007f2ea282a47e __libc_start_call_main (libc.so.6 + 0x2a47e)
                                                #11 0x00007f2ea282a539 __libc_start_main@@GLIBC_2.34 (libc.so.6 + 0x2a539)
                                                #12 0x000055e637ba7215 _start (/nix/store/iq67az90s1wh3962rnja9cpvnzfh8kpg-systemd-257.8/lib/systemd/systemd-networkd + 0x24215)
                                                ELF object binary architecture: AMD x86-64

Additional context

No response

System metadata

  • system: "x86_64-linux"
  • host os: Linux 6.12.42, NixOS, 25.05 (Warbler), 25.05.809091.41d292bfc373
  • multi-user?: yes
  • sandbox: yes
  • version: nix-env (Nix) 2.28.4
  • channels(root): "nixos-25.05, nixos-hardware"
  • nixpkgs: /nix/store/plvncw7nnh8bjznhqh1vhkfjiql4n6w2-nixos-25.05/nixos

Notify maintainers

@flokli @kloenk @MisileLab


Note for maintainers: Please tag this issue in your pull request description. (i.e. Resolves #ISSUE.)

I assert that this issue is relevant for Nixpkgs

Is this issue important to you?

Add a 👍 reaction to issues you find important.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions