[#47548] [ruby-trunk - Feature #8696][Open] Process.setproctitle — "znz (Kazuhiro NISHIYAMA)" <redmine@...>

13 messages 2013/07/27

[#47559] [ruby-trunk - Bug #8711][Open] 最近NoMemoryErrorが多い — "naruse (Yui NARUSE)" <naruse@...>

13 messages 2013/07/31

[ruby-dev:47485] [ruby-trunk - Bug #8605] TestSocket_TCPSocket#test_initialize_failure fails on Windows

From: "akr (Akira Tanaka)" <akr@...>
Date: 2013-07-06 00:21:49 UTC
List: ruby-dev #47485
Issue #8605 has been updated by akr (Akira Tanaka).

Parent task set to #8574

Bug #8574 にもあって、なにが起きてるのかなぁ、と思っていたのですが、
調べてみると、_WIN32 と __CYGWIN__ では SO_REUSEADDR を使っていないようです。

ext/socket/ipsocket.c:

  9627        usa #if !defined(_WIN32) && !defined(__CYGWIN__)
  9627        usa           status = 1;
  9627        usa           setsockopt(fd, SOL_SOCKET, SO_REUSEADDR,
 27529       nobu                      (char*)&status, (socklen_t)sizeof(status));
  9627        usa #endif

r9627 からは [ruby-core:6765] をたどれて、Win32 では SO_REUSEADDR が
うまく動かないとのことですが、これはいまでもそうなんでしょうか。

----------------------------------------
Bug #8605: TestSocket_TCPSocket#test_initialize_failure fails on Windows
https://bugs.ruby-lang.org/issues/8605#change-40316

Author: usa (Usaku NAKAMURA)
Status: Assigned
Priority: Normal
Assignee: akr (Akira Tanaka)
Category: ext
Target version: current: 2.1.0
ruby -v: ruby 2.1.0dev (2013-07-05 trunk 41797) [x64-mswin64_100]
Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN


=begin
表題の通りですが、こんな風に失敗しています。

  76) Failure:
 TestSocket_TCPSocket#test_initialize_failure [D:/tmp/mswin-build20130705-8260-1av0ek2/ruby/test/socket/test_tcp.rb:24]:
 Expected /for\ "127\.0\.0\.1"\ port\ 11459/ to match "Only one usage of each socket address (protocol/network address/port) is normally permitted. - connect(2) for \"127.0.0.1\" port 11458".

テストを眺めると、クライアントポート側で失敗するはずだ、と明記されているわけですが、なぜかご覧の通りでサーバポート側でエラーメッセージが出力されております。
これはrubyでどうにかすべき問題でしょうか? それとも単にプラットフォーム依存として片付けるべき?
=end



-- 
http://bugs.ruby-lang.org/

In This Thread