[PATCH] rpc: Mark close callback (un-)register as high priority
Daniel P. Berrangé
berrange at redhat.com
Wed Nov 23 10:14:25 UTC 2022
On Wed, Nov 23, 2022 at 10:35:59AM +0100, Michal Privoznik wrote:
> Our RPC calls can be divided into two groups: regular and high
> priority. The latter can be then processed by so called high
> priority worker threads. This is our way of defeating a
> 'deadlock' and allowing some RPCs to be processed even when all
> (regular) worker threads are stuck. For instance: if all regular
> worker threads get stuck when talking to QEMU on monitor, the
> virDomainDestroy() can be processed by a high priority worker
> thread(s) and thus unstuck those threads.
>
> Now, this is all fine, except if users want to use virsh
> non interactively:
>
> virsh destroy $dom
>
> This does a bit more - it needs to open a connection. And that
> consists of multiple RPC calls: AUTH_LIST,
> CONNECT_SUPPORTS_FEATURE, CONNECT_OPEN, and finally
> CONNECT_REGISTER_CLOSE_CALLBACK. All of them are marked as high
> priority except the last one. Therefore, virsh just sits there
> with a partially open connection.
>
> There's one requirement for high priority calls though: they can
> not get stuck. Hopefully, the reason is obvious by now. And
> looking into the server side implementation the
> CONNECT_REGISTER_CLOSE_CALLBACK processing can't ever get stuck.
> The only driver that implements the callback for public API is
> Parallels (vz). And that can't block really.
>
> And for virConnectUnregisterCloseCallback() it's the same story.
>
> Therefore, both can be marked as high priority.
>
> Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2143840
> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
> ---
> src/remote/remote_protocol.x | 2 ++
> 1 file changed, 2 insertions(+)
Reviewed-by: Daniel P. Berrangé <berrange at redhat.com>
With regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
More information about the libvir-list
mailing list