Bugzilla will be upgraded to version 5.0 on a still to be determined date in the near future. The original upgrade date has been delayed.
Bug 1452034 - when the /etc/hosts file has a line longer than 1028 characters getent ahostsv4 and ahostsv6 will stop working.
when the /etc/hosts file has a line longer than 1028 characters getent ahosts...
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: glibc (Show other bugs)
7.3
Unspecified Unspecified
low Severity low
: rc
: ---
Assigned To: Florian Weimer
qe-baseos-tools
Vladimír Slávik
:
Depends On:
Blocks: 1420851 1452032
  Show dependency treegraph
 
Reported: 2017-05-18 04:13 EDT by Raul Mahiques
Modified: 2018-04-10 10:00 EDT (History)
11 users (show)

See Also:
Fixed In Version: glibc-2.17-202.el7
Doc Type: No Doc Update
Doc Text:
undefined
Story Points: ---
Clone Of: 1452032
Environment:
Last Closed: 2018-04-10 09:58:28 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)


External Trackers
Tracker ID Priority Status Summary Last Updated
Sourceware 21915 None None None 2017-08-07 10:58 EDT
Red Hat Knowledge Base (Solution) 3047071 None None None 2017-05-22 09:48 EDT
Red Hat Product Errata RHSA-2018:0805 None None None 2018-04-10 10:00 EDT

  None (edit)
Description Raul Mahiques 2017-05-18 04:13:19 EDT
+++ This bug was initially created as a clone of Bug #1452032 +++

Description of problem:
when the /etc/hosts file has a line longer than 1028 characters getent ahostsv4 and ahostsv6 will stop working for hostsnames present in /etc/hosts.
This happens even if the line is a comment.

Version-Release number of selected component (if applicable):
Tested in RHEL 6.9 and RHEL 7.3
glibc-2.17-157
glibc-2.12-1

How reproducible:
Always




Steps to Reproduce:
With this oneliner you can see how it stops resolving after the line reaches 1028 characters, even if it's commented.
echo -n '#' >>/etc/hosts ; for i in $(seq 1 1030); do echo -n "$i - "; echo -n 'a' >>/etc/hosts ; getent ahostsv4 `hostname -f`; done


Actual results:
It stops working after 1028 characters.

Expected results:
It continues working and at least ignores the commented line

Additional info:

--- Additional comment from Red Hat Bugzilla Rules Engine on 2017-05-18 04:12:24 EDT ---

Since this bug report was entered in Red Hat Bugzilla, the release flag has been set to ? to ensure that it is properly evaluated for this release.
Comment 5 Florian Weimer 2017-08-02 14:02:44 EDT
The core issue is that getaddrinfo looks at h_errno even if nss_files returns NSS_STATUS_SUCCESS.  The reproducer triggers an internal failure within nss_files, which overwrites h_errno, although the nss_files succeeds eventually.

Upstream, we will fix this by changing getaddrinfo, but *how* is not completely clear to me yet.

Downstream, we can either rebase getaddrinfo (more or less required to fix bug 168253), or patch nss_files not to leak the temporary h_errno value in this case.
Comment 6 Florian Weimer 2017-08-11 06:52:44 EDT
Upstream patch posted: https://sourceware.org/ml/libc-alpha/2017-08/msg00292.html
Comment 16 errata-xmlrpc 2018-04-10 09:58:28 EDT
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/RHSA-2018:0805

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