On Tue, Apr 08, 2008 at 04:45:23AM -0400, Daniel Veillard wrote: > Then what happen if you pass a wrong string ? Is there any way to get a > meaningful error back from qemu and report it. Thet would IMHO be quite > better than tracking the evolution of the emulation in QEmu, plus the > added benefit of not being tied to a strict version of QEmu, The error handling in this part of the code seems a bit confused at the moment. For example: if (virExecNonBlock(conn, argv, &vm->pid, vm->stdin, &vm->stdout, &vm->stderr) == 0) { /* [add new qemu to list of VMs] */ } /* [free up various resources] */ if (virEventAddHandle(vm->stdout, POLLIN | POLLERR | POLLHUP, qemudDispatchVMEvent, driver) < 0) { qemudShutdownVMDaemon(conn, driver, vm); return -1; } /* [another call to virEventAddHandle] */ if (qemudWaitForMonitor(conn, driver, vm) < 0) { qemudShutdownVMDaemon(conn, driver, vm); return -1; } return 0; If virExecNonBlock fails, because one of the system calls such as fork(2) or pipe(2) fails, then vm->stdout may be uninitialized. I think it will assume the value 0 in this case and virEventAddHandle will quite happily register a handler for fd 0. On the other hand it is tricky to know what to do when launching a process. In the case where KVM doesn't understand part of the command line arguments, the fork & exec will both succeed and the earliest point where we will see any error will be at qemudWaitForMonitor (because the monitor won't come up -- note this code is synchronous). Rich. -- Richard Jones, Emerging Technologies, Red Hat http://et.redhat.com/~rjones virt-top is 'top' for virtual machines. Tiny program with many powerful monitoring features, net stats, disk stats, logging, etc. http://et.redhat.com/~rjones/virt-top -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list