libkse and bus error

Christopher M. Sedore cmsedore at maxwell.syr.edu
Sun Nov 23 10:48:41 PST 2003


As a separate data point, I'm seeing occasional bus errors on some of my own code, also in pthread_testcancel.  If I could find a way to reproduce it, I'd post, but there I haven't found any consistent way to make it happen.
 
-Chris

________________________________

From: owner-freebsd-threads at freebsd.org on behalf of Morten Rodal
Sent: Sun 11/23/2003 11:23 AM
To: Daniel Eischen
Cc: threads at freebsd.org
Subject: Re: libkse and bus error



Morten Rodal wrote: 
> Daniel Eischen wrote: 
> 
>> On Sun, 19 Oct 2003, Morten Rodal wrote: 
>> 
>>> On Sun, Oct 19, 2003 at 02:16:27PM -0400, Daniel Eischen wrote: 
>>> 
>>>> On Sun, 19 Oct 2003, Morten Rodal wrote: 
>>>> 
>>>>> I seem to be able to crash almost every pthread program that uses 
>>>>> pthread_mutex'es.  First I thought it was a problem with 
>>>>> pthread_testcancel(), until I compiled libkse with DEBUG_FLAGS=-g on 
>>>>> one of machines. 
>>>>> 
>>>>> Backtrace from a machine with DEBUG_FLAGS=-g and libkse: 
>>>>> 
>>>>> #0  0x28e6ed1b in kse_thr_interrupt () at {standard input}:15 
>>>>> #1  0x28e5f990 in _thr_sig_add (pthread=0x81fab00, sig=136293172, 
>>>>> info=0x0) 
>>>>>    at /usr/src/lib/libpthread/thread/thr_sig.c:885 
>>>>> #2  0x28e687cb in kse_check_completed (kse=0x81fab00) 
>>>>>    at /usr/src/lib/libpthread/thread/thr_kern.c:1558 
>>>>> #3  0x28e6721c in kse_sched_multi (kmbx=0x17e) 
>>>>>    at /usr/src/lib/libpthread/thread/thr_kern.c:1021 
>>>> 
>>>> 
>>>> This is a problem.  The mailbox pointer is invalid. 
>>>> 
>>> 
>>> I thought it looked a bit strange.  Any clues to what might have 
>>> caused this? 
>> 
>> 
>> 
>> When I've seen it before, it's when %gs becomes corrupted.  Nvidia 
>> uses static ldt allocation and this can screw things up.  If you 
>> are getting any static ldt allocations out of the kernel, that is 
>> the problem. 
>> 
> 
> I hate to rip up in old mails, but I am now able to crash Mozilla 
> Firebird at command.  It dies with the same strange traceback as I got 
> with dc++ (which this thread originally addressed). 
> 
> When ordering a airplane ticket from www.scandinavian.net Mozilla 
> Firebird will crash when confirming the payment with a signal 10. This 
> happens on three completly different computers; 
> 
>  * Dual Pentium II 300MHz, libkse, kernel from Nov 19 
>  * Pentium III 933MHz, libkse, kernel from Nov  3 
>  * Pentium 4 1.7GHz, libkse, kernel from Nov 21 
> 
> Only the Dual Pentium is running nvidia drivers.  The others are running 
> X11 drivers. 
> 
> All of them produce a MozillaFirebird-bin.core which has this backtrace 
> (cut down to an absolute minimum since it is rather huge): 
> 
> #0  0x288c2ebb in pthread_testcancel () from /usr/lib/libkse.so.1 
> #1  0x288bc91b in pthread_mutexattr_init () from /usr/lib/libkse.so.1 
> #2  0x288bb36c in pthread_mutexattr_init () from /usr/lib/libkse.so.1 
> #3  0x09b8d000 in ?? () 
> #4  0x283c5cac in gtk_widget_hide () from 
> /usr/X11R6/lib/libgtk-x11-2.0.so.200 
> 
> I will recompile libkse with DEBUG_FLAGS=-g and see if I cant get any 
> more accurate info than this. 
> 

Backtrace with debugging symbols in libkse: 

#0  0x288c2f4b in kse_thr_interrupt () at /var/tmp//cc4HnJI9.s:15 
#1  0x288b3b3d in _thr_sig_add (pthread=0x805e000, sig=134574132, info=0x0) 
     at /usr/src/lib/libpthread/thread/thr_sig.c:885 
#2  0x288bc9ab in kse_check_completed (kse=0x8057000) 
     at /usr/src/lib/libpthread/thread/thr_kern.c:1558 
#3  0x288bb3fc in kse_sched_multi (kmbx=0x17e) 
     at /usr/src/lib/libpthread/thread/thr_kern.c:1021 
#4  0x08287000 in ?? () 
#5  0x283c5cac in gtk_widget_hide () from 
/usr/X11R6/lib/libgtk-x11-2.0.so.200 


This is taken from the Pentium III machine, which has a ATI card with 
X11 drivers.  I have never seen any mention of usage of static ldt 
entries in the dmesg. 

-- 
Morten Rodal 



More information about the freebsd-threads mailing list