On Fri, Nov 15, 2013 at 12:35 PM, Uros Bizjak <ubiz...@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: >>> >>> The same error triggered on CentOS 5.10 x86_64 (another >>> !USING_SPLIT_STACK target) for 32bit lib (net, runtime). The panic: >>> string is the same, only addr=0x9f. There are also a couple of >>> segfaults (database/sql, net/http) and abort in sync/atomic. >> >> Could you check to see if this patch fixes the problem? Thanks. > > Unfortunately, it doesn't. > > I still see panic in runtime (trace below), segfault in sync, > database/sql, net/http and abort in sync/atomic on 32bit CentOS 5.10 > library. > > panic: runtime error: invalid memory address or nil pointer dereference > [signal 0xb code=0x1 addr=0x9f] These panics, segfaults and aborts are actually all the same: Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0xf7613bd0 (LWP 1342)] runqsteal (p=0x7f, p2=0x1830d000) at ../../../../gcc-svn/trunk/libgo/runtime/proc.c:3104 3104 p->runq[t++] = gp1; (gdb) bt #0 runqsteal (p=0x7f, p2=0x1830d000) at ../../../../gcc-svn/trunk/libgo/runtime/proc.c:3104 #1 0xf7a76a65 in findrunnable () at ../../../../gcc-svn/trunk/libgo/runtime/proc.c:1608 #2 schedule () at ../../../../gcc-svn/trunk/libgo/runtime/proc.c:1749 #3 0xf7a76ef6 in runtime_mstart (mp=0x1c150000) at ../../../../gcc-svn/trunk/libgo/runtime/proc.c:1025 #4 0x004bf912 in start_thread () from /lib/libpthread.so.0 #5 0x004297ce in clone () from /lib/libc.so.6 (gdb) list 3099 if(t2 == h2) 3100 break; 3101 gp1 = p2->runq[h2++]; 3102 if(h2 == s2) 3103 h2 = 0; 3104 p->runq[t++] = gp1; 3105 if(t == s) 3106 t = 0; 3107 } 3108 p->runqtail = t; (gdb) p p $1 = (P *) 0x7f Please note, that sometimes a couple of program invocations are needed for the segfault to happen. Uros.