Project

General

Profile

Actions

Bug #21512

open

Socket.tcp_with_fast_fallback('example.com', 80, '127.0.0.1') fails with unknown socket domain: ipv4 (SocketError)

Added by osyoyu (Daisuke Aritomo) about 8 hours ago. Updated about 8 hours ago.

Status:
Open
Assignee:
-
Target version:
-
ruby -v:
ruby 3.5.0dev (2025-07-13T04:37:15Z master f03cc0b514) +PRISM [x86_64-linux]
[ruby-core:122742]

Description

The following code is expected to open a socket bound to the local IPv4 interface, but raises an SocketError.

require 'socket'
Socket.tcp_with_fast_fallback('localhost', 8080, '127.0.0.1')

Expected behavior: Returns a Socket object
Actuai behavior: Causes a SocketError (unknown socket domain: ipv4)

I believe this is because Socket.tcp_with_fast_fallback is calling Addrinfo.getaddrinfo with :ipv4 / :ipv6 as its third argument, instead of Socket::AF_INET / Socket::AF_INET6.
https://github.com/ruby/ruby/blob/b2a7b7699261d2a4ef8a9d5d38d3fb9dc99c8253/ext/socket/lib/socket.rb#L707

Updated by osyoyu (Daisuke Aritomo) about 8 hours ago

I have opened a pull request: https://github.com/ruby/ruby/pull/13878

This bug is around from Ruby 3.4 when HEv2 was introduced.

Actions

Also available in: Atom PDF

Like0
Like0