нашел временное решение. Пример ниже: в файле /home/%username%/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/puma-4.3.1/lib/puma/binder.rb
или в вашем случае /home/chocolope/.rvm/gems/ruby-2.6.3/gems/puma-4.3.1/lib/puma/binder.rb
вокруг строки 233:
#
def add_tcp_listener(host, port, optimize_for_latency=true, backlog=1024)
if host == "localhost"
loopback_addresses.each do |addr|
add_tcp_listener addr, port, optimize_for_latency, backlog
end
return
end
host = host[1..-2] if host and host[0..0] == '['
# monkey patch starts here
host = '127.0.0.1'
port = 3000
# monkey patch ends here
s = TCPServer.new(host, port)
# if optimize_for_latency
s.setsockopt(Socket::IPPROTO_TCP, Socket::TCP_NODELAY, 1)
# end
# s.setsockopt(Socket::SOL_SOCKET,Socket::SO_REUSEADDR, true)
s.listen backlog
@connected_port = s.addr[1]
@ios << s
s
end
теперь все работает, но нам все еще нужен правильный способ исправить эту проблему
это распространенная проблема WSL: https://github.com/microsoft/WSL/issues/1419