#1443: Segfauts possibly caused by pool compaction bug
----------------------+-----------------------------------------------------
 Reporter:  jonathan  |       Owner:       
     Type:  bug       |      Status:  new  
 Priority:  major     |   Milestone:       
Component:  GC        |     Version:  1.9.0
 Severity:  high      |    Keywords:       
     Lang:            |       Patch:       
 Platform:  all       |  
----------------------+-----------------------------------------------------

Comment(by whiteknight):

 I am able to faithfully reproduce at least one error i
 t/spec/S32-array/unshift.rakudo:
 {{{
 Program received signal SIGSEGV, Segmentation fault.
 0x00007f756c170c78 in ?? () from /lib/libc.so.6
 (gdb) bt
 #0  0x00007f756c170c78 in ?? () from /lib/libc.so.6
 #1  0x00007f756c171276 in free () from /lib/libc.so.6
 #2  0x00007f756e4ce240 in PackFile_destroy (interp=0x12c4010,
 pf=0x474d690) at src/packfile.c:541
 #3  0x00007f756e4d07e5 in Parrot_freeze (interp=0x12c4010, pmc=<value
 optimized out>) at src/pmc_freeze.c:795
 #4  0x00007f756e52cc39 in Parrot_default_clone (interp=0x7f756c464a00,
 pmc=0x7f756c233590) at ./src/pmc/default.pmc:1068
 #5  0x00007f756e4c9abf in Parrot_oo_clone_object (interp=0x12c4010,
 pmc=<value optimized out>, class_=<value optimized out>, dest=<value
 optimized out>)
     at src/oo.c:306
 #6  0x00007f756e59c861 in Parrot_Object_clone (interp=0x12c4010,
 pmc=0x7f756903e830) at ./src/pmc/object.pmc:723
 #7  0x00007f756b5025e8 in Parrot_P6opaque_clone (interp=0x12c4010,
 pmc=0x7f756903e830) at p6opaque.c:263
 #8  0x00007f756e455cb1 in Parrot_clone_p_p (cur_opcode=0x7f756b7133e0,
 interp=0x7f756c464a00) at src/ops/set.ops:474
 #9  0x00007f756e4d216d in runops_fast_core (interp=0x12c4010,
 runcore=<value optimized out>, pc=0x7f756c464a00) at
 src/runcore/cores.c:670
 #10 0x00007f756e4d1a01 in runops_int (interp=0x12c4010, offset=192362) at
 src/runcore/main.c:546
 #11 0x00007f756e4a79f1 in runops (interp=0x12c4010, offs=<value optimized
 out>) at src/call/ops.c:99
 #12 0x00007f756e4a19bc in Parrot_pcc_invoke_from_sig_object
 (interp=0x12c4010, sub_obj=<value optimized out>, call_object=<value
 optimized out>)
     at src/call/pcc.c:314
 #13 0x00007f756e4a1ac4 in Parrot_pcc_invoke_sub_from_c_args
 (interp=0x12c4010, sub_obj=0x7f756a787ab8, sig=<value optimized out>) at
 src/call/pcc.c:75
 #14 0x0000000000400d9b in main (argc=2, argv=0x7fffdaca2a08) at
 perl6.c:306092
 (gdb) up
 #1  0x00007f756c171276 in free () from /lib/libc.so.6
 (gdb) up
 #2  0x00007f756e4ce240 in PackFile_destroy (interp=0x12c4010,
 pf=0x474d690) at src/packfile.c:541
 541         mem_sys_free(pf->dirp);
 (gdb) p *pf
 $1 = {directory = {base = {pf = 0x474d690, dir = 0x0, type = 0, name =
 0x7f75666fdaa0, op_count = 0, file_offset = 0, itype = 0, id = 0, size =
 0,
       data = 0x0}, num_segments = 0, segments = 0x0}, dirp = 0x474d8e0,
 src = 0x0, size = 0, is_mmap_ped = 0, header = 0x0, PackFuncs = {{
       new_seg = 0x7f756e4ca610 <directory_new>, destroy = 0x7f756e4ca4e0
 <directory_destroy>, packed_size = 0x7f756e4cd7e0 <directory_packed_size>,
       pack = 0x7f756e4cd610 <directory_pack>, unpack = 0x7f756e4cda20
 <directory_unpack>, dump = 0x7f756e4cb210 <directory_dump>}, {
       new_seg = 0x7f756e4cad50 <PackFile_Segment_new>, destroy = 0,
 packed_size = 0, pack = 0, unpack = 0, dump = 0x7f756e4cb110
 <default_dump>}, {
       new_seg = 0x7f756e4ca5f0 <fixup_new>, destroy = 0x7f756e4cbc10
 <fixup_destroy>, packed_size = 0x7f756e4cd730 <fixup_packed_size>,
       pack = 0x7f756e4cd540 <fixup_pack>, unpack = 0x7f756e4cd3b0
 <fixup_unpack>, dump = 0x7f756e4cb110 <default_dump>}, {
       new_seg = 0x7f756e4ca5d0 <const_new>, destroy = 0x7f756e4ca420
 <const_destroy>, packed_size = 0x7f756e4cf3f0
 <PackFile_ConstTable_pack_size>,
       pack = 0x7f756e4cf3a0 <PackFile_ConstTable_pack>, unpack =
 0x7f756e4cbaa0 <PackFile_ConstTable_unpack>, dump = 0x7f756e4cb110
 <default_dump>}, {
       new_seg = 0x7f756e4ca5b0 <byte_code_new>, destroy = 0x7f756e4cd360
 <byte_code_destroy>, packed_size = 0, pack = 0, unpack = 0,
       dump = 0x7f756e4cb110 <default_dump>}, {new_seg = 0x7f756e4cad60
 <pf_debug_new>, destroy = 0x7f756e4ca480 <pf_debug_destroy>,
       packed_size = 0x7f756e4ca090 <pf_debug_packed_size>, pack =
 0x7f756e4ca0a0 <pf_debug_pack>, unpack = 0x7f756e4cb510 <pf_debug_unpack>,
       dump = 0x7f756e4cb040 <pf_debug_dump>}, {new_seg = 0x7f756e4ca570
 <PackFile_Annotations_new>,
       destroy = 0x7f756e4ca2c0 <PackFile_Annotations_destroy>, packed_size
 = 0x7f756e4ca100 <PackFile_Annotations_packed_size>,
       pack = 0x7f756e4ca120 <PackFile_Annotations_pack>, unpack =
 0x7f756e4cb2e0 <PackFile_Annotations_unpack>,
       dump = 0x7f756e4cade0 <PackFile_Annotations_dump>}}, cur_cs = 0x0,
 options = 0, need_wordsize = 0, need_endianize = 0, fetch_op = 0, fetch_iv
 = 0,
   fetch_nv = 0}
 (gdb) p *pf->dirp
 $2 = {base = {pf = 0x474d690, dir = 0x0, type = 0, name = 0x7f75666fdaa0,
 op_count = 0, file_offset = 0, itype = 0, id = 0, size = 0, data = 0x0},
   num_segments = 0, segments = 0x0}
 }}}

-- 
Ticket URL: <https://trac.parrot.org/parrot/ticket/1443#comment:2>
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