[virt-tools-list] [PATCH] fix: do cleanupLocation only at last time for cached fetcher

Cole Robinson crobinso at redhat.com
Fri Sep 11 15:22:02 UTC 2015


On 09/11/2015 01:12 AM, Chun Yan Liu wrote:
> 
> 
>>>> On 9/9/2015 at 08:07 PM, in message <55F020E4.40206 at redhat.com>, Cole Robinson
> <crobinso at redhat.com> wrote: 
>> On 09/09/2015 01:56 AM, Chunyan Liu wrote: 
>>> Regression introduced after commit d8d6af5. Failed to install guests 
>>> through ftp network source, see below: 
>>>  
>>> /usr/bin/virt-install   --name sled-12-fcs-64-pv-nnm-nete5250fdfecc94f922b5a21a 
>>>  -p --location ftp://xen100.virt.lab.novell.com/install/sled12/x86_64 
>>>  --extra-args "autoyast=http://192.168.123.1/install/autoyast/ 
>>> sled-12-fcs-64-pv-nnm-nete5250fdfecc94f922b5a21a"   --disk path=/var/lib/ 
>>> libvirt/images/sled-12-fcs-64-pv-nnm-nete5250fdfecc94f922b5a21a.qcow2,size=10, 
>>> format=qcow2   --network=bridge=br0   --ram=1024   --vcpu=2   --vnc 
>>>  --serial pty   --noautoconsole   --video cirrus 
>>>  
>>> ERROR    'NoneType' object has no attribute 'sendall' 
>>> Domain installation does not appear to have been successful. 
>>> If it was, you can restart your domain by running: 
>>>   virsh --connect xen:/// start sled-12-fcs-64-pv-nnm-nete5250fdfecc94f922b5a21a 
>>> otherwise, please restart your installation. 
>>>  
>>> Root cause is: now we use cached fetcher, but still do cleanupLocation 
>>> each time, it will cause problem when using the fetcher next time. 
>>> We should only do cleanupLocation at last time. 
>>>  
>>> Signed-off-by: Chunyan Liu <cyliu at suse.com> 
>>> --- 
>>>  virtinst/distroinstaller.py | 7 +++++-- 
>>>  1 file changed, 5 insertions(+), 2 deletions(-) 
>>>  
>>  
>> I can't reproduce the issue, and in fact there isn't any call to 'sendall'  
> 
> 'sendall' is a function in FTPLib. It's called from ftp.quit in FTPImageFetcher.
> This problem is only happens with 'ftp'. No problem if using 'http'.
> 

Yeah I tried with an ftp link too but couldn't reproduce (I can't use the link
you provided because it's not a public URL). I still can't see in the code how
cleanupLocation() can be called without a matching prepareLocation so not sure
how this problem comes up in upstream code.

Can you reproduce with virt-manager.git and not a system installed version?
 From the git checkout, do ./virt-install $args

- Cole




More information about the virt-tools-list mailing list