Issue #20172 has been updated by mame (Yusuke Endoh).
Incidentally, our Arch Linux CI also uses glibc 2.38, and it is working fine. So I guess
either that it is a Gentoo-specific problem, or that your machine is so heavily loaded
that it cannot `pthread_create`.
----------------------------------------
Bug #20172: Socket.addrinfo failing randomly
https://bugs.ruby-lang.org/issues/20172#change-106139
* Author: mwaldvogel (Michael Waldvogel)
* Status: Open
* Priority: Normal
* ruby -v: ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [x86_64-linux]
* Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN
----------------------------------------
I've recently updated one of my linux systems (Gentoo) to glibc 2.38 (that was the
only change). After the update most of the time the below error happens. Among other
things this breaks rubygems for me. I've reinstalled ruby 3.2.2 with rvm and
didn't encounter the issue. The issue however remained even after reinstalling ruby
3.3.0 and even with ruby master. Since this goes back to getaddrinfo (which is working
without any issues outside of ruby) and there seems to be only one bigger change to stdlib
socket, I'm assuming the problem was introduced with
https://bugs.ruby-lang.org/issues/19965
```
3.3.0 :001 > require 'socket'
=> true
3.3.0 :002 > Socket.getaddrinfo('rubygems.org', 443)
(irb):2:in `getaddrinfo': getaddrinfo: Temporary failure in name resolution
(Socket::ResolutionError)
from (irb):2:in `<main>'
from <internal:kernel>:187:in `loop'
from
/usr/local/rvm/rubies/ruby-3.3.0/lib/ruby/gems/3.3.0/gems/irb-1.11.0/exe/irb:9:in `<top
(required)>'
from /usr/local/rvm/rubies/ruby-3.3.0/bin/irb:25:in `load'
from /usr/local/rvm/rubies/ruby-3.3.0/bin/irb:25:in `<main>'
3.3.0 :003 > Socket.getaddrinfo('rubygems.org', 443)
(irb):3:in `getaddrinfo': getaddrinfo: Temporary failure in name resolution
(Socket::ResolutionError)
from (irb):3:in `<main>'
from <internal:kernel>:187:in `loop'
from
/usr/local/rvm/rubies/ruby-3.3.0/lib/ruby/gems/3.3.0/gems/irb-1.11.0/exe/irb:9:in `<top
(required)>'
from /usr/local/rvm/rubies/ruby-3.3.0/bin/irb:25:in `load'
from /usr/local/rvm/rubies/ruby-3.3.0/bin/irb:25:in `<main>'
3.3.0 :004 > Socket.getaddrinfo('rubygems.org', 443)
=>
[["AF_INET", 443, "151.101.193.227", "151.101.193.227", 2,
1, 6],
["AF_INET", 443, "151.101.193.227", "151.101.193.227", 2,
2, 17],
["AF_INET", 443, "151.101.193.227", "151.101.193.227", 2,
3, 0],
...
["AF_INET6", 443, "2a04:4e42::483", "2a04:4e42::483", 10,
1, 6],
["AF_INET6", 443, "2a04:4e42::483", "2a04:4e42::483", 10,
2, 17],
["AF_INET6", 443, "2a04:4e42::483", "2a04:4e42::483", 10,
3, 0]]
3.3.0 :005 >
```
--
https://bugs.ruby-lang.org/