java/52302: jdk14 runnaway processes

Remco van 't Veer rwvtveer at xs4all.nl
Thu May 15 16:30:15 PDT 2003


>Number:         52302
>Category:       java
>Synopsis:       jdk14 runnaway processes
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-java
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu May 15 16:30:13 PDT 2003
>Closed-Date:
>Last-Modified:
>Originator:     Remco van 't Veer
>Release:        FreeBSD 4.8-RELEASE i386
>Organization:
none
>Environment:
System: FreeBSD azrael.xs4all.nl 4.8-RELEASE FreeBSD 4.8-RELEASE #0: Fri Apr 4 12:44:06 CEST 2003 root at azrael.xs4all.nl:/media/tmp/big/src/sys/AZRAEL i386
jdk-1.4.1p3_3
tomcat-4.1.24
>Description:
When the jdk1.4.1 jvm spawns an external process, like tomcat
does when compiling jsp files, it creates a new process which
(sometimes) hangs and chews up processor time.

I managed to reproduce the problem using java_g, used gcore to
generate a core file and had gdb write a backtrace.  Here's the
output:

Script started on Fri May  9 10:16:22 2003
$ ps ax | grep java_g
27543  p6  S     45:59.63 /usr/local/jdk1.4.1/bin/java_g -Djava.endorsed.dirs=/hm/remco/lib/tomcat8080/bin:/hm/remco/lib/tomcat8080/common/endors
28865  p6  R    317:19.24 /usr/local/jdk1.4.1/bin/java_g -Djava.endorsed.dirs=/hm/remco/lib/tomcat8080/bin:/hm/remco/lib/tomcat8080/common/endors
30484  pa  S+     0:00.01 grep java_g
$ gcore -s 28865
$ ls -l core.28865
-rw-r--r--  1 remco  remco  204918784 May  9 10:17 core.28865
$ java_g -version
java version "1.4.1-p3"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1-p3-root_04_apr_2003_17_15)
Java HotSpot(TM) Client VM (build 1.4.1-p3-root_04_apr_2003_17_15-debug, mixed mode)
$ gdb /usr/local/jdk1.4.1/bin/java_g core.28865
GNU gdb 4.18 (FreeBSD)
Copyright 1998 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 conditions.
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-unknown-freebsd"...Deprecated bfd_read called at /big/src/gnu/usr.bin/binutils/gdb/../../../../contrib/gdb/gdb/dbxread.c line 2627 in elfstab_build_psymtabs
Deprecated bfd_read called at /big/src/gnu/usr.bin/binutils/gdb/../../../../contrib/gdb/gdb/dbxread.c line 933 in fill_symbuf

Core was generated by `java_g'.
Reading symbols from /usr/lib/libc_r.so.4...done.
Reading symbols from /usr/local/jdk1.4.1/jre/lib/i386/client/libjvm_g.so...done.
Reading symbols from /usr/lib/libstdc++.so.3...done.
Reading symbols from /usr/lib/libm.so.2...done.
Reading symbols from /usr/local/jdk1.4.1/jre/lib/i386/native_threads/libhpi_g.so...done.
Reading symbols from /usr/local/jdk1.4.1/jre/lib/i386/libverify_g.so...done.
Reading symbols from /usr/local/jdk1.4.1/jre/lib/i386/libjava_g.so...done.
Reading symbols from /usr/local/jdk1.4.1/jre/lib/i386/libzip_g.so...done.
Reading symbols from /usr/local/jdk1.4.1/jre/lib/i386/libnet_g.so...done.
Reading symbols from /usr/local/jdk1.4.1/jre/lib/i386/libawt_g.so...done.
Reading symbols from /usr/local/jdk1.4.1/jre/lib/i386/libmlib_image_g.so...done.
Reading symbols from /usr/X11R6/lib/libXp.so.6...done.
Reading symbols from /usr/X11R6/lib/libXt.so.6...done.
Reading symbols from /usr/X11R6/lib/libXext.so.6...done.
Reading symbols from /usr/X11R6/lib/libXtst.so.6...done.
Reading symbols from /usr/X11R6/lib/libXmu.so.6...done.
Reading symbols from /usr/X11R6/lib/libX11.so.6...done.
Reading symbols from /usr/X11R6/lib/libSM.so.6...done.
Reading symbols from /usr/X11R6/lib/libICE.so.6...done.
Reading symbols from /usr/X11R6/lib/libXThrStub.so.6...done.
Reading symbols from /usr/libexec/ld-elf.so.1...done.
#0  0x280bb395 in _thread_sig_handler () from /usr/lib/libc_r.so.4
(gdb) bt
#0  0x280bb395 in _thread_sig_handler () from /usr/lib/libc_r.so.4
#1  0xbfbfffac in ?? ()
#2  0x280f6ef5 in _thread_leave_cancellation_point () from /usr/lib/libc_r.so.4
#3  0x280f724f in _thread_leave_cancellation_point () from /usr/lib/libc_r.so.4
#4  0x280f76fd in free () from /usr/lib/libc_r.so.4
#5  0x280b479b in fork () from /usr/lib/libc_r.so.4
#6  0x29f93b2e in Java_java_lang_UNIXProcess_forkAndExec (env=0x89394b8, process=0x8b2b62c, cmdarray=0x8b2b628, envp=0x0, path=0x8b2b620, 
    stdin_fd=0x8b2b61c, stdout_fd=0x8b2b618, stderr_fd=0x8b2b614)
    at /big/ports/java/jdk14/work/control/build/bsd-i586/tmp/java/java.lang/java/obj_g/UNIXProcess_md.c:335
#7  0x2bb084bc in ?? ()
#8  0x2bb00eff in ?? ()
#9  0x2bafe19d in ?? ()
#10 0x28531054 in JavaCalls::call_helper (result=0x8b2b9b4, m=0x8b2b7c0, args=0x8b2b850, __the_thread__=0x8939418)
    at /big/ports/java/jdk14/work/hotspot/src/share/vm/runtime/javaCalls.cpp:387
#11 0x2875599c in os::os_exception_wrapper (f=0x28530bac <JavaCalls::call_helper(JavaValue *, methodHandle *, JavaCallArguments *, Thread *)>, 
    value=0x8b2b9b4, method=0x8b2b7c0, args=0x8b2b850, thread=0x8939418) at /big/ports/java/jdk14/work/hotspot/src/os/bsd/vm/os_bsd.cpp:1828
#12 0x28530b91 in JavaCalls::call (result=0x8b2b9b4, method={<Handle> = {_handle = 0x86e084c}, <No data fields>}, args=0x8b2b850, 
    __the_thread__=0x8939418) at /big/ports/java/jdk14/work/hotspot/src/share/vm/runtime/javaCalls.cpp:315
#13 0x2854a3c5 in jni_invoke_nonstatic (env=0x89394b8, result=0x8b2b9b4, receiver=0x8760220, call_type=JNI_NONVIRTUAL, methodID=0x886ea98, 
    args=0x8b2b998, __the_thread__=0x8939418) at /big/ports/java/jdk14/work/hotspot/src/share/vm/prims/jni.cpp:760
#14 0x2854c153 in jni_NewObjectV (env=0x89394b8, clazz=0x876021c, methodID=0x886ea98, args=0x8b2ba68 "   \b")
    at /big/ports/java/jdk14/work/hotspot/src/share/vm/prims/jni.cpp:801
#15 0x29f9e638 in JNU_NewObjectByName (env=0x89394b8, class_name=0x29fa6dfc "java/lang/UNIXProcess", 
    constructor_sig=0x29fa6dc0 "([Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V") at ../../../src/share/native/common/jni_util.c:369
#16 0x29f98a9a in Java_java_lang_Runtime_execInternal (env=0x89394b8, this=0x8b2bae8, cmdarray=0x8b2bae4, envp=0x0, path=0x8b2badc)
    at ../../../src/solaris/native/java/lang/Runtime_md.c:28
#17 0x2bb084bc in ?? ()
#18 0x2bb00f2a in ?? ()
#19 0x2bb00f2a in ?? ()
#20 0x2bb00e53 in ?? ()
#21 0x2bb00e53 in ?? ()
#22 0x2bb01159 in ?? ()
#23 0x2bafe19d in ?? ()
#24 0x28531054 in JavaCalls::call_helper (result=0x8b2bec8, m=0x8b2bd68, args=0x8b2be0c, __the_thread__=0x8939418)
    at /big/ports/java/jdk14/work/hotspot/src/share/vm/runtime/javaCalls.cpp:387
#25 0x2875599c in os::os_exception_wrapper (f=0x28530bac <JavaCalls::call_helper(JavaValue *, methodHandle *, JavaCallArguments *, Thread *)>, 
    value=0x8b2bec8, method=0x8b2bd68, args=0x8b2be0c, thread=0x8939418) at /big/ports/java/jdk14/work/hotspot/src/os/bsd/vm/os_bsd.cpp:1828
#26 0x28530b91 in JavaCalls::call (result=0x8b2bec8, method={<Handle> = {_handle = 0x86e0838}, <No data fields>}, args=0x8b2be0c, 
    __the_thread__=0x8939418) at /big/ports/java/jdk14/work/hotspot/src/share/vm/runtime/javaCalls.cpp:315
#27 0x285302ed in JavaCalls::call_virtual (result=0x8b2bec8, spec_klass={<Handle> = {_handle = 0x86e0828}, <No data fields>}, name={<Handle> = {
        _handle = 0x29f021c8}, <No data fields>}, signature={<Handle> = {_handle = 0x29f0224c}, <No data fields>}, args=0x8b2be0c, 
    __the_thread__=0x8939418) at /big/ports/java/jdk14/work/hotspot/src/share/vm/runtime/javaCalls.cpp:211
#28 0x28530385 in JavaCalls::call_virtual (result=0x8b2bec8, receiver={_handle = 0x86e0824}, spec_klass={<Handle> = {
        _handle = 0x86e0828}, <No data fields>}, name={<Handle> = {_handle = 0x29f021c8}, <No data fields>}, signature={<Handle> = {
        _handle = 0x29f0224c}, <No data fields>}, __the_thread__=0x8939418)
---Type <return> to continue, or q <return> to quit---
    at /big/ports/java/jdk14/work/hotspot/src/share/vm/runtime/javaCalls.cpp:217
#29 0x2862222d in thread_entry (thread=0x8939418, __the_thread__=0x8939418) at /big/ports/java/jdk14/work/hotspot/src/share/vm/prims/jvm.cpp:1810
#30 0x287dd305 in JavaThread::thread_main_inner (this=0x8939418) at /big/ports/java/jdk14/work/hotspot/src/share/vm/runtime/thread.cpp:1321
#31 0x287dd1c1 in JavaThread::run (this=0x8939418) at /big/ports/java/jdk14/work/hotspot/src/share/vm/runtime/thread.cpp:1305
#32 0x28752808 in _start (data=0x8939418) at /big/ports/java/jdk14/work/hotspot/src/os/bsd/vm/os_bsd.cpp:557
#33 0x280840a8 in _thread_start () from /usr/lib/libc_r.so.4
#34 0x0 in ?? ()
(gdb) $ ^D

Script done on Fri May  9 10:19:14 2003


>How-To-Repeat:
Run an application which spawns external processes and sometimes..
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-java mailing list