Bug 1950308

Summary: Resolv::DNS: ruby:2.5/ruby: timeouts if multiple IPv6 name servers are given and address contains leading zero [rhel-8]
Product: Red Hat Enterprise Linux 8 Reporter: Vít Ondruch <vondruch>
Component: rubyAssignee: Pavel Valena <pvalena>
Status: CLOSED CURRENTRELEASE QA Contact: Jan Houska <jhouska>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 8.3CC: djez, jhouska, pvalena
Target Milestone: rcKeywords: Triaged, ZStream
Target Release: ---Flags: pm-rhel: mirror+
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: ruby-2.5.9-107.module+el8.4.0+10822+fe4fffb1 Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of:
: 1955010 (view as bug list) Environment:
Last Closed: 2021-12-16 11:54:57 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:    
Bug Blocks: 1916404, 1955010    

Description Vít Ondruch 2021-04-16 11:34:22 UTC
Description of problem:

Resolv::DNS does not return any results under those conditions:

    there are at least two name servers (in /etc/resolv.conf).
    The name servers have IPv6 addresses containing leading zeros.

Example resolv.conf:
nameserver 2001:0db8::0001:1
nameserver 2001:0db8::0002:1

This is caused by a mismatch in representation of the address: Requester::sender_for compares the address of the answering server (e.g. 2001:0db8::1:1) with the address the request was sent to (e.g. 2001:0db8::0001:1).

Version-Release number of selected component (if applicable):

ruby-libs-2.5.5-105.module+el8.1.0+3656+f80bfa1d.x86_64

How reproducible:

We reproduced this by running puppet_facts on OSP 16.1

Steps to Reproduce:


You can see the difference in timing when the ipa facts are pre-populated (the DNS lookup is skipped) or not:

[root@]# time FACTER_ipa_domain='' FACTER_ipa_server='' puppet facts >/dev/null

real    0m2.367s
user    0m1.746s
sys     0m0.392s

[root@]# time puppet facts >/dev/null

real    1m22.435s
user    0m1.735s
sys     0m0.428s


Additional info:

See https://bugzilla.redhat.com/show_bug.cgi?id=1916404

This was fixed in https://bugs.ruby-lang.org/issues/16439

Comment 5 Jan Houska 2021-07-28 12:20:11 UTC
VERIFIED

Test PASS on 1minutetip for:
Version:
ruby-2.5.9-107.module+el8.4.0+10822+fe4fffb1


::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Test
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:: [ 08:08:42 ] :: [   INFO   ] :: using '/var/tmp/beakerlib-147847001/backup' as backup destination
:: [ 08:08:42 ] :: [   LOG    ] :: rlServiceStart: Service named started successfully
:: [ 08:08:42 ] :: [   PASS   ] :: Run reproducer (Expected 0, got 0)
:: [ 08:08:42 ] :: [   PASS   ] :: File 'output.txt' should contain '127.0.0.1' 
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::   Duration: 1s
::   Assertions: 2 good, 0 bad
::   RESULT: PASS (Test)



Package version in nightly:
ruby-2.5.9-107.module+el8.4.0+10822+fe4fffb1.src.rpm

http://download.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/RHEL-8.5.0-20210722.n.3/compose/AppStream/source/tree/Packages/ruby-2.5.9-107.module+el8.4.0+10822+fe4fffb1.src.rpm