[#26664] refactoring tcltklib.c (deleted ip check) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>

山本です。

22 messages 2005/08/01
[#26665] Re: refactoring tcltklib.c (deleted ip check) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2005/08/01

山本です。

[#26668] Re: refactoring tcltklib.c (deleted ip check) — Hidetoshi NAGAI <nagai@...> 2005/08/01

永井@知能.九工大です.

[#26678] Re: refactoring tcltklib.c (deleted ip check) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2005/08/01

山本です。

[#26684] Re: refactoring tcltklib.c (deleted ip check) — Hidetoshi NAGAI <nagai@...> 2005/08/01

永井@知能.九工大です.

[#26686] Re: refactoring tcltklib.c (deleted ip check) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2005/08/01

山本です。

[#26817] test/socket/test_tcp.rb freeze on windows — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>

山本です。

12 messages 2005/08/18

[#26829] cannot check EOF of pipe on windows — "U.Nakamura" <usa@...>

こんにちは、なかむら(う)です。

19 messages 2005/08/19
[#26830] Re: cannot check EOF of pipe on windows — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2005/08/19

山本です。

[#26831] Re: cannot check EOF of pipe on windows — "U.Nakamura" <usa@...> 2005/08/19

こんにちは、なかむら(う)です。

[#26832] Re: cannot check EOF of pipe on windows — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2005/08/19

山本です。

[#26836] Re: cannot check EOF of pipe on windows — nobuyoshi nakada <nobuyoshi.nakada@...> 2005/08/19

なかだです。

[#26872] irb -I/ruby -Iと$LOAD_PATH — akira yamada / やまだあきら <akira@...>

Debianユーザからruby -Iとirb -Iで

17 messages 2005/08/24
[#26873] Re: irb -I/ruby -Iと$LOAD_PATH — nobuyoshi nakada <nobuyoshi.nakada@...> 2005/08/24

なかだです。

[#26875] Re: irb -I/ruby -Iと$LOAD_PATH — akira yamada / やまだあきら <akira@...> 2005/08/24

nobuyoshi nakada wrote:

[#26885] Re: irb -I/ruby -Iと$LOAD_PATH — keiju@... (石塚圭樹) 2005/08/26

けいじゅ@いしつかです.

[#26897] fail on make install — KIMURA Koichi <kimura.koichi@...>

木村です。

28 messages 2005/08/29
[#26898] Re: fail on make install — "U.Nakamura" <usa@...> 2005/08/29

こんにちは、なかむら(う)です。

[#26903] Re: fail on make install — KIMURA Koichi <kbk@...> 2005/08/29

木村です。

[#26922] Re: fail on make install — KIMURA Koichi <kimura.koichi@...> 2005/08/30

木村です。

[#26926] Re: fail on make install — KIMURA Koichi <kimura.koichi@...> 2005/08/31

木村です。

[#26927] Re: fail on make install — "U.Nakamura" <usa@...> 2005/08/31

こんにちは、なかむら(う)です。

[#26928] Re: fail on make install — KIMURA Koichi <kimura.koichi@...> 2005/08/31

木村です。

[#26929] Re: fail on make install — "U.Nakamura" <usa@...> 2005/08/31

こんにちは、なかむら(う)です。

[#26930] Re: fail on make install — nobuyoshi nakada <nobuyoshi.nakada@...> 2005/08/31

なかだです。

[#26931] Re: fail on make install — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2005/08/31

山本です。

[#26933] Re: fail on make install — nobu@... 2005/08/31

なかだです。

[#26938] Re: fail on make install — nobuyoshi nakada <nobuyoshi.nakada@...> 2005/09/01

なかだです。

[#26939] Re: fail on make install — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp> 2005/09/01

山本です。

[#26900] multiplying empty string — nobuyoshi nakada <nobuyoshi.nakada@...>

19 messages 2005/08/29
[#26904] Re: multiplying empty string — Yukihiro Matsumoto <matz@...> 2005/08/29

まつもと ゆきひろです

[#26907] Re: multiplying empty string — Tanaka Akira <akr@...17n.org> 2005/08/29

In article <1125327516.070646.12845.nullmailer@x31.priv.netlab.jp>,

[#26909] Re: multiplying empty string — Yukihiro Matsumoto <matz@...> 2005/08/29

まつもと ゆきひろです

[ruby-dev:26817] test/socket/test_tcp.rb freeze on windows

From: "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
Date: 2005-08-18 05:36:29 UTC
List: ruby-dev #26817
山本です。

test/socket/test_tcp.rb の test_recvfrom が固まってしまう問題を調べてみました。

まず、固まるのは sock = TCPSocket.open(addr[2], addr[1]) で例外が出て
ensure 節にうつってしまうためで、そうすると th.join でブロックして
しまいます。(スレッドは accept で待っているため)

Index: test_tcp.rb
===================================================================
RCS file: /src/ruby/test/socket/test_tcp.rb,v
retrieving revision 1.6
diff -u -w -b -p -r1.6 test_tcp.rb
--- test_tcp.rb	9 Dec 2004 01:19:30 -0000	1.6
+++ test_tcp.rb	18 Aug 2005 05:22:19 -0000
@@ -21,7 +21,6 @@ class TestTCPSocket < Test::Unit::TestCa
     assert_raise(RuntimeError, SocketError) {
       sock.recvfrom(0x10000)
     }
-  ensure
     th.join
   end
 end if defined?(TCPSocket)

こうすると、状況が変化します。

E:\ruby-cvs\bcc32>testrb socket
"..\\ruby\\"
Loaded suite socket
Started
...E..
Finished in 1.021 seconds.

  1) Error:
test_recvfrom(TestTCPSocket):
Errno::ECONNREFUSED: 対象のコンピュータによって拒否されたため、接続できませんで
した。 - connect(2)
    E:/ruby-cvs/ruby/test/socket/test_tcp.rb:20:in `initialize'
    E:/ruby-cvs/ruby/test/socket/test_tcp.rb:20:in `test_recvfrom'

6 tests, 13 assertions, 0 failures, 1 errors


E:\ruby-cvs\win32>testrb socket
"..\\ruby"
Loaded suite socket
Started
...E..
Finished in 1.051 seconds.

  1) Error:
test_recvfrom(TestTCPSocket):
Errno::EBADF: Bad file descriptor - connect(2)
    E:/ruby-cvs/ruby/test/socket/test_tcp.rb:20:in `initialize'
    E:/ruby-cvs/ruby/test/socket/test_tcp.rb:20:in `test_recvfrom'

6 tests, 13 assertions, 0 failures, 1 errors


さらに調べたところ、このようにするとテストがパスすることがわかりました。

Index: test_tcp.rb
===================================================================
RCS file: /src/ruby/test/socket/test_tcp.rb,v
retrieving revision 1.6
diff -u -w -b -p -r1.6 test_tcp.rb
--- test_tcp.rb	9 Dec 2004 01:19:30 -0000	1.6
+++ test_tcp.rb	18 Aug 2005 05:33:14 -0000
@@ -17,11 +17,10 @@ class TestTCPSocket < Test::Unit::TestCa
       c.print("x"*0x1000)
     }
     addr = svr.addr
-    sock = TCPSocket.open(addr[2], addr[1])
+    sock = TCPSocket.open(addr[3], addr[1])
     assert_raise(RuntimeError, SocketError) {
       sock.recvfrom(0x10000)
     }
-  ensure
     th.join
   end
 end if defined?(TCPSocket)

http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=TCPSocket には

  hostはホスト名、またはoctet decimal によるインターネットアドレスを示す文字列

とあるのですが、どうもホスト名だと動いていない感じです。

http://www.rubyist.net/~akr/chkbuild/debian-sarge/ruby-trunk/last を見る限りでは
linux では動いているようなので、windows 固有の問題だと思います。

また何かわかったら報告します。


In This Thread

Prev Next