
On Wed, May 11, 2011 at 04:15:42PM +0300, Dan Kenigsberg wrote:
On Wed, May 11, 2011 at 12:59:07PM +0100, Daniel P. Berrange wrote:
+/* + * This is invoked when there is some kind of error + * parsing data to/from the monitor. The VM can continue + * to run, but no further monitor commands will be + * allowed + */ +static void +qemuProcessHandleMonitorError(qemuMonitorPtr mon ATTRIBUTE_UNUSED, + virDomainObjPtr vm)
I'm all for being graceful and polite, so this sounds good.
However, events are bound to be lost. The solution would be more robust if there was a way to query the state of the monitor (though I'm not sure it is worth the hassle).
That's certainly possible.
PS, I wonder what VMM stands for in this context. Not virtual memory manager, I suppose.
As Jiri says its "Virtual Machine Manager" aka the hypervisor emulation support infrastructure for a single VM. If someone has a better suggestion, I'm open to change it. I could just remove 'VMM' part and say 'qemuDomainEventErrorCallback'. Or I could kill the 'type' field and call it 'qemuDomainEventControlErrorCallback' and if we have other types of errors in the future, introduce further events for them
Since I've only read the comments, not the code, I wonder if the 'quit' command is still passed to the monitro even after an error occured. Without it, we'd have to resort to SIGTERM/SIGKILL, which is less graceful.
QEMU treats 'SIGTERM' in the same way as 'quit' monitor command. The key thing is to give QEMU time to process SIGTERM before resorting to SIGKILL. NB, we don't actually use 'quit' at all ... yet :-) 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 :|