I've not done too much Ruby socket programming, but it seems to be that
it doesn't like 0 as a service number, because it is interpreting it as
the real service 0, instead of the empty service... if you use nil
instead it works fine... you might be able to patch dRb to use that as a
work around.
irb(main):001:0> require 'socket'
=> true
irb(main):011:0> Socket.getaddrinfo(Socket.gethostname, 0,
Socket::AF_INET, Socket::SOCK_STREAM, nil, Socket::AI_CANONNAME)
SocketError: getaddrinfo: nodename nor servname provided, or not known
from (irb):11:in `getaddrinfo'
from (irb):11
from :0
irb(main):012:0> Socket.getaddrinfo(Socket.gethostname, nil,
Socket::AF_INET, Socket::SOCK_STREAM, nil, Socket::AI_CANONNAME)
=> [["AF_INET", 0, "192.168.1.95", "192.168.1.95", 2, 1, 6]]
Kurt said:
No solution yet, but it looks like something has changed in some
underlying networking library, as base socket handing methods seem to be
broken:
[kschrader@einstein:~]$ irb
require 'socket' => true
Socket.getaddrinfo(Socket.gethostname, 0, Socket::AF_INET, Socket::SOCK_STREAM, nil, Socket::AI_CANONNAME)
SocketError: getaddrinfo: nodename nor servname provided, or not known
from (irb):2:in `getaddrinfo'
from (irb):2
Eric said:
I'm running into the same problem too having just upgraded. Is there a
solution?
Eric
Kurt Schrader wrote:
It looks like the Mac OS X 10.5.3 upgrade breaks DRb when it's trying to
open a TCPSocket.
Looking into it now, but be warned:
/opt/local/lib/ruby/1.8/drb/drb.rb:865:in `initialize': getaddrinfo:
nodename nor servname provided, or not known (SocketError)
from /opt/local/lib/ruby/1.8/drb/drb.rb:865:in `open'
from /opt/local/lib/ruby/1.8/drb/drb.rb:865:in `open_server'
-Kurt