This is the mail archive of the
mailing list for the GCC project.
Recent Go patch fails several tests on 32bit CentOS 5.10
- 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: Fri, 15 Nov 2013 13:56:37 +0100
- Subject: Recent Go patch fails several tests on 32bit CentOS 5.10
- Authentication-results: sourceware.org; auth=none
On Fri, Nov 15, 2013 at 12:35 PM, Uros Bizjak <email@example.com> wrote:
>>>>>> panic: runtime error: invalid memory address or nil pointer dereference
>>>>>> [signal 0xb code=0x1 addr=0x1c]
>>>>>> FAIL: runtime/pprof
>>>>>> gmake: *** [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
> 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
3104 p->runq[t++] = gp1;
#0 runqsteal (p=0x7f, p2=0x1830d000) at
#1 0xf7a76a65 in findrunnable () at
#2 schedule () at ../../../../gcc-svn/trunk/libgo/runtime/proc.c:1749
#3 0xf7a76ef6 in runtime_mstart (mp=0x1c150000) at
#4 0x004bf912 in start_thread () from /lib/libpthread.so.0
#5 0x004297ce in clone () from /lib/libc.so.6
3099 if(t2 == h2)
3101 gp1 = p2->runq[h2++];
3102 if(h2 == s2)
3103 h2 = 0;
3104 p->runq[t++] = gp1;
3105 if(t == s)
3106 t = 0;
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.