Univention Bugzilla – Bug 22021
Speicherstand geht verloren, wenn Resume einer Instanz fehlschlägt
Last modified: 2011-12-13 15:49:45 CET
Auf einem 2.4-2 Master unter KVM aufgetreten: Speichern&Beenden -> Hostspeicher füllen(viele Maschinen starten) -> Resume der Instanz -> Speicherstand weg (normaler Boot) Aus den Logs: /var/log/libvirt/qemu/ucs2.3-0_basis_amd64.log: 2011-03-30 09:37:56.960: starting up LC_ALL=C PATH=/sbin:/bin:/usr/sbin:/usr/bin QEMU_AUDIO_DRV=none /usr/bin/kvm -S -M pc-0.14 -enable-kvm -m 2048 -smp 2,sockets=2,cores=1,threads=1 -name ucs2.3-0_basis_amd64 -uuid 656957aa-13a0-6922-5d08-3a39561f9775 -nodefconfig -nodefaults -chardev socket,id=monitor,path=/var/lib/libvirt/qemu/ucs2.3-0_basis_amd64.monitor,server,nowait -mon chardev=monitor,mode=readline -rtc base=utc -boot cnd -drive file=/var/lib/libvirt/images/ucs_2.3-0-091215-dvd-amd64.iso,if=none,media=cdrom,id=drive-ide0-0-0,readonly=on,format=raw -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 -drive file=/var/lib/libvirt/images/ucs230basis.qcow2,if=none,id=drive-ide0-0-1,format=qcow2 -device ide-drive,bus=ide.0,unit=1,drive=drive-ide0-0-1,id=ide0-0-1 -netdev tap,fd=24,id=hostnet0 -device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:12:7c:03,bus=pci.0,addr=0x3 -usb -device usb-tablet,id=input0 -vnc 0.0.0.0:5 -k de -vga cirrus -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4 -option-rom /usr/share/kvm/pxe-rtl8139.bin Failed to allocate 2147483648 B: Cannot allocate memory /var/log/univention/virtual-machine-manager-daemon-errors.log: libvir: QEMU error : operation failed: migration to 'exec:cat | { dd bs=4096 seek=1 if=/dev/null && dd bs=1048576; } 1<>'/var/lib/libvirt/qemu/save/ucs2.3-0_basis_amd64.save'' failed: migration failed libvir: QEMU error : operation failed: failed to retrieve chardev info in qemu with 'info chardev'
Patch für libvirt-0.9.0: <http://www.redhat.com/archives/libvir-list/2011-April/msg00385.html>
Dieses Problem ist auf isala auch aufgetreten, allerdings aus einem anderen Grund: der Symlink auf unser latest-amd64.iso war zum Zeitpunkt des Resumes ein broken symlink, weshalb der Resume fehlgeschlagen ist: error: Failed to start domain sschwardt_30-Mas64-Installer-52 error: internal error process exited while connecting to monitor: kvm: -drive file=/var/univention/buildsystem2/isotests/ucs_3.0-0-latest-amd64.iso,if=none,media=cdrom,id=drive-ide0-0-1,readonly=on,format=raw: could not open disk image /var/univention/buildsystem2/isotests/ucs_3.0-0-latest-amd64.iso: No such file or directory Nach dem ersten Startversuch war der gespeicherte Zustand der VM nicht mehr vorhanden.
Das ist jetzt schon wiederholt vorgekommen, das durch verschiedenste Fehler der kvm Prozeß nicht gestartet werden konnte und dadurch der gesicherte Zustand verloren ging: - nicht genügend Speicher - Dateirechte der Image-Dateien erlauben keinen Zugriff - CD-ROM-iso-Datei nicht mehr vorhanden
Backport of libvirt-v0.9.0-49-ga73bbfc: Check the return value of qemuDomainObjResore() for success before blindly deleting the managed save state. svn9937, libvirt_0.8.7-1.104.201111221644 ChangeLog: \item A bug was fixed in \ucsName{libvirt}: On failed resumes the saved state was unconditionally deleted (\ucsBug{22021}).
Ich bin folgendermaßen vorgegangen: - XP Instanz mit mehreren CDROM-Laufwerken und Festplatten erstellt - Instanz gestartet und erste Schritte der Installation vorgenommen - Snapshot erstellt - Instanz beendet - Ein eingebundenes ISO-Image verschoben - Snapshot wiederhergestellt -> Das ist mit einer Fehlermeldung fehlgeschlagen - ISO-Image zurück geschoben - Snapshot wiederhergestellt -> Installation konnte fortgesetzt werden -> Verified
UCS 3.0-0 wurde veröffentlicht. Sollte der hier beschriebene Bug mit einer neueren Version von UCS erneut auftreten, so sollte dieser Bug dupliziert werden: "Clone This Bug"