[ruby-dev:40430] [Bug #2748] fix for READ_CHECK causes failures on FreeBSD 8.0

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

[ruby-dev:40430] [Bug #2748] fix for READ_CHECK causes failures on FreeBSD 8.0

Dennis Ranke-2
Bug #2748: fix for READ_CHECK causes failures on FreeBSD 8.0
http://redmine.ruby-lang.org/issues/show/2748

起票者: Yui NARUSE
ステータス: Assigned, 優先度: Normal
担当者: Yusuke Endoh, カテゴリ: core
ruby -v: ruby 1.9.2dev (2010-02-15 trunk 26674) [x86_64-freebsd8.0]

間を置いてからの報告で申し訳ないのですが、例の READ_CHECK の修正 (r26625) が、
FreeBSD での test-all の失敗を増やします。
r26625 を revert するとこれらのテストは成功するようになります。

  1) Failure:
test_read_error(TestIO) [/home/naruse/ruby/test/ruby/test_io.rb:869]:
RuntimeError expected but nothing was raised.

  2) Failure:
test_readpartial_error(TestIO) [/home/naruse/ruby/test/ruby/test_io.rb:834]:
RuntimeError expected but nothing was raised.


----------------------------------------
http://redmine.ruby-lang.org

Reply | Threaded
Open this post in threaded view
|

[ruby-dev:40433] Re: [Bug #2748] fix for READ_CHECK causes failures on FreeBSD 8.0

Yusuke ENDOH
遠藤です。

2010年2月16日3:42 Yui NARUSE <[hidden email]>:
> 間を置いてからの報告で申し訳ないのですが、例の READ_CHECK の修正 (r26625) が、
> FreeBSD での test-all の失敗を増やします。
> r26625 を revert するとこれらのテストは成功するようになります。


[ruby-dev:40390][ruby-dev:40391][ruby-dev:40408] あたりで話しているのです
が、元の仕様上の問題です。

失敗しているテストは、読み込みバッファが破壊された時に例外が上がることを
試すテストですが、読み込みを開始してからバッファが破壊されたことを検知する
のは困難です。r26625 を revert しても EFAULT や SEGV を起こせることを確認
しています。

読み込み開始してからではなく、読み込み前にバッファ文字列をロックして、そも
そも破壊させない必要がある (例外の上がるタイミングが read ではなくバッファ
を破壊した瞬間になる、という些細な仕様変更はある) 、というのが現在の結論で
す。

がたがた言ってないで直せという話なんですが、IO に全く自信がないので誰か
やってくれると嬉しいです。
が、たぶん誰もやってくれないので今晩あたり適当にやってみようと思います。

--
Yusuke ENDOH <[hidden email]>