Projects

Ticket #253 (new defect)

Opened 3 years ago

Last modified 14 months ago

Fibers are unsupported

Reported by: jvoorhis@… Owned by: lsansonetti@…
Priority: major Milestone: MacRuby 1.0
Component: MacRuby Keywords: fiber segfault #reduction
Cc: logan@…

Description

An example of macruby 0.4 segfaulting on Fibers follows. Matt Aimonetti reports similar findings at  http://lists.macosforge.org/pipermail/macruby-devel/2009-May/001717.html, including a failure to require 'fiber' in the 0.5 branch.

~ % macruby -v MacRuby version 0.4 (ruby 1.9.1) [universal-darwin9.5, x86_64] ~ % macruby -e 'Fiber.new{puts"hey"}.resume' hey -e:1: [BUG] Segmentation fault MacRuby version 0.4 (ruby 1.9.1) [universal-darwin9.5, x86_64]

-- stack frame ------------ 0000 (0xc08000060): 00000004 0001 (0xc08000068): 00000000 0002 (0xc08000070): 00000004 0003 (0xc08000078): 00000000 0004 (0xc08000080): 00000004 0005 (0xc08000088): 8000867c0 0006 (0xc08000090): 800030800 0007 (0xc08000098): 00000004 0008 (0xc080000a0): 00000000 <- lfp <- dfp -- control frame ---------- c:0004 p:---- s:0009 b:0009 l:000008 d:000008 CFUNC :resume c:0003 p:0019 s:0006 b:0006 l:002348 d:002348 TOP -e:1 c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH :inherited: c:0001 p:0000 s:0002 b:0002 l:000001 d:000001 TOP


DBG> : "-e:1:in `resume'" DBG> : "-e:1:in `<main>'" -- backtrace of native function call (Use addr2line) -- 0x10010f301 0x100029544 0x100029628 0x1000c245d 0x7fff82bf13aa 0x7fff5fc328d8


zsh: abort macruby -e 'Fiber.new{puts"hey"}.resume'

Attachments

bug253.rb Download (44 bytes) - added by mike.gehard@… 14 months ago.

Change History

in reply to: ↑ description   Changed 3 years ago by jvoorhis@…

Apologies for the junk formatting. Let's try this again.

~ % macruby -v
MacRuby version 0.4 (ruby 1.9.1) [universal-darwin9.5, x86_64]
~ % macirb
>> Fiber.new{puts"hey"}.resume
hey
(irb):1: [BUG] Segmentation fault
MacRuby version 0.4 (ruby 1.9.1) [universal-darwin9.5, x86_64]

-- stack frame ------------
0000 (0xc08000060): 00000004
0001 (0xc08000068): 00000000
0002 (0xc08000070): 00000004
0003 (0xc08000078): 00000000
0004 (0xc08000080): 00000004
0005 (0xc08000088): 00000000
0006 (0xc08000090): 10039cab0
0007 (0xc08000098): 80030a2c0
0008 (0xc080000a0): 8006323c0
0009 (0xc080000a8): 00000004
0010 (0xc080000b0): 8006cf740
0011 (0xc080000b8): 00000004
0012 (0xc080000c0): 100398010
0013 (0xc080000c8): 00000004
0014 (0xc080000d0): c080ffec8
0015 (0xc080000d8): 00000004
0016 (0xc080000e0): 8006cf798
0017 (0xc080000e8): 8006323c0
0018 (0xc080000f0): 00000004
0019 (0xc080000f8): 80068a7e0
0020 (0xc08000100): 80066f720
0021 (0xc08000108): 00000004
0022 (0xc08000110): c080ffd08
0023 (0xc08000118): 00000004
0024 (0xc08000120): 1003a81d0
0025 (0xc08000128): 00000004
0026 (0xc08000130): c080ffc98
0027 (0xc08000138): 00000004
0028 (0xc08000140): c08000110 (= 22)
0029 (0xc08000148): 00000004
0030 (0xc08000150): 00000004
0031 (0xc08000158): c080ffb48
0032 (0xc08000160): 8004dd8a0
0033 (0xc08000168): 00000004
0034 (0xc08000170): c08000140 (= 28)
0035 (0xc08000178): 80060aaa0
0036 (0xc08000180): 00000003
0037 (0xc08000188): 00000004
0038 (0xc08000190): 80068a828
0039 (0xc08000198): 00000004
0040 (0xc080001a0): 100398b60
0041 (0xc080001a8): 100398370
0042 (0xc080001b0): 00000004
0043 (0xc080001b8): c080ff988
0044 (0xc080001c0): 00000004
0045 (0xc080001c8): 00000004
0046 (0xc080001d0): 00000004
0047 (0xc080001d8): 00000004
0048 (0xc080001e0): 00000004
0049 (0xc080001e8): 00000004
0050 (0xc080001f0): 00000004
0051 (0xc080001f8): c08000190 (= 38)
0052 (0xc08000200): 800638520
0053 (0xc08000208): 80060aaa0
0054 (0xc08000210): 00000003
0055 (0xc08000218): 00000004
0056 (0xc08000220): 00000000
0057 (0xc08000228): 00000004
0058 (0xc08000230): 800612160
0059 (0xc08000238): 800638520
0060 (0xc08000240): 80060aaa0
0061 (0xc08000248): 80052c360
0062 (0xc08000250): 00000003
0063 (0xc08000258): 00000004
0064 (0xc08000260): 00000000
0065 (0xc08000268): 00000004
0066 (0xc08000270): 80060aaa0
0067 (0xc08000278): 8005e5260
0068 (0xc08000280): 80052c360
0069 (0xc08000288): 00000003
0070 (0xc08000290): 00000004
0071 (0xc08000298): 00000000
0072 (0xc080002a0): 00000004
0073 (0xc080002a8): 00000000
0074 (0xc080002b0): 00000004
0075 (0xc080002b8): 8004c71e0
0076 (0xc080002c0): 8004c6fa0
0077 (0xc080002c8): 00000004
0078 (0xc080002d0): 00000000 <- lfp <- dfp
-- control frame ----------
c:0024 p:---- s:0079 b:0079 l:000078 d:000078 CFUNC  :resume
c:0023 p:0019 s:0076 b:0076 l:0026b8 d:000b28 EVAL   (irb):1
c:0022 p:---- s:0074 b:0074 l:000073 d:000073 FINISH :empty?
c:0021 p:---- s:0072 b:0072 l:000071 d:000071 CFUNC  :eval
c:0020 p:0023 s:0065 b:0065 l:000064 d:000064 METHOD /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/irb/workspace.rb:80
c:0019 p:0025 s:0058 b:0057 l:000056 d:000056 METHOD /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/irb/context.rb:218
c:0018 p:0024 s:0052 b:0052 l:001bf8 d:000051 BLOCK  /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/irb.rb:149
c:0017 p:0025 s:0044 b:0044 l:000043 d:000043 METHOD /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/irb.rb:263
c:0016 p:0009 s:0039 b:0039 l:001bf8 d:000038 BLOCK  /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/irb.rb:146
c:0015 p:0110 s:0035 b:0035 l:000022 d:000034 BLOCK  /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/irb/ruby-lex.rb:244
c:0014 p:---- s:0034 b:0034 l:000033 d:000033 FINISH :block_given?
c:0013 p:---- s:0032 b:0032 l:000031 d:000031 CFUNC  :loop
c:0012 p:0007 s:0029 b:0029 l:000022 d:000028 BLOCK  /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/irb/ruby-lex.rb:230
c:0011 p:---- s:0029 b:0029 l:000028 d:000028 FINISH :each
c:0010 p:---- s:0027 b:0027 l:000026 d:000026 CFUNC  :catch
c:0009 p:0017 s:0023 b:0023 l:000022 d:000022 METHOD /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/irb/ruby-lex.rb:229
c:0008 p:0034 s:0020 b:0020 l:001bf8 d:001bf8 METHOD /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/irb.rb:145
c:0007 p:0009 s:0017 b:0017 l:0025a8 d:000016 BLOCK  /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/irb.rb:69
c:0006 p:---- s:0017 b:0017 l:000016 d:000016 FINISH :(null)
c:0005 p:---- s:0015 b:0015 l:000014 d:000014 CFUNC  :catch
c:0004 p:0147 s:0011 b:0011 l:0025a8 d:0025a8 METHOD /Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/irb.rb:68
c:0003 p:0033 s:0006 b:0006 l:000005 d:000005 TOP    /usr/local/bin/macirb:12
c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH :inherited:
c:0001 p:0000 s:0002 b:0002 l:000001 d:000001 TOP    
---------------------------
DBG> : "(irb):1:in `resume'"
DBG> : "(irb):1:in `irb_binding'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/irb/workspace.rb:80:in `eval'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/irb/workspace.rb:80:in `evaluate'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/irb/context.rb:218:in `evaluate'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/irb.rb:149:in `block (2 levels) in eval_input'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/irb.rb:263:in `signal_status'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/irb.rb:146:in `block in eval_input'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/irb/ruby-lex.rb:244:in `block (2 levels) in each_top_level_statement'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/irb/ruby-lex.rb:230:in `loop'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/irb/ruby-lex.rb:230:in `block in each_top_level_statement'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in `catch'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in `each_top_level_statement'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/irb.rb:145:in `eval_input'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/irb.rb:69:in `block in start'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/irb.rb:68:in `catch'"
DBG> : "/Library/Frameworks/MacRuby.framework/Versions/0.4/usr/lib/ruby/1.9.1/irb.rb:68:in `start'"
DBG> : "/usr/local/bin/macirb:12:in `<main>'"
-- backtrace of native function call (Use addr2line) --
0x10010f301
0x100029544
0x100029628
0x1000c245d
0x7fff82bf13aa
0x7fff84729c96
-------------------------------------------------------
zsh: abort      macirb

Replying to jvoorhis@…:

An example of macruby 0.4 segfaulting on Fibers follows. Matt Aimonetti reports similar findings at  http://lists.macosforge.org/pipermail/macruby-devel/2009-May/001717.html, including a failure to require 'fiber' in the 0.5 branch. ~ % macruby -v MacRuby version 0.4 (ruby 1.9.1) [universal-darwin9.5, x86_64] ~ % macruby -e 'Fiber.new{puts"hey"}.resume' hey -e:1: [BUG] Segmentation fault MacRuby version 0.4 (ruby 1.9.1) [universal-darwin9.5, x86_64] -- stack frame ------------ 0000 (0xc08000060): 00000004 0001 (0xc08000068): 00000000 0002 (0xc08000070): 00000004 0003 (0xc08000078): 00000000 0004 (0xc08000080): 00000004 0005 (0xc08000088): 8000867c0 0006 (0xc08000090): 800030800 0007 (0xc08000098): 00000004 0008 (0xc080000a0): 00000000 <- lfp <- dfp -- control frame ---------- c:0004 p:---- s:0009 b:0009 l:000008 d:000008 CFUNC :resume c:0003 p:0019 s:0006 b:0006 l:002348 d:002348 TOP -e:1 c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH :inherited: c:0001 p:0000 s:0002 b:0002 l:000001 d:000001 TOP --------------------------- DBG> : "-e:1:in `resume'" DBG> : "-e:1:in `<main>'" -- backtrace of native function call (Use addr2line) -- 0x10010f301 0x100029544 0x100029628 0x1000c245d 0x7fff82bf13aa 0x7fff5fc328d8 ------------------------------------------------------- zsh: abort macruby -e 'Fiber.new{puts"hey"}.resume'

  Changed 2 years ago by logan@…

  • cc logan@… added

Cc Me!

Changed 14 months ago by mike.gehard@…

  Changed 14 months ago by mike.gehard@…

As of 12.4.2010 in Github mirror of trunk, it doesn't look like macruby knows about Fibers:

ruby -v bug253.rb ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-darwin10.4.0] hey

macruby -v bug253.rb MacRuby 0.8 (ruby 1.9.2) [universal-darwin10.0, x86_64] /Users/msgehard/Documents/Development/rubyDevelopment/macruby_bugsmash/bug253.rb:1:in `<main>': no such file to load -- fiber (LoadError)

See attached file for test case.

  Changed 14 months ago by mattaimonetti@…

  • keywords #reduction added

  Changed 14 months ago by lsansonetti@…

  • milestone set to MacRuby 1.0

Moving to 1.0, but I think there is little chance this will happen.

Note: See TracTickets for help on using tickets.