Clemens wrote:
> My (easy) testscript looks like this: 
>   require 'socket'
>   soc = TCPSocket.open("localhost", 8470)
>   soc.close()
> 
> Now this script runs for about 2 to 3 minutes (!) to complete. 
> Note: The port (8740 -> drb) is NOT relevant.
> 
> I run it with Ruby 1.7.0 (but it also happens in 1.6.2) under 
> Mandrake 
> Linux 7.2.
> 
> /etc/hosts includes the '127.0.0.1 localhost'.
> 
> Any (linux-) hints?

You might be experiencing the same problem I have. My system is RH 7.0
Linux. I sent a problem report to matz today even though I have had the
problem for quite some time. I think 1.7.0 hung for a while but 1.6.2 gives
immediate getaddrinfo error.

I should have proper /etc/host.conf, /etc/hosts and /etc/resolv.conf.

By strace:ing ruby I found out that above files are read correctly, but
instead of using localhost it goes on finding the IP from my ISP's DNS.

matz thought it might relate to IPv6 problems, which have been (?) patched
previously.

For me this is not a complete showstopper as I've associated the IP of my
machine at /etc/hosts and I'm able to say

  TCPSocket.open("my_machine_name", port)

successfully. If you have a dynamic IP you might be a bit out of luck (or
maybe in need of some Ruby hacking :).

It might help Matz and/or others if you post a complete bug report to Bug
tracking system listing various details: your system (uname -a + other
info), version of glibc (rpm -q glibc or by checking it from filesystem),
strace dump of working program (like telnet localhost) and non-working
(above ruby script), the contents of above configuration files and
everything that you could think to be useful. Or what matz requires later.

	- Aleksi