Ticket #1134 (closed bug: fixed)
Extremely weird stack trace produced my Parrot when allocating things in a long loop in Rakudo
| Reported by: | masak | Owned by: | |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | GC | Version: | 1.7.0 |
| Severity: | high | Keywords: | |
| Cc: | Language: | ||
| Patch status: | Platform: |
Description
$ 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
Change History
Note: See
TracTickets for help on using
tickets.
