The vast majority of autopkgtest failures were infrastructure issues,
and have been resolved. However, netplan.io failures remain. Upon
inspection[1], I see the `diff` test failing with:

```
5266s 
5266s ======================================================================
5266s ERROR: test_missing_interfaces 
(__main__.TestNetworkManager.test_missing_interfaces)
5266s ----------------------------------------------------------------------
5266s Traceback (most recent call last):
5266s   File "/tmp/autopkgtest.n6JzBL/build.wjC/src/tests/integration/diff.py", 
line 114, in test_missing_interfaces
5266s     diff = json.loads(subprocess.check_output(['netplan', 'status', 
'--diff', '-f', 'json']))
5266s                       
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
5266s   File "/usr/lib/python3.12/subprocess.py", line 466, in check_output
5266s     return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
5266s            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
5266s   File "/usr/lib/python3.12/subprocess.py", line 571, in run
5266s     raise CalledProcessError(retcode, process.args,

[ ... ]

```

This is easily re-produced in a noble container with systemd
255.4-1ubuntu8.9 from noble-proposed (and the issue is NOT present when
using 255.4-1ubuntu8.8). Inspecting the journal, we see that this
command triggers an assertion failure:

```
root@n:~# networkctl --json=pretty
Failed to get description: Message recipient disconnected from message bus 
without replying
root@n:~# journalctl -u systemd-networkd --since="10s ago"
Jul 01 14:05:40 n systemd-networkd[1845]: Got message type=method_call 
sender=:1.53 destination=org.freedesktop.network1 
path=/org/freedesktop/network1 interface=org.freedesktop.DBus.Properties 
member=Get  cookie=2 reply_cookie=0 signatur>
Jul 01 14:05:40 n systemd-networkd[1845]: Sent message type=method_return 
sender=n/a destination=:1.53 path=n/a interface=n/a member=n/a cookie=11 
reply_cookie=2 signature=v error-name=n/a error-message=n/a
Jul 01 14:05:40 n systemd-networkd[1845]: Got message type=method_call 
sender=:1.53 destination=org.freedesktop.network1 
path=/org/freedesktop/network1 interface=org.freedesktop.network1.Manager 
member=Describe  cookie=3 reply_cookie=0 si>
Jul 01 14:05:40 n systemd-networkd[1845]: Assertion 'm' failed at 
src/network/networkd-route-util.c:440, function 
manager_get_route_table_to_string(). Aborting.
Jul 01 14:05:41 n systemd[1]: systemd-networkd.service: Main process exited, 
code=dumped, status=6/ABRT
Jul 01 14:05:41 n systemd[1]: systemd-networkd.service: Failed with result 
'core-dump'.
```

Now, in route_append_json() in src/network/networkd-json.c, there is the
following:

```
        manager = route->link ? route->link->manager : route->manager;

        assert(manager);

[ ... ]
        
             r = manager_get_route_table_to_string(route->manager, 
route->table, /* append_num = */ false, &table);
                if (r < 0)
                        return r;
```

Namely, the call to manager_get_route_table_to_string() passes
route->manager directly, instead of manager initialized above. This
triggers the assertion failure noted in the log above.

Hence, unfortunately systemd in noble-proposed introduces a regression,
and a new upload is required to fix it.

[1] https://autopkgtest.ubuntu.com/results/autopkgtest-
noble/noble/amd64/n/netplan.io/20250626_105746_f3923@/log.gz

** Tags removed: verification-done verification-done-noble
** Tags added: regression-update verification-failed verification-failed-noble

** Tags removed: regression-update
** Tags added: regression-proposed

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to systemd in Ubuntu.
https://bugs.launchpad.net/bugs/2098183

Title:
  Preserve IPv6 configurations when `KeepConfiguration=dhcp-on-stop` is
  set

Status in systemd package in Ubuntu:
  Fix Released
Status in systemd source package in Focal:
  Won't Fix
Status in systemd source package in Jammy:
  Won't Fix
Status in systemd source package in Noble:
  Fix Committed
Status in systemd source package in Oracular:
  Won't Fix
Status in systemd source package in Plucky:
  Fix Released

Bug description:
  [Impact]
  The IPv6 configuration is being cleared even though `KeepConfiguration` is 
set to `yes`, causing the iSCSI backend system to hang during shutdown.

  [Fix]
  Systemd upstream has addressed this issue.
  https://github.com/systemd/systemd/pull/34989

  [Test Plan]
  <Verify the functionality of KeepConfiguration in preserving IPv6 
configurations>
  1. Set up a machine with an iSCSI backend in an IPv6-only environment.
  2. Configure the `KeepConfiguration` option for each network device 
individually using drop-in configuration files (e.g., 
`/etc/systemd/network/*.network.d/*.conf`) or set the `"critical"` option to 
`true` in the Netplan configuration.
  3. Power off the machine and verify that the system does not hang.

  <Verify the serialization and deserialization functionality in the 
systemd-networkd service>
  1. Enable debugging for systemd-networkd
  > mkdir -p /etc/systemd/system/systemd-networkd.service.d/
  > vim /etc/systemd/system/systemd-networkd.service.d/10-debug.conf
  ===
  [Service]
  Environment=SYSTEMD_LOG_LEVEL=debug
  ===
  systemctl daemon-reload
  2. Restart the systemd-networkd service twice using the `systemctl restart 
systemd-networkd` command.
  3. Confirm that serialization and deserialization are functioning correctly 
by checking `/var/log/syslog`
  2025-03-13T00:35:01.540134+00:00 oracular systemd-networkd[2998]: 
Serializing...
  2025-03-13T00:35:01.540165+00:00 oracular systemd-networkd[2998]: enp0s9: 
Serializing DHCPv4 address (configured): 10.0.2.100/24 broadcast 10.0.2.255 
(valid forever, preferred forever), flags: permanent, scope: global, label: n/a
  2025-03-13T00:35:01.540193+00:00 oracular systemd-networkd[2998]: enp0s9: 
Serializing DHCPv6 address (configured): 
2603:c020:4016:8201:48ee:6b22:d3e4:2e8/128 (valid for 1d 56min 49s, preferred 
for 23h 56min 49s), flags: no-prefixroute, scope: global
  2025-03-13T00:35:01.540218+00:00 oracular systemd-networkd[2998]: 
Serialization completed.
  ...
  2025-03-13T00:35:01.596591+00:00 oracular systemd-networkd[3029]: 
Deserializing...
  2025-03-13T00:35:01.596612+00:00 oracular systemd-networkd[3029]: enp0s9: 
Deserialized DHCPv4 address (configured): 10.0.2.100/24 broadcast 10.0.2.255 
(valid forever, preferred forever), flags: permanent, scope: global, label: n/a
  2025-03-13T00:35:01.596635+00:00 oracular systemd-networkd[3029]: enp0s9: 
Deserialized DHCPv6 address (configured): 
2603:c020:4016:8201:48ee:6b22:d3e4:2e8/128 (valid for 1d 56min 49s, preferred 
for 23h 56min 49s), flags: no-prefixroute, scope: global
  2025-03-13T00:35:01.596662+00:00 oracular systemd-networkd[3029]: 
Deserialization completed.

  <Verify that the IP address is removed when KeepConfiguration=no is set>
  1. Check the name of the current network configuration file:
  > ls /run/systemd/network/
  10-netplan-enp0s9.link 10-netplan-enp0s9.network
  2. Create a drop-in directory and override the KeepConfiguration setting:
  > mkdir -p /etc/systemd/network/10-netplan-enp0s9.network.d
  > vim 
/etc/systemd/network/10-netplan-enp0s9.network.d/10-netplan-enp0s9.network.conf
  ===
  [Network]
  KeepConfiguration=no
  ===
  3. Restart the systemd-networkd service to apply the changes:
  > systemctl restart systemd-networkd
  4. Stop the systemd-networkd service and verify the IP address is dropped:
  > systemctl stop systemd-networkd
  > ip a

  [Where problems could occur]
  The patches introduce network serialization and deserialization behavior, 
ensuring that DHCPv6 addresses are preserved when `KeepConfiguration=yes` is 
set. If any regressions occur, error messages may appear when restarting 
`systemd-networkd`, but they will be ignored. Both IPv4/IPv6 configuration and 
the IPv6 connection may be affected.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/2098183/+subscriptions


-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to