jdk15 and libthr

Huang wen hui hwh at gddsn.org.cn
Sun Oct 9 20:52:33 PDT 2005

I try to use jdk15+libthr on 6.0 and CURRENT, somtimes jdk15 could not
pass very simple Test:

# cat TestThread.java
public class TestThread extends Thread{
public TestThread() {

public void run() {
catch(Exception ex) {


public static void main(String[] args) throws Exception {
TestThread[] threads = new TestThread[5000];
for(int i=0;i<threads.length; i++) {
threads[i] = new TestThread();
catch(Exception ex) {

# gdb -core java_g.core /usr/local/jdk1.5.0//bin/java_g
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386-marcel-freebsd"...
Core was generated by `java_g'.
Program terminated with signal 6, Aborted.
Reading symbols from /usr/lib/libthr.so.2...done.
Loaded symbols for /usr/lib/libthr.so.2
Reading symbols from /lib/libc.so.6...done.
Loaded symbols for /lib/libc.so.6
Reading symbols from
Loaded symbols for /usr/local/jdk1.5.0/jre/lib/i386/client/libjvm_g.so
Reading symbols from /lib/libm.so.4...done.
Loaded symbols for /lib/libm.so.4
Reading symbols from
Loaded symbols for
Reading symbols from /usr/local/jdk1.5.0/jre/lib/i386/libverify_g.so...done.
Loaded symbols for /usr/local/jdk1.5.0/jre/lib/i386/libverify_g.so
Reading symbols from /usr/local/jdk1.5.0/jre/lib/i386/libjava_g.so...done.
Loaded symbols for /usr/local/jdk1.5.0/jre/lib/i386/libjava_g.so
Reading symbols from /usr/local/jdk1.5.0/jre/lib/i386/libzip_g.so...done.
Loaded symbols for /usr/local/jdk1.5.0/jre/lib/i386/libzip_g.so
Reading symbols from /libexec/ld-elf.so.1...done.
Loaded symbols for /libexec/ld-elf.so.1
#0 0x280dc8cb in thr_kill () from /lib/libc.so.6
[New Thread 0x82d8200 (LWP 100167)]
[New Thread 0x816fb00 (LWP 100211)]
[New Thread 0x816fa00 (LWP 100210)]
[New Thread 0x816f700 (LWP 100209)]
[New Thread 0x816f500 (LWP 100190)]
[New Thread 0x8165f00 (LWP 100183)]
[New Thread 0x8165e00 (LWP 100178)]
[New Thread 0x8165500 (LWP 100168)]
[New Thread 0x805a000 (LWP 100203)]
(gdb) bt
#0 0x280dc8cb in thr_kill () from /lib/libc.so.6
#1 0x28097779 in pthread_mutex_unlock () from /usr/lib/libthr.so.2
#2 0x280919db in pthread_kill () from /usr/lib/libthr.so.2
#3 0x280908be in raise () from /usr/lib/libthr.so.2
#4 0x2814c6a0 in abort () from /lib/libc.so.6
#5 0x28746f5a in os::abort (dump_core=1) at
#6 0x2883c455 in VMError::report_and_die (this=0xbf7b5ec4)
at /usr/ports/java/jdk15/work/hotspot/src/share/vm/utilities/vmError.cpp:697
#7 0x284614c5 in report_assertion_failure (
"/usr/ports/java/jdk15/work/hotspot/src/os/bsd/vm/os_bsd.cpp", line_no=614,
message=0x288f2040 "assert(osthr->get_state() == RUNNABLE,\"invalid os
thread state\")")
at /usr/ports/java/jdk15/work/hotspot/src/share/vm/utilities/debug.cpp:210
#8 0x287469af in _start (data=0x821dc18) at
#9 0x28098e19 in pthread_create () from /usr/lib/libthr.so.2
#10 0x2809b650 in _thread_off_key_allocated () from /usr/lib/libthr.so.2
(gdb) up 8
#8 0x287469af in _start (data=0x81ae418) at
warning: Source file is more recent than executable.

614 //assert(osthr->get_state() == RUNNABLE, "invalid os thread state");
Current language: auto; currently c++
(gdb) list
609 Thread* thread = (Thread*)data;
610 OSThread* osthr = thread->osthread();
612 // XXXBSD: libc_r update required check was here
614 //assert(osthr->get_state() == RUNNABLE, "invalid os thread state");
616 // initialize signal mask for this thread
617 os::Bsd::hotspot_sigmask(thread);

# cat hs_err_pid33807.log
# An unexpected error has been detected by HotSpot Virtual Machine:
# Internal Error
(/usr/ports/java/jdk15/work/hotspot/src/os/bsd/vm/os_bsd.cpp, 614),
pid=33807, tid=0x82d8200
# Java VM: Java HotSpot(TM) Client VM
(1.5.0-p2-hwh_08_oct_2005_14_04-debug mixed mode)
# Error: assert(osthr->get_state() == RUNNABLE,"invalid os thread state")

--------------- T H R E A D ---------------

Current thread is native thread

Stack: [0xbf776000,0xbf7b6000), sp=0xbf7b5e04, free space=255k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code,
C=native code)
V [libjvm_g.so+0x6c92d4]
V [libjvm_g.so+0x2ee4c5]
V [libjvm_g.so+0x5d39af]
C [libthr.so.2+0xde19] _pthread_create+0x5f9

--------------- P R O C E S S ---------------

Java Threads: ( => current thread )
0x0821dc18 JavaThread "Thread-1967" [_thread_new, id=137200128]
0x0817e818 JavaThread "Low Memory Detector" daemon [_thread_blocked,
0x0817e418 JavaThread "CompilerThread0" daemon [_thread_blocked,
0x0817e018 JavaThread "Signal Dispatcher" daemon [_thread_blocked,
0x08104c18 JavaThread "Finalizer" daemon [_thread_blocked, id=135683840]
0x08104818 JavaThread "Reference Handler" daemon [_thread_blocked,
0x08078818 JavaThread "main" [_thread_blocked, id=134586368]

Other Threads:
0x08165418 VMThread [id=135681280]
0x08102118 WatcherThread [id=135723776]

VM state:not at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread: None

def new generation total 576K, used 316K [0x2d920000, 0x2d9c0000,
eden space 512K, 49% used [0x2d920000, 0x2d95f028, 0x2d9a0000)
from space 64K, 100% used [0x2d9b0000, 0x2d9c0000, 0x2d9c0000)
to space 64K, 0% used [0x2d9a0000, 0x2d9a0000, 0x2d9b0000)
tenured generation total 1408K, used 204K [0x2de00000, 0x2df60000,
the space 1408K, 14% used [0x2de00000, 0x2de333e8, 0x2de33400, 0x2df60000)
compacting perm gen total 8192K, used 1425K [0x31920000, 0x32120000,
the space 8192K, 17% used [0x31920000, 0x31a846d8, 0x31a84800, 0x32120000)
No shared spaces configured.

Dynamic libraries:
0x08048000 /usr/local/jdk1.5.0/bin/java_g
0x2808b000 /usr/lib/libthr.so.2
0x2809d000 /lib/libc.so.6
0x28173000 /usr/local/jdk1.5.0/jre/lib/i386/client/libjvm_g.so
0x289a5000 /lib/libm.so.4
0x289bc000 /usr/local/jdk1.5.0/jre/lib/i386/native_threads/libhpi_g.so
0x289ce000 /usr/local/jdk1.5.0/jre/lib/i386/libverify_g.so
0x289dc000 /usr/local/jdk1.5.0/jre/lib/i386/libjava_g.so
0x289fd000 /usr/local/jdk1.5.0/jre/lib/i386/libzip_g.so
0x28057000 /libexec/ld-elf.so.1

VM Arguments:
java_command: TestThread

Environment Variables:

--------------- S Y S T E M ---------------

uname:FreeBSD 7.0-CURRENT FreeBSD 7.0-CURRENT #87: Sun Oct 9 08:18:53
CST 2005 hwh at tp.gddsn.org.cn:/usr/obj/usr/src/sys/IBM01 i386
rlimit: STACK 65536k, CORE infinity, NOFILE 11095
CPU:total 1 family 6, cmov, cx8, fxsr, mmx

Memory: 4k page, physical 1909116k

vm_info: Java HotSpot(TM) Client VM (1.5.0-p2-hwh_08_oct_2005_14_04) for
freebsd-x86, built on Oct 8 2005 15:25:45 by root with gcc 3.4.4
[FreeBSD] 20050518

More information about the freebsd-threads mailing list