Linux pthreads question

Patrick Tullmann tullmann at cs.utah.edu
Fri Mar 17 10:48:06 PST 2000


I'm getting fairly reproducable problems with the Kaffe using Linux's
pthreads.  I'm not sure if I have the right glibc versions, though.
(My machine is an 2x SMP box running 2.2.12-20smp.  glibc is v2.1.2).

The problem I'm seeing is that some of the more complex regression
tests occasionally wedge.  Attaching with gdb, I can guess that the
problem is a null pointer exception within pthread_sighandler().  (Its
seems to reliably happen inside the finalizer thread...?)  Look at
frames 11, 12, 13 and 14 in the attached backtrace.

Anyway, if anyone knows that unix-pthreads works, I'm curious if my
system is out of date, if the SMPness is probably the problem, or if
this is might be a real bug.

-Pat

----- ----- ---- ---  ---  --   -    -      -         -               -
Pat Tullmann                                       tullmann at cs.utah.edu
		This space unintentionally left blank.


#0  0x400cb58b in __sigsuspend (set=0xbf7ff210) at ../sysdeps/unix/sysv/linux/sigsuspend.c:48
#1  0x400841a0 in pthread_cond_wait (cond=0x81bfd04, mutex=0x81bfcec) at restart.h:49
#2  0x40064be2 in Lwait (lk=0x8196a90, timeout=0)
    at /n/alta/z/tullmann/kaffe-pristine/kaffe/kaffe/kaffevm/systems/unix-pthreads/lock-impl.c:66
#3  0x40041526 in _SemGet (sem=0x8196a90, timeout=0)
    at /n/alta/z/tullmann/kaffe-pristine/kaffe/kaffe/kaffevm/locks.c:495
#4  0x40040e96 in slowLockMutex (lkp=0x40075e24, where=0xbf7ff394)
    at /n/alta/z/tullmann/kaffe-pristine/kaffe/kaffe/kaffevm/locks.c:192
#5  0x400413d7 in _lockMutex (lkp=0x40075e24, where=0xbf7ff394)
    at /n/alta/z/tullmann/kaffe-pristine/kaffe/kaffe/kaffevm/locks.c:419
#6  0x40022f67 in gc_heap_malloc (sz=24) at /n/alta/z/tullmann/kaffe-pristine/kaffe/kaffe/kaffevm/mem/gc-mem.c:287
#7  0x40031b29 in gcMalloc (gcif=0x40075700, size=16, fidx=2)
    at /n/alta/z/tullmann/kaffe-pristine/kaffe/kaffe/kaffevm/mem/gc-incremental.c:864
#8  0x40041d8e in newObjectChecked (class=0x8145648, info=0xbf7ff41c)
    at /n/alta/z/tullmann/kaffe-pristine/kaffe/kaffe/kaffevm/object.c:51
#9  0x40041e10 in newObject (class=0x8145648) at /n/alta/z/tullmann/kaffe-pristine/kaffe/kaffe/kaffevm/object.c:75
#10 0x4002ea5a in nullException (frame=0xbf7ff464)
    at /n/alta/z/tullmann/kaffe-pristine/kaffe/kaffe/kaffevm/exception.c:508
#11 0x40064d92 in nullException (sig=11, ctx={gs = 0, __gsh = 0, fs = 0, __fsh = 0, es = 43, __esh = 0, ds = 43, 
      __dsh = 0, edi = 1074225708, esi = 3212834664, ebp = 3212834424, esp = 3212834244, ebx = 8, edx = 148, 
      ecx = 3212834276, eax = 148, trapno = 14, err = 4, eip = 1075125748, cs = 35, __csh = 0, eflags = 514, 
      esp_at_signal = 3212834244, ss = 43, __ssh = 0, fpstate = 0x0, oldmask = 2281835008, cr2 = 0})
    at /n/alta/z/tullmann/kaffe-pristine/kaffe/kaffe/kaffevm/systems/unix-pthreads/signal.c:88
#12 0x40087522 in pthread_sighandler (signo=11, ctx={gs = 0, __gsh = 0, fs = 0, __fsh = 0, es = 43, __esh = 0, 
      ds = 43, __dsh = 0, edi = 1074225708, esi = 3212834664, ebp = 3212834424, esp = 3212834244, ebx = 8, 
      edx = 148, ecx = 3212834276, eax = 148, trapno = 14, err = 4, eip = 1075125748, cs = 35, __csh = 0, 
      eflags = 514, esp_at_signal = 3212834244, ss = 43, __ssh = 0, fpstate = 0x0, oldmask = 2281835008, cr2 = 0})
    at signals.c:91
#13 0x400cb408 in __restore () at ../sysdeps/unix/sysv/linux/i386/sigaction.c:127
#14 0x40066916 in suspend_signal_handler (sig=10)
    at /n/alta/z/tullmann/kaffe-pristine/kaffe/kaffe/kaffevm/systems/unix-pthreads/thread-impl.c:956
#15 0x40087522 in pthread_sighandler (signo=10, ctx={gs = 0, __gsh = 0, fs = 0, __fsh = 0, es = 43, __esh = 0, 
      ds = 43, __dsh = 0, edi = 3212834868, esi = 2, ebp = 3212834812, esp = 3212834788, ebx = 135922192, 
      edx = 3212834880, ecx = 0, eax = 3212811548, trapno = 14, err = 4, eip = 136034617, cs = 35, __csh = 0, 
      eflags = 66118, esp_at_signal = 3212834788, ss = 43, __ssh = 0, fpstate = 0x0, oldmask = 2147483648, 
      cr2 = 0}) at signals.c:91
#16 0x400cb408 in __restore () at ../sysdeps/unix/sysv/linux/i386/sigaction.c:127
#17 0x40047798 in callMethodV (meth=0x81e53f8, func=0x81bb900, obj=0x81a0210, args=0xbf7ffc88, ret=0xbf7ff834)
    at /n/alta/z/tullmann/kaffe-pristine/kaffe/config/i386/common.h:38
#18 0x40038c6a in Kaffe_CallVoidMethodV (env=0x4006fc10, obj=0x81a0210, meth=0x81e53f8, args=0xbf7ffc88)
    at /n/alta/z/tullmann/kaffe-pristine/kaffe/kaffe/kaffevm/jni.c:1068
#19 0x40038ce7 in Kaffe_CallVoidMethod (env=0x4006fc10, obj=0x81a0210, meth=0x81e53f8)
    at /n/alta/z/tullmann/kaffe-pristine/kaffe/kaffe/kaffevm/jni.c:1082
#20 0x40049bad in finalizeObject (collector=0x40075700, ob=0x81a0210)
    at /n/alta/z/tullmann/kaffe-pristine/kaffe/kaffe/kaffevm/gcFuncs.c:501
#21 0x40031945 in finaliserMan (arg=0x40075700)
    at /n/alta/z/tullmann/kaffe-pristine/kaffe/kaffe/kaffevm/mem/gc-incremental.c:784
#22 0x40048182 in startSpecialThread (arg=0x81cc440)
    at /n/alta/z/tullmann/kaffe-pristine/kaffe/kaffe/kaffevm/thread.c:304
#23 0x4006630f in tRun (p=0x81bfcc0)
    at /n/alta/z/tullmann/kaffe-pristine/kaffe/kaffe/kaffevm/systems/unix-pthreads/thread-impl.c:591
#24 0x40084eca in pthread_start_thread (arg=0xbf7ffe60) at manager.c:213


More information about the kaffe mailing list