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
Resolved via Zstream.
VERIFIED Current package version in nightly compose (http://download.eng.brq.redhat.com/rhel-8/nightly/RHEL-8/RHEL-8.5.0-20210729.n.0/compose/AppStream/x86_64/os/Packages/ruby-2.6.7-107.module+el8.4.0+10830+bbd85cce.x86_64.rpm) contains package with fix -> Test passed version: ruby-2.6.7-107.module+el8.4.0+10830+bbd85cce.x86_64 :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Test :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: [ 06:18:46 ] :: [ INFO ] :: using '/var/tmp/beakerlib-1VWqREb/backup' as backup destination Redirecting to /bin/systemctl status named.service Redirecting to /bin/systemctl start named.service :: [ 06:18:46 ] :: [ LOG ] :: rlServiceStart: Service named started successfully :: [ 06:18:46 ] :: [ BEGIN ] :: Run reproducer :: actually running 'timeout 3 ruby -rresolv -e 'puts Resolv::DNS.new.getresource("localhost.", Resolv::DNS::Resource::IN::A).address' 2>&1 | tee output.txt' 127.0.0.1 :: [ 06:18:46 ] :: [ PASS ] :: Run reproducer (Expected 0, got 0) :: [ 06:18:46 ] :: [ PASS ] :: File 'output.txt' should contain '127.0.0.1' Redirecting to /bin/systemctl status named.service Redirecting to /bin/systemctl stop named.service :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :: Duration: 1s :: Assertions: 2 good, 0 bad :: RESULT: PASS (Test)