I have been trying to convince Sun people that 1.3.1 and 1.3.1_01 
HotSpot has problems on Linux, but they wouldn't buy it.

My suggestion is: use IBM's JDK 1.3.0. It is faster and more stable then 
Sun's.

Bojan

Eddie Ruvinsky wrote:

> Hi all,
> 
> Would anyone happen to know the fix to this?  This may
> or may not be directly related to Tomcat, but I
> noticed a somewhat relevant thread about segfaults
> occuring when invoking a JVM via JNI in the tomcat-dev
> mailing list archives.
> 
> Any advice would be appreciated on how to address this
> issue on JDK 1.3.1_01.
> 
> Thanks very much,
> Eddie
> ____________
>  
> OVERVIEW:
> 
> When running Tomcat 4.0 via the Java launcher in a gdb
> debugging session (Red Hat Linux 6.2, JDK 1.3.1_01), I
> get a SIGSEGV signal (Segmentation fault) when I
> execute some of the example JSPs/servlets.  Since
> Tomcat is pure Java, I'm assuming the problem is most
> likely with the JVM and the way it handles signals, or
> possibly with gdb since I only see this behavior with
> gdb.  The problem is fairly reproducible;  I usually
> get it when I execute the "ErrorPage" JSP sample in
> Tomcat's "examples" webapp.
> 
> Note that I don't see these signals when running the
> JVM standalone (outside of gdb).  What's also weird is
> that I successfully tell gdb to "continue" after the
> segfault, and the app continues to work like nothing
> ever happend.
> 
> As an aside, the reason why I did this test was
> because I was experiencing very similar problems in my
> own application that embeds a JVM via JNI.
> 
> 
> DESCRIPTION:
> 
> Here is what I did to see the problem.
> 
> First, I set the debugger in the environment, so that
> the jdk/bin/java script can run the java launcher in
> gdb:
> 
> export DEBUG_PROG=gdb
> 
> Next, I run the jdk/bin/java script:
> 
> cd jdk1.3.1_01/bin
> java
> 
> This brings up the Java launcher within gdb, and I run
> it as I specify the necessary arguments to startup
> Tomcat:
> 
> GNU gdb 19991004
> 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-redhat-linux"...
> (gdb) set args -classpath
> 
>/u0/ruvinsky/tomcat4.bin/bin/bootstrap.jar:/u0/ruvinsky/src-java-launcher/jdk1.3.1_01/lib/tools.jar
> -Dcatalina.base=/u0/ruvinsky/tomcat4.bin
> -Dcatalina.home=/u0/ruvinsky/tomcat4.bin
> org.apache.catalina.startup.Bootstrap start
> (gdb) run
> Starting program:
> /u0/ruvinsky/src-java-launcher/jdk1.3.1_01/bin/i386/native_threads/java
> -classpath
> 
>/u0/ruvinsky/tomcat4.bin/bin/bootstrap.jar:/u0/ruvinsky/src-java-launcher/jdk1.3.1_01/lib/tools.jar
> -Dcatalina.base=/u0/ruvinsky/tomcat4.bin
> -Dcatalina.home=/u0/ruvinsky/tomcat4.bin
> org.apache.catalina.startup.Bootstrap start
> [New Thread 1710 (manager thread)]
> [New Thread 1709 (initial thread)]
> [New Thread 1711]
> [New Thread 1712]
> [New Thread 1713]
> [New Thread 1714]
> [New Thread 1715]
> [New Thread 1716]
> [New Thread 1717]
> Starting service Tomcat-Standalone
> Apache Tomcat/4.0
> [New Thread 1720]
> [New Thread 1721]
> [New Thread 1722]
> [New Thread 1723]
> [New Thread 1724]
> [New Thread 1725]
> [New Thread 1726]
> [New Thread 1727]
> [New Thread 1728]
> [New Thread 1729]
> [New Thread 1730]
> [New Thread 1731]
> Starting service Tomcat-Apache
> Apache Tomcat/4.0
> [New Thread 1732]
> [Switching to Thread 1730]
> 
> Program received signal SIGSEGV, Segmentation fault.
> 0x2bfee3f4 in ?? ()
> (gdb) continue 
> Continuing.
> 
> I even tried building a debug version of the java
> launcher by hand in hope of finding a more detailed
> stack trace, but all I got was the following:
> 
> (gdb) bt
> #0  0x806973d in ?? ()
> #1  0x8060891 in ?? ()
> #2  0x8060891 in ?? ()
> #3  0x8060963 in ?? ()
> #4  0x8060891 in ?? ()
> #5  0x8060891 in ?? ()
> #6  0x8060891 in ?? ()
> #7  0x8060963 in ?? ()
> #8  0x8060891 in ?? ()
> #9  0x8060891 in ?? ()
> #10 0x8060963 in ?? ()
> #11 0x8060891 in ?? ()
> #12 0x8060963 in ?? ()
> #13 0x8060963 in ?? ()
> #14 0x8060963 in ?? ()
> #15 0x8060963 in ?? ()
> #16 0x8060963 in ?? ()
> #17 0x8060891 in ?? ()
> #18 0x8060963 in ?? ()
> #19 0x8060891 in ?? ()
> #20 0x8060963 in ?? ()
> #21 0x8060963 in ?? ()
> #22 0x8060963 in ?? ()
> #23 0x8060963 in ?? ()
> #24 0x8060891 in ?? ()
> #25 0x8060963 in ?? ()
> #26 0x8060963 in ?? ()
> #27 0x8060963 in ?? ()
> #28 0x8060891 in ?? ()
> #29 0x8060963 in ?? ()
> #30 0x8060963 in ?? ()
> #31 0x8060891 in ?? ()
> #32 0x8060963 in ?? ()
> #33 0x2add3d70 in StubRoutines::_code1 ()
>    from
> /u0/ruvinsky/src-java-launcher/jdk1.3.1_01/jre/lib/i386/client/libjvm.so
> #34 0x2abcb604 in JavaCalls::call_helper ()
>    from
> /u0/ruvinsky/src-java-launcher/jdk1.3.1_01/jre/lib/i386/client/libjvm.so
> #35 0x2ac2948d in os::os_exception_wrapper ()
>    from
> /u0/ruvinsky/src-java-launcher/jdk1.3.1_01/jre/lib/i386/client/libjvm.so
> #36 0x2abcb840 in JavaCalls::call ()
>    from
> /u0/ruvinsky/src-java-launcher/jdk1.3.1_01/jre/lib/i386/client/libjvm.so
> #37 0x2abcb1bb in JavaCalls::call_virtual ()
>    from
> /u0/ruvinsky/src-java-launcher/jdk1.3.1_01/jre/lib/i386/client/libjvm.so
> #38 0x2abcbccb in JavaCalls::call_virtual ()
>    from
> /u0/ruvinsky/src-java-launcher/jdk1.3.1_01/jre/lib/i386/client/libjvm.so
> #39 0x2abede80 in thread_entry ()
>    from
> /u0/ruvinsky/src-java-launcher/jdk1.3.1_01/jre/lib/i386/client/libjvm.so
> #40 0x2ac599c7 in JavaThread::thread_main_inner ()
>    from
> /u0/ruvinsky/src-java-launcher/jdk1.3.1_01/jre/lib/i386/client/libjvm.so
> #41 0x2ac56903 in JavaThread::run ()
>    from
> /u0/ruvinsky/src-java-launcher/jdk1.3.1_01/jre/lib/i386/client/libjvm.so
> #42 0x2ac27e73 in _start ()
>    from
> /u0/ruvinsky/src-java-launcher/jdk1.3.1_01/jre/lib/i386/client/libjvm.so
> #43 0x2aacc535 in pthread_start_thread
> (arg=0x7d3ffe40) at manager.c:241
> 
> (gdb) info shared
> From        To          Syms Read   Shared Object
> Library
> 0x2aac7000  0x2aad8ad8  Yes        
> /lib/libpthread.so.0
> 0x2aad9000  0x2aae2e38  Yes        
> /u0/ruvinsky/src-java-launcher/jdk1.3.1_01/jre/lib/i386/native_threads/libhpi.so
> 0x2aae3000  0x2addce90  Yes        
> /u0/ruvinsky/src-java-launcher/jdk1.3.1_01/jre/lib/i386/client/libjvm.so
> 0x2addd000  0x2addfd0c  Yes         /lib/libdl.so.2
> 0x2ade1000  0x2aed537c  Yes         /lib/libc.so.6
> 0x2aed6000  0x2aeeb1c8  Yes         /lib/libnsl.so.1
> 0x2aeec000  0x2af08098  Yes         /lib/libm.so.6
> 0x2af09000  0x2af4af90  Yes        
> /usr/lib/libstdc++-libc6.1-1.so.2
> 0x2aaab000  0x2aabecb0  Yes         /lib/ld-linux.so.2
> 0x2af4b000  0x2af5d414  Yes        
> /u0/ruvinsky/src-java-launcher/jdk1.3.1_01/jre/lib/i386/libverify.so
> 0x2af5e000  0x2af81fe8  Yes        
> /u0/ruvinsky/src-java-launcher/jdk1.3.1_01/jre/lib/i386/libjava.so
> 0x2af82000  0x2af98360  Yes        
> /u0/ruvinsky/src-java-launcher/jdk1.3.1_01/jre/lib/i386/libzip.so
> 0x340c6000  0x340ce9a0  Yes        
> /lib/libnss_files.so.2
> 0x340cf000  0x340d8fb4  Yes        
> /lib/libnss_nisplus.so.2
> 0x340d9000  0x340e21f8  Yes        
> /lib/libnss_nis.so.2
> 0x343e9000  0x343f242c  Yes        
> /u0/ruvinsky/src-java-launcher/jdk1.3.1_01/jre/lib/i386/libnet.so
> 0x343fa000  0x343fd850  Yes        
> /lib/libnss_dns.so.2
> 0x3497f000  0x3498d9fc  Yes        
> /lib/libresolv.so.2
> 
> As a reference, I built the Java launcher code
> included in the JDK 1.3.1_01 distribution, producing
> the replacement binary for:
> 
> jdk1.3.1_01/bin/i386/native_threads/java
> 
> I copied the source files out of the
> jdk1.3.1_01/src/src/launcher/ directory, and they
> consist of the following files:
> 
> java.c
> java.h
> java_md.c
> java_md.h
> 
> My build directory also contains the jdk1.3.1_01
> subdirectory to include the JNI headers from and as a
> sample jdk to test the build output with.
> 
> The following are my build commands (mainly borrowed
> from the JDK build process):
> 
> cc -g  -W -Wall -Werror -Wno-unused -Wno-parentheses
> -Di386 -DARCH='"i386"' -DSOLARIS2
> -DRELEASE='"1.3.1-testing-110101"'
> -DFULL_VERSION='"1.3.1-testing-110101"'
> -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -D_REENTRANT
> -D_LITTLE_ENDIAN -DUSE_APPHOME -DPROGNAME='"java"'
> -I./jdk1.3.1_01/include -I./jdk1.3.1_01/include/linux
> -c -o build/objs/java.o java.c
> 
> cc -g  -W -Wall -Werror -Wno-unused -Wno-parentheses
> -Di386 -DARCH='"i386"' -DSOLARIS2
> -DRELEASE='"1.3.1-testing-110101"'
> -DFULL_VERSION='"1.3.1-testing-110101"'
> -D_LARGEFILE64_SOURCE -D_GNU_SOURCE -D_REENTRANT
> -D_LITTLE_ENDIAN -DUSE_APPHOME -DPROGNAME='"java"'
> -I./jdk1.3.1_01/include -I./jdk1.3.1_01/include/linux
> -c -o build/objs/java_md.o java_md.c
> 
> cc -o jdk1.3.1/bin/i386/native_threads/java -z defs
> -Ljdk1.3.1_01/jre/lib/i386/native_threads
> -Ljdk1.3.1_01/jre/lib/i386/classic build/objs/java.o
> build/objs/java_md.o -lpthread -lhpi -ljvm -ldl -lc
> 
> 
> __________________________________________________
> Do You Yahoo!?
> Find a job, post your resume.
> http://careers.yahoo.com
> 
> --
> To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
> 



--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to