[MacRuby] #1117: Garbage collection issues

MacRuby ruby-noreply at macosforge.org
Mon Jan 17 15:38:35 PST 2011


#1117: Garbage collection issues
-------------------------------------+--------------------------------------
 Reporter:  eloy.de.enige@…          |       Owner:  lsansonetti@…        
     Type:  defect                   |      Status:  new                  
 Priority:  blocker                  |   Milestone:  MacRuby 0.9          
Component:  MacRuby                  |    Keywords:                       
-------------------------------------+--------------------------------------
 Install:

 {{{
 % git clone git at github.com:alloy/mocha-on-bacon.git
 Initialized empty Git repository in
 /Users/eloy/Documents/DEVELOPMENT/MacRuby/mocha-on-bacon/.git/
 remote: Counting objects: 42, done.
 remote: Compressing objects: 100% (34/34), done.
 remote: Total 42 (delta 13), reused 0 (delta 0)
 Receiving objects: 100% (42/42), 8.15 KiB, done.
 Resolving deltas: 100% (13/13), done.

 % cd mocha-on-bacon

 % sudo macgem install mac_bacon
 Password:
 Successfully installed mac_bacon-1.1.21
 1 gem installed

 % sudo macgem install mocha --format-executable
 Successfully installed rake-0.8.7
 Successfully installed mocha-0.9.10
 2 gems installed
 }}}

 Running with GC, results in:

 {{{
 % macbacon spec/mocha-on-bacon_spec.rb
 Bacon specs using Mocha, with a mock
 - passes when all expectations were fulfilled
 - fails when not all expectations were fulfilled
 - fails when there is an unexpected invocation
 - passes when the mockee receives all expected
 parametersmacruby(90645,0x105181000) malloc: resurrection error for object
 0x200be9260 while assigning {conservative-block}[96](0x200c90420)[16] =
 RBSpecification[32](0x200be9260)
 garbage pointer stored into reachable memory, break on
 auto_zone_resurrection_error to debug
 macruby(90645,0x105181000) malloc: resurrection error for object
 0x200be9260 while assigning {conservative-block}[96](0x200c903c0)[16] =
 RBSpecification[32](0x200be9260)
 garbage pointer stored into reachable memory, break on
 auto_zone_resurrection_error to debug

 - fails when the mockee receives unexpected parameters and complains about
 not being satisfiedmacruby(90645,0x105181000) malloc: resurrection error
 for object 0x200be9260 while assigning {conservative-
 block}[96](0x200c9b8c0)[16] = RBSpecification[32](0x200be9260)
 garbage pointer stored into reachable memory, break on
 auto_zone_resurrection_error to debug
 macruby(90645,0x105181000) malloc: resurrection error for object
 0x200be9260 while assigning {conservative-block}[96](0x200c9b800)[16] =
 RBSpecification[32](0x200be9260)
 garbage pointer stored into reachable memory, break on
 auto_zone_resurrection_error to debug
 macruby(90645,0x105181000) malloc: resurrection error for object
 0x200be9260 while assigning {conservative-block}[96](0x200c9b620)[16] =
 RBSpecification[32](0x200be9260)
 garbage pointer stored into reachable memory, break on
 auto_zone_resurrection_error to debug
 macruby(90645,0x105181000) malloc: resurrection error for object
 0x200be9260 while assigning {conservative-block}[96](0x200c903c0)[16] =
 RBSpecification[32](0x200be9260)
 garbage pointer stored into reachable memory, break on
 auto_zone_resurrection_error to debug
 macruby(90645,0x105181000) malloc: resurrection error for object
 0x200be9260 while assigning {conservative-block}[96](0x200c9f200)[16] =
 RBSpecification[32](0x200be9260)
 garbage pointer stored into reachable memory, break on
 auto_zone_resurrection_error to debug
 macruby(90645,0x105181000) malloc: resurrection error for object
 0x200bee780 while assigning {conservative-block}[96](0x200c9b620)[16] =
 RBSpecification[32](0x200bee780)
 garbage pointer stored into reachable memory, break on
 auto_zone_resurrection_error to debug
 macruby(90645,0x105181000) malloc: resurrection error for object
 0x200bee780 while assigning {conservative-block}[96](0x200c903c0)[16] =
 RBSpecification[32](0x200bee780)
 garbage pointer stored into reachable memory, break on
 auto_zone_resurrection_error to debug
 macruby(90645,0x105181000) malloc: resurrection error for object
 0x200bee780 while assigning {conservative-block}[96](0x200c9f200)[16] =
 RBSpecification[32](0x200bee780)
 garbage pointer stored into reachable memory, break on
 auto_zone_resurrection_error to debug
  [FAILED]
 - fails when the mockee receives unexpected parameters and complains about
 the unexpected parameters

 Bacon specs using Mocha, with a stubmacruby(90645,0x105181000) malloc:
 resurrection error for object 0x200bdeb20 while assigning {conservative-
 block}[96](0x200c97140)[16] = RBSpecification[32](0x200bdeb20)
 garbage pointer stored into reachable memory, break on
 auto_zone_resurrection_error to debug
 macruby(90645,0x105181000) malloc: resurrection error for object
 0x200bdeb20 while assigning {conservative-block}[96](0x200c970e0)[16] =
 RBSpecification[32](0x200bdeb20)
 garbage pointer stored into reachable memory, break on
 auto_zone_resurrection_error to debug
 macruby(90645,0x105181000) malloc: resurrection error for object
 0x200bdeb20 while assigning {conservative-block}[96](0x200c97020)[16] =
 RBSpecification[32](0x200bdeb20)
 garbage pointer stored into reachable memory, break on
 auto_zone_resurrection_error to debug
  [MISSING]
 macruby(90645,0x105181000) malloc: resurrection error for object
 0x200c8c920 while assigning {conservative-block}[96](0x200c97140)[16] =
 RBSpecification[32](0x200c8c920)
 garbage pointer stored into reachable memory, break on
 auto_zone_resurrection_error to debug
 macruby(90645,0x105181000) malloc: resurrection error for object
 0x200c8c920 while assigning {conservative-block}[96](0x200c970e0)[16] =
 RBSpecification[32](0x200c8c920)
 garbage pointer stored into reachable memory, break on
 auto_zone_resurrection_error to debug
 macruby(90645,0x105181000) malloc: resurrection error for object
 0x200c8c920 while assigning {conservative-block}[96](0x200c97020)[16] =
 RBSpecification[32](0x200c8c920)
 garbage pointer stored into reachable memory, break on
 auto_zone_resurrection_error to debug
  [MISSING]
 macruby(90645,0x105181000) malloc: resurrection error for object
 0x200c8dd00 while assigning {conservative-block}[96](0x200c93fc0)[16] =
 RBSpecification[32](0x200c8dd00)
 garbage pointer stored into reachable memory, break on
 auto_zone_resurrection_error to debug
 macruby(90645,0x105181000) malloc: resurrection error for object
 0x200c8dd00 while assigning {conservative-block}[96](0x200c970e0)[16] =
 RBSpecification[32](0x200c8dd00)
 garbage pointer stored into reachable memory, break on
 auto_zone_resurrection_error to debug
 macruby(90645,0x105181000) malloc: resurrection error for object
 0x200c8dd00 while assigning {conservative-block}[96](0x200c97140)[16] =
 RBSpecification[32](0x200c8dd00)
 garbage pointer stored into reachable memory, break on
 auto_zone_resurrection_error to debug
 macruby(90645,0x105181000) malloc: resurrection error for object
 0x200c8dd00 while assigning {conservative-block}[96](0x200c970e0)[16] =
 RBSpecification[32](0x200c8dd00)
 garbage pointer stored into reachable memory, break on
 auto_zone_resurrection_error to debug
 macruby(90645,0x105181000) malloc: resurrection error for object
 0x200c8dd00 while assigning {conservative-block}[96](0x200c97020)[16] =
 RBSpecification[32](0x200c8dd00)
 garbage pointer stored into reachable memory, break on
 auto_zone_resurrection_error to debug


 - passes when all Stubba expectations are fulfilled [MISSING]
 - fails when not all Stubba expectations were fulfilled [MISSING]

 Bacon::Error:
 /Library/Frameworks/MacRuby.framework/Versions/0.9/usr/lib/ruby/Gems/1.9.2/gems/mac_bacon-1.1.23/lib/mac_bacon.rb:426:in
 `satisfy': Bacon specs using Mocha, with a mock - fails when the mockee
 receives unexpected parameters and complains about not being satisfied
 /Library/Frameworks/MacRuby.framework/Versions/0.9/usr/lib/ruby/Gems/1.9.2/gems/mac_bacon-1.1.23/lib/mac_bacon.rb:409:in
 `have:'
         /Users/eloy/Documents/DEVELOPMENT/MacRuby/mocha-on-bacon/spec
 /mocha-on-bacon_spec.rb:37:in `block'
 /Library/Frameworks/MacRuby.framework/Versions/0.9/usr/lib/ruby/Gems/1.9.2/gems/mac_bacon-1.1.23/lib/mac_bacon.rb:158:in
 `block'
         /Users/eloy/Documents/DEVELOPMENT/MacRuby/mocha-on-bacon/lib
 /mocha-on-bacon.rb:30:in `block'
 /Library/Frameworks/MacRuby.framework/Versions/0.9/usr/lib/ruby/Gems/1.9.2/gems/mac_bacon-1.1.23/lib/mac_bacon.rb:195:in
 `execute_block_before_mocha'
         /Users/eloy/Documents/DEVELOPMENT/MacRuby/mocha-on-bacon/lib
 /mocha-on-bacon.rb:28:in `execute_block'
 /Library/Frameworks/MacRuby.framework/Versions/0.9/usr/lib/ruby/Gems/1.9.2/gems/mac_bacon-1.1.23/lib/mac_bacon.rb:154:in
 `run_before_mocha'
         /Users/eloy/Documents/DEVELOPMENT/MacRuby/mocha-on-bacon/lib
 /mocha-on-bacon.rb:23:in `run'
 /Library/Frameworks/MacRuby.framework/Versions/0.9/usr/lib/ruby/Gems/1.9.2/gems/mac_bacon-1.1.23/lib/mac_bacon.rb:234:in
 `run'
 /Library/Frameworks/MacRuby.framework/Versions/0.9/usr/lib/ruby/Gems/1.9.2/gems/mac_bacon-1.1.23/bin/macbacon:118:in
 `<main>'
         /usr/bin/macbacon:19:in `<main>'

 Bacon::Error: empty specification: Bacon specs using Mocha, with a stub
 passes when all Stubba expectations are fulfilled
 /Library/Frameworks/MacRuby.framework/Versions/0.9/usr/lib/ruby/Gems/1.9.2/gems/mac_bacon-1.1.23/lib/mac_bacon.rb:183:in
 `block': Bacon specs using Mocha, with a stub - passes when all Stubba
 expectations are fulfilled
         /Users/eloy/Documents/DEVELOPMENT/MacRuby/mocha-on-bacon/lib
 /mocha-on-bacon.rb:30:in `block'
 /Library/Frameworks/MacRuby.framework/Versions/0.9/usr/lib/ruby/Gems/1.9.2/gems/mac_bacon-1.1.23/lib/mac_bacon.rb:195:in
 `execute_block_before_mocha'
         /Users/eloy/Documents/DEVELOPMENT/MacRuby/mocha-on-bacon/lib
 /mocha-on-bacon.rb:28:in `execute_block'
 /Library/Frameworks/MacRuby.framework/Versions/0.9/usr/lib/ruby/Gems/1.9.2/gems/mac_bacon-1.1.23/lib/mac_bacon.rb:183:in
 `finalize_before_mocha'
         /Users/eloy/Documents/DEVELOPMENT/MacRuby/mocha-on-bacon/lib
 /mocha-on-bacon.rb:45:in `finalize'
 /Library/Frameworks/MacRuby.framework/Versions/0.9/usr/lib/ruby/Gems/1.9.2/gems/mac_bacon-1.1.23/lib/mac_bacon.rb:161:in
 `run_before_mocha'
         /Users/eloy/Documents/DEVELOPMENT/MacRuby/mocha-on-bacon/lib
 /mocha-on-bacon.rb:23:in `run'
 /Library/Frameworks/MacRuby.framework/Versions/0.9/usr/lib/ruby/Gems/1.9.2/gems/mac_bacon-1.1.23/lib/mac_bacon.rb:234:in
 `run'
 /Library/Frameworks/MacRuby.framework/Versions/0.9/usr/lib/ruby/Gems/1.9.2/gems/mac_bacon-1.1.23/lib/mac_bacon.rb:242:in
 `context_did_finish:'
 /Library/Frameworks/MacRuby.framework/Versions/0.9/usr/lib/ruby/Gems/1.9.2/gems/mac_bacon-1.1.23/lib/mac_bacon.rb:284:in
 `specification_did_finish:'
 /Library/Frameworks/MacRuby.framework/Versions/0.9/usr/lib/ruby/Gems/1.9.2/gems/mac_bacon-1.1.23/lib/mac_bacon.rb:190:in
 `finalize_before_mocha'
         /Users/eloy/Documents/DEVELOPMENT/MacRuby/mocha-on-bacon/lib
 /mocha-on-bacon.rb:45:in `finalize'
 /Library/Frameworks/MacRuby.framework/Versions/0.9/usr/lib/ruby/Gems/1.9.2/gems/mac_bacon-1.1.23/lib/mac_bacon.rb:161:in
 `run_before_mocha'
         /Users/eloy/Documents/DEVELOPMENT/MacRuby/mocha-on-bacon/lib
 /mocha-on-bacon.rb:23:in `run'
 /Library/Frameworks/MacRuby.framework/Versions/0.9/usr/lib/ruby/Gems/1.9.2/gems/mac_bacon-1.1.23/lib/mac_bacon.rb:234:in
 `run'
 /Library/Frameworks/MacRuby.framework/Versions/0.9/usr/lib/ruby/Gems/1.9.2/gems/mac_bacon-1.1.23/bin/macbacon:118:in
 `<main>'
         /usr/bin/macbacon:19:in `<main>'

 Bacon::Error: empty specification: Bacon specs using Mocha, with a stub
 fails when not all Stubba expectations were fulfilled
 /Library/Frameworks/MacRuby.framework/Versions/0.9/usr/lib/ruby/Gems/1.9.2/gems/mac_bacon-1.1.23/lib/mac_bacon.rb:183:in
 `block': Bacon specs using Mocha, with a stub - fails when not all Stubba
 expectations were fulfilled
         /Users/eloy/Documents/DEVELOPMENT/MacRuby/mocha-on-bacon/lib
 /mocha-on-bacon.rb:30:in `block'
 /Library/Frameworks/MacRuby.framework/Versions/0.9/usr/lib/ruby/Gems/1.9.2/gems/mac_bacon-1.1.23/lib/mac_bacon.rb:195:in
 `execute_block_before_mocha'
         /Users/eloy/Documents/DEVELOPMENT/MacRuby/mocha-on-bacon/lib
 /mocha-on-bacon.rb:28:in `execute_block'
 /Library/Frameworks/MacRuby.framework/Versions/0.9/usr/lib/ruby/Gems/1.9.2/gems/mac_bacon-1.1.23/lib/mac_bacon.rb:183:in
 `finalize_before_mocha'
         /Users/eloy/Documents/DEVELOPMENT/MacRuby/mocha-on-bacon/lib
 /mocha-on-bacon.rb:45:in `finalize'
 /Library/Frameworks/MacRuby.framework/Versions/0.9/usr/lib/ruby/Gems/1.9.2/gems/mac_bacon-1.1.23/lib/mac_bacon.rb:161:in
 `run_before_mocha'
         /Users/eloy/Documents/DEVELOPMENT/MacRuby/mocha-on-bacon/lib
 /mocha-on-bacon.rb:23:in `run'
 /Library/Frameworks/MacRuby.framework/Versions/0.9/usr/lib/ruby/Gems/1.9.2/gems/mac_bacon-1.1.23/lib/mac_bacon.rb:234:in
 `run'
 /Library/Frameworks/MacRuby.framework/Versions/0.9/usr/lib/ruby/Gems/1.9.2/gems/mac_bacon-1.1.23/lib/mac_bacon.rb:242:in
 `context_did_finish:'
 /Library/Frameworks/MacRuby.framework/Versions/0.9/usr/lib/ruby/Gems/1.9.2/gems/mac_bacon-1.1.23/lib/mac_bacon.rb:284:in
 `specification_did_finish:'
 /Library/Frameworks/MacRuby.framework/Versions/0.9/usr/lib/ruby/Gems/1.9.2/gems/mac_bacon-1.1.23/lib/mac_bacon.rb:190:in
 `finalize_before_mocha'
         /Users/eloy/Documents/DEVELOPMENT/MacRuby/mocha-on-bacon/lib
 /mocha-on-bacon.rb:45:in `finalize'
 /Library/Frameworks/MacRuby.framework/Versions/0.9/usr/lib/ruby/Gems/1.9.2/gems/mac_bacon-1.1.23/lib/mac_bacon.rb:161:in
 `run_before_mocha'
         /Users/eloy/Documents/DEVELOPMENT/MacRuby/mocha-on-bacon/lib
 /mocha-on-bacon.rb:23:in `run'
 /Library/Frameworks/MacRuby.framework/Versions/0.9/usr/lib/ruby/Gems/1.9.2/gems/mac_bacon-1.1.23/lib/mac_bacon.rb:234:in
 `run'
 /Library/Frameworks/MacRuby.framework/Versions/0.9/usr/lib/ruby/Gems/1.9.2/gems/mac_bacon-1.1.23/bin/macbacon:118:in
 `<main>'
         /usr/bin/macbacon:19:in `<main>'

 8 specifications (6 requirements), 1 failures, 0 errors
 }}}

 However, with GC disabled everything is fine:

 {{{
 % GC_DISABLE=true macbacon spec/mocha-on-bacon_spec.rb
 Bacon specs using Mocha, with a mock
 - passes when all expectations were fulfilled
 - fails when not all expectations were fulfilled
 - fails when there is an unexpected invocation
 - passes when the mockee receives all expected parameters
 - fails when the mockee receives unexpected parameters and complains about
 not being satisfied
 - fails when the mockee receives unexpected parameters and complains about
 the unexpected parameters

 Bacon specs using Mocha, with a stub
 - passes when all Stubba expectations are fulfilled
 - fails when not all Stubba expectations were fulfilled

 8 specifications (8 requirements), 0 failures, 0 errors
 }}}

-- 
Ticket URL: <http://www.macruby.org/trac/ticket/1117>
MacRuby <http://macruby.org/>



More information about the macruby-tickets mailing list