threads/91972: perl segfaults in pthread init code
Joe Bishop
joe at merced.com
Wed Jan 18 13:00:17 PST 2006
>Number: 91972
>Category: threads
>Synopsis: perl segfaults in pthread init code
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: freebsd-threads
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Wed Jan 18 21:00:15 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator: Joe Bishop
>Release: 6.0
>Organization:
>Environment:
FreeBSD Vigor11 6.0-STABLE FreeBSD 6.0-STABLE #0: Tue Jan 17 23:07:09 PST 2006 root at Vigor11:/usr/src/sys/i386/compile/GENERIC i386
>Description:
Installed from CD 6.0-RELEASE. After install, tried 'startx'. Console went to video mode, but announced kdeinit had failed. Main terminal showed problems launching X, specifically X getconfig had Segfaulted and passed bad data to X.
cvsup'd the kernel and recompiled with only I686_CPU and with -O2 -march=pentiumpro. No change.
Investigation showed that perl segfaulted when run from the command line. gdb helped show that it was crashing in pthread code.
Fetched perl-5.8.7_2 from FTP server, no change.
cvsup'd src-lib and src-libexec and src-contrib. Rebuilt libc, libcrypt, libpthread. No change.
Built libpthread with debug data and ran gdb again. Output is below.
Is this a bizarre bug, or a possible hardware issue? Hardware is Gigabyte NForce 2/3/4 chipset with Athlon CPU. Was previously running WinXP+games without indications of hardware glitchiness.
===================
[New LWP 100069]
Program received signal SIGSEGV, Segmentation fault.
[Switching to LWP 100069]
_tcb_ctor (thread=0x8054000, initial=1)
at /usr/src/lib/libpthread/arch/i386/i386/pthread_md.c:51
51 __asm __volatile("movl %%gs:0, %0" : "=r" (oldtls));
(gdb) bt
#0 _tcb_ctor (thread=0x8054000, initial=1)
at /usr/src/lib/libpthread/arch/i386/i386/pthread_md.c:51
#1 0x281bc3c8 in _thr_alloc (curthread=0x0)
at /usr/src/lib/libpthread/thread/thr_kern.c:2373
#2 0x281bd4ed in _libpthread_init (curthread=0x0)
at /usr/src/lib/libpthread/thread/thr_init.c:280
#3 0x281c167d in _thread_init_hack ()
at /usr/src/lib/libpthread/thread/thr_autoinit.c:50
#4 0x281c31d5 in _lockuser_setactive () from /usr/lib/libpthread.so.2
#5 0x281a29a5 in _init () from /usr/lib/libpthread.so.2
#6 0x2806e000 in ?? ()
#7 0x28068cd8 in ?? () from /libexec/ld-elf.so.1
#8 0xbfbfebf4 in ?? ()
#9 0x2804fc69 in find_symdef () from /libexec/ld-elf.so.1
#10 0x2804e923 in _rtld () from /libexec/ld-elf.so.1
#11 0x2804e386 in .rtld_start () from /libexec/ld-elf.so.1
(gdb) info registers
eax 0x0 0
ecx 0x804b080 134525056
edx 0x0 0
ebx 0x281c54bc 672945340
esp 0xbfbfeb1c 0xbfbfeb1c
ebp 0xbfbfeb34 0xbfbfeb34
esi 0x8054000 134561792
edi 0x0 0
eip 0x281c16a8 0x281c16a8
eflags 0x10202 66050
cs 0x33 51
ss 0x3b 59
ds 0x3b 59
es 0x3b 59
fs 0x3b 59
gs 0x3b 59
>How-To-Repeat:
Install 6.0-RELEASE, run perl.
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-threads
mailing list