[et-mgmt-tools] virt-clone bug
Daniel P. Berrange
berrange at redhat.com
Fri Nov 23 16:39:28 UTC 2007
On Fri, Nov 23, 2007 at 02:36:03PM +0000, Richard W.M. Jones wrote:
> Richard W.M. Jones wrote:
> >The Debian maintainer of virt-install found this problem which seems to
> >be a bug in virt-clone:
> >
> ># virt-clone -o demo -n demo2 --connect=qemu:///session -f bla2.img
> >libvir: QEMU error :
> >libvir: QEMU error :
> >Cloning from /home/foo/kvm/test/bla.img to bla2.img
> >ERROR: local variable 'b' referenced before assignment
>
> Judging from the error message, I'm guessing that it happens at the line
> I've marked below (in virtinst/CloneManager.py):
>
> while 1:
> l = os.read(src_fd, design.clone_bs)
> s = len(l)
> if s == 0:
> meter.end(size)
> break
> # check sequence of zeros
> if sparse_copy_mode == True and zeros == l:
> os.lseek(dst_fd, s, 1)
> else:
> b = os.write(dst_fd, l)
> if s != b: <--------
> meter.end(i)
> break
> i += s
> if i < size:
> meter.update(i)
>
> It's a very strange piece of code. AIUI it seems to be saying that if
> we get a short write, then we should just end the copy without any sort
> of error indication, which can't be the right thing to do.
Yeah, that looks bogus. Guess that 'if s != b' got mis-indented. It
definitely needs to raise an error condition of some sort too.
Dan.
--
|=- Red Hat, Engineering, Emerging Technologies, Boston. +1 978 392 2496 -=|
|=- Perl modules: http://search.cpan.org/~danberr/ -=|
|=- Projects: http://freshmeat.net/~danielpb/ -=|
|=- GnuPG: 7D3B9505 F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 -=|
More information about the et-mgmt-tools
mailing list