From: Max Reitz <mreitz@redhat.com>
To: Eric Blake <eblake@redhat.com>, qemu-devel@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>, Stefan Hajnoczi <stefanha@redhat.com>
Subject: Re: [Qemu-devel] [PATCH] qcow2: Unset zero_beyond_eof in save_vmstate
Date: Wed, 23 Oct 2013 19:07:54 +0200 [thread overview]
Message-ID: <5268026A.8080201@redhat.com> (raw)
In-Reply-To: <52659071.4070003@redhat.com>
On 2013-10-21 22:37, Eric Blake wrote:
> On 10/20/2013 08:52 PM, Max Reitz wrote:
>> Saving the VM state is done using bdrv_pwrite. This function may perform
>> a read-modify-write, which in this case results in data being read from
>> beyond the end of the virtual disk. Since we are actually trying to
>> access an area which is not a part of the virtual disk, zero_beyond_eof
>> has to be set to false before performing the partial write, otherwise
>> the VM state may become corrupted.
>>
>> Signed-off-by: Max Reitz <mreitz@redhat.com>
>> ---
>> Follow-up to (depends on):
>> - qcow2: Restore total_sectors value in save_vmstate
> Reviewed-by: Eric Blake <eblake@redhat.com>
>
> Do you have test cases that demonstrate the corruption pre-patch?
I could write a test case for the other patch, but for this one it would
probably be rather difficult. What I did to bisect the bug was just
starting a VM over and over while saving a snapshot at some time during
boot-up and trying to load that snapshot again. Sometimes, qemu itself
would report a corrupted VM state, but most of the time, the guest
simply hang or paniced. This is something I can detect interactively,
but I don't know if I could write a test for this (at least not for
hanging).
Max
next prev parent reply other threads:[~2013-10-23 17:08 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-20 19:52 [Qemu-devel] [PATCH] qcow2: Unset zero_beyond_eof in save_vmstate Max Reitz
2013-10-21 20:37 ` Eric Blake
2013-10-23 17:07 ` Max Reitz [this message]
2013-10-23 18:27 ` Max Reitz
2013-10-24 9:52 ` Kevin Wolf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5268026A.8080201@redhat.com \
--to=mreitz@redhat.com \
--cc=eblake@redhat.com \
--cc=kwolf@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.