OpenBSD 4.9/i386 segfaults

Jonathan "Duke" Leto jonathan at leto.net
Mon Jul 18 18:30:11 UTC 2011


Howdy,

What did you use for the boundaries of the bisect?

How much memory does that machine have?

I run into a similar problem on one of the GCC Compile Farm OpenBSD machines.

I think this is more of a "our build doesn't work on small memory
machines" error.

Duke

On Mon, Jul 18, 2011 at 11:06 AM, Andy Dougherty <doughera at lafayette.edu> wrote:
> 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
> _______________________________________________
> http://lists.parrot.org/mailman/listinfo/parrot-dev
>



-- 
Jonathan "Duke" Leto <jonathan at leto.net>
Leto Labs LLC
209.691.DUKE // http://labs.leto.net
NOTE: Personal email is only checked twice a day at 10am/2pm PST,
please call/text for time-sensitive matters.


More information about the parrot-dev mailing list