> so it took about 2 second to libvirt setBlockThreshold() call to
return
> and in meantime migration was finished and we get
> VIR_ERR_OPERATION_INVALID error from setBlockThreshold() call.
>
> What is the reason for this delay? Is this operation intentionally delayed
> until migration finishes?
Actually, qemuDomainSetBlockThreshold which is the backend for
virDomainSetBlockThreshold requires a QEMU_JOB_MODIFY job on the domain,
so this actually can't even be set _during_ migration.
In fact what happens is that the API call is waiting to be able to
obtain the MODIFY job and that can happen only after the migration is
finished, thus it always serializes after the migration.
makes sense, thanks for clarification!