On Wed, Jun 22, 2016 at 17:41:12 +0300, Nikolay Shirokovskiy wrote:
On 22.06.2016 17:18, Jiri Denemark wrote:
> On Wed, Jun 22, 2016 at 16:17:50 +0300, Nikolay Shirokovskiy wrote:
>> One can not issue monitor commands manually during async calls thru
>> designated API while this could be useful for testing/debugging purposes.
>> qemuDomainQemuMonitorCommand uses job of type QEMU_JOB_MODIFY and any async
>> call disable parallel execution of this type of job. The only state that is
>> changed is taint variable. AFAIU the only place we can mess is resetting
>> taint flag in qemuProcessStop routine under some async job. But this can not
>> happen thanx to both virDomainObjIsActive check in qemuDomainQemuMonitorCommand
>> and resetting active status in qemuProcessStop before taint flag.
>>
>> Change job type to QEMU_JOB_QUERY and thus make the API call available for
>> most of async jobs.
>
> The reason for acquiring MODIFY job is that qemuDomainQemuMonitorCommand
> can be used to call any monitor command even those that modify state.
> For example, you could unplug a device during an async job. And since we
> don't want anything to mess up with a domain while async job is running,
> acquiring just QUERY job would be wrong.
Well this API call is tainted thus user is aware he is on his own here.
AFAIU tainted means domain *can* be messed up thru this call.
Hmm, thinking about it more I think you are right. Users can already do
a lot of harm when an async job is not running so preventing them from
doing that in a specific case of async jobs is not necessary.
So self-NACK of my previous NACK and ACK to your patch :-)
Jirka