Weekly status #290

Weekly status for the week of 13th March to 19th March.


The highlight of the past week has been the release of LXD 5.12. This release includes 2 new virtual machine related features, along with a whole host of bug fixes, as well as switching the base of the snap package to core22 (equivalent to Ubuntu 22.04).

Please see the release notes and release video for more information:

Additionally @stgraber has added a video covering the pci device type:

Job openings

Canonical Ltd. strengthens its investment into LXD and is looking at building multiple squads under the technical leadership of @stgraber.

As such, we are looking for first line managers (highly technical) and individual contributors to grow the team and pursue our efforts around scalability and clustering.

All positions are 100% remote with some travel for internal events and conferences.

For more info please see LXD related openings at Canonical Ltd (2022-2023)


New features:

  • Added VM generation ID support by way of the new volatile.uuid.generation instance configuration key. This can be used by the hypervisor to indicate to the guest OS that its place in time has moved backwards (such as when an instance is restored from a snapshot or backup).


  • Added support for referencing and linking to specific configuration options in the documentation.
  • Added support for using the full migration protocol when moving instances between cluster members, without having to copy the instance to a temporary name and the renaming at the end. This is a precursor to accommodating VM live migration.
  • Improve migration error handling by running a control connection monitor go routine on the sending side as well as the receive side. If an error occurs on the receive side then the failure result is sent to the sending side and causes the sending go routines to be terminated, whereas previously it was possible for the sending side to get “stuck” running externally called sending processes (such as zfs send).
  • Changed the configuration of the managed bridge network’s dnsmasq process so as not to use a negative DNS cache (i.e do not cache the failure to resolve a DNS name). This helps when certain DNS names are only resolvable intermittently (such as when the host is connected to a VPN which allows resolving internal DNS names). Previously if an instance attempted to resolve such an internal DNS name whilst the LXD host was not connected to the VPN, the result was negatively cached, and so the resolution continued to fail for some time even when connected to the VPN.
  • Use rsync for filesystem volume refreshing in volume-only mode, even for storage pools that support optimized transfer. This is because otherwise there are no previous snapshots to be used for efficient differential optimized transfer, and previously LXD had resorted to transferring the entire volume. Instead using rsync allows for only the changed files to be sent.

Bug fixes:

  • Fixed several issues with the recently added ZFS block mode filesystem volume support, including adding resize support and fixing snapshot handling for the different supported filesystems.
  • Fixed AppArmor issue that was preventing the use of VMs with MicroCeph, as it was unable to access the ceph.conf file.
  • Fixed container CPU balancer to correctly consider that when a container is starting up (and so not yet considered fully “Running”) it is still a candidate to have its cgroup CPU limit settings applied if it has an init PID. This was causing CPU limits to not be applied on instance start up.
  • Fixed an issue with intermittent incorrect listing of instances in a cluster (via API or via lxc list command).
  • Fixed an issue in SimpleStreams image handling where it was possible to write a zero length index cache file if the connection was interrupted.
  • Fixed an issue with missing ZFS volume migration clean up handling on error.



  • Switch from libsystemd’s dbus to dbus-1. This is to make static linking easier, as linking against libsystemd makes that a challenge because while it’s perfectly simple to do, distributions tend not to provide a libsystemd.a.
  • Convert fcntl(FD_CLOEXEC) to SOCK_CLOEXEC.

YouTube videos

The LXD team is running a YouTube channel with live streams covering LXD releases and weekly videos on different aspects of LXD. You may want to give it a watch and/or subscribe for more content in the coming weeks.


Contribute to LXD

Ever wanted to contribute to LXD but not sure where to start?
We’ve recently gone through some effort to properly tag issues suitable for new contributors on Github: Easy issues for new contributors

Upcoming events

  • Nothing to report this week

Ongoing projects

The list below is feature or refactoring work which will span several weeks/months and can’t be tied directly to a single Github issue or pull request.

  • Stable release work for LXC, LXCFS and LXD

Upstream changes

The items listed below are highlights of the work which happened upstream over the past week and which will be included in the next release.




  • Nothing to report this week


  • Nothing to report this week

LXD Charm

  • Nothing to report this week

Distribution work

This section is used to track the work done in downstream Linux distributions to ship the latest LXC, LXD and LXCFS as well as work to get various software to work properly inside containers.


  • Nothing to report this week


  • snapcraft: Transition to core22
  • lxd: Bump to 5.12
  • shmounts: Fix mount propagation bug
  • edk2-vars-generator: Switch to new implementation
  • nasm: Bump to 2.16.01
  • ovn: Bump to 23.03.0
  • sqlite: Bump to 3.41.0
  • minio: Bump to 2023-02-27
  • libtpms: Bump to 0.9.6