ruby-dev (Japanese) list archive (unofficial mirror)
 help / color / mirror / Atom feed
* [ruby-dev:47484] [ruby-trunk - Bug #8605][Assigned] TestSocket_TCPSocket#test_initialize_failure fails on Windows
@ 2013-07-05 11:56 usa (Usaku NAKAMURA)
  2013-07-06  0:21 ` [ruby-dev:47485] [ruby-trunk - Bug #8605] " akr (Akira Tanaka)
  2013-07-08  2:21 ` [ruby-dev:47488] [ruby-trunk - Bug #8605][Rejected] " usa (Usaku NAKAMURA)
  0 siblings, 2 replies; 4+ messages in thread
From: usa (Usaku NAKAMURA) @ 2013-07-05 11:56 UTC (permalink / raw
  To: ruby developers list


Issue #8605 has been reported by usa (Usaku NAKAMURA).

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

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/

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [ruby-dev:47485] [ruby-trunk - Bug #8605] TestSocket_TCPSocket#test_initialize_failure fails on Windows
  2013-07-05 11:56 [ruby-dev:47484] [ruby-trunk - Bug #8605][Assigned] TestSocket_TCPSocket#test_initialize_failure fails on Windows usa (Usaku NAKAMURA)
@ 2013-07-06  0:21 ` akr (Akira Tanaka)
  2013-07-08  2:21 ` [ruby-dev:47488] [ruby-trunk - Bug #8605][Rejected] " usa (Usaku NAKAMURA)
  1 sibling, 0 replies; 4+ messages in thread
From: akr (Akira Tanaka) @ 2013-07-06  0:21 UTC (permalink / raw
  To: ruby developers list


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/

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [ruby-dev:47488] [ruby-trunk - Bug #8605][Rejected] TestSocket_TCPSocket#test_initialize_failure fails on Windows
  2013-07-05 11:56 [ruby-dev:47484] [ruby-trunk - Bug #8605][Assigned] TestSocket_TCPSocket#test_initialize_failure fails on Windows usa (Usaku NAKAMURA)
  2013-07-06  0:21 ` [ruby-dev:47485] [ruby-trunk - Bug #8605] " akr (Akira Tanaka)
@ 2013-07-08  2:21 ` usa (Usaku NAKAMURA)
  2013-07-08  2:42   ` [ruby-dev:47489] " Tanaka Akira
  1 sibling, 1 reply; 4+ messages in thread
From: usa (Usaku NAKAMURA) @ 2013-07-08  2:21 UTC (permalink / raw
  To: ruby developers list


Issue #8605 has been updated by usa (Usaku NAKAMURA).

Status changed from Assigned to Rejected

あー、そうかー、言われてみたらそんな話あったわー、という感じです。
わざわざ調べていただきありがとうございます。
(ちなみにさらに遡ったら r1800 からのようですね。)

事情は [ruby-core:6765] で説明されている通りですが、これは現在も
変わってないので、おとなしく諦めますかね。
テストの方は #8574 への対応ということで成瀬さんが既に変更済みですし。
----------------------------------------
Bug #8605: TestSocket_TCPSocket#test_initialize_failure fails on Windows
https://bugs.ruby-lang.org/issues/8605#change-40358

Author: usa (Usaku NAKAMURA)
Status: Rejected
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/

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [ruby-dev:47489] Re: [ruby-trunk - Bug #8605][Rejected] TestSocket_TCPSocket#test_initialize_failure fails on Windows
  2013-07-08  2:21 ` [ruby-dev:47488] [ruby-trunk - Bug #8605][Rejected] " usa (Usaku NAKAMURA)
@ 2013-07-08  2:42   ` Tanaka Akira
  0 siblings, 0 replies; 4+ messages in thread
From: Tanaka Akira @ 2013-07-08  2:42 UTC (permalink / raw
  To: ruby developers list

2013年7月8日 11:21 usa (Usaku NAKAMURA) <usa@garbagecollect•jp>:
>
> あー、そうかー、言われてみたらそんな話あったわー、という感じです。
> わざわざ調べていただきありがとうございます。
> (ちなみにさらに遡ったら r1800 からのようですね。)
>
> 事情は [ruby-core:6765] で説明されている通りですが、これは現在も
> 変わってないので、おとなしく諦めますかね。
> テストの方は #8574 への対応ということで成瀬さんが既に変更済みですし。

エラーメッセージのテストなので、
bind が失敗するならなんでもいいとは思うのですが。

EADDRINUSE 以外だと、
Unix なら port 1023 以下で EACCES とかもありますが、
それはおそらく Windows だと動いちゃいますよねぇ。

127.0.0.1 と ::1 との組み合わせで EAFNOSUPPORT というのは
現在なら大抵の環境で動く気もしますが、どうなんだろうなぁ。

あぁ、自分の IP アドレスではない IP アドレスを指定して
EADDRNOTAVAIL という手もあるか。
そういうアドレスをどうやって選ぶか、という話はありますが。
-- 
Tanaka Akira

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2013-07-08  3:09 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-07-05 11:56 [ruby-dev:47484] [ruby-trunk - Bug #8605][Assigned] TestSocket_TCPSocket#test_initialize_failure fails on Windows usa (Usaku NAKAMURA)
2013-07-06  0:21 ` [ruby-dev:47485] [ruby-trunk - Bug #8605] " akr (Akira Tanaka)
2013-07-08  2:21 ` [ruby-dev:47488] [ruby-trunk - Bug #8605][Rejected] " usa (Usaku NAKAMURA)
2013-07-08  2:42   ` [ruby-dev:47489] " Tanaka Akira

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).