Project

General

Profile

Bug #5201

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) about 9 years ago. Updated about 9 years ago.

Status:
Third Party's Issue
Priority:
Normal
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

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) about 9 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) about 9 years ago

  • Parent task set to #5076

Updated by naruse (Yui NARUSE) about 9 years ago

  • Status changed from Open to Rejected

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

Updated by shyouhei (Shyouhei Urabe) about 9 years ago

  • Status changed from Rejected to Third Party's Issue

Updated by mrkn (Kenta Murata) about 9 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 の最適化を抑制していただくかですね。

Also available in: Atom PDF