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行が問題のようです。 よくわからないのですが、他のテストメソッドはこれがあっても問題ありません。 意味がわかってないので私にはなんとも言えないのですが、何かわかりますでしょうか? -- https://bugs.ruby-lang.org/