Release of libvirt-7.3.0

Jiri Denemark jdenemar at
Mon May 3 09:11:12 UTC 2021

The 7.3.0 release of both libvirt and libvirt-python is tagged and
signed tarballs and source RPMs are available at

Thanks everybody who helped with this release by sending patches,
reviewing, testing, or providing any other feedback. Your work is
greatly appreciated.

* New features

  * xen: Support domains with more than 4TB

    The xen driver now supports domains with more than 4TB of memory with
    xen >= 4.13.

  * qemu: add socket for virtiofs filesystems

    Libvirt now supports ``filesystem`` devices that connect to
    a ``virtiofsd`` daemon launched outside of libvirtd, via the
    ``socket`` attribute of the ``source`` element.

  * nodedev: Add ability to manage persistent mediated devices

    Persistent mediated devices can now be managed with libvirt.
    ``virNodeDeviceDefineXML()`` defines a new device,
    ``virNodeDeviceUndefine()`` removes an existing definition, and
    ``virNodeDeviceCreate()`` starts a device definition that is currently
    inactive. Corresponding virsh commands ``nodedev-define``,
    ``nodedev-undefine``, and ``nodedev-start`` were also added.
    ``nodedev-list`` only lists active devices by default. Inactive device
    definitions can be shown with the new ``--inactive`` and ``--all`` flags.

  * qemu: Allow use of qemu's ``-compat`` option

    Curious developers or testers now can enable certain ``-compat`` modes which
    allow to notice use of deprecated commands and options as qemu will use the
    selected method to notify the user. The new behaviour can be requested using
    either the ``deprecation_behavior`` option in ``qemu.conf`` for all VMs or
    using ``<qemu:deprecation behavior='...'/>`` in the VM XML.

* Improvements

  * virsh: Improve errors with ``virsh snapshot-create-as``

    The XML document constructed by virsh was forced through XML schema
    validation which yielded unintelligible error messages in cases such as
    when the path to the new image did not start with a slash. XML documents
    are no longer validated as the XML parser actually has better error
    messages which allow users to figure the problem out quickly.

  * qemu: Terminate backing store when doing a full-chain block pull

    When pulling everything into the overlay image the chain can be terminated
    since we know that it won't depend on any backing image and thus can prevent
    attempts to probe the backing chain.

  * qemu: Expose disk serial in virDomainGetGuestInfo()

    The ``virDomainGetGuestInfo()`` reports disk serial number among with other
    disk information.

* Bug fixes

  * qemu: Fix crash of libvirt on full block pull of a disk

    When the persistent definition contains a compatible disk (meaning the
    definition of the running and persistent config match) a block pull job
    would leave a dangling pointer in the config definition which resulted
    in a crash.

  * qemu: Use proper job cancelling command

    Libvirt's API contract for aborting a block copy job in 'ready' state
    declares that the destination image of the copy will contain a consistent
    image of the disk from the time when the block job was aborted. This
    requires that libvirt uses the proper cancelling qemu command to ensure
    that the data is consistent which was not the case.

  * qemu: Don't attempt storage migration when there are no migratable disks

    Due to a logic bug introduced in the previous release libvirt would attempt
    to migrate disks in case when no disks are selected/eligible for migration.

  * qemu: Fix very rare race when two block job 'ready' events are delivered

    In certain high-load scenarios, qemu might deliver the 'ready' event twice
    and if it's delivered when pivoting to the destination during a block copy
    job, libvirt would get confused and execute the code as if the job were

  * lxc: Fix container destroy with CGroupsV2

    When an LXC container was started and the host used CGroupsV2 it might have
    had created nested controllers under the container's scope. Libvirt was
    unaware and thus destroying the container failed with a cryptic error:
    ``failed to get cgroup backend for 'pathOfController'``. The CGroup removal
    code was reworked and is now capable of dealing with such scenario.

  * bash-completion: Fix argument passing to $1

    Due to a bug in bash completion script, the auto completion did not work
    properly when a connection URI or read only flag were specified on
    ``virsh`` or ``virt-admin`` command line.



More information about the libvir-list mailing list