[Bug go/56320] Several libgo tests FAIL on 64-bit Solaris/x86

ro at CeBiTec dot Uni-Bielefeld.DE gcc-bugzilla@gcc.gnu.org
Thu Feb 21 16:24:00 GMT 2013


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56320

--- Comment #3 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot Uni-Bielefeld.DE> 2013-02-21 16:23:52 UTC ---
> --- Comment #2 from Ian Lance Taylor <ian at airs dot com> 2013-02-20 19:46:42 UTC ---
> Should be fixed now, I hope.

Unfortunately, this is not enough.  I had the equivalent of your patch
in my tree when I noticed that I got different results for running the
tests via gotest and manually.  This got rid of the runtime_lfstackpush
error, but the failures remain.

panic: runtime error: invalid memory address or nil pointer dereference
[recovered]
        panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xb code=0x1 addr=0x105]

[...]

Running the os test under mdb reveals (in the child process):

mdb: fork1 detected: follow (p)arent or (c)hild? c
mdb: target forked child process 24260 (debugger following child)
mdb: stop on SIGSEGV
mdb: target stopped at:
libc.so.1`close+0x44:   addl   $0x1,(%rdx)
> $c
libc.so.1`close+0x44()
libgo.so.3.0.1`syscall.raw_fcntl.constprop.124+0x13()
libgo.so.3.0.1`syscall.forkExec+0x940()
libgo.so.3.0.1`syscall.StartProcess+0x2f()
os.StartProcess+0x20d()
os_test.exec+0x179()
os_test.TestStartProcess+0x101()
libgo.so.3.0.1`testing.$thunk10+0xd9()
libgo.so.3.0.1`kickoff+0x2e()
libc.so.1`resumecontext()
libgo.so.3.0.1`testing.RunTests+0x41e()
libgo.so.3.0.1`testing.Main+0x3ee()
main.main+0x7d()
libgo.so.3.0.1`runtime_main+0x6a()
libgo.so.3.0.1`kickoff+0x2e()
libc.so.1`resumecontext()
main+0x40()
_start+0x6c()

Under truss, I see this:

24271:  fcntl(4, F_DUP2FD, 0x00000001)                  = 1
24271:      Incurred fault #6, FLTBOUNDS  %pc = 0xFFFFFD7FEE350718
24271:        siginfo: SIGSEGV SEGV_MAPERR addr=0xC20F9CFEA9
24271:      Received signal #11, SIGSEGV [caught]
24271:        siginfo: SIGSEGV SEGV_MAPERR addr=0xC20F9CFEA9

I couldn't yet associate this SEGV with the exact source code location.
At least the net/http failure seems related: the test dies with SIGILL
in fcntl:

Program received signal SIGILL, Illegal instruction.
[Switching to Thread 15 (LWP 15)]
0xfffffd7fee350415 in fcntl () from /lib/64/libc.so.1
(gdb) where
#0  0xfffffd7fee350415 in fcntl () from /lib/64/libc.so.1
#1  0xfffffd7feeab085a in syscall.fcntl (fd=fd@entry=38, cmd=cmd@entry=2, 
    arg=arg@entry=1) at libcalls.go:416

  fcntl (38, F_SETFD, FD_CLOEXEC);

#2  0xfffffd7feeabeb4e in syscall.CloseOnExec (fd=fd@entry=38)
    at /vol/gcc/src/hg/trunk/local/libgo/go/syscall/exec_unix.go:130
#3  0xfffffd7feea7c984 in net.sysSocket (p=<optimized out>, t=2, f=2)
    at /vol/gcc/src/hg/trunk/local/libgo/go/net/sys_cloexec.go:21
#4  net.socket (net=..., f=f@entry=2, t=t@entry=2, p=p@entry=0, 
    ipv6only=ipv6only@entry=false, ulsa=ulsa@entry=..., ursa=ursa@entry=..., 
    deadline=..., toAddr=toAddr@entry=0xfffffd7feea7a920 <net.sockaddrToTCP>)
    at /vol/gcc/src/hg/trunk/local/libgo/go/net/sock_posix.go:20
#5  0xfffffd7feea7d0ca in net.internetSocket (net=..., laddr=..., raddr=..., 
    deadline=..., sotype=sotype@entry=2, proto=proto@entry=0, mode=..., 
    toAddr=toAddr@entry=0xfffffd7feea7a920 <net.sockaddrToTCP>)
    at /vol/gcc/src/hg/trunk/local/libgo/go/net/ipsock_posix.go:146
#6  0xfffffd7feea7d28a in net.dialTCP (net=..., laddr=laddr@entry=0x0, 
    raddr=raddr@entry=0xc2061630f0, deadline=...)
    at /vol/gcc/src/hg/trunk/local/libgo/go/net/tcpsock_posix.go:153
#7  0xfffffd7feea7e051 in net.dialAddr (net=..., addr=..., addri=..., 
    deadline=...) at /vol/gcc/src/hg/trunk/local/libgo/go/net/dial.go:99
#8  0xfffffd7feea82d52 in net.Dial (net=..., addr=...)
    at /vol/gcc/src/hg/trunk/local/libgo/go/net/dial.go:93
#9  0x000000000044e3f1 in net_http.dial.pN18_net_http.Transport (
    t=t@entry=0xc204c78540, network=..., addr=...) at transport.go:314
#10 0x000000000044e49c in net_http.getConn.pN18_net_http.Transport (
    t=t@entry=0xc204c78540, cm=0xc206163090) at transport.go:326
#11 0x000000000044d944 in net_http.RoundTrip.pN18_net_http.Transport (
    t=0xc204c78540, req=0xc206165000) at transport.go:160
#12 0x000000000043dd7c in http.send (t=..., req=0xc206165000) at client.go:162
#13 net_http.send.pN15_net_http.Client (c=c@entry=0xc2052a1f60, 
    req=req@entry=0xc206165000) at client.go:96
#14 0x000000000043e262 in net_http.doFollowingRedirects.pN15_net_http.Client (
    c=c@entry=0xc2052a1f60, ireq=0xc206165000, 
    shouldRedirect=shouldRedirect@entry=0x43e080 <http.shouldRedirectGet>)
    at client.go:278
#15 0x000000000043e181 in net_http.Get.pN15_net_http.Client (c=0xc2052a1f60, 
    url=...) at client.go:232
#16 0x000000000047fead in http_test.$nested112 () at transport_test.go:940
#17 0xfffffd7feea3fd2e in kickoff ()
    at /vol/gcc/src/hg/trunk/local/libgo/runtime/proc.c:369
#18 0xfffffd7fee2d1460 in ?? () from /lib/64/libc.so.1
#19 0x0000000000000001 in ?? ()
#20 0x0000000000000000 in ?? ()

    Rainer



More information about the Gcc-bugs mailing list