Backport #3794
closedtest/openssl/test_ssl.rb hungs on mswin32_100
Description
=begin
opensslがWinSockのerrnoを変換していないため、rb_io_wait_readableがEWOULDBLOCKと認識せずスレッドの切り替えが行われません。
パッチです。
--- ossl_ssl.c.org 2010-09-06 19:45:34.000000000 +0900
+++ ossl_ssl.c 2010-09-06 19:46:27.000000000 +0900
@@ -1018,7 +1018,7 @@ ossl_ssl_setup(VALUE self)
}
#ifdef _WIN32
-#define ssl_get_error(ssl, ret) (errno = WSAGetLastError(), SSL_get_error(ssl, ret))
+#define ssl_get_error(ssl, ret) (errno = rb_w32_map_errno(WSAGetLastError()), SSL_get_error(ssl, ret))
#else
#define ssl_get_error(ssl, ret) SSL_get_error(ssl, ret)
#endif
=end
Updated by nahi (Hiroshi Nakamura) about 14 years ago
- Assignee set to nahi (Hiroshi Nakamura)
=begin
=end
Updated by nahi (Hiroshi Nakamura) about 14 years ago
=begin
広範囲に影響するものの、ビルド環境ないのでそのまま取り込んで様子を見ようと思いますが、
以前から伺っていたように、OpenSSL 1.0.0aとの組み合わせのときだけ発症、
という理解であっていますか?
=end
Updated by arton (Akio Tajima) about 14 years ago
=begin
artonです。
OpenSSL 1.0.0aとの組み合わせのときだけ発症、
という理解であっていますか?
勘違いだと思います。(私は、1.9.2-p0は、OpenSSL 1.0.0aでしか試していない
ので)
あのコードを読む限り、OpenSSLは無関係です。
--
arton artonx@yahoo.co.jp
GyaO! - Anime, Dramas, Movies, and Music videos [FREE]
http://pr.mail.yahoo.co.jp/gyao/
=end
Updated by nahi (Hiroshi Nakamura) about 14 years ago
=begin
あのコードを読む限り、OpenSSLは無関係です。
了解です。御確認ありがとうございます。そのまま当てます。
=end
Updated by nahi (Hiroshi Nakamura) about 14 years ago
- Status changed from Open to Closed
=begin
r29197で当てました。
http://redmine.ruby-lang.org/repositories/revision/ruby-19?rev=29197
=end
Updated by usa (Usaku NAKAMURA) about 14 years ago
=begin
まあいまさらですけど情報を残しておきますと、本件はVC10からerrno.hの
中身が変わりやがったことが影響したものと思われます。
VC9以前ではWSAGetLastError()の返す値は我々のerrnoと原則同値だった
ので、基本的には無変換でよかったのです。
なお対応方針として今回のパッチ適用で間違ってはいません。
=end
Updated by usa (Usaku NAKAMURA) almost 14 years ago
- Category set to ext
- Status changed from Closed to Assigned
- Assignee changed from nahi (Hiroshi Nakamura) to yugui (Yuki Sonoda)
=begin
というわけなのでr29197のバックポートをお願いします。
これ抜きだとopenssl絡みでtest-allが刺さりまくるので、割と致命的です。
=end
Updated by yugui (Yuki Sonoda) almost 14 years ago
=begin
r30334にてマージしました。ご確認ください
=end
Updated by yugui (Yuki Sonoda) almost 14 years ago
- Status changed from Assigned to Closed
=begin
=end