Arch Linux

Please read this before reporting a bug:
https://wiki.archlinux.org/title/Bug_reporting_guidelines

Do NOT report bugs when a package is just outdated, or it is in the AUR. Use the 'flag out of date' link on the package page, or the Mailing List.

REPEAT: Do NOT report bugs for outdated packages!
Tasklist

FS#33146 - [qemu] qemu-kvm merge breaks existing libvirt virtual machines

Attached to Project: Arch Linux
Opened by Marti (intgr) - Thursday, 20 December 2012, 19:17 GMT
Last edited by Tobias Powalowski (tpowa) - Thursday, 31 January 2013, 21:10 GMT
Task Type Bug Report
Category Packages: Testing
Status Closed
Assigned To Tobias Powalowski (tpowa)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 2
Private No

Details

Just a heads-up, since qemu-kvm was merged into qemu in testing, its binary path also changed.

However, libvirt remembers the qemu path from the time the VM was initially created, so existing VMs will still attempt to run /usr/bin/qemu-kvm. Clearly that will break.

Options:
1. Create a symlink from /usr/bin/qemu-system-$ARCH to /usr/bin/qemu-kvm?
2. Inform users that they should change the "emulator" path in every VM. This *cannot* be done from the virt-manager GUI. One way is running 'virsh edit <vm-name>' and then editing the XML by hand.
3. Bug libvirt upstreams to work out a better solution? Other distros will hit this problem too at some point.
This task depends upon

Closed by  Tobias Powalowski (tpowa)
Thursday, 31 January 2013, 21:10 GMT
Reason for closing:  Fixed
Additional comments about closing:  1.3.1-1
Comment by Jan de Groot (JGC) - Friday, 21 December 2012, 10:35 GMT
Adding the symlink is probably the best option here. In order to provide/replace qemu-kvm, it also has to offer the same binaries.
Comment by Bert Voegele (BertVoegele) - Tuesday, 15 January 2013, 09:08 GMT
The first option leads to :
"Error starting domain: internal error Child process (LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin /usr/bin/qemu-kvm -help) unexpected exit status 1" .

A further attempt with a wrapper script, which gives back the version if called with "-help", gives:
"Error starting domain: internal error cannot parse /usr/bin/qemu-kvm version number in 'qemu-i386 version 1.3.0, Copyright (c) 2003-2008 Fabrice Bellard'"

The second option comes down to roughly the same error messages (/kvm/i386/).

Conclusion : The combination qemu-1.3.0-1 and libvirt-1.0.1-2 does not work out of the box, due to what appears to be a parsing error in libvirt. That leaves option 3 (bug upstream) or option 4 (wait until others hit the issue).
Comment by Marti (intgr) - Tuesday, 15 January 2013, 09:10 GMT
It should be possible to replace /usr/bin/qemu-kvm with a shell script that execs qemu-system-$ARCH, that way QEMU knows which arch was invoked.
Comment by héctor (hacosta) - Tuesday, 29 January 2013, 16:33 GMT
Why keep extra scripts?

A postinst mentioning:
virsh edit $VMNAME
should suffice.
Comment by Tobias Powalowski (tpowa) - Thursday, 31 January 2013, 21:09 GMT
Added hint on upgrade in 1.3.1-1

Loading...