Re: ambiguous ret of qemuDomainDetachVirtioDiskDevice

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

 



On Tue, Jul 28, 2015 at 04:25:13PM +0800, zhang bo wrote:
> static int
> qemuDomainDetachVirtioDiskDevice(virQEMUDriverPtr driver,
>                                  virDomainObjPtr vm,
>                                  virDomainDiskDefPtr detach)
> {
> .......
> 
>     rc = qemuDomainWaitForDeviceRemoval(vm);
>     if (rc == 0 || rc == 1)
>         ret = qemuDomainRemoveDiskDevice(driver, vm, detach);
>     else
>         ret = 0;  /*the return value of 2 is dismissed here, which refers to ETIMEOUT.*/
> ........
> }
> 
> ------------------------------------
> 
> If it timeouts when qemu tries to del the device, the return value would be modified from 2 to 0 in 
> function qemuDomainDetachVirtioDiskDevice(), which means that, the users would be misleaded that 
> the device has been deleted, however, the device maybe probably failed to be detached after timeout and
> still in use. 
> 

This is intentional and documented:
http://libvirt.org/html/libvirt-libvirt-domain.html#virDomainDetachDeviceFlags

Unplugging a disk requires guest cooperation, so the best we can do is
ask qemu to unplug it and wait for a while.

> That is to say, the function qemuDomainDetachVirtioDiskDevice()'s return value is ambiguous when it's 0, 
> maybe successful, or timeout. Will it be better to pass ETIMEOUT to user? or any other advises? for example,
> let users themselves dumpxml the guest to check whether the device has been actually detached or not? 

Either dump the XML, or wait for the VIR_DOMAIN_EVENT_ID_DEVICE_REMOVED
event, as the API documentation suggests.

Jan

Attachment: signature.asc
Description: Digital signature

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list

[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]