Bug #2648
Mac OS X 10.6/10.5で--enable-pthreadのときtest-allでSEGVする
| Status: | Closed | Start date: | 01/23/2010 | |
|---|---|---|---|---|
| Priority: | Normal | Due date: | ||
| Assignee: | - | % Done: | 100% |
|
| Category: | - | |||
| Target version: | - | |||
| ruby -v: | ruby 1.8.8dev (2010-01-22 revision 26374) [i386-darwin10.2.0] |
Description
#2603(NetBSD 5.0以降でpthreadの処理に由来する不具合)と似た現象なのですが、
Mac OS X上で1.8 (trunk r26382)および1.8.7-p249を--enable-pthreadで
configureしてビルドしたとき、make test-allで多数のsegmentation faultが発生します。
test-allの出力を添付しました。8時間ほどしても終了しなかったので途中までのものです。
一部抜粋します。
====
./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb ./runruby.rb --extout=.ext -- "./test/runner.rb" --basedir="./test" --runner=console
Loaded suite .
Started
........................................................................................................................................................................................................................./Volumes/CHome/kimuraw/work/ruby_1_8/lib/drb/extservm.rb:85: [BUG] Segmentation fault
ruby 1.8.8dev (2010-01-22 revision 26374) [i386-darwin10.2.0]
EEEEEEE/Volumes/CHome/kimuraw/work/ruby_1_8/lib/drb/extservm.rb:85: [BUG] Segmentation fault
ruby 1.8.8dev (2010-01-22 revision 26374) [i386-darwin10.2.0]
EEEEEEEEEEEEEE/Volumes/CHome/kimuraw/work/ruby_1_8/lib/drb/extservm.rb:85: [BUG] Segmentation fault
ruby 1.8.8dev (2010-01-22 revision 26374) [i386-darwin10.2.0]
E/Volumes/CHome/kimuraw/work/ruby_1_8/lib/drb/extservm.rb:85: [BUG] Segmentation fault
ruby 1.8.8dev (2010-01-22 revision 26374) [i386-darwin10.2.0]
====
* --enable-pthreadしないときSEGVしません
* 1.8.7-p174ではSEGVしません
* Mac OS X 10.6.2および10.5.8で確認しました
* #2603で提示されている最小の再現ケースでは再現しませんでした
* ./ruby -e'Thread.new{sleep};`./ruby -e"1"`'
* ./ruby -e'Thread.new{sleep};fork{}'
#2603のpatch-2の__NetBSD__に__APPLE__を加えてMacでも有効にしたものを
trunk r26370に当てるとSEGVは発生しなくなりました。
Related issues
Associated revisions
* io.c, eval.c, process.c: add __APPLE__ to r26371's condition.
patched by Wataru Kimura [ruby-dev:40145]
History
Updated by naruse (Yui NARUSE) over 2 years ago
> Mac OS X上で1.8 (trunk r26382)および1.8.7-p249を--enable-pthreadで この「1.8 (trunk r26382)」って 1.9 ですか? 1.8 の方は r26371 の修正の __NetBSD__ に __APPLE__ を加えるとどうですか ? とりあえず 1.8 については、その方向で ruby_1_8 ブランチに対して動作を確認したパッチを作っていただければ取り込みます。
Updated by kimuraw (Wataru Kimura) over 2 years ago
- File patch-bug2648.diff added
>> Mac OS X上で1.8 (trunk r26382)および1.8.7-p249を--enable-pthreadで >この「1.8 (trunk r26382)」って 1.9 ですか? すみません…1.8はブランチですね。1.9でなく1.8のつもりで書きました。 > 1.8 の方は r26371 の修正の __NetBSD__ に __APPLE__ を加えるとどうですか ? > とりあえず 1.8 については、その方向で ruby_1_8 ブランチに対して動作を確認したパッチを作っていただければ取り込みます。 1.8のr26425へのパッチを作成しました。 * Mac OS X 10.6.2および10.5.8でmake test-allがSEGVしなくなったこと * パッチ済みpthreadあり/パッチなしpthreadなしの場合でmake test-allの結果が(ほぼ)同じになること (10.6.2で4F1E/5F1E、10.5.8で5F2E/5F2E) を確認しました。
Updated by naruse (Yui NARUSE) over 2 years ago
- Status changed from Open to Closed
- % Done changed from 0 to 100
This issue was solved with changeset r26437. Wataru, thank you for reporting this issue. Your contribution to Ruby is greatly appreciated. May Ruby be with you.