APR extensinos for Tocmat 5.5.17 cause a JVM crash on Windows OS

2006-06-02 Thread Stefan Baramov

Hi everyone:

Tomcat 5.5.17 for Windows (distribution apache-tomcat-5.5.17.exe) comes 
with a DLL file called tcnative-1.dll. According to the Tomcat 
documentation this is a native extension based on the APR and Open SSL 
projects. However,  the extension causes the JVM to crashes qutie often.


The application is a image intense web app running on
- Windows 2003 Server + SP1
- JDK 1.5.0_06

I've tried both server and client JVM's and both fails. I've tried to 
disable the AJP connector and still the problem was there. The problem 
disappears only if I remove the tcnative-1.dll from the system path.


The attachment shows one of the crashes. It obviously points to the 
tcnative-1.dll. So can someone shed some light on this extension and 
problem it is causing.


Thanks,
Stefan
#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc005) at pc=0x100043a4, pid=192, tid=1448
#
# Java VM: Java HotSpot(TM) Client VM (1.5.0_06-b05 mixed mode, sharing)
# Problematic frame:
# C  [tcnative-1.dll+0x43a4]
#

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

Current thread (0x003cfe60):  JavaThread Finalizer daemon [_thread_in_native, 
id=1448]

siginfo: ExceptionCode=0xc005, reading address 0x0014

Registers:
EAX=0x006f, EBX=0x006f, ECX=0x02a12f10, EDX=0x26cd7df8
ESP=0x028ff6cc, EBP=0x028ff6d8, ESI=0x, EDI=0x
EIP=0x100043a4, EFLAGS=0x0206

Top of Stack: (sp=0x028ff6cc)
0x028ff6cc:   003cfe60 26cd7340 26cd7340 028ff714
0x028ff6dc:   0083826f 003cff20 028ff71c 
0x028ff6ec:     006f 028ff6f8
0x028ff6fc:    028ff730 26cd7df8 
0x028ff70c:   26cd7340 028ff724 028ff750 008329cf
0x028ff71c:   26cd7da0 00836449 006f 
0x028ff72c:     028ff734 270fc72e
0x028ff73c:   028ff758 270fca40  270fc760 

Instructions: (pc=0x100043a4)
0x10004394:   8b 5d 1c 56 33 f6 85 db 57 76 32 8b 7d 10 8b c3
0x100043a4:   8b 4f 14 2b c6 8d 55 1c 89 45 1c 8b 47 0c 52 8b 


Stack: [0x028c,0x0290),  sp=0x028ff6cc,  free space=253k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [tcnative-1.dll+0x43a4]
j  org.apache.tomcat.jni.Socket.sendbb(JII)I+0
j  org.apache.coyote.http11.InternalAprOutputBuffer.flushBuffer()V+22
j  org.apache.coyote.http11.InternalAprOutputBuffer.flush()V+19
j  
org.apache.coyote.http11.Http11AprProcessor.action(Lorg/apache/coyote/ActionCode;Ljava/lang/Object;)V+104
j  
org.apache.coyote.Response.action(Lorg/apache/coyote/ActionCode;Ljava/lang/Object;)V+31
j  org.apache.catalina.connector.OutputBuffer.doFlush(Z)V+95
j  org.apache.catalina.connector.OutputBuffer.flush()V+2
j  org.apache.catalina.connector.CoyoteOutputStream.flush()V+4
j  javax.imageio.stream.FileCacheImageOutputStream.close()V+50
j  javax.imageio.stream.ImageInputStreamImpl.finalize()V+8
v  ~StubRoutines::call_stub
V  [jvm.dll+0x845a9]
V  [jvm.dll+0xd9317]
V  [jvm.dll+0x8447a]
V  [jvm.dll+0x897cb]
C  [java.dll+0x2006]
j  java.lang.ref.Finalizer.runFinalizer()V+45
j  java.lang.ref.Finalizer.access$100(Ljava/lang/ref/Finalizer;)V+1
j  java.lang.ref.Finalizer$FinalizerThread.run()V+11
v  ~StubRoutines::call_stub
V  [jvm.dll+0x845a9]
V  [jvm.dll+0xd9317]
V  [jvm.dll+0x8447a]
V  [jvm.dll+0x841d7]
V  [jvm.dll+0x9ed69]
V  [jvm.dll+0x109fe3]
V  [jvm.dll+0x109fb1]
C  [msvcrt.dll+0x2b530]
C  [kernel32.dll+0x26063]

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  org.apache.tomcat.jni.Socket.sendbb(JII)I+0
j  org.apache.coyote.http11.InternalAprOutputBuffer.flushBuffer()V+22
j  org.apache.coyote.http11.InternalAprOutputBuffer.flush()V+19
j  
org.apache.coyote.http11.Http11AprProcessor.action(Lorg/apache/coyote/ActionCode;Ljava/lang/Object;)V+104
j  
org.apache.coyote.Response.action(Lorg/apache/coyote/ActionCode;Ljava/lang/Object;)V+31
j  org.apache.catalina.connector.OutputBuffer.doFlush(Z)V+95
j  org.apache.catalina.connector.OutputBuffer.flush()V+2
j  org.apache.catalina.connector.CoyoteOutputStream.flush()V+4
j  javax.imageio.stream.FileCacheImageOutputStream.close()V+50
j  javax.imageio.stream.ImageInputStreamImpl.finalize()V+8
v  ~StubRoutines::call_stub
j  java.lang.ref.Finalizer.invokeFinalizeMethod(Ljava/lang/Object;)V+0
j  java.lang.ref.Finalizer.runFinalizer()V+45
j  java.lang.ref.Finalizer.access$100(Ljava/lang/ref/Finalizer;)V+1
j  java.lang.ref.Finalizer$FinalizerThread.run()V+11
v  ~StubRoutines::call_stub

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

Java Threads: ( = current thread )
  0x007db5e8 JavaThread http-8080-10 daemon [_thread_in_native, id=592]
  0x03396f48 JavaThread http-8080-9 daemon [_thread_in_native, id=2580]
  0x02b78780 JavaThread http-8080-8 daemon [_thread_in_native, id=3076]
  0x02cca350 JavaThread http-8080-7 daemon [_thread_in_native, id=2548]
  0x02aa4008 JavaThread http-8080-6 daemon [_thread_in_native, id=3244]
  0x02fa9a90 JavaThread http-8080-5 daemon [_thread_in_native, id=3940]
  0x02c739c0 JavaThread 

Re: APR extensinos for Tocmat 5.5.17 cause a JVM crash on Windows OS

2006-06-02 Thread Remy Maucherat

On 6/2/06, Stefan Baramov [EMAIL PROTECTED] wrote:

Hi everyone:

Tomcat 5.5.17 for Windows (distribution apache-tomcat-5.5.17.exe) comes
with a DLL file called tcnative-1.dll. According to the Tomcat
documentation this is a native extension based on the APR and Open SSL
projects. However,  the extension causes the JVM to crashes qutie often.

The application is a image intense web app running on
- Windows 2003 Server + SP1
- JDK 1.5.0_06

I've tried both server and client JVM's and both fails. I've tried to
disable the AJP connector and still the problem was there. The problem
disappears only if I remove the tcnative-1.dll from the system path.

The attachment shows one of the crashes. It obviously points to the
tcnative-1.dll. So can someone shed some light on this extension and
problem it is causing.


You're using Java2D, which as usual is doing invalid accesses to the
output steam. Without APR, you would get issues like getting requests
which are already committed at the beginning of the request, and other
random behavior like that. The solution is to not give direct access
to the Servlet API to the Java2D components (using an intermediate
buffer, etc), or enable the security manager.

--
x
Rémy Maucherat
Developer  Consultant
JBoss Inc
x

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]