Bug 1792883

Summary: healthcheck in clustercheck container doesn't work with ipv6
Product: Red Hat OpenStack Reporter: Damien Ciabrini <dciabrin>
Component: openstack-tripleo-heat-templatesAssignee: Damien Ciabrini <dciabrin>
Status: CLOSED ERRATA QA Contact: pkomarov
Severity: high Docs Contact:
Priority: high    
Version: 16.0 (Train)CC: lmiccini, mburns, michele, pkomarov
Target Milestone: z1Keywords: Triaged
Target Release: 16.0 (Train on RHEL 8.1)   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: openstack-tripleo-heat-templates-11.3.2-0.20200206065556.673e82d.el8ost Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-03-03 09:45:05 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:

Description Damien Ciabrini 2020-01-20 10:23:07 UTC
Description of problem:
The healthcheck script for the clustercheck service uses curl to poll an galera-monitor service started by xinetd. The address of that HTTP service is parsed from a xinetd config.

Currently, the galera-monitor service is configured to bind to a IP address, and not a fqdn.
When the HA overcloud is deployed with IPv6, curl ends up trying to access an URI whose IPv6 is unquoted, and ends up in failure:

[root@controller-0 ~]# podman exec -u root -it clustercheck bash
()[root@controller-0 /]# grep bind /etc/xinetd.d/galera-monitor
        bind = fd00:fd00:fd00:2000::c9:9200
()[root@controller-0 /]# /openstack/healthcheck

000 :0 0.000000 seconds
curl: (3) IPv6 numerical address used in URL without brackets
()[root@controller-0 /]# echo $?
1

Version-Release number of selected component (if applicable):
openstack-tripleo-heat-templates-11.3.2-0.20200109050651.8f93d27.el8ost.noarch

How reproducible:
Always

Steps to Reproduce:
1. deploy an HA overcloud with IPv6
2. trigger the healthcheck in container clustercheck on any overcloud node

  podman exec -it clustercheck /openstack/healthcheck


Actual results:
healthcheck fails

Expected results:
healthcheck shouldn't fail

Comment 2 pkomarov 2020-02-19 08:05:40 UTC
Verified , 

(undercloud) [stack@undercloud-0 ~]$ ./rpm_compare openstack-tripleo-heat-templates-11.3.2-0.20200206065556.673e82d.el8ost
package tested: openstack-tripleo-heat-templates-11.3.2-0.20200206065556.673e82d.el8ost
package installed : openstack-tripleo-heat-templates-11.3.2-0.20200211065543.d3d6dc3.el8ost.noarch

PASS, package_git tested version is equal or older than the one installed

[root@controller-0 ~]#   podman exec -it clustercheck /openstack/healthcheck

200 fd00:fd00:fd00:2000::29:9200 0.040423 seconds
[root@controller-0 ~]# podman exec -u root -it clustercheck bash
()[root@controller-0 /]# grep bind /etc/xinetd.d/galera-monitor
        bind            = controller-0.internalapi.redhat.local
()[root@controller-0 /]#  /openstack/healthcheck

200 fd00:fd00:fd00:2000::29:9200 0.010945 seconds
()[root@controller-0 /]# echo $?
0

Comment 3 Alex McLeod 2020-02-19 12:39:24 UTC
If this bug requires doc text for errata release, please set the 'Doc Type' and provide draft text according to the template in the 'Doc Text' field. The documentation team will review, edit, and approve the text.

If this bug does not require doc text, please set the 'requires_doc_text' flag to '-'.

Comment 6 errata-xmlrpc 2020-03-03 09:45:05 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/RHBA-2020:0655