# New Ticket Created by  Stephane Payrard 
# Please include the string:  [perl #58488]
# in the subject line of all future correspondence about this issue. 
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=58488 >


One can crash calling rakudo on a file containing

eval 'class A { has $.a};  my $a = A.new();';
eval 'class A { has $.a};  my $a = A.new();';
eval 'class A { has $.a};  my $a = A.new();';

or by executing thrice the line
  class A { has $.a};  my $a = A.new()
interactively in rakudo.
This is reproduceable on Mac OS X Leopard and cygwin.
The stack seems strange to me, it seems that the context of the eval
is  left on the stack when it should not as a result we have many
runloops in the stack.



The stack trace is :

Exception Type:  EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x0000000000000008
Crashed Thread:  0

Thread 0 Crashed:
0   libparrot.dylib                     0x00702c4d create_lexinfo + 317 
(pbc.c:993)
1   libparrot.dylib                     0x007033c2 add_const_pmc_sub + 1202
(pbc.c:1193)
2   libparrot.dylib                     0x0070485a e_pbc_emit + 570 (pbc.c:1865)
3   libparrot.dylib                     0x006f9397 emit_flush + 199
(instructions.c:869)
4   libparrot.dylib                     0x006f3c7e imc_compile_unit + 62 
(imc.c:118)
5   libparrot.dylib                     0x006f3dce imc_close_unit + 30 
(imc.c:223)
6   libparrot.dylib                     0x006e8128 yyparse + 3208 (imcc.y:718)
7   libparrot.dylib                     0x006f39b5 compile_string + 197 
(imcc.l:1342)
8   libparrot.dylib                     0x00706ed7 imcc_compile + 519
(parser_util.c:802)
9   libparrot.dylib                     0x007071ee imcc_compile_pir_ex + 46
(parser_util.c:986)
10  libparrot.dylib                     0x00540ac8 pcf_P_Jt + 120 (nci.c:235)
11  libparrot.dylib                     0x0062f340 Parrot_NCI_invoke + 176
(nci.pmc:310)
12  libparrot.dylib                     0x004be05b Parrot_invokecc_p + 107
(core.ops:463)
13  libparrot.dylib                     0x005761a7 runops_slow_core + 183
(runops_cores.c:222)
14  libparrot.dylib                     0x00536d4f runops_int + 447
(interpreter.c:942)
15  libparrot.dylib                     0x005376d2 runops + 194 
(inter_run.c:105)
16  libparrot.dylib                     0x00537974 runops_args + 436
(inter_run.c:237)
17  libparrot.dylib                     0x00537aa9 Parrot_runops_fromc_args
+ 73 (inter_run.c:300)
18  libparrot.dylib                     0x0052348c Parrot_ex_throw_from_c +
444 (exceptions.c:297)
19  libparrot.dylib                     0x00523563
Parrot_ex_throw_from_c_args + 195 (exceptions.c:339)
20  libparrot.dylib                     0x005f940f cant_do_method + 79
(default.pmc:63)
21  libparrot.dylib                     0x005fc089
Parrot_default_get_string + 41 (default.c:1345)
22  libparrot.dylib                     0x00569e26 fail_if_type_exists +
166 (oo.c:619)
23  libparrot.dylib                     0x00569ec8 Parrot_oo_register_type
+ 24 (oo.c:653)
24  libparrot.dylib                     0x0067ccf8 init_class_from_hash +
584 (class.pmc:222)
25  libparrot.dylib                     0x0067e74b Parrot_Class_init_pmc +
555 (class.c:844)
26  libparrot.dylib                     0x005757d0 pmc_new_init + 176 
(pmc.c:369)
27  libparrot.dylib                     0x004d395b Parrot_newclass_p_p + 59
(object.ops:249)
28  libparrot.dylib                     0x005761a7 runops_slow_core + 183
(runops_cores.c:222)
29  libparrot.dylib                     0x00536d4f runops_int + 447
(interpreter.c:942)
30  libparrot.dylib                     0x005376d2 runops + 194 
(inter_run.c:105)
31  libparrot.dylib                     0x00537974 runops_args + 436
(inter_run.c:237)
32  libparrot.dylib                     0x00537aa9 Parrot_runops_fromc_args
+ 73 (inter_run.c:300)
33  libparrot.dylib                     0x0056b6e0 run_sub + 112 
(packfile.c:496)
34  libparrot.dylib                     0x0056b935 do_1_sub_pragma + 565
(packfile.c:589)
35  libparrot.dylib                     0x0056bbb1 do_sub_pragmas + 289
(packfile.c:722)
36  libparrot.dylib                     0x005701c9 PackFile_fixup_subs + 41
(packfile.c:3812)
37  libparrot.dylib                     0x00706f46 imcc_compile + 630
(parser_util.c:822)
38  libparrot.dylib                     0x007071ee imcc_compile_pir_ex + 46
(parser_util.c:986)
39  libparrot.dylib                     0x00540ac8 pcf_P_Jt + 120 (nci.c:235)
40  libparrot.dylib                     0x0062f340 Parrot_NCI_invoke + 176
(nci.pmc:310)
41  libparrot.dylib                     0x004be05b Parrot_invokecc_p + 107
(core.ops:463)
42  libparrot.dylib                     0x005761a7 runops_slow_core + 183
(runops_cores.c:222)
43  libparrot.dylib                     0x00536d4f runops_int + 447
(interpreter.c:942)
44  libparrot.dylib                     0x005376d2 runops + 194 
(inter_run.c:105)
45  libparrot.dylib                     0x00537974 runops_args + 436
(inter_run.c:237)
46  libparrot.dylib                     0x00537aa9 Parrot_runops_fromc_args
+ 73 (inter_run.c:300)
47  libparrot.dylib                     0x0052348c Parrot_ex_throw_from_c +
444 (exceptions.c:297)
48  libparrot.dylib                     0x00523563
Parrot_ex_throw_from_c_args + 195 (exceptions.c:339)
49  libparrot.dylib                     0x00569e5e fail_if_type_exists +
222 (oo.c:623)
50  libparrot.dylib                     0x00569ec8 Parrot_oo_register_type
+ 24 (oo.c:653)
51  libparrot.dylib                     0x0067ccf8 init_class_from_hash +
584 (class.pmc:222)
52  libparrot.dylib                     0x0067e74b Parrot_Class_init_pmc +
555 (class.c:844)
53  libparrot.dylib                     0x005757d0 pmc_new_init + 176 
(pmc.c:369)
54  libparrot.dylib                     0x004d395b Parrot_newclass_p_p + 59
(object.ops:249)
55  libparrot.dylib                     0x005761a7 runops_slow_core + 183
(runops_cores.c:222)
56  libparrot.dylib                     0x00536d4f runops_int + 447
(interpreter.c:942)
57  libparrot.dylib                     0x005376d2 runops + 194 
(inter_run.c:105)
58  libparrot.dylib                     0x00537974 runops_args + 436
(inter_run.c:237)
59  libparrot.dylib                     0x00537aa9 Parrot_runops_fromc_args
+ 73 (inter_run.c:300)
60  libparrot.dylib                     0x0052348c Parrot_ex_throw_from_c +
444 (exceptions.c:297)
61  libparrot.dylib                     0x00523563
Parrot_ex_throw_from_c_args + 195 (exceptions.c:339)
62  libparrot.dylib                     0x00569e5e fail_if_type_exists +
222 (oo.c:623)
63  libparrot.dylib                     0x00569ec8 Parrot_oo_register_type
+ 24 (oo.c:653)
64  libparrot.dylib                     0x0067ccf8 init_class_from_hash +
584 (class.pmc:222)
65  libparrot.dylib                     0x0067e74b Parrot_Class_init_pmc +
555 (class.c:844)
66  libparrot.dylib                     0x005757d0 pmc_new_init + 176 
(pmc.c:369)
67  libparrot.dylib                     0x004d395b Parrot_newclass_p_p + 59
(object.ops:249)
68  libparrot.dylib                     0x005761a7 runops_slow_core + 183
(runops_cores.c:222)
69  libparrot.dylib                     0x00536d4f runops_int + 447
(interpreter.c:942)
70  libparrot.dylib                     0x005376d2 runops + 194 
(inter_run.c:105)
71  libparrot.dylib                     0x00537974 runops_args + 436
(inter_run.c:237)
72  libparrot.dylib                     0x00537aa9 Parrot_runops_fromc_args
+ 73 (inter_run.c:300)
73  libparrot.dylib                     0x0052348c Parrot_ex_throw_from_c +
444 (exceptions.c:297)
74  libparrot.dylib                     0x00523563
Parrot_ex_throw_from_c_args + 195 (exceptions.c:339)
75  libparrot.dylib                     0x00569e5e fail_if_type_exists +
222 (oo.c:623)
76  libparrot.dylib                     0x00569ec8 Parrot_oo_register_type
+ 24 (oo.c:653)
77  libparrot.dylib                     0x0067ccf8 init_class_from_hash +
584 (class.pmc:222)
78  libparrot.dylib                     0x0067e74b Parrot_Class_init_pmc +
555 (class.c:844)
79  libparrot.dylib                     0x005757d0 pmc_new_init + 176 
(pmc.c:369)
80  libparrot.dylib                     0x004d395b Parrot_newclass_p_p + 59
(object.ops:249)
81  libparrot.dylib                     0x005761a7 runops_slow_core + 183
(runops_cores.c:222)
82  libparrot.dylib                     0x00536d4f runops_int + 447
(interpreter.c:942)
83  libparrot.dylib                     0x005376d2 runops + 194 
(inter_run.c:105)
84  libparrot.dylib                     0x00537974 runops_args + 436
(inter_run.c:237)
85  libparrot.dylib                     0x00537aa9 Parrot_runops_fromc_args
+ 73 (inter_run.c:300)
86  libparrot.dylib                     0x0052348c Parrot_ex_throw_from_c +
444 (exceptions.c:297)
87  libparrot.dylib                     0x00523563
Parrot_ex_throw_from_c_args + 195 (exceptions.c:339)
88  libparrot.dylib                     0x00569e5e fail_if_type_exists +
222 (oo.c:623)
89  libparrot.dylib                     0x00569ec8 Parrot_oo_register_type
+ 24 (oo.c:653)
90  libparrot.dylib                     0x0067ccf8 init_class_from_hash +
584 (class.pmc:222)
91  libparrot.dylib                     0x0067e74b Parrot_Class_init_pmc +
555 (class.c:844)
92  libparrot.dylib                     0x005757d0 pmc_new_init + 176 
(pmc.c:369)
93  libparrot.dylib                     0x004d395b Parrot_newclass_p_p + 59
(object.ops:249)
94  libparrot.dylib                     0x005761a7 runops_slow_core + 183
(runops_cores.c:222)
95  libparrot.dylib                     0x00536d4f runops_int + 447
(interpreter.c:942)
96  libparrot.dylib                     0x005376d2 runops + 194 
(inter_run.c:105)
97  libparrot.dylib                     0x00537974 runops_args + 436
(inter_run.c:237)
98  libparrot.dylib                     0x00537aa9 Parrot_runops_fromc_args
+ 73 (inter_run.c:300)
99  libparrot.dylib                     0x0052348c Parrot_ex_throw_from_c +
444 (exceptions.c:297)
100 libparrot.dylib                     0x00523563
Parrot_ex_throw_from_c_args + 195 (exceptions.c:339)
101 libparrot.dylib                     0x00569e5e fail_if_type_exists +
222 (oo.c:623)
102 libparrot.dylib                     0x00569ec8 Parrot_oo_register_type
+ 24 (oo.c:653)
103 libparrot.dylib                     0x0067ccf8 init_class_from_hash +
584 (class.pmc:222)
104 libparrot.dylib                     0x0067e74b Parrot_Class_init_pmc +
555 (class.c:844)
105 libparrot.dylib                     0x005757d0 pmc_new_init + 176 
(pmc.c:369)
106 libparrot.dylib                     0x004d395b Parrot_newclass_p_p + 59
(object.ops:249)
107 libparrot.dylib                     0x005761a7 runops_slow_core + 183
(runops_cores.c:222)
108 libparrot.dylib                     0x00536d4f runops_int + 447
(interpreter.c:942)
109 libparrot.dylib                     0x005376d2 runops + 194 
(inter_run.c:105)
110 libparrot.dylib                     0x00537974 runops_args + 436
(inter_run.c:237)
111 libparrot.dylib                     0x00537aa9 Parrot_runops_fromc_args
+ 73 (inter_run.c:300)
112 libparrot.dylib                     0x0052348c Parrot_ex_throw_from_c +
444 (exceptions.c:297)
113 libparrot.dylib                     0x00523563
Parrot_ex_throw_from_c_args + 195 (exceptions.c:339)
114 libparrot.dylib                     0x00569e5e fail_if_type_exists +
222 (oo.c:623)
115 libparrot.dylib                     0x00569ec8 Parrot_oo_register_type
+ 24 (oo.c:653)
116 libparrot.dylib                     0x0067ccf8 init_class_from_hash +
584 (class.pmc:222)
117 libparrot.dylib                     0x0067e74b Parrot_Class_init_pmc +
555 (class.c:844)
118 libparrot.dylib                     0x005757d0 pmc_new_init + 176 
(pmc.c:369)
119 libparrot.dylib                     0x004d395b Parrot_newclass_p_p + 59
(object.ops:249)
120 libparrot.dylib                     0x005761a7 runops_slow_core + 183
(runops_cores.c:222)
121 libparrot.dylib                     0x00536d4f runops_int + 447
(interpreter.c:942)
122 libparrot.dylib                     0x005376d2 runops + 194 
(inter_run.c:105)
123 libparrot.dylib                     0x00537974 runops_args + 436
(inter_run.c:237)
124 libparrot.dylib                     0x00537aa9 Parrot_runops_fromc_args
+ 73 (inter_run.c:300)
125 libparrot.dylib                     0x0052348c Parrot_ex_throw_from_c +
444 (exceptions.c:297)
126 libparrot.dylib                     0x00523563
Parrot_ex_throw_from_c_args + 195 (exceptions.c:339)
127 libparrot.dylib                     0x00569e5e fail_if_type_exists +
222 (oo.c:623)
128 libparrot.dylib                     0x00569ec8 Parrot_oo_register_type
+ 24 (oo.c:653)
129 libparrot.dylib                     0x0067ccf8 init_class_from_hash +
584 (class.pmc:222)
130 libparrot.dylib                     0x0067e74b Parrot_Class_init_pmc +
555 (class.c:844)
131 libparrot.dylib                     0x005757d0 pmc_new_init + 176 
(pmc.c:369)
132 libparrot.dylib                     0x004d395b Parrot_newclass_p_p + 59
(object.ops:249)
133 libparrot.dylib                     0x005761a7 runops_slow_core + 183
(runops_cores.c:222)
134 libparrot.dylib                     0x00536d4f runops_int + 447
(interpreter.c:942)
135 libparrot.dylib                     0x005376d2 runops + 194 
(inter_run.c:105)
136 libparrot.dylib                     0x00537974 runops_args + 436
(inter_run.c:237)
137 libparrot.dylib                     0x00537aa9 Parrot_runops_fromc_args
+ 73 (inter_run.c:300)
138 libparrot.dylib                     0x0052348c Parrot_ex_throw_from_c +
444 (exceptions.c:297)
139 libparrot.dylib                     0x00523563
Parrot_ex_throw_from_c_args + 195 (exceptions.c:339)
140 libparrot.dylib                     0x00569e5e fail_if_type_exists +
222 (oo.c:623)
141 libparrot.dylib                     0x00569ec8 Parrot_oo_register_type
+ 24 (oo.c:653)
142 libparrot.dylib                     0x0067ccf8 init_class_from_hash +
584 (class.pmc:222)
143 libparrot.dylib                     0x0067e74b Parrot_Class_init_pmc +
555 (class.c:844)
144 libparrot.dylib                     0x005757d0 pmc_new_init + 176 
(pmc.c:369)
145 libparrot.dylib                     0x004d395b Parrot_newclass_p_p + 59
(object.ops:249)
146 libparrot.dylib                     0x005761a7 runops_slow_core + 183
(runops_cores.c:222)
147 libparrot.dylib                     0x00536d4f runops_int + 447
(interpreter.c:942)
148 libparrot.dylib                     0x005376d2 runops + 194 
(inter_run.c:105)
149 libparrot.dylib                     0x00537974 runops_args + 436
(inter_run.c:237)
150 libparrot.dylib                     0x00537aa9 Parrot_runops_fromc_args
+ 73 (inter_run.c:300)
151 libparrot.dylib                     0x00520b0c Parrot_runcode + 764 
(embed.c:952)
152 libparrot.dylib                     0x006f5779 imcc_run_pbc + 265 
(main.c:784)
153 libparrot.dylib                     0x006f621d imcc_run + 861 (main.c:1073)
154 parrot                              0x00001fb9 main + 185 (main.c:61)
155 parrot                              0x00001ec6 start + 54

-- 
cognominal stef

Reply via email to