-
Bug
-
Resolution: Unresolved
-
Undefined
-
None
-
rhel-9.1.0
-
sst_high_availability
-
ssg_filesystems_storage_and_HA
-
3
-
False
-
-
If docs needed, set a value
-
-
Unspecified
Description of problem:
Instance attributes validation of fence_scsi agent via stonith_admin always fails. The problem is with validation of the ‘plug’ option which is required by the agent. Even the explicitly specified ‘plug’ or ‘pcmk_host_list’ options doesn’t help. From pcs point of view, stonith_admin should handle all of these cases as they are a valid configuration.
Version-Release number of selected component (if applicable):
[root@rhel91-devel1 pcs]# rpm -q pacemaker fence-agents-scsi
pacemaker-2.1.4-5.el9.x86_64
fence-agents-scsi-4.10.0-30.el9.noarch
How reproducible:
always
Steps to Reproduce:
Note: all commands are executed on a single node cluster with node name ’localhost’.
[root@rhel91-devel1 pcs]# /usr/sbin/stonith_admin --validate --agent fence_scsi
Validation of fence_scsi failed
2022-09-15 11:25:16,694 ERROR: Failed: unable to parse output of corosync-cmapctl or node does not exist
2022-09-15 11:25:16,695 ERROR: Please use '-h' for usage
[root@rhel91-devel1 pcs]# echo $?
1
[root@rhel91-devel1 pcs]# /usr/sbin/stonith_admin --validate --agent fence_scsi --option pcmk_host_list=localhost
Validation of fence_scsi failed
2022-09-15 11:26:02,022 ERROR: Failed: unable to parse output of corosync-cmapctl or node does not exist
2022-09-15 11:26:02,022 ERROR: Please use '-h' for usage
[root@rhel91-devel1 pcs]# echo $?
1
[root@rhel91-devel1 pcs]# /usr/sbin/stonith_admin --validate --agent fence_scsi --option plug=localhost
Validation of fence_scsi failed
2022-09-15 11:26:16,965 ERROR: Failed: unable to parse output of corosync-cmapctl or node does not exist
2022-09-15 11:26:16,966 ERROR: Please use '-h' for usage
[root@rhel91-devel1 pcs]# echo $?
1
[root@rhel91-devel1 pcs]# corosync-cmapctl | grep localhost
nodelist.node.0.name (str) = localhost
nodelist.node.0.ring0_addr (str) = localhost
totem.interface.0.bindnetaddr (str) = localhost
Actual results:
Validation fails
Expected results:
Successful validation
Additional info:
Running just agent itself works ok:
[root@rhel91-devel1 pcs]# fence_scsi -o validate-all --plug non-existing-node; echo $?
2022-09-15 12:44:54,360 ERROR: Failed: unable to parse output of corosync-cmapctl or node does not exist
2022-09-15 12:44:54,360 ERROR: Please use '-h' for usage
1
[root@rhel91-devel1 pcs]# fence_scsi -o validate-all --plug localhost; echo $?
0
From this snippet of strace output I assume that this is written to stdin of agent for validation:
[root@rhel91-devel1 pcs]# strace /usr/sbin/stonith_admin --validate --agent fence_scsi --option plug=localhost
<snip>
write(8, "nodename=node1\n", 15) = 15
write(8, "action=validate-all\n", 20) = 20
write(8, "port=node1\n", 11) = 11
write(8, "plug=localhost\n", 15) = 15
<snip>
So I tried to execute agent with the same stdin and indeed it fails with the same error:
[root@rhel91-devel1 pcs]# echo -e "nodename=node1\naction=validate-all\nport=node1\nplug=localhost\n" | fence_scsi; echo $?
2022-09-15 13:01:36,710 ERROR: Failed: unable to parse output of corosync-cmapctl or node does not exist
2022-09-15 13:01:36,710 ERROR: Please use '-h' for usage
1
However, validation passes after removing “nodename=node1” from stdin, even though the “nodename” should not be accepted by the agent according to its man page.
[root@rhel91-devel1 pcs]# echo -e "action=validate-all\nport=node1\nplug=localhost\n" | fence_scsi; echo $?
0
I didn’t try any other agent but I would guess that other agents may be affected as well.
- external trackers