結局 io/test_flush.rb はそのまま(時々 1E)。多分これって次のコードがどう動くかはっきり仕様として決まってないんじゃないかとも思います。少なくとも
pr, pw = IO.pipe thr = Thread.start { pw.write("a"*100000) } pr.read(1) pw.close thr.join
ただ IOError が発生することを期待して書いてしまっていたところがあるので少し困ったと。
rdoc/test_rdoc_markup_to_html_crossref.rb は原因は判明して ad-hoc なパッチができたので ruby-dev には投げた。redmine に既に同じ現象がチケット化されていたので、そちらにもぶらさげたほうがいいかも。
minitest/test_mini_test.rb が時々 1F になるのがやっかいそうなやつで、このテストや minitest だけを実行させると発生しない。全部流すと大抵(8割くらいかな)起きる。なお GC.stress 付けて単体でやってみたけど発生しなかった。多分 GC 絡みだと思ったのだけど。何回か GC が走った後でないと起きないのだろうか。よっぽど時間が取れたら追跡したいけど、会社の Linux サーバでしか発生していないので自宅では手が出せない。