Project

General

Profile

Bug #2648

Mac OS X 10.6/10.5で--enable-pthreadのときtest-allでSEGVする

Added by kimuraw (Wataru Kimura) over 9 years ago. Updated over 8 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
-
ruby -v:
ruby 1.8.8dev (2010-01-22 revision 26374) [i386-darwin10.2.0]
[ruby-dev:40145]

Description

=begin
#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のNetBSDAPPLEを加えてMacでも有効にしたものを
trunk r26370に当てるとSEGVは発生しなくなりました。
=end


Files

test-all-r26382.log (26.5 KB) test-all-r26382.log kimuraw (Wataru Kimura), 01/25/2010 09:49 PM
patch-bug2648.diff (2.18 KB) patch-bug2648.diff kimuraw (Wataru Kimura), 01/26/2010 11:05 PM

Related issues

Related to Backport187 - Backport #2659: Problem when building with pthreads enabledClosed01/26/2010Actions
Related to Ruby master - Bug #270: lazy timer thraed creationClosedActions

History

#1

Updated by naruse (Yui NARUSE) over 9 years ago

=begin

Mac OS X上で1.8 (trunk r26382)および1.8.7-p249を--enable-pthreadで
この「1.8 (trunk r26382)」って 1.9 ですか?

1.8 の方は r26371 の修正の NetBSDAPPLE を加えるとどうですか ?
とりあえず 1.8 については、その方向で ruby_1_8 ブランチに対して動作を確認したパッチを作っていただければ取り込みます。
=end

#2

Updated by kimuraw (Wataru Kimura) over 9 years ago

=begin

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 の修正の NetBSDAPPLE を加えるとどうですか ?
とりあえず 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) を確認しました。

=end

#3

Updated by naruse (Yui NARUSE) over 9 years ago

  • Status changed from Open to Closed
  • % Done changed from 0 to 100

=begin
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.

=end

Also available in: Atom PDF