qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] qemu-img: error while compressing, Input/output error


From: Stefan Hajnoczi
Subject: Re: [Qemu-devel] qemu-img: error while compressing, Input/output error
Date: Mon, 15 Apr 2013 08:52:03 +0200
User-agent: Mutt/1.5.21 (2010-09-15)

On Fri, Apr 12, 2013 at 02:55:45PM +0300, Ilkka Tengvall wrote:
> I run into an issue where qemu-img convert fails repeatedly on
> compressing a raw disk image. It's not all broken, since it many
> times also works. When it fails, it fails always to the same sector.
> 
> I run into problem using f18 qemu-img-1.2.2-6.fc18.x86_64, and
> repeated it with the latest qemu-img from qemu git as of 12th of
> April 2013:
> last git log: 93b48c201eb6c0404d15550a0eaa3c0f7937e35e
> 
> I discussed the problem on IRC on qemu channel with stefanha, and he
> asked me to provide the info here. Thanks for you help stefanha!
> 
> Here is some background snipplets:
> 
> "
> <ikke> anyone having idea why "qemu-img convert -c -O qcow2 -f raw
> file1 file1.qcow2" would fail to:
> <ikke> qemu-img: error while compressing sector 1842944: Input/output error
> <stefanha> ikke: My guess is that
> qcow2_alloc_compressed_cluster_offset() is failing
> <stefanha> Compressed writes cannot overwrite existing sectors,
> <stefanha> perhaps there's a bug in qemu-img convert that causes it
> to touch the same sector twice.
> <stefanha> We wouldn't notice it when compression is disabled.
> <stefanha> But when it's enabled you get a failure.
> <pm215> stefanha: by the way, is it right that qemu-img.c:1372
> calculates cluster_sectors from cluster_size by rounding down rather
> than up? I know nothing about this code but that looks a little
> suspicious
> <stefanha> And the contents of the input image affect the I/O
> pattern during conversion
> <stefanha> which would explain why you always get the problem with
> certain images.
> <stefanha> pm215: That should be okay.  cluster_size is a power of 2
> and multiple of 512.
> <stefanha> For qcow2 the default cluster_size is 64 KB.
> <stefanha> ikke: A post to the mailing list with a link to the file
> and a description of how to trigger the failure would be fine.
> <stefanha> I think it won't take long to fix.
> "
> 
> The image for repeating this is available here (~230MB):
> 
> http://hard.ware.fi/~ikke/stuff/ubuntufs.raw.img.gzip
> 
> and the command to reproduce the error is here:
> 
> $ qemu-img convert -c -O qcow2 -f raw root.fs.copy root.fs.small.new
> qemu-img: error while compressing sector 1842944: Input/output error

I discussed the bug with kwolf on Friday.  Although I sent a patch to
add an error message when the input image length is not a multiple of
cluster_size, Kevin pointed out that we can allow the final cluster to
be zero-padded beyond the end of the virtual disk.

I'll try to send a patch for that this week.

Stefan



reply via email to

[Prev in Thread] Current Thread [Next in Thread]