ClusterLabs / ClusterLabs/fence-agents

fence_vmware_soap has no connection timeout, results in filling up tmp directory

Open
#446 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
126
Forks
186
PR merge metrics
No merged PRs in 30d

Description

The resource agent `fence_vmware_soap` has no connection timeout when creating a suds `Client` and does not respect any of the `--power-timeout` `--shell-timeout` `--login-timeout` options.

This is important because when running under pacemaker and trying to contact a server that doesn't respond, the script will run until pacemaker forcibly kills it, which leaks the created python `tmpdir` (and will eventually fill up the disk).

It can be easily observed by setting up fence_vmware_soap in pacemaker and then blocking the server in iptables:
```
pcs stonith create stonith_vmware fence_vmware_soap ipaddr="${esxi_host_ip}" ....
iptables -A INPUT -j DROP -s "${esxi_host_ip}"
```
And the `/tmp/` directory will slowly start filling up.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start in the fence_vmware_soap resource agent and inspect where the suds Client is created, then trace how --power-timeout, --shell-timeout, and --login-timeout are handled. Reproduce the blocked-server case described with iptables and check the temporary-directory lifecycle. Done means connection attempts honor the relevant timeout and do not leave temporary directories behind.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
cli, devops
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.