How is saving done in libvirt ? I've looked at the QEMU source and save/load does not use subsections at all (this is the "type 5" from the error message I get) but the live migration code does. 

These are the commands from the corresponding /var/log/libvirt/qemu logs:

Windows 7:

LC_ALL=C PATH=/sbin:/usr/sbin:/bin:/usr/bin QEMU_AUDIO_DRV=none /usr/libexec/qemu-kvm -name win7-check -S -machine pc-i440fx-2.2,accel=kvm,usb=off -m 4000 -realtime mlock=off -smp 4,sockets=4,cores=1,threads=1 -uuid a905d7b0-4f48-4f13-a322-133009411e94 -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/win7-check.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=localtime,driftfix=slew -no-shutdown -boot strict=on -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive file=/data/win7-check.qcow2,if=none,id=drive-ide0-0-0,format=qcow2,cache=unsafe -device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 -netdev tap,fd=24,id=hostnet0 -device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:52:71:88,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -device usb-tablet,id=input0 -vnc 127.0.0.1:3 -device VGA,id=video0,vgamem_mb=16,bus=pci.0,addr=0x2 -incoming fd:21 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4 -msg timestamp=on

XP:

LC_ALL=C PATH=/sbin:/usr/sbin:/bin:/usr/bin QEMU_AUDIO_DRV=none /usr/libexec/qemu-kvm -name xp-check   -S -machine pc-i440fx-2.2,accel=kvm,usb=off -m 977  -realtime mlock=off -smp 2,sockets=2,cores=1,threads=1 -uuid 429a6a4c-c5a3-4d75-89c0-9a075010aa9c -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/xp-check.monitor,server,nowait   -mon chardev=charmonitor,id=monitor,mode=control -rtc base=localtime,driftfix=slew -no-shutdown -boot strict=on -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive file=/data/xp-check.qcow2,if=none,id=drive-ide0-0-0,format=qcow2,cache=unsafe -device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 -netdev tap,fd=23,id=hostnet0 -device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:c5:25:ba,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -device usb-tablet,id=input0 -vnc 127.0.0.1:1 -device VGA,id=video0,vgamem_mb=16,bus=pci.0,addr=0x2 -incoming fd:21 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4 -msg timestamp=on

- Paul

On Thu Feb 05 2015 at 7:02:25 AM Michal Privoznik <mprivozn@redhat.com> wrote:
On 05.02.2015 01:54, Paul Apostolescu wrote:
> Hello,
>
> I am running into issues restoring VMs during reboot for some of my XP
> VMs - the environment is QEMU 2.2.0, libvirt 1.2.12 on CentOS 6.5 with
> KVM and libvirt-guests is set to suspend at shutdown. The weird part is
> Windows 7 is restored properly from the managedsave however XP does not,
> doing a start from virsh shows this:
>
> virsh # start xp-check
> error: Failed to start domain xp-check
> error: internal error: early end of file from monitor: possible problem:
> Unknown savevm section type 5
> 2015-02-04T23:55:37.117515Z qemu-kvm: load of migration failed: Invalid
> argument
>
> (qemu-kvm is a link to qemu-system-x86_64).
>
> Any ideas how to fix this ?

Smells like qemu bug to me. The only way that this could be a libvirt
bug is that libvirt will generate a different qemu command line when the
guest is started and restored. Can you check that please?

Michal