On 09/19/2012 12:16 PM, Michal Privoznik wrote: > On 19.09.2012 11:43, Michal Privoznik wrote: >> Currently, we mark domain PAUSED (but not emit an event) >> just before we issue 'stop' on monitor; This command can >> take ages to finish, esp. when domain's doing a lot of >> IO - users can enforce qemu to open files with O_DIRECT >> which doesn't return from write() until data reaches the >> block device. Having said that, we report PAUSED even if >> domain is not paused yet. >> --- >> >> The event is emitted correctly after all operations returns though. >> But if mgmt app would 'virsh domstate $dom' as we are issuing 'stop' >> monitor command it could get spurious results. > > Just for the record, qemu 'stop' command is guaranteed to NOT return > until after all disks are synced. It is not that kind of command which > just requests an operation an returns immediately (like 'shutdown' or > something). > > This bug really confuses the enemy - esp. when mgmt application asks > from another thread, it may get PAUSED domain state even though qemu is > still syncing the disks or monitor command hasn't been issued at all or > is about to fail. > That sounds reasonable. Reporting PAUSED when the domain is _being_ stopped and even if the operation might still fail is less sensible to me as well. It would be nice to have a STOPPING state, but that's idea for a longer period of time and more places in the code consequently heading towards more problems etc. So ACK for this version. Martin -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list