From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:38812) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QozJk-0003JP-Bq for qemu-devel@nongnu.org; Thu, 04 Aug 2011 10:54:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QozJf-0004EL-KZ for qemu-devel@nongnu.org; Thu, 04 Aug 2011 10:54:36 -0400 Received: from mx1.redhat.com ([209.132.183.28]:40571) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QozJf-0004E0-4K for qemu-devel@nongnu.org; Thu, 04 Aug 2011 10:54:31 -0400 Message-ID: <4E3AB354.4080903@redhat.com> Date: Thu, 04 Aug 2011 16:57:24 +0200 From: Kevin Wolf MIME-Version: 1.0 References: <201108041620.13687.hahn@univention.de> In-Reply-To: <201108041620.13687.hahn@univention.de> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [BUG] Qcow2 corruption on snapshot revert List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Philipp Hahn Cc: qemu-devel@nongnu.org, kvm@vger.kernel.org, Stefan Gohmann Am 04.08.2011 16:20, schrieb Philipp Hahn: > Hello, > > it seems like I have discovered a bug in qemu-0.14.1 which corrupts Qcow2 > image files when using internal snapshots. > I tied this both on an amd64 host running our Debian bases UCS distribution > (using pure qemu-kvm_0.14 and pure qemu-kvm_0.14.1) and also on a pure Debian > i386 sid installation (patched qemu-kvm_0.14.1). > I can reproducte this every time doing the following steps: > 0. Create and install VM > 1. Shut down VM > 2. Create offline snapshot using "qemu-img snapshot -c Off image.qcow2" > 3. Start VM > 4. Create online snapshot using "savevm On" > 5. Shut down VM > 6. Revert to snapshot using "qemu-img snapshot -a Off image.qcow2" > Repeat step 6 three or more times and the Image is destroyed. > > My guess is that this is a but in qemu-img, which is related to having an > online snapshot (VM running) while reverting to an offline snapshot (VM > stopped), because I wasn't able to reproduce this using only offline > snapshots or only online snapshots. > > I have attached a shell script to reproduce this bug on all my runs. > * It both happens with kvm-0.14.1 and also with qemu-0.14.1. > * The cache stragtegy "writethrough" vs. "writeback" is irrelevant. > > The script needs an image nameded "pmh_squeeze-0.qcow.bak2" of an VM where you > can login via serial console using "root" for login and "univention" for > password. You can use other images as well, as long as you modify the block > device from within the VM. You get get it from > > > There you will also find the beginning of a small Python program > called "qcow2.py" which can be used to dump the structure of an qcow2 file in > some more human readable format with some consistency checking. > > Related links: > > > > > > Any help is appreciated. Thanks for the report. This small script seems to be enough to reproduce the corruption: qemu-img create -f qcow2 /tmp/sn.qcow2 64M qemu-img snapshot -c foo /tmp/sn.qcow2 qemu-io -c 'write -b 0 4M' /tmp/sn.qcow2 qemu-img snapshot -a foo /tmp/sn.qcow2 I'll look into the details tomorrow. Kevin