Bug 1667040

Summary: allow 'ipv4-6' and 'ipv6-4' values to be set in corosync's ip_version
Product: Red Hat Enterprise Linux 8 Reporter: Tomas Jelinek <tojeline>
Component: pcsAssignee: Tomas Jelinek <tojeline>
Status: CLOSED ERRATA QA Contact: cluster-qe <cluster-qe>
Severity: unspecified Docs Contact:
Priority: high    
Version: 8.0CC: cfeist, cluster-maint, idevat, mlisik, mmazoure, omular, tojeline
Target Milestone: rcKeywords: EasyFix
Target Release: 8.1   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: pcs-0.10.1-6.el8 Doc Type: Bug Fix
Doc Text:
Cause: 'ipv4-6' and 'ipv6-4' values have been added to corosync's 'ip_version' option. Consequence: Pcs does not allow to set the new values. Fix: Consider the new values to be valid values of 'ip_version' option in pcs. Result: It is possible to set all four values of 'ip_version' using pcs.
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-11-05 20:39:38 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1682129    
Bug Blocks:    
Attachments:
Description Flags
proposed fix + test none

Description Tomas Jelinek 2019-01-17 09:57:54 UTC
Description of problem:
Recently, values 'ipv4-6' and 'ipv6-4' were added to 'ip_version' option in corosync. Pcs should allow to set these values.


Version-Release number of selected component (if applicable):
pcs-0.10.1-2.el8


How reproducible:
always, easily


Steps to Reproduce:
[root@rh80-node1:~]# pcs cluster setup test rh80-node1 rh80-node2 transport knet ip_version=ipv4-6
Error: 'ipv4-6' is not a valid ip_version value, use ipv4, ipv6
Error: Errors have occurred, therefore pcs is unable to continue

[root@rh80-node1:~]# pcs cluster setup test rh80-node1 rh80-node2 transport knet ip_version=ipv6-4
Error: 'ipv6-4' is not a valid ip_version value, use ipv4, ipv6
Error: Errors have occurred, therefore pcs is unable to continue


Actual results:
'ipv4-6' and 'ipv6-4' values are not accepted, not even with --force


Expected results:
'ipv4-6' and 'ipv6-4' values are not accepted

Comment 1 Tomas Jelinek 2019-01-17 10:14:11 UTC
Created attachment 1521252 [details]
proposed fix + test

Test:
Verify that it is possible to set 'ipv4', 'ipv6', 'ipv4-6' and 'ipv6-4' values of 'ip_version' option in cluster setup both in CLI and web UI.

Comment 3 Ondrej Mular 2019-05-02 12:03:49 UTC
After fix:
[root@rhel81-node1 ~]# rpm -q pcs
pcs-0.10.1-6.el8.x86_64

[root@rhel81-node1 ~]# pcs cluster setup test rh81-1 rh81-2 transport knet ip_version=ipv6-4
No addresses specified for host 'rh81-1', using 'rh81-1'
No addresses specified for host 'rh81-2', using 'rh81-2'
Destroying cluster on hosts: 'rh81-1', 'rh81-2'...
rh81-1: Successfully destroyed cluster
rh81-2: Successfully destroyed cluster
Requesting remove 'pcsd settings' from 'rh81-1', 'rh81-2'
rh81-1: successful removal of the file 'pcsd settings'
rh81-2: successful removal of the file 'pcsd settings'
Sending 'corosync authkey', 'pacemaker authkey' to 'rh81-1', 'rh81-2'
rh81-2: successful distribution of the file 'corosync authkey'
rh81-2: successful distribution of the file 'pacemaker authkey'
rh81-1: successful distribution of the file 'corosync authkey'
rh81-1: successful distribution of the file 'pacemaker authkey'
Sending 'corosync.conf' to 'rh81-1', 'rh81-2'
rh81-1: successful distribution of the file 'corosync.conf'
rh81-2: successful distribution of the file 'corosync.conf'
Cluster has been successfully set up.
[root@rhel81-node1 ~]# echo $?
0
[root@rhel81-node1 ~]# pcs cluster corosync | grep ip_version
    ip_version: ipv6-4
[root@rhel81-node1 ~]# pcs cluster destroy --all
Warning: Unable to load CIB to get guest and remote nodes from it, those nodes will not be deconfigured.
rh81-1: Stopping Cluster (pacemaker)...
rh81-2: Stopping Cluster (pacemaker)...
rh81-2: Successfully destroyed cluster
rh81-1: Successfully destroyed cluster
[root@rhel81-node1 ~]# pcs cluster setup test rh81-1 rh81-2 transport knet ip_version=ipv4-6
No addresses specified for host 'rh81-1', using 'rh81-1'
No addresses specified for host 'rh81-2', using 'rh81-2'
Destroying cluster on hosts: 'rh81-1', 'rh81-2'...
rh81-1: Successfully destroyed cluster
rh81-2: Successfully destroyed cluster
Requesting remove 'pcsd settings' from 'rh81-1', 'rh81-2'
rh81-1: successful removal of the file 'pcsd settings'
rh81-2: successful removal of the file 'pcsd settings'
Sending 'corosync authkey', 'pacemaker authkey' to 'rh81-1', 'rh81-2'
rh81-2: successful distribution of the file 'corosync authkey'
rh81-2: successful distribution of the file 'pacemaker authkey'
rh81-1: successful distribution of the file 'corosync authkey'
rh81-1: successful distribution of the file 'pacemaker authkey'
Sending 'corosync.conf' to 'rh81-1', 'rh81-2'
rh81-1: successful distribution of the file 'corosync.conf'
rh81-2: successful distribution of the file 'corosync.conf'
Cluster has been successfully set up.
[root@rhel81-node1 ~]# echo $?
0
[root@rhel81-node1 ~]# pcs cluster corosync | grep ip_version
    ip_version: ipv4-6

Comment 5 Michal Mazourek 2019-08-06 14:00:44 UTC
BEFORE:
=======

[root@virt-140 ~]# rpm -q pcs
pcs-0.10.1-4.el8_0.3.x86_64


## In CLI

[root@virt-140 ~]# pcs host auth virt-140 virt-141 -u hacluster -p password
virt-140: Authorized
virt-141: Authorized

[root@virt-140 ~]# pcs cluster setup test virt-140 virt-141 transport knet ip_version=ipv4-6
No addresses specified for host 'virt-140', using 'virt-140'
No addresses specified for host 'virt-141', using 'virt-141'
Error: 'ipv4-6' is not a valid ip_version value, use ipv4, ipv6
Error: Errors have occurred, therefore pcs is unable to continue

[root@virt-140 ~]# pcs cluster setup test virt-140 virt-141 transport knet ip_version=ipv6-4
No addresses specified for host 'virt-140', using 'virt-140'
No addresses specified for host 'virt-141', using 'virt-141'
Error: 'ipv6-4' is not a valid ip_version value, use ipv4, ipv6
Error: Errors have occurred, therefore pcs is unable to continue

> values 'ip4-6' and 'ip6-4' in option 'ip_version' are not accepted, even with --force


## In web UI

1. conncect to the machine (https://virt-140.cluster-qe.lab.eng.brq.redhat.com:2224)
2. login with hacluster & password
3. '+ Create New'
4. name cluster and its nodes
5. 'Go to advanced settings'
6. 'Transport' > 'Options'
7. 'IP Versions' scroll menu

> only IPv4, IPv6 or (Default) can be chosen


AFTER:
======

[root@virt-178 ~]# rpm -q pcs
pcs-0.10.2-3.el8.x86_64


## In CLI

[root@virt-178 ~]# pcs host auth virt-179 virt-188 -u hacluster -p password
virt-188: Authorized
virt-179: Authorized

# Testing 'ipv4-6' value

[root@virt-179 ~]# pcs cluster setup test virt-179 virt-188 transport knet ip_version=ipv4-6
No addresses specified for host 'virt-179', using 'virt-179'
No addresses specified for host 'virt-188', using 'virt-188'
Destroying cluster on hosts: 'virt-179', 'virt-188'...
virt-188: Successfully destroyed cluster
virt-179: Successfully destroyed cluster
Requesting remove 'pcsd settings' from 'virt-179', 'virt-188'
virt-188: successful removal of the file 'pcsd settings'
virt-179: successful removal of the file 'pcsd settings'
Sending 'corosync authkey', 'pacemaker authkey' to 'virt-179', 'virt-188'
virt-179: successful distribution of the file 'corosync authkey'
virt-179: successful distribution of the file 'pacemaker authkey'
virt-188: successful distribution of the file 'corosync authkey'
virt-188: successful distribution of the file 'pacemaker authkey'
Sending 'corosync.conf' to 'virt-179', 'virt-188'
virt-179: successful distribution of the file 'corosync.conf'
virt-188: successful distribution of the file 'corosync.conf'
Cluster has been successfully set up.
[root@virt-179 ~]# echo $?
0
[root@virt-179 ~]# pcs cluster corosync | grep ip_version
    ip_version: ipv4-6

> OK

[root@virt-179 ~]# pcs cluster destroy --all
Warning: Unable to load CIB to get guest and remote nodes from it, those nodes will not be deconfigured.
virt-179: Stopping Cluster (pacemaker)...
virt-188: Stopping Cluster (pacemaker)...
virt-179: Successfully destroyed cluster
virt-188: Successfully destroyed cluster

# Testing 'ipv6-4' value

[root@virt-179 ~]# pcs cluster setup test virt-179 virt-188 transport knet ip_version=ipv6-4
No addresses specified for host 'virt-179', using 'virt-179'
No addresses specified for host 'virt-188', using 'virt-188'
Destroying cluster on hosts: 'virt-179', 'virt-188'...
virt-188: Successfully destroyed cluster
virt-179: Successfully destroyed cluster
Requesting remove 'pcsd settings' from 'virt-179', 'virt-188'
virt-179: successful removal of the file 'pcsd settings'
virt-188: successful removal of the file 'pcsd settings'
Sending 'corosync authkey', 'pacemaker authkey' to 'virt-179', 'virt-188'
virt-188: successful distribution of the file 'corosync authkey'
virt-188: successful distribution of the file 'pacemaker authkey'
virt-179: successful distribution of the file 'corosync authkey'
virt-179: successful distribution of the file 'pacemaker authkey'
Sending 'corosync.conf' to 'virt-179', 'virt-188'
virt-188: successful distribution of the file 'corosync.conf'
virt-179: successful distribution of the file 'corosync.conf'
Cluster has been successfully set up.
[root@virt-179 ~]# echo $?
0
[root@virt-179 ~]# pcs cluster corosync | grep ip_version
    ip_version: ipv6-4

> OK, option 'ip_version' allow to set 'ipv4-6' and 'ipv6-4' values


## In web UI

1. conncect to the machine (https://virt-179.cluster-qe.lab.eng.brq.redhat.com:2224)
2. login with hacluster & password
3. '+ Create New'
4. name cluster and its nodes
5. 'Go to advanced settings'
6. 'Transport' > 'Options'
7. 'IP Versions' scroll menu

> beside 'IPv4', 'IPv6' and (Default), user is allowed to choose 'IPv4 if available, IPv6 otherwise' and 'IPv6 if available, IPv4 otherwise'.

8. 'Create cluster' with 'IPv4 if available, IPv6 otherwise'
9. 'Finish' with 'Start the Cluster' option

> cluster is created and 'ipv4-6' is set

[root@virt-179 ~]# pcs status
Cluster name: test-ui

WARNINGS:
No stonith devices and stonith-enabled is not false

Stack: corosync
Current DC: virt-188 (version 2.0.2-2.el8-744a30d655) - partition with quorum
Last updated: Tue Aug  6 15:44:24 2019
Last change: Tue Aug  6 15:43:31 2019 by hacluster via crmd on virt-188

2 nodes configured
0 resources configured

Online: [ virt-179 virt-188 ]

No resources

Daemon Status:
  corosync: active/disabled
  pacemaker: active/disabled
  pcsd: active/enabled

[root@virt-179 ~]# pcs cluster corosync | grep ip_version
    ip_version: ipv4-6


## The same process works with 'IPv6 if available, IPv4 otherwise'


Marking VERIFIED in pcs-0.10.2-3.el8

Comment 7 errata-xmlrpc 2019-11-05 20:39:38 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHEA-2019:3311