On Tue, Jan 19, 2016 at 01:48:10PM +0000, Richard W.M. Jones wrote: > On Tue, Jan 19, 2016 at 01:43:58PM +0000, Daniel P. Berrange wrote: > > I don't think it does. Passing GRACEFUL flag means libvirt will try > > /less/ hard to kill QEMU, so it is /more/ likely that you will get > > the > > > > "Failed to terminate process 1275 with SIGTERM: Device or resource busy" > > > > In general, that error message is something to be expected from the > > virDomainDestroy() API, as we won't wait for death forever. If an > > app wishes to wait forever, they should either re-issue the destroy > > API call, or wait for an event notification of VIR_DOMAIN_EVENT_STOPPED > > to arrive. > > IIUC, we should trap this specific error, and then basically loop if > it happens? Is there a good way to trap specific errors without > trying to match error message text? You can match on err.code==VIR_ERR_SYSTEM_ERROR & err.int1 == EBUSY The latter match is not entirely recommended, since if talking to a libvirtd on a remote host with different operating system to the client host, the errno values won't match, but I think it is fine for libguestfs which always uses a local libvirt. Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list