Project

General

Profile

Actions

Bug #5201

closed

Bug #5076: Mac OS X Lion Support

Ruby 1.9.2p290 [x86_64-darwin11.0.0] Fiber.yieldでSEGV

Added by h_morita_esm (Hideyuki MORITA) over 12 years ago. Updated over 12 years ago.

Status:
Third Party's Issue
Assignee:
-
Target version:
-
ruby -v:
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin11.0.0]
Backport:
[ruby-core:39007]

Description

=begin

ビルド/実行環境はMac OS X Lion (10.7)、Xcode 4.1.1です。
llvm-gccをgccに置き換えるなどの変更は特に行っていません。

処理系はソースコードからconfigure & make & make installしました。

以下のようなコードでSEGVしました。

require 'fiber'

task = Fiber.new do
Fiber.yield 1
Fiber.yield 2
end

puts task.resume
puts task.resume

以下が実行結果です。

1
/Users/h_morita/fiber_bug.rb:4: [BUG] Segmentation fault
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin11.0.0]

-- control frame ----------
c:0004 p:---- s:0009 b:0009 l:000008 d:000008 CFUNC :yield
c:0003 p:0017 s:0005 b:0005 l:001458 d:000004 BLOCK /Users/h_morita/fiber_bug.rb:4
c:0002 p:---- s:0003 b:0003 l:000002 d:000002 FINISH
c:0001 p:---- s:0001 b:-001 l:000000 d:000000 ------

-- Ruby level backtrace information ----------------------------------------
/Users/h_morita/fiber_bug.rb:4:in block in <main>' /Users/h_morita/fiber_bug.rb:4:in yield'

-- C level backtrace information -------------------------------------------

[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html

zsh: abort ./bin/ruby ~/fiber_bug.rb

2回目のresumeで、yieldに戻るタイミングあたりでSEGVします。

=end


Related issues 1 (0 open1 closed)

Related to Ruby master - Bug #5082: test_context_switch(TestMarshal) was failed on OS X 10.7 (Lion)Closedkosaki (Motohiro KOSAKI)07/23/2011Actions

Updated by kosaki (Motohiro KOSAKI) over 12 years ago

ビルド/実行環境はMac OS X Lion (10.7)、Xcode 4.1.1です。 llvm-gccをgccに置き換えるなどの変更は特に行っていません。

この場合 llvm-gcc が使われてしまうので、

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

と同じじゃないですかね? 1.9.3-preview1でも再現しますか?

Updated by kosaki (Motohiro KOSAKI) over 12 years ago

  • Parent task set to #5076

Updated by naruse (Yui NARUSE) over 12 years ago

  • Status changed from Open to Rejected

fiber だと llvm-gcc だからでしょうね。
gcc-4.2 でも再現したら reopen してください。

Updated by shyouhei (Shyouhei Urabe) over 12 years ago

  • Status changed from Rejected to Third Party's Issue

Updated by mrkn (Kenta Murata) over 12 years ago

試してみました。Xcode のバージョンは 4.1 (Build 4B110) です。

1.9.3 HEAD を、
gcc-4.2 -O3 -march=core2 -mtune=core2 でビルドした結果: 問題なし
gcc -O3 -march=core2 -mtune=core2 でビルドした結果: 問題なし

1.9.2 に http://redmine.ruby-lang.org/issues/5074 がバックポートされた場合は、
gcc-4.2 -O3 -march=core2 -mtune=core2 でビルドした結果: 問題なし
gcc -O0 -march=core2 -mtune=core2 でビルドした結果: 問題なし
gcc -O3 -march=core2 -mtune=core2 でビルドした結果: Bus Error

という結果ですので、パッチがバックポートされるまでは gcc-4.2 を使っていただくか、
もしくは gcc の最適化を抑制していただくかですね。

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0