On Thu, May 28, 2009 at 11:50:00AM -0500, Charles Duffy wrote:
Richard W.M. Jones wrote:
> Charles, can you see if this fixes the problem?
>
> It's completely untested, and might even segfault the Perl bindings
> because of BZ #501892 (which really needs to be fixed).
I'm still fixing this one ...
It doesn't fix things completely, due to what appears to be a
qemu bug
-- apparently, -snapshot doesn't work correctly with -drive, and
snapshot=on needs to be used instead. I've tested this by setting
LIBGUESTFS_QEMU to a wrapper which adds ,cache=off,snapshot=on to each
-drive parameter, which works correctly; using only -snapshot fails as
below.
The generated command line correctly includes -snapshot, and qemu
correctly creates a read-only file to store changes to, but we still
fail (albeit differently) on attempted journal replay:
hda: max request size: 128KiB
hda: 2016 sectors (1 MB) w/256KiB Cache, CHS=2/16/63, (U)DMA
hda: cache flushes supported
hda:<4>hda: dma_timer_expiry: dma status == 0x61
hda: DMA timeout error
sock_read_event: 0x9ec8f0 g->state = 1, fd = 3, events = 0x1
stdout_event: 0x9ec8f0: child process died
wait_ready: guestfs_wait_ready failed, see earlier error messages at
/usr/bin/virt-inspector line 219.
closing guestfs handle 0x9ec8f0 (state 0)
Manually creating a new, writable backing store (qemu-img create -b
da.qcow2 -f qcow2 da.tmp.qcow2) and running against that (with --force),
virt-inspector works correctly, just as it does with snapshot=on passed
to the individual -drive options and no global -snapshot flag at all.
One other issue with that patch is that it passes an empty string rather
than no secondary parameter at all in place of the null:
/usr/bin/qemu-kvm -snapshot '' -drive file=da.qcow2 [...]
I think that's the same bug in the Perl bindings actually. The
C code looks correct.
Rich.
--
Richard Jones, Emerging Technologies, Red Hat
http://et.redhat.com/~rjones
virt-top is 'top' for virtual machines. Tiny program with many
powerful monitoring features, net stats, disk stats, logging, etc.
http://et.redhat.com/~rjones/virt-top