[Bug go/61498] New: [4.10 regression] Many 64-bit Go tests SEGV in scanblock

ro at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Jun 13 13:42:00 GMT 2014


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61498

            Bug ID: 61498
           Summary: [4.10 regression] Many 64-bit Go tests SEGV in
                    scanblock
           Product: gcc
           Version: 4.10.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: go
          Assignee: ian at airs dot com
          Reporter: ro at gcc dot gnu.org
                CC: cmang at google dot com
              Host: sparc-sun-solaris2.11
            Target: sparc-sun-solaris2.9
             Build: sparc-sun-solaris2.11

Between 20140606 (r211315) and 20140612 (r211522), many 64-bit Go tests started 
to FAIL on 64-bit Solaris 11/SPARC:

FAIL: go.go-torture/execute/array-2.go execution,  -O0 

unexpected fault address 0xc208213b0c
fatal error: fault
[signal 0xa code=0x1 addr=0xc208213b0c]

runtime stack:
runtime_dopanic
        /vol/gcc/src/hg/trunk/local/libgo/runtime/panic.c:133
runtime_throw
        /vol/gcc/src/hg/trunk/local/libgo/runtime/panic.c:167
sig_panic_info_handler
        /vol/gcc/src/hg/trunk/local/libgo/runtime/go-signal.c:294

        :0
scanblock
        /vol/gcc/src/hg/trunk/local/libgo/runtime/mgc0.c:1048
markroot
        /vol/gcc/src/hg/trunk/local/libgo/runtime/mgc0.c:1405
runtime.parfordo
        /vol/gcc/src/hg/trunk/local/libgo/runtime/parfor.c:112
gc
        /vol/gcc/src/hg/trunk/local/libgo/runtime/mgc0.c:2282
mgc
        /vol/gcc/src/hg/trunk/local/libgo/runtime/mgc0.c:2225
runtime_mstart
        /vol/gcc/src/hg/trunk/local/libgo/runtime/proc.c:1026
main
        /vol/gcc/src/hg/trunk/local/libgo/runtime/go-main.c:43

        :0

goroutine 16 [garbage collection]:
created by main
        /vol/gcc/src/hg/trunk/local/libgo/runtime/go-main.c:42

goroutine 17 [runnable]:created by runtime_main
        /vol/gcc/src/hg/trunk/local/libgo/runtime/proc.c:561

Running it under gdb reveals

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1 (LWP 1)]
scanblock (wbuf=<optimized out>, keepworking=keepworking@entry=0 '\000')
    at /vol/gcc/src/hg/trunk/local/libgo/runtime/mgc0.c:1048
1048                                    obj = *(byte**)stack_top.b;
1: x/i $pc
=> 0xfffffffb998a230c <scanblock+348>:  ldx  [ %i5 ], %g1
(gdb) where
#0  scanblock (wbuf=<optimized out>, keepworking=keepworking@entry=0 '\000')
    at /vol/gcc/src/hg/trunk/local/libgo/runtime/mgc0.c:1048
#1  0xfffffffb998a2cf4 in markroot (desc=<optimized out>, i=<optimized out>)
    at /vol/gcc/src/hg/trunk/local/libgo/runtime/mgc0.c:1405
#2  0xfffffffb998a7d98 in runtime.parfordo (desc=0xc208428000)
    at /vol/gcc/src/hg/trunk/local/libgo/runtime/parfor.c:112
#3  0xfffffffb998a4a68 in gc (args=<optimized out>)
    at /vol/gcc/src/hg/trunk/local/libgo/runtime/mgc0.c:2282
#4  mgc (gp=0xc208002800)
    at /vol/gcc/src/hg/trunk/local/libgo/runtime/mgc0.c:2225
#5  0xfffffffb998ac120 in runtime_mstart (mp=0xfffffffb9a007290 <runtime_m0>)
    at /vol/gcc/src/hg/trunk/local/libgo/runtime/proc.c:1026
#6  0x0000000100001784 in main (argc=<optimized out>, argv=0xffffffff7ffff2f8)
    at /vol/gcc/src/hg/trunk/local/libgo/runtime/go-main.c:43
#7  0x000000010000121c in _start ()

and truss shows that it's an address alignment error:

/1:         Incurred fault #5, FLTACCESS  %pc = 0xFFFFFFFB998A230C
/1:           siginfo: SIGBUS BUS_ADRALN addr=0xC208213B0C
/1:         Received signal #10, SIGBUS [caught]
/1:           siginfo: SIGBUS BUS_ADRALN addr=0xC208213B0C

  Rainer



More information about the Gcc-bugs mailing list