OpenBSD 4.9/i386 segfaults

Andy Dougherty doughera at lafayette.edu
Mon Jul 18 18:06:33 UTC 2011


OpenBSD 4.9/i386 failed on parrot master as follows:

$ git describe --tags
RELEASE_3_5_0-204-g1d4f49f

$ uname -a
OpenBSD xxx 4.9 GENERIC#671 i386

$ gcc -v
Reading specs from /usr/bin/../lib/gcc-lib/i386-unknown-openbsd4.9/4.2.1/specs
Target: i386-unknown-openbsd4.9
Configured with: OpenBSD/i386 system compiler
Thread model: posix
gcc version 4.2.1 20070719 

$ perl Configure.pl

[completes ok.]

$ make

[. . . ]
./parrot-nqp --target=pir --output=compilers/opsc/gen/Ops/Compiler.pir  compilers/opsc/src/Ops/Compiler.pm
./parrot-nqp --target=pir --output=compilers/opsc/gen/Ops/Compiler/Actions.pir compilers/opsc/src/Ops/Compiler/Actions.pm
./parrot-nqp --target=pir --output=compilers/opsc/gen/Ops/Compiler/Grammar.pir compilers/opsc/src/Ops/Compiler/Grammar.pm
Segmentation fault (core dumped) 
*** Error code 139

Stop in /home/tmp/src/parrot/parrot (line 11 of compilers/opsc/Rules.mak).

$ gdb ./parrot-nqp ./parrot-nqp.core
GNU gdb 6.3
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-unknown-openbsd4.9"...
Core was generated by `parrot-nqp'.
Program terminated with signal 11, Segmentation fault.
Reading symbols from /usr/lib/libpthread.so.13.1...done.
Loaded symbols for /usr/lib/libpthread.so.13.1
Reading symbols from /home/tmp/src/parrot/parrot/blib/lib/libparrot.so.3.5.0...done.
Loaded symbols for /home/tmp/src/parrot/parrot/blib/lib/libparrot.so.3.5.0
Reading symbols from /usr/lib/libutil.so.11.2...done.
Loaded symbols for /usr/lib/libutil.so.11.2
Symbols already loaded for /usr/lib/libpthread.so.13.1
Reading symbols from /usr/lib/libreadline.so.3.0...done.
Loaded symbols for /usr/lib/libreadline.so.3.0
Reading symbols from /usr/lib/libncurses.so.12.0...done.
Loaded symbols for /usr/lib/libncurses.so.12.0
Reading symbols from /usr/lib/libstdc++.so.50.0...done.
Loaded symbols for /usr/lib/libstdc++.so.50.0
Reading symbols from /usr/lib/libm.so.5.2...done.
Loaded symbols for /usr/lib/libm.so.5.2
Reading symbols from /usr/lib/libc.so.58.0...done.
Loaded symbols for /usr/lib/libc.so.58.0
Reading symbols from /usr/libexec/ld.so...done.
Loaded symbols for /usr/libexec/ld.so
#0  0x0b3fe932 in gc_gms_is_pmc_ptr (interp=0x85d27400, ptr=0x7c872000) at src/gc/gc_gms.c:1485
1485        if (Parrot_pa_is_owned(interp, self->objects[POBJ2GEN(obj)], item, item->ptr)) {
(gdb) where
#0  0x0b3fe932 in gc_gms_is_pmc_ptr (interp=0x85d27400, ptr=0x7c872000) at src/gc/gc_gms.c:1485
#1  0x0b402cfd in trace_mem_block (interp=0x85d27400, mem_pools=0x0, lo_var_ptr=3485263996, hi_var_ptr=3485262828) at src/gc/system.c:503
#2  0x0b402e40 in trace_system_stack (interp=0x85d27400, mem_pools=0x0) at src/gc/system.c:260
#3  0x0b402ec8 in trace_system_areas (interp=0x85d27400, mem_pools=0x0) at src/gc/system.c:230
#4  0x0b4025b6 in Parrot_gc_trace_root (interp=0x85d27400, mem_pools=0x0, trace=GC_TRACE_FULL) at src/gc/mark_sweep.c:183
#5  0x0b3fda98 in gc_gms_validate_objects (interp=0x85d27400) at src/gc/gc_gms.c:2257
#6  0x0b400f92 in gc_gms_mark_and_sweep (interp=0x85d27400, flags=0) at src/gc/gc_gms.c:857
#7  0x0b4011e9 in gc_gms_allocate_pmc_header (interp=0x85d27400, flags=0) at src/gc/gc_gms.c:1405
#8  0x0b3f6b58 in Parrot_gc_new_pmc_header (interp=0x85d27400, flags=0) at src/gc/api.c:312
#9  0x0b437934 in get_new_pmc_header (interp=0x85d27400, base_type=17, flags=0) at src/pmc.c:491
#10 0x0b43810e in Parrot_pmc_new (interp=0x85d27400, base_type=17) at src/pmc.c:159
#11 0x0b47db59 in Parrot_Sub_invoke (interp=0x85d27400, _self=0x80c6e084, next=0x89e1c358) at src/pmc/sub.c:465
#12 0x0b3d4219 in Parrot_callmethodcc_p_s (cur_opcode=0x89e1c34c, interp=0x85d27400) at src/ops/core_ops.c:17715
#13 0x0b4399c8 in runops_fast_core (interp=0x85d27400, runcore_unused=0x7ec44f80, pc=0x89e1c34c) at src/runcore/cores.c:504
#14 0x0b4391da in runops_int (interp=0x85d27400, offset=48) at src/runcore/main.c:218
#15 0x0b412b56 in runops (interp=0x85d27400, offs=92445) at src/call/ops.c:126
#16 0x0b40b1ce in Parrot_pcc_invoke_from_sig_object (interp=0x85d27400, sub_obj=0x8264096c, call_object=0x7c7a7368) at src/call/pcc.c:337
#17 0x0b40b33e in Parrot_pcc_invoke_sub_from_c_args (interp=0x85d27400, sub_obj=0x8264096c, sig=0x2b380022 "P->") at src/call/pcc.c:139
#18 0x0b44c4a5 in Parrot_pf_execute_bytecode_program (interp=0x85d27400, pbc=0x82640a48, args=0x7ef0db60) at src/packfile/api.c:2590
#19 0x0b3ea4a3 in Parrot_api_run_bytecode (interp_pmc=0x836f6160, pbc=0x82640a48, mainargs=0x7ef0db60) at src/embed/bytecode.c:165
#20 0x1c001140 in main ()
(gdb) p ptr
$1 = (void *) 0x7c872000
(gdb) p item
$2 = (pmc_alloc_struct * const) 0x7c871ffc
(gdb) p *item
Error accessing memory address 0x7c871ffc: No such file or directory.
(gdb) quit


git bisect blames

1d270a0331242a9e50170697e0b5d7d4d65096f9 is the first bad commit
commit 1d270a0331242a9e50170697e0b5d7d4d65096f9
Author: chromatic <chromatic at wgz.org>
Date:   Tue Jul 5 17:03:38 2011 -0700

    [GC] Fixed Win32-killing type errors in d789b5.


-- 
    Andy Dougherty		doughera at lafayette.edu


More information about the parrot-dev mailing list