[ruby-list:49613] Re: IO.popen の不審な挙動を再現するサンプルコード

From: Nobuyoshi Nakada <nobu@...>
Date: 2013-09-28 14:42:23 UTC
List: ruby-list #49613
(13/09/28 20:29), 尾川敏也 wrote:
> なお、IO.popen で C プログラムを使う状態で、試しに 入力データを 3000
> 行から 4000 行に増やしたら、これまで見かけなかった以下のようなエラー
> メッセージが表示されました。
> 
>     ----------- 40 / 100 ---------
>     ----------- 41 / 100 ---------
>     ----------- 42 / 100 ---------
>     ----------- 43 / 100 ---------
>     ----------- 44 / 100 ---------
>     C:/ogw/ruby/use_iopopen.rb:6:in `close_write': closed stream (IOError)
>             from C:/ogw/ruby/use_iopopen.rb:6:in `block (2 levels) in |'

スレッドtの終了を待たずにpopenのブロックを抜けているために、
close_writeの前にcloseされているのでしょう。

>     [BUG] Segmentation fault
>     ruby 2.0.0p247 (2013-06-27 revision 41674) [i386-mswin32_100]
>     
>     -- C level backtrace information -------------------------------------------
>     (ここでフリーズして動かなくなりました。)
> 
> [BUG] とか C level backtrace information などというのが表示されてい
> ますので、私の外部プログラムではなくて Ruby 側の問題のように見えま
> す。(違っていたら、大変恥ずかしいですが。)

これはrubyのバグです。できれば、trunkでも試してみてください。

-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread