Backport #3794
closed
test/openssl/test_ssl.rb hungs on mswin32_100
Added by arton (Akio Tajima) about 14 years ago.
Updated over 13 years ago.
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
- Assignee set to nahi (Hiroshi Nakamura)
=begin
広範囲に影響するものの、ビルド環境ないのでそのまま取り込んで様子を見ようと思いますが、
以前から伺っていたように、OpenSSL 1.0.0aとの組み合わせのときだけ発症、
という理解であっていますか?
=end
=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
=begin
あのコードを読む限り、OpenSSLは無関係です。
了解です。御確認ありがとうございます。そのまま当てます。
=end
- Status changed from Open to Closed
=begin
まあいまさらですけど情報を残しておきますと、本件はVC10からerrno.hの
中身が変わりやがったことが影響したものと思われます。
VC9以前ではWSAGetLastError()の返す値は我々のerrnoと原則同値だった
ので、基本的には無変換でよかったのです。
なお対応方針として今回のパッチ適用で間違ってはいません。
=end
- 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
=begin
r30334にてマージしました。ご確認ください
=end
- Status changed from Assigned to Closed
Also available in: Atom
PDF
Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0