
"Daniel P. Berrange" <berrange@redhat.com> writes:
On Fri, Mar 17, 2017 at 02:07:11PM +0100, Milan Zamazal wrote:
"Daniel P. Berrange" <berrange@redhat.com> writes:
On Fri, Mar 17, 2017 at 11:55:13AM +0100, Milan Zamazal wrote:
Hi, we experienced a strange, non-reproducible error after a successful migration to another host. When we called virDomainDestroyFlags with VIR_DOMAIN_DESTROY_GRACEFUL flag after the migration on the source host, we got VIR_ERR_OPERATION_INVALID (code 55) error. The same with repeated virDomainDestroyFlags calls. Normally, we would expect either success or VIR_ERR_NO_DOMAIN error. `virsh list' didn't show the VM.
What about 'virsh list --all' - i expect you have an inactive guest present, as calling destory on an inactive guest triggers OPERATION_INVALID
I see. It's interesting, since we use transient domains. Are there known circumstances when OPERATION_INVALID could be returned for a transient domain? Can we assume that we never receive that error when trying to destroy a running domain?
Cleanup & destruction of domains is an area where there is relatively high level of concurrency in libvirt. So it is conceivable that you would see OPERATION_INVALID for a transient guest if libvirt is part way through cleaning it up - it shouldn't be in that state for very long though
We had the state returning OPERATION_INVALID for "infinite" time. That could be caused by some bug or maybe problems with storage or whatever, we don't know.
You'll never see OPERATION_INVALID if the guest is truely running - it will either be shutoff, or in the process of becoming shutoff very soon.
OK, thank you for explanation and clarification. Regards, Milan