[prev in list] [next in list] [prev in thread] [next in thread] 

List:       ruby-core
Subject:    [ruby-core:104398] [Ruby master Bug#18006] Resolv#getaddress takes minutes to resolve a domain with 
From:       dominic.couture () gmail ! com
Date:       2021-06-24 20:56:45
Message-ID: redmine.issue-18006.20210624205644.51733 () ruby-lang ! org
[Download RAW message or body]

Issue #18006 has been reported by dee-see (Dominic Couture).

----------------------------------------
Bug #18006: Resolv#getaddress takes minutes to resolve a domain with no DNS records \
in 3.0 (was quick in 2.7) https://bugs.ruby-lang.org/issues/18006

* Author: dee-see (Dominic Couture)
* Status: Open
* Priority: Normal
* ruby -v: ruby 3.0.1p64 (2021-04-05 revision 0fb782ee38) [x86_64-linux]
* Backport: 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN
----------------------------------------
Hello team,

Calling `getaddress` on a domain that returns `NXDOMAIN` takes 2.5 minutes in Ruby \
3.0, unless the domain is in FQDN form (with a trailing dot). I'll try to take a look \
and figure out what's happening, but I'm not familiar with the Ruby code base so I \
wanted to report this first. I reproduced the issue on my local machine and on a VPS \
so this isn't a local network problem.

2.7:

``` shell
$ ruby -v
ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-linux]
16:42:49 dee-see@glacier:tmp$ time ruby -r resolv -e 'Resolv::DNS.new(nameserver: \
"8.8.8.8").getaddress("doesnotexist.deesee.xyz.")' Traceback (most recent call last):
	1: from -e:1:in `<main>'
/home/dee-see/.rbenv/versions/2.7.2/lib/ruby/2.7.0/resolv.rb:379:in `getaddress': DNS \
result has no information for doesnotexist.deesee.xyz. (Resolv::ResolvError)

real	0m0.225s
user	0m0.091s
sys	0m0.020s
$ time ruby -r resolv -e 'Resolv::DNS.new(nameserver: \
"8.8.8.8").getaddress("doesnotexist.deesee.xyz")' Traceback (most recent call last):
	1: from -e:1:in `<main>'
/home/dee-see/.rbenv/versions/2.7.2/lib/ruby/2.7.0/resolv.rb:379:in `getaddress': DNS \
result has no information for doesnotexist.deesee.xyz (Resolv::ResolvError)

real	0m0.291s
user	0m0.079s
sys	0m0.021s
```

3.0, notice the time on the second try

```shell
$ ruby -v
ruby 3.0.1p64 (2021-04-05 revision 0fb782ee38) [x86_64-linux]
$ time ruby -r resolv -e 'Resolv::DNS.new(nameserver: \
                "8.8.8.8").getaddress("doesnotexist.deesee.xyz.")'
/home/dee-see/.rbenv/versions/3.0.1/lib/ruby/3.0.0/resolv.rb:379:in `getaddress': DNS \
result has no information for doesnotexist.deesee.xyz. (Resolv::ResolvError)  from \
-e:1:in `<main>'

real	0m0.240s
user	0m0.102s
sys	0m0.031s
$ time ruby -r resolv -e 'Resolv::DNS.new(nameserver: \
                "8.8.8.8").getaddress("doesnotexist.deesee.xyz")'
/home/dee-see/.rbenv/versions/3.0.1/lib/ruby/3.0.0/resolv.rb:379:in `getaddress': DNS \
result has no information for doesnotexist.deesee.xyz (Resolv::ResolvError)  from \
-e:1:in `<main>'

real	2m30.363s
user	0m0.122s
sys	0m0.021s
```




-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic