とあるホスト (というのは td176.testdrive.hp.com ですが) で
ruby のテストをしているのですが、drb のテストがすごく遅くて
まいっています。
たとえば、test_acl.rb の test_name(ACLEntryTest) のところで
かなり長い時間固まります。
rka@td176> ./ruby test/runner.rb test/drb/test_acl.rb -v
Loaded suite test_acl.rb
Started
test_all(ACLEntryTest): .
test_ip(ACLEntryTest): .
test_ip_v6(ACLEntryTest): .
test_name(ACLEntryTest):
調べてみると、drb/acl.rb は ipaddr.rb を使っていて、
最終的に IPSocket.getaddress("*.jp") といったところで固まっ
ていることがわかりました。
どうもこのマシンでは、IPSocket.getaddress("*.jp") が失敗する
のに 1分30秒かかるようです。
rka@td176> time ./ruby -r socket -e 'p IPSocket.getaddress("*.jp")'
-e:1:in `getaddress': getaddrinfo: host nor service
provided, or not known (SocketError)
from -e:1
real 1:30.0
user 0.0
sys 0.0
思うのですが、*.jp のような、いかにも失敗しそうな名前を引く
ことは必須なんでしょうか?
必須でないなら、やめていただけると嬉しいのですが。
--
[田中 哲][たなか あきら][Tanaka Akira]