migration broken by audio dev

Bug #1940288 reported by Christian Ehrhardt 
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
qemu (Ubuntu)
Fix Released
Low
Unassigned
Focal
Won't Fix
Wishlist
Unassigned
Hirsute
Won't Fix
Wishlist
Unassigned
Impish
Fix Released
Low
Unassigned

Bug Description

While migration to older versions/releases isn't supported it is still tried to be working.
With libvirt/qemu in Impish this broke due to audio device handling.

It is fixed in libvirt via v7.6.0 and https://gitlab.com/libvirt/libvirt/-/issues/179

But in qemu it needs a fix that will only be released with qemu 6.1.0
=> https://git.qemu.org/?p=qemu.git;a=commit;h=da77adbaf619c4d170cb42d769145ad1803fbad9

We should backport this to at least Focal so that eventually there are better chances to migrate back there if ever needed.

Tags: qemu-22.04
tags: added: qemu-22.04
Changed in qemu (Ubuntu):
status: New → Triaged
Revision history for this message
Christian Ehrhardt  (paelzer) wrote (last edit ):

While this isn't strictly needed for Impish itself, it will be helpful once there are later versions available and a requirement for the SRU to former releases.

Actually if an old qemu was manually configured with audio device then the forward migration would fail, fixed by this. So it is actually helpful for impish as of today already.

Changed in qemu (Ubuntu Impish):
importance: Undecided → Low
Changed in qemu (Ubuntu Hirsute):
importance: Undecided → Medium
Changed in qemu (Ubuntu Focal):
importance: Undecided → Medium
Changed in qemu (Ubuntu Hirsute):
status: New → Triaged
Changed in qemu (Ubuntu Focal):
status: New → Triaged
Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Migration tests pre-Impish -> Impish -> pre-Impish now work with this applied (even only in impish). I'll have to analyze if we even need the SRUs, probably only for explicitly configured audio devices back then.

summary: - allow backward migration broken by audio dev
+ migration broken by audio dev
Revision history for this message
Christian Ehrhardt  (paelzer) wrote :

Problem:
* With an audiodev defined qemu sends data on migration that breaks the receiving end.

Solution:
 * The fix stops sending a state that isn't needed it is fixed on the source) and thereby
   fixes the migration.

Not important for SRU (under libvirt use cases):
 * This did happen to impish because
   - new libvirt/qemu will auto-add -audiodev now
   - old libvirt (pre impish <v7.2.0) did not do so.
 * Old releases seem not to be affected
   - Their libvirt used an environment variable like
         QEMU_AUDIO_DRV=spice
     on guest start

 * Strictly speaking manual use cases of qemu could have
   been affected
   Big chunks of -audiodev for qemu got added in:
    4.0
    https://gitlab.com/qemu-project/qemu/-/commit/33f18cf7
    4.2
    https://gitlab.com/qemu-project/qemu/-/commit/cfc3fef6
    Focal is 4.2, so therefor SRU it up to there.
 * But since it is sound the use cases would be more desktop'ish
   (less likely to migrate) and furthermore without libvirt which takes
   care of so many quirks for migration (also making it less likely
   to be a real case)

The common non-libvirt use cases through lxd-vm and multipass do not do migration yet and even would bump their qemu to a new version that is fixed.

Please understand me - I think there is no reason "against" SRUing this back to Focal.
But someone would have to outline a reasonable use-case in Focal/Hirsute that needs this.

P.S. before Focal it isn't needed as -audiodev didn't exist

Changed in qemu (Ubuntu Impish):
status: Triaged → Fix Committed
Changed in qemu (Ubuntu Hirsute):
status: Triaged → Won't Fix
Changed in qemu (Ubuntu Focal):
status: Triaged → Won't Fix
importance: Medium → Wishlist
Changed in qemu (Ubuntu Hirsute):
importance: Medium → Wishlist
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (5.3 KiB)

This bug was fixed in the package qemu - 1:6.0+dfsg-2expubuntu1

---------------
qemu (1:6.0+dfsg-2expubuntu1) impish; urgency=medium

  * Merge with Debian experimental, remaining changes:
    - qemu-kvm to systemd unit
      - d/qemu-kvm-init: script for QEMU KVM preparation modules, ksm,
        hugepages and architecture specifics
      - d/qemu-system-common.qemu-kvm.service: systemd unit to call
        qemu-kvm-init
      - d/qemu-system-common.install: install helper script
      - d/qemu-system-common.qemu-kvm.default: defaults for
        /etc/default/qemu-kvm
      - d/rules: call dh_installinit and dh_installsystemd for qemu-kvm
    - Distribution specific machine type
      (LP: 1304107 1621042 1776189 1761372 1761372 1776189)
      - d/p/ubuntu/define-ubuntu-machine-types.patch: define distro machine
        types containing release versioned machine attributes
      - d/qemu-system-x86.NEWS Info on fixed machine type defintions
        for host-phys-bits=true
      - Add an info about -hpb machine type in debian/qemu-system-x86.NEWS
      - ubuntu-q35 alias added to auto-select the most recent q35 ubuntu type
    - Enable nesting by default
      - d/p/ubuntu/enable-svm-by-default.patch: Enable nested svm by default
        in qemu64 on amd
        [ No more strictly needed, but required for backward compatibility ]
    - improved dependencies
      - Make qemu-system-common depend on qemu-block-extra
      - Make qemu-utils depend on qemu-block-extra
    - tolerate ipxe size change on migrations to >=18.04 (LP: 1713490)
      - d/p/ubuntu/pre-bionic-256k-ipxe-efi-roms.patch: old machine types
        reference 256k path
      - d/control-in: depend on ipxe-qemu-256k-compat-efi-roms to be able to
        handle incoming migrations from former releases.
    - d/qemu-system-x86.README.Debian: add info about updated nesting changes
    - d/control*, d/rules: disable xen by default, but provide universe
      package qemu-system-x86-xen as alternative
      [includes compat links changes of 5.0-5ubuntu4]
    - d/p/ubuntu/enable-svm-by-default.patch: update to match v6.0
    - d/p/ubuntu/define-ubuntu-machine-types.patch: add ubuntu machine types
      for v6.0
    - d/p/ubuntu/lp-1929926-*: avoid segfaults by uretprobes (LP 1929926)
    - Ease the use of module retention on upgrades (LP 1913421)
      - debian/qemu-block-extra.postinst: enable mount unit on install/upgrade
  * Dropped Changes [in 1:6.0+dfsg-2exp]:
    - d/control-in: Disable capstone disassembler library support (universe)
    - Disable fuse export (universe dependency)
    - Ease the use of module retention on upgrades (LP 1913421)
      - d/run-qemu.mount, d/rules: provide run-qemu.mount in qemu-block-extra
      - d/rules: only save modules if /run/qemu isn't noexec
      - d/rules: clear all (current and former) modules on purge
    - d/control: qemu 6.0 broke libvirt <7.2 add a breaks to avoid partial
      upgrade issues (LP 1932264)
    - Enable SDL as secondary UI backend (LP 1256185)
      - d/control: add build dependency libsdl2-dev
      - d/control: enable sdl graphics on build
      - d/qemu-system-gui.install: add ui-sdl.so
      - d/control: add run...

Read more...

Changed in qemu (Ubuntu Impish):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.