ClusterLabs / ClusterLabs/resource-agents
VirtualDomain: handle blocked libvirt more gracefully
- 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