From: Yusuke Endoh Date: 2010-07-04T20:44:09+09:00 Subject: [ruby-dev:41808] [Bug #3515] FreeBSD wrongly raises ECONNRESET on close(2) チケット #3515 が更新されました。 (by Yusuke Endoh) 担当者 Yui NARUSEにセット 優先度 NormalからLowに変更 Target version 1.9.2にセット 遠藤です。 2010年7月2日12:20 Yui NARUSE : > これらに共通するのは「Errno::ECONNRESET: Connection reset by peer」という例外が発生している点です。 > この例外は socket の close(2) を呼んだ際に errno に ECONNRESET がセットされたときに発生します。 > しかし、この挙動は POSIX 仕様外であり、FreeBSD 独自のものです。 > *snip* > > で、Ruby における対策ですが、close(2) で errno に ECONNRESET がセットされた場合、 > それを無視するべきだと思います。 FreeBSD が勝手に独自仕様に走っているのを、Ruby 側で吸収する「べき」とは 思いません。また、せっかく errno 設定しているのを、勝手に握りつぶしても よいものなんでしょうか。という疑問があるので、1.9.2 に入れるのはあまり 乗り気でないです。 ですが、最終的には FreeBSD のプラットフォームメンテナの判断に任せます。 この件で 1.9.2 のリリースを待つべきではありませんが、メンテナの判断が リリースに間に合えばコミットしてもいいかなと思います。ということで、 優先度を Low にします。 redmine の wiki に FreeBSD のプラットフォームメンテナが載っていないの ですが、成瀬さんで正しいでしょうか。 もし違ったら、FreeBSD は perhaps に降格となります。 -- Yusuke Endoh ---------------------------------------- http://redmine.ruby-lang.org/issues/show/3515 ---------------------------------------- http://redmine.ruby-lang.org