Forum: Ruby-dev stuck in test/openssl/test_ssl.rb on Windows

B11f10c4cd9d53970e7be20caa43f940?d=identicon&s=25 unknown (Guest)
on 2014-05-29 23:13
(Received via mailing list)
Issue #9881 has been updated by Akira Tanaka.


まず ssl.sync_close = true の意味は、
ssl.close としたときに ssl に入っている
IO も同時に close するようにする、という意味です。

これがないと、test_verify_result で
sock = TCPSocket.new("127.0.0.1", port) として作ったソケットを close し忘れることになります。

close するようにしたら刺さるようになるというのは
ちょっと原因が想像しがたいのですが、
とりあえず刺さっているのはどこでしょうか。

刺さっている場所は ssl.sync_close = true そのものじゃなくて、それよりも後ではないかと思うのですが。

あと思いつくこととしては、test_verify_result は 3つのテストが入っている感じなので、
メソッドを 3つに分けてみるとかでしょうか。
それも含め、再現スクリプトを最小化してみるというのはどうでしょうか。


----------------------------------------
Bug #9881: stuck in test/openssl/test_ssl.rb on Windows
https://bugs.ruby-lang.org/issues/9881#change-46962

* Author: Usaku NAKAMURA
* Status: Assigned
* Priority: Normal
* Assignee: Akira Tanaka
* Category: test
* Target version: current: 2.2.0
* ruby -v: ruby 2.2.0dev (2014-05-29 trunk 46235) [x64-mswin64_100]
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN
----------------------------------------
r46223以降、WindowsにおいてOpenSSL::TestSSL#test_verify_resultで刺さってしまうようになりました。
(CI等で確認できます)

調べてみたところ、この変更時に追加された、

      ssl.sync_close = true

の1行が問題のようです。
よくわからないのですが、他のテストメソッドはこれがあっても問題ありません。

意味がわかってないので私にはなんとも言えないのですが、何かわかりますでしょうか?
This topic is locked and can not be replied to.