[kaffe] Assertion failure in slowUnlockMutex() in kaffe-1.0.7?

Dan Kegel dank@kegel.com
Thu, 02 Jan 2003 16:13:46 -0800


I may have found a problem in kaffe-1.0.7.
If I run volanomark, and kill the client after a while,
the server dies.   This happens regardless of whether I'm compiled
for unix-jthreads or unix-pthreads.  After much futzing, I reproduced
this under the debugger when using unix-pthreads; here's a backtrace.
(Note that this could well be a bug in my kernel, glibc, or compiler;
I'm running a highly modified version of hardhat linux 2.0.)

(Note that I have not yet run 'make check' in kaffe... guess I should
figure out how to run those in a cross-compiling embedded environment,
where you have to compile on one machine, and run on another (tiny) machine.)

(gdb) bt
#0  0x0fdac554 in kill () from /opt/hardhat/devkit/ppc/7xx/target/lib/libc.so.6
#1  0x0fdac21c in raise () from /opt/hardhat/devkit/ppc/7xx/target/lib/libc.so.6
#2  0x0fdadbfc in abort () from /opt/hardhat/devkit/ppc/7xx/target/lib/libc.so.6
#3  0x0fda5a5c in __assert_fail () from /opt/hardhat/devkit/ppc/7xx/target/lib/libc.so.6
#4  0x0ffaa740 in slowUnlockMutex ()
    from /ppc750/staging/opt/kaffe/jre/lib/powerpc/libkaffevm-1.0.7.so
#5  0x0ffab0f8 in slowUnlockObject ()
    from /ppc750/staging/opt/kaffe/jre/lib/powerpc/libkaffevm-1.0.7.so
#6  0x0ff8adc0 in processClass ()
    from /ppc750/staging/opt/kaffe/jre/lib/powerpc/libkaffevm-1.0.7.so
#7  0x0ffaf380 in soft_newarray ()
    from /ppc750/staging/opt/kaffe/jre/lib/powerpc/libkaffevm-1.0.7.so
#8  0x0ffc028c in runVirtualMachine ()
    from /ppc750/staging/opt/kaffe/jre/lib/powerpc/libkaffevm-1.0.7.so
#9  0x0ffb73ac in runVirtualMachine ()
    from /ppc750/staging/opt/kaffe/jre/lib/powerpc/libkaffevm-1.0.7.so
#10 0x0ffbf98c in runVirtualMachine ()
    from /ppc750/staging/opt/kaffe/jre/lib/powerpc/libkaffevm-1.0.7.so
#11 0x0ffb73ac in runVirtualMachine ()
    from /ppc750/staging/opt/kaffe/jre/lib/powerpc/libkaffevm-1.0.7.so
#12 0x0ffc0094 in runVirtualMachine ()
    from /ppc750/staging/opt/kaffe/jre/lib/powerpc/libkaffevm-1.0.7.so
#13 0x0ffb73ac in runVirtualMachine ()
    from /ppc750/staging/opt/kaffe/jre/lib/powerpc/libkaffevm-1.0.7.so
#14 0x0ffbf98c in runVirtualMachine ()
    from /ppc750/staging/opt/kaffe/jre/lib/powerpc/libkaffevm-1.0.7.so
#15 0x0ffb725c in virtualMachine ()
    from /ppc750/staging/opt/kaffe/jre/lib/powerpc/libkaffevm-1.0.7.so
#16 0x0ffc0094 in runVirtualMachine ()
    from /ppc750/staging/opt/kaffe/jre/lib/powerpc/libkaffevm-1.0.7.so
#17 0x0ffb73ac in runVirtualMachine ()
    from /ppc750/staging/opt/kaffe/jre/lib/powerpc/libkaffevm-1.0.7.so
#18 0x0ffb2b50 in callMethodV ()
    from /ppc750/staging/opt/kaffe/jre/lib/powerpc/libkaffevm-1.0.7.so
#19 0x0ffa1b08 in Kaffe_CallVoidMethodV ()
    from /ppc750/staging/opt/kaffe/jre/lib/powerpc/libkaffevm-1.0.7.so
#20 0x0ffa1c14 in Kaffe_CallVoidMethod ()
    from /ppc750/staging/opt/kaffe/jre/lib/powerpc/libkaffevm-1.0.7.so
#21 0x0ffb3ff4 in setPriorityThread ()
    from /ppc750/staging/opt/kaffe/jre/lib/powerpc/libkaffevm-1.0.7.so
#22 0x0ffc3b8c in jthread_create ()
    from /ppc750/staging/opt/kaffe/jre/lib/powerpc/libkaffevm-1.0.7.so
#23 0x0ffc3d5c in jthread_create ()
    from /ppc750/staging/opt/kaffe/jre/lib/powerpc/libkaffevm-1.0.7.so

BTW, this was with gdb5.3 and remote debugging
kaffe.  I did have to put a few magic commands in .gdbinit, e.g.

set solib-search-path staging/opt/kaffe/jre/lib/powerpc:staging/fsimg/usr/lib
target remote 11.0.1.1:1234

and when running with --with-threads=unix-jthreads, I also had to do
handle SIGLOST pass nostop noprint
since jthreads seems to use SIGLOST internally.

-- 
Dan Kegel
Linux User #78045
http://www.kegel.com