Bug 1842919 - /etc/hosts on the undercloud grows on updates with repeated entries
Summary: /etc/hosts on the undercloud grows on updates with repeated entries
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: python-tripleoclient
Version: 16.1 (Train)
Hardware: x86_64
OS: Linux
high
high
Target Milestone: z3
: 16.1 (Train on RHEL 8.2)
Assignee: Emilien Macchi
QA Contact: David Rosenfeld
URL:
Whiteboard:
: 1855172 1873107 1879931 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2020-06-02 11:48 UTC by Jaison Raju
Modified: 2024-03-25 16:00 UTC (History)
21 users (show)

Fixed In Version: python-tripleoclient-12.3.2-1.20200815213404.29686a6.el8ost
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2020-11-09 11:52:59 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)
hosts file from undercloud (6.59 KB, text/plain)
2020-06-02 11:52 UTC, Jaison Raju
no flags Details
templates used for testing (17.24 KB, application/x-bzip)
2020-06-02 11:53 UTC, Jaison Raju
no flags Details
config-download (2.57 MB, application/x-bzip)
2020-06-02 11:55 UTC, Jaison Raju
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Launchpad 1887165 0 None None None 2020-07-10 13:12:39 UTC
OpenStack gerrit 740457 0 None MERGED Cleanup UndercloudHostsEntries 2021-01-28 10:07:26 UTC
OpenStack gerrit 740543 0 None MERGED Cleanup UndercloudHostsEntries 2021-01-28 10:07:26 UTC
Red Hat Issue Tracker OSP-29456 0 None None None 2023-10-06 20:24:21 UTC
Red Hat Knowledge Base (Solution) 5495911 0 None None None 2020-10-16 22:34:06 UTC

Description Jaison Raju 2020-06-02 11:48:37 UTC
Description of problem:
/etc/hosts has multiple entries for undercloud IP address with hostnames with different network name suffix. There are also more than one entries for the same IP.

Version-Release number of selected component (if applicable):
latest
tripleo-ansible-0.4.2-0.20200404124615.67005aa.el8ost.noarch
openstack-tripleo-heat-templates-11.3.2-0.20200405044625.ec9970c.el8ost.noarch

How reproducible:
Always

Steps to Reproduce:
1. Deploy an environment with composable network.
2. check/backup /etc/hosts on undercloud
3. Run overcloud deploy again
4. check/backup /etc/hosts on undercloud

Actual results:
During each deploy 3 duplicate entries are added for undercloud with different network suffix.

Expected results:
There is always one entry for undercloud with only required alias that is - hostname, fqdn with domain, hostname with valid network ctlplane (If at all it is required anywhere.)

Additional info:
This was reproduced in customer environment and internally.

Comment 1 Jaison Raju 2020-06-02 11:52:37 UTC
Created attachment 1694425 [details]
hosts file from undercloud

Comment 2 Jaison Raju 2020-06-02 11:53:05 UTC
Created attachment 1694426 [details]
templates used for testing

Comment 3 Jaison Raju 2020-06-02 11:55:16 UTC
Created attachment 1694427 [details]
config-download

Comment 5 Alex Schultz 2020-06-02 13:24:01 UTC
This is expected due to the way the hostname/IPs are managed. This reuses the code that we use in the overcloud and the reason why they are the same is because we don't actually have different IPs for the various "networks".  This is currently how it works and unless it's breaking something this is NOTABUG.

Comment 6 Jaison Raju 2020-06-02 15:08:14 UTC
Hi Alex,

When we did the initial deployment of overcloud, this entry was not seen.
After stack update, three of such entries were added:

Here are the concerns:
1. Why are there duplicate entries of the same IP seen as above?
2. The above entry also looks like it has a lot of repetition, for example - 'undercloud.ctlplane' itself is repeated 15 times in a single line.
3. At every stack update these line almost increase by 3 times.
For example:
Before:
172.16.0.1 undercloud.ctlplane.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain

After:
172.16.0.1 undercloud.ctlplane.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud.ctlplane undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain undercloud undercloud.external.localdomain undercloud.external undercloud.ctlplane.localdomain undercloud.ctlplane undercloud.localdomain

The '3.' behavior can cause the very very large file. Infact in customer environment, we noticed this failure, which we suspect is due to the above large file.
----------------------------------------------------------------------------------------------------------------------------------------------------------------
(undercloud) [stack@jsfuc01 ~]$ ./deploy.sh
Thu May 28 14:55:37 CEST 2020
Removing the current plan files
Uploading new plan files
Temporary Swift GET/PUT URL parameters have successfully been updated.
Plan updated.
Processing templates in the directory /tmp/tripleoclient-ioy26qde/tripleo-heat-templates
Action tripleo.parameters.update execution failed: Error validating environment for plan overcloud: ERROR: Request limit exceeded: JSON body size (5005048 bytes) exceeds maximum allowed size (4194304 bytes).
None

real    2m21.564s
user    0m10.136s
sys     0m3.549s
----------------------------------------------------------------------------------------------------------------------------------------------------------------

Also I had been searching commits and I noticed 3b8e6f78e19e776c087dc5c3ff225703b5c487bc from tht looks related.

Comment 7 Alex Schultz 2020-06-02 15:13:28 UTC
Ok that's a bug where we're continuing to re-add hosts for every deployment. I think that's been fixed but we'll have to dig up the fix and see where it's landed.   I've renamed the bug to more closely describe the issue.

Comment 11 Michele Baldessari 2020-07-09 13:47:28 UTC
*** Bug 1855172 has been marked as a duplicate of this bug. ***

Comment 20 Rabi Mishra 2020-08-31 11:32:03 UTC
*** Bug 1873107 has been marked as a duplicate of this bug. ***

Comment 21 Rabi Mishra 2020-09-17 12:52:41 UTC
*** Bug 1879931 has been marked as a duplicate of this bug. ***

Comment 34 Lon Hohberger 2020-10-29 10:51:52 UTC
According to our records, this should be resolved by python-tripleoclient-12.3.2-1.20200914164928.el8ost.  This build is available now.


Note You need to log in before you can comment on or make changes to this bug.