ClusterLabs / ClusterLabs/resource-agents

VirtualDomain: handle blocked libvirt more gracefully

Open
#385 2 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Shell
Stars
519
Forks
608
Avg merge
6d 1h
Merged PRs (30d)
7

Description

libvirtd has known issues where it can possibly block indefinitely, for example when refreshing an NFS storage pool while the NFS server is unavailable. VirtualDomain currently would react with timeouts in monitor, because unlike the current shortcut where `virsh state` does return with `no state` or an error (if the libvirtd socket is unavailable), the virsh call would just block.

One way of handling this would be to wrap all non-critical virsh calls in `timeout` (ships as part of coreutils), setting a timeout of (action timeout*2/3) for all those, and only block on the critical calls like start, shutdown and destroy.

@davidvossel, any thoughts on that?

Contributor guide

No contributing guide indexed for this repository

Research direction

Start at the VirtualDomain resource agent and trace its virsh calls, separating the non-critical operations from start, shutdown, and destroy. Review how monitor timeouts are currently handled, then verify that blocked non-critical calls respect the action timeout while critical calls retain their existing behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
shell
Domain
infrastructure
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.