This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Recent Go patch broke Alpha bootstrap
- From: Uros Bizjak <ubizjak at gmail dot com>
- To: Ian Lance Taylor <iant at google dot com>
- Cc: "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Date: Tue, 12 Nov 2013 08:52:07 +0100
- Subject: Re: Recent Go patch broke Alpha bootstrap
- Authentication-results: sourceware.org; auth=none
- References: <CAFULd4bOF+khsusED1tU8-tbH56CiRFhB7WKr7=mzo-eCfFmPQ at mail dot gmail dot com> <CAKOQZ8xT_+tN4uoja-9jt2j_B-39g=zWHgcsXU4FgZJjGX9kcw at mail dot gmail dot com> <CAFULd4ZtoVp4QUQYTNvUfTfDBK8W7UU+FEU3wDWijRGqzC5LhQ at mail dot gmail dot com> <CAKOQZ8wkS1NvnnOMcmrh=1kzjM96b2+y3jAPSGD+gL139WDyvg at mail dot gmail dot com>
On Mon, Nov 11, 2013 at 8:52 PM, Ian Lance Taylor <iant@google.com> wrote:
> On Fri, Nov 8, 2013 at 1:10 AM, Uros Bizjak <ubizjak@gmail.com> wrote:
>>
>> panic: runtime error: invalid memory address or nil pointer dereference
>> [signal 0xb code=0x1 addr=0x1c]
>> FAIL: runtime/pprof
>> gmake[2]: *** [runtime/pprof/check] Error 1
>>
>> This one is new, I have to look into it a bit deeper.
>
>
> I don't know what is happening here. I can't recreate it. There was
> a different problem that could arise in runtime/pprof, that was fixed
> by a patch I submitted on Saturday
> (http://gcc.gnu.org/ml/gcc-patches/2013-11/msg01016.html). So it's
> possible that this is fixed now.
The failure is specific to !USING_SPLIT_STACK targets:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x200009e9280 (LWP 21478)]
0x000000012001e854 in syscall.Exitsyscall () at
../../../gcc-svn/trunk/libgo/runtime/proc.c:1986
1986 m->p->syscalltick++;
(gdb) list
1981 #ifdef USING_SPLIT_STACK
1982 gp->gcstack = nil;
1983 #endif
1984 gp->gcnext_sp = nil;
1985 runtime_memclr(&gp->gcregs, sizeof gp->gcregs);
1986 m->p->syscalltick++;
1987 }
1988
1989 static bool
1990 exitsyscallfast(void)
(gdb) p m
$2 = <optimized out>
The crash is at line 1986, but it is unclear if m or p are null.
> If you are able to recreate it, try setting GOTRACEBACK=2 in the
> environment. That will provide more information in the backtrace.
Following is full traceback:
panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xb code=0x1 addr=0x1c]
goroutine 10 [running]:
runtime_dopanic
../../../gcc-svn/trunk/libgo/runtime/panic.c:77
__go_panic
../../../gcc-svn/trunk/libgo/runtime/go-panic.c:113
runtime_panicstring
../../../gcc-svn/trunk/libgo/runtime/panic.c:134
sig_panic_info_handler
../../../gcc-svn/trunk/libgo/runtime/go-signal.c:291
:0
syscall.Exitsyscall
../../../gcc-svn/trunk/libgo/runtime/proc.c:1986
runtime_notetsleepg
../../../gcc-svn/trunk/libgo/runtime/lock_futex.c:190
getprofile
../../../gcc-svn/trunk/libgo/runtime/cpuprof.c:370
runtime.CPUProfile
../../../gcc-svn/trunk/libgo/runtime/cpuprof.c:446
pprof.profileWriter
/home/uros/gcc-build/alphaev68-unknown-linux-gnu/libgo/gotest21332/test/pprof.go:600
kickoff
../../../gcc-svn/trunk/libgo/runtime/proc.c:229
:0
:0
created by runtime_pprof.StartCPUProfile
/home/uros/gcc-build/alphaev68-unknown-linux-gnu/libgo/gotest21332/test/pprof.go:594
goroutine 1 [chan receive]:
runtime_mcall
../../../gcc-svn/trunk/libgo/runtime/proc.c:292
runtime_chanrecv
../../../gcc-svn/trunk/libgo/runtime/chan.c:378
testing.RunTests
../../../gcc-svn/trunk/libgo/go/testing/testing.go:470
testing.Main
../../../gcc-svn/trunk/libgo/go/testing/testing.go:401
main.main
/home/uros/gcc-build/alphaev68-unknown-linux-gnu/libgo/gotest21332/test/_testmain.go:34
runtime_main
../../../gcc-svn/trunk/libgo/runtime/proc.c:560
kickoff
../../../gcc-svn/trunk/libgo/runtime/proc.c:229
:0
:0
goroutine 2 [syscall]:
goroutine in C code; stack unavailable
created by runtime_main
../../../gcc-svn/trunk/libgo/runtime/proc.c:547
goroutine 8 [chan receive]:
runtime_mcall
../../../gcc-svn/trunk/libgo/runtime/proc.c:292
runtime_chanrecv
../../../gcc-svn/trunk/libgo/runtime/chan.c:378
__go_receive_small
../../../gcc-svn/trunk/libgo/runtime/chan.c:503
runtime_pprof.StopCPUProfile
/home/uros/gcc-build/alphaev68-unknown-linux-gnu/libgo/gotest21332/test/pprof.go:621
__go_undefer
../../../gcc-svn/trunk/libgo/runtime/go-defer.c:52
runtime_pprof_test.TestCPUProfileWithFork
/home/uros/gcc-build/alphaev68-unknown-linux-gnu/libgo/gotest21332/test/pprof_test.go:181
testing.tRunner
../../../gcc-svn/trunk/libgo/go/testing/testing.go:389
kickoff
../../../gcc-svn/trunk/libgo/runtime/proc.c:229
:0
:0
created by testing.RunTests
../../../gcc-svn/trunk/libgo/go/testing/testing.go:469
Uros.