#1134: Extremely weird stack trace produced my Parrot when allocating things in 
a
long loop in Rakudo
-------------------+--------------------------------------------------------
 Reporter:  masak  |        Type:  bug   
   Status:  new    |    Priority:  normal
Milestone:         |   Component:  GC    
  Version:  1.7.0  |    Severity:  high  
 Keywords:         |        Lang:        
    Patch:         |    Platform:        
-------------------+--------------------------------------------------------
 {{{
 $ time perl6 -e 'my @a; for 1 .. 100_000 { @a.push(42) }'
 src/gc/api.c:248: failed assertion 'PObj_is_PMC_TEST(obj)'
 Backtrace - Obtained 31 stack frames (max trace depth is 32).
 0   libparrot.dylib                     0x005fc2ad Parrot_do_check_events
 + 173
 1   libparrot.dylib                     0x005fc417 Parrot_confess + 151
 2   libparrot.dylib                     0x006097a7
 Parrot_gc_mark_PMC_alive_fun + 135
 3   libparrot.dylib                     0x007a05f5
 Parrot_CodeString_get_isa + 1957
 4   libparrot.dylib                     0x0060d4fe
 Parrot_is_blocked_GC_sweep + 6398
 5   libparrot.dylib                     0x006098c7
 Parrot_gc_mark_PObj_alive + 183
 6   libparrot.dylib                     0x0060eac1
 Parrot_is_blocked_GC_sweep + 11969
 7   libparrot.dylib                     0x0060eb8e
 Parrot_is_blocked_GC_sweep + 12174
 8   libparrot.dylib                     0x0060ec0c
 Parrot_is_blocked_GC_sweep + 12300
 9   libparrot.dylib                     0x0060d076
 Parrot_is_blocked_GC_sweep + 5238
 10  libparrot.dylib                     0x0060c213
 Parrot_is_blocked_GC_sweep + 1555
 11  libparrot.dylib                     0x0060c355
 Parrot_is_blocked_GC_sweep + 1877
 12  libparrot.dylib                     0x0060a7e3
 Parrot_gc_mark_STRING_alive_fun + 3827
 13  libparrot.dylib                     0x0060c5e8
 Parrot_is_blocked_GC_sweep + 2536
 14  libparrot.dylib                     0x0060c750
 Parrot_is_blocked_GC_sweep + 2896
 15  libparrot.dylib                     0x00609dfd
 Parrot_gc_mark_STRING_alive_fun + 1293
 16  libparrot.dylib                     0x00673156 pmc_reuse + 566
 17  libparrot.dylib                     0x00673278 pmc_new + 232
 18  libparrot.dylib                     0x0067d52e
 new_ret_continuation_pmc + 78
 19  libparrot.dylib                     0x0061d92d new_runloop_jump_point
 + 765
 20  libparrot.dylib                     0x0061e2a5
 Parrot_run_meth_fromc_args_reti + 213
 21  libparrot.dylib                     0x007c135a
 Parrot_NameSpace_get_isa + 30186
 22  libparrot.dylib                     0x0057dd2d Parrot_str_from_int +
 3469
 23  libparrot.dylib                     0x00676037 enable_event_checking +
 1991
 24  libparrot.dylib                     0x00674f2a Parrot_runcore_switch +
 3978
 25  libparrot.dylib                     0x0061d7b8 new_runloop_jump_point
 + 392
 26  libparrot.dylib                     0x0061dae6 new_runloop_jump_point
 + 1206
 27  libparrot.dylib                     0x0061e7ea
 Parrot_runops_fromc_args + 186
 28  libparrot.dylib                     0x005f9101 Parrot_runcode + 337
 29  perl6                               0x00001ac9 start + 505
 30  perl6                               0x00001906 start + 54
 Abort trap

 real    0m13.675s
 user    0m8.711s
 sys     0m0.405s


 <masak> hi, does this look strange to anyone?
 http://gist.github.com/215912
 <whiteknight> masak: extremely weird
 <masak> whiteknight: well, now you know how to reproduce it.
 <masak> just push stuff to an array in a long Perl 6 for loop.
 <whiteknight> Can you create a ticket?
 <masak> whiteknight: I'll try.
 <whiteknight> awesome. Thanks
 }}}

-- 
Ticket URL: <https://trac.parrot.org/parrot/ticket/1134>
Parrot <https://trac.parrot.org/parrot/>
Parrot Development
_______________________________________________
parrot-tickets mailing list
[email protected]
http://lists.parrot.org/mailman/listinfo/parrot-tickets

Reply via email to