On 26/06/2018 18:31, Michal Privoznik wrote:
>>  
>> +static bool pr_manager_helper_is_connected(PRManager *p)
>> +{
>> +    PRManagerHelper *pr_mgr = PR_MANAGER_HELPER(p);
>> +    bool result;
>> +
>> +    qemu_mutex_lock(&pr_mgr->lock);
>> +    result = (pr_mgr->ioc != NULL);
> I worry it is not that easy. pr_mgr->ioc is unset only when there's
> PR_IN/PR_OUT command coming from the guest (in pr_manager_helper_run ->
> pr_manager_helper_write). In fact, after 5/5 that is also the time when
> the event is delivered. But that might be too late for mgmt app to
> restart the helper process (although pr_manager_helper_run() tries to
> reconnect for 5 seconds before giving up).

That's true, however the important thing IMO is to have a QMP interface
that libvirt can use; everything else is just quality of implementation.

qemu-pr-helper anyway does something only when a guests sends it a PR
command - and with libvirt's per-guest model, that would (hopefully)
mean that the only case that remains is when someone manually kills the
qemu-pr-helper process.  In that case there's a certain amount of PEBKAC
involved... :)

Paolo

> The patch is good code-wise though.

Reply via email to