[#43467] [Q] thread->interrupt_flag が適切に排他制御されていないように見える — KOSAKI Motohiro <kosaki.motohiro@...>

kosakiです

15 messages 2011/05/08
[#43482] Re: [Q] thread->interrupt_flag が適切に排他制御されていないように見える — SASADA Koichi <ko1@...> 2011/05/08

 ささだです.

[#43486] Re: [Q] thread->interrupt_flag が適切に排他制御されていないように見える — KOSAKI Motohiro <kosaki.motohiro@...> 2011/05/09

>  ささだです.

[#43487] Re: [Q] thread->interrupt_flag が適切に排他制御されていないように見える — SASADA Koichi <ko1@...> 2011/05/09

 ささだです.

[#43488] Re: [Q] thread->interrupt_flag が適切に排他制御されていないように見える — KOSAKI Motohiro <kosaki.motohiro@...> 2011/05/09

>  ささだです.

[#43489] Re: [Q] thread->interrupt_flag が適切に排他制御されていないように見える — KOSAKI Motohiro <kosaki.motohiro@...> 2011/05/09

自己解決しました

[#43500] Re: [Q] thread->interrupt_flag が適切に排他制御されていないように見える — SASADA Koichi <ko1@...> 2011/05/09

 ささだです.

[#43501] Re: [Q] thread->interrupt_flag が適切に排他制御されていないように見える — KOSAKI Motohiro <kosaki.motohiro@...> 2011/05/09

>> ということは危ないのは RUBY_VM_SET_INTERRUPT() がロストしたときに、タイムアウトなしの

[#43468] Re: [ruby-changes:19438] Ruby:r31478 (trunk): * test/date/*.rb: use skip /w messages. — KOSAKI Motohiro <kosaki.motohiro@...>

2011/5/8 tadf <ko1@atdot.net>:

8 messages 2011/05/08

[#43476] [Ruby 1.9 - Feature #4653][Open] [PATCH 1/1] new method Enumerable#rude_map — Shyouhei Urabe <shyouhei@...>

16 messages 2011/05/08

[#43493] [Ruby 1.9 - Feature #4657][Open] add option to hide skip messages on unit/test — Shota Fukumori <sorah@...>

11 messages 2011/05/09

[#43502] draft schedule of Ruby 1.9.3 — "Yuki Sonoda (Yugui)" <yugui@...>

-----BEGIN PGP SIGNED MESSAGE-----

23 messages 2011/05/09
[#43505] Re: draft schedule of Ruby 1.9.3 — "U.Nakamura" <usa@...> 2011/05/10

Hello,

[#43513] Re: draft schedule of Ruby 1.9.3 — KOSAKI Motohiro <kosaki.motohiro@...> 2011/05/10

(ruby-coreはずしました)

[#43587] [Ruby 1.9 - Feature #4788][Open] resolv.rb refactoring — Makoto Kishimoto <redmine@...>

15 messages 2011/05/27

[ruby-dev:43462] [Ruby 1.9 - Bug #4387][Rejected] test_socket_connect_nonblock(TestSocketAddrinfo) がまれに失敗する

From: Motohiro KOSAKI <kosaki.motohiro@...>
Date: 2011-05-03 12:50:05 UTC
List: ruby-dev #43462
Issue #4387 has been updated by Motohiro KOSAKI.

Status changed from Open to Rejected

進展する気がしないので、いったんrejectしますね。
----------------------------------------
Bug #4387: test_socket_connect_nonblock(TestSocketAddrinfo) がまれに失敗する
http://redmine.ruby-lang.org/issues/4387

Author: Motohiro KOSAKI
Status: Rejected
Priority: Normal
Assignee: 
Category: core
Target version: 1.9.x
ruby -v: ruby 1.9.3dev (2011-02-09 trunk 30831) [i386-mswin32_100]


=begin
 1割ぐらいの確率でtest-allが以下のエラーを吐きます
 
  57) Error:
 test_socket_connect_nonblock(TestSocketAddrinfo):
 Errno::EINVAL: Invalid argument - connect(2)
     C:/ruby/trunk/test/socket/test_addrinfo.rb:163:in `connect_nonblock'
     C:/ruby/trunk/test/socket/test_addrinfo.rb:163:in `rescue in test_socket_con
 nect_nonblock'
     C:/ruby/trunk/test/socket/test_addrinfo.rb:158:in `test_socket_connect_nonbl
 ock'
 
 
 なお、OSレベルでは WSAGetLastError() が WSAEINVALを返しています。
 
 MSDNからそれっぽい部分をいくつかピックアップすると
 http://msdn.microsoft.com/en-us/library/ms737625(v=vs.85).aspx
 
 WSAEALREADY: A nonblocking connect call is in progress on the specified socket.
              Note  In order to preserve backward compatibility, this error is reported as
              WSAEINVAL to Windows Sockets 1.1 applications that link to either Winsock.dll or
              Wsock32.dll.
 WSAEINVAL: The parameter s is a listening socket.
 
 とあるので、
  o selectが正しく動いておらず、connect完了する前に処理がもどってしまうので、connectがEINVALを返している
  o selectはちゃんと動いているけど、connectがトチ狂ってEISCONNを返さずにEINVALを返している
 
 の2択なんですが、どちらなのかは切り分けできませんでした。誰か良い案があれば教えてください。
 
 
 これだけではアレなので、いくつか調査報告など
 
 w3cのhttpのサンプルコードだと、EINVALはEISCONNと同等の処理をするようになっています。
 http://www.w3.org/Library/src/HTTCP.c
 
 NetBSDのconnectにも昔EINVALを返す問題があったそうですが、どう対処したのかはよく分かりませんでした
 http://mail-index.netbsd.org/netbsd-bugs/2003/08/18/0002.html
 ↑ なんと報告者は Kambeさん
 
 ruby-talkでそれっぽい話をしているログをみつけたのですが、こちらも結論分からず。
 http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/16632
=end



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

In This Thread

Prev Next