You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by Peter Rossbach <pr...@objektpark.de> on 2005/11/23 16:11:22 UTC

Tomcat Crash with apr when RequestProcessor accessed

Hey,

A customer report today a very strange tomcat crash to me and
I can simulate this bugs with following releases and OS's:

Tested with Suse 9.3, Tomcat 5.5.12 /Apr 1.2.2 / openssl 0.9.8, jdk 1.5.0_03
Also tested with current SVN Head and fresh build tcnative from head
and Tomcat 5.5.12 / Maldens tcnative 1.1.0 dll / Windows XP

Start Tomcat with APR Http Connector and JSR 160 JMX Adaptor
request some pages via http Connector
start jconsole / open Mbeans tab
Open RequestProcessor tree
Open one off the RequestInfo MBeans

Result: -- jvm crashed --

Tomcat 5.5.12 ---
INFO   | jvm 1    | 2005/11/23 13:08:28 | INFO: Server startup in 1430 ms
INFO   | jvm 1    | 2005/11/23 13:09:08 | 23.11.2005 13:09:08 
org.objektpark.catalina.session.LogSessionListener sessionCreated
INFO   | jvm 1    | 2005/11/23 13:09:08 | INFO: sessionCreated: 
EC3D6BA963E5EB26F1EA68EED9098A9A.node01
INFO   | jvm 1    | 2005/11/23 13:09:16 | #
INFO   | jvm 1    | 2005/11/23 13:09:16 | # An unexpected error has been 
detected by HotSpot Virtual Machine:
INFO   | jvm 1    | 2005/11/23 13:09:16 | #
INFO   | jvm 1    | 2005/11/23 13:09:16 | #  SIGSEGV (0xb) at 
pc=0x4678fc63, pid=8355, tid=1189579696
INFO   | jvm 1    | 2005/11/23 13:09:16 | #
INFO   | jvm 1    | 2005/11/23 13:09:16 | # Java VM: Java HotSpot(TM) 
Client VM (1.5.0_03-b07 mixed mode, sharing)
INFO   | jvm 1    | 2005/11/23 13:09:16 | # Problematic frame:
INFO   | jvm 1    | 2005/11/23 13:09:16 | # C  [libapr-1.so.0+0x16c63]  
apr_socket_addr_get+0x93
INFO   | jvm 1    | 2005/11/23 13:09:16 | #
INFO   | jvm 1    | 2005/11/23 13:09:16 | # An error report file with 
more information is saved as hs_err_pid8355.log
INFO   | jvm 1    | 2005/11/23 13:09:16 | #
INFO   | jvm 1    | 2005/11/23 13:09:16 | # If you would like to submit 
a bug report, please visit:
INFO   | jvm 1    | 2005/11/23 13:09:16 | #   
http://java.sun.com/webapps/bugreport/crash.jsp
INFO   | jvm 1    | 2005/11/23 13:09:16 | #
ERROR  | wrapper  | 2005/11/23 13:09:16 | JVM exited unexpectedly.
STATUS | wrapper  | 2005/11/23 13:09:30 | Launching a JVM...

=================
crurrent Tomcat svn head with fresh build tcnative

INFO   | jvm 1    | 2005/11/23 15:51:32 | INFO: sessionCreated: 
4ABBA4F2ABCBD8E2DF5857CC375FD8CC.node01
INFO   | jvm 1    | 2005/11/23 15:52:16 | #
INFO   | jvm 1    | 2005/11/23 15:52:16 | # An unexpected error has been 
detected by HotSpot Virtual Machine:
INFO   | jvm 1    | 2005/11/23 15:52:16 | #
INFO   | jvm 1    | 2005/11/23 15:52:16 | #  SIGSEGV (0xb) at 
pc=0x46799c63, pid=12382, tid=1190149040
INFO   | jvm 1    | 2005/11/23 15:52:16 | #
INFO   | jvm 1    | 2005/11/23 15:52:16 | # Java VM: Java HotSpot(TM) 
Client VM (1.5.0_03-b07 mixed mode, sharing)
INFO   | jvm 1    | 2005/11/23 15:52:16 | # Problematic frame:
INFO   | jvm 1    | 2005/11/23 15:52:16 | # C  [libapr-1.so.0+0x16c63]  
apr_socket_addr_get+0x93
INFO   | jvm 1    | 2005/11/23 15:52:16 | #
INFO   | jvm 1    | 2005/11/23 15:52:16 | # An error report file with 
more information is saved as hs_err_pid12382.log
INFO   | jvm 1    | 2005/11/23 15:52:16 | #
INFO   | jvm 1    | 2005/11/23 15:52:16 | # If you would like to submit 
a bug report, please visit:
INFO   | jvm 1    | 2005/11/23 15:52:16 | #   
http://java.sun.com/webapps/bugreport/crash.jsp
INFO   | jvm 1    | 2005/11/23 15:52:16 | #
ERROR  | wrapper  | 2005/11/23 15:52:16 | JVM exited unexpectedly.
STATUS | wrapper  | 2005/11/23 15:52:30 | Launching a JVM...



Here a part of the core dump
#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
#  SIGSEGV (0xb) at pc=0x4678fc63, pid=8355, tid=1189579696
#
# Java VM: Java HotSpot(TM) Client VM (1.5.0_03-b07 mixed mode, sharing)
# Problematic frame:
# C  [libapr-1.so.0+0x16c63]  apr_socket_addr_get+0x93
#

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

Current thread (0x08070c68):  JavaThread "RMI TCP 
Connection(3)-127.0.0.2" daemon [_thread_in_native, id=8389]

siginfo:si_signo=11, si_errno=0, si_code=1, si_addr=0x00000028

Registers:
EAX=0x00000000, EBX=0x467991e0, ECX=0x00000001, EDX=0x00000000
ESP=0x46e77214, EBP=0x46e7722c, ESI=0x00000000, EDI=0x46e77244
EIP=0x4678fc63, CR2=0x00000028, EFLAGS=0x00010246

Top of Stack: (sp=0x46e77214)
0x46e77214:   46e77304 082e0b94 082e0b94 4676516c
0x46e77224:   69cb9728 08070c68 46e7724c 466a21ad
0x46e77234:   46e77244 00000001 00000000 466a2180
0x46e77244:   00000000 69cb9730 46e77284 438bf42b
0x46e77254:   08070d24 46e7728c 00000001 086501f8
0x46e77264:   00000000 46e77268 69cb9728 46e7729c
0x46e77274:   69cb99d8 00000000 69cb9730 46e77294
0x46e77284:   46e772bc 438b99fa 69cb9980 438bd589

Instructions: (pc=0x4678fc63)
0x4678fc53:   c0 8d 65 f4 5b 5e 5f 5d c3 8d 74 26 00 48 75 5a
0x4678fc63:   8b 4e 28 85 c9 75 06 8b 46 14 eb e1 90 8b 46 14

Stack: [0x46df8000,0x46e79000),  sp=0x46e77214,  free space=508k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, 
C=native code)
C  [libapr-1.so.0+0x16c63]  apr_socket_addr_get+0x93
C  [libtcnative-1.so.0.2.2+0x651ad]  
Java_org_apache_tomcat_jni_Address_get+0x2d
j  org.apache.tomcat.jni.Address.get(IJ)J+0
j  
org.apache.coyote.http11.Http11AprProcessor.action(Lorg/apache/coyote/ActionCode;Ljava/lang/Object;)V+229
j  
org.apache.coyote.Request.action(Lorg/apache/coyote/ActionCode;Ljava/lang/Object;)V+42
j  org.apache.coyote.RequestInfo.getRemoteAddr()Ljava/lang/String;+8
v  ~StubRoutines::call_stub
V  [libjvm.so+0x16a7dc]
V  [libjvm.so+0x2590d8]
V  [libjvm.so+0x16a60f]
V  [libjvm.so+0x27a0cc]
V  [libjvm.so+0x27cd9a]
V  [libjvm.so+0x1cc13b]
C  [libjava.so+0x13764]  
Java_sun_reflect_NativeMethodAccessorImpl_invoke0+0x34
j  
sun.reflect.NativeMethodAccessorImpl.invoke0(Ljava/lang/reflect/Method;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+0
j  
sun.reflect.NativeMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;+87
J  
sun.reflect.DelegatingMethodAccessorImpl.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
J  
java.lang.reflect.Method.invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
j  
org.apache.commons.modeler.BaseModelMBean.getAttribute(Ljava/lang/String;)Ljava/lang/Object;+375
j  
org.apache.commons.modeler.BaseModelMBean.getAttributes([Ljava/lang/String;)Ljavax/management/AttributeList;+48
j  
com.sun.jmx.mbeanserver.DynamicMetaDataImpl.getAttributes(Ljava/lang/Object;[Ljava/lang/String;)Ljavax/management/AttributeList;+28
j  
com.sun.jmx.mbeanserver.MetaDataImpl.getAttributes(Ljava/lang/Object;[Ljava/lang/String;)Ljavax/management/AttributeList;+9
...

Is something wrong with the RemoteAddr MBeans attribute access
==
org.apache.tomcat.jni.Address.get(IJ)J+0
j  
org.apache.coyote.http11.Http11AprProcessor.action(Lorg/apache/coyote/ActionCode;Ljava/lang/Object;)V+229
j  
org.apache.coyote.Request.action(Lorg/apache/coyote/ActionCode;Ljava/lang/Object;)V+42
j  org.apache.coyote.RequestInfo.getRemoteAddr()Ljava/lang/String;+8
==

Many thanks for some informations
Peter




---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Re: Tomcat Crash with apr when RequestProcessor accessed

Posted by Remy Maucherat <re...@apache.org>.
Peter Rossbach wrote:
> Hey Remy,
> 
> I have tested your patch (suse 9.3) and it fix the jvm crash problem.
> Currently I have only tested with http apr connector.

Cool. AJP can't have the issue (the action method doesn't make any 
socket access).

Rémy

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Re: Tomcat Crash with apr when RequestProcessor accessed

Posted by Peter Rossbach <pr...@objektpark.de>.
Hey Remy,

I have tested your patch (suse 9.3) and it fix the jvm crash problem.
Currently I have only tested with http apr connector.

Many thanks
Peter

Remy Maucherat schrieb:

> Peter Rossbach wrote:
>
>> Hey,
>>
>> A customer report today a very strange tomcat crash to me and
>> I can simulate this bugs with following releases and OS's:
>>
>> Tested with Suse 9.3, Tomcat 5.5.12 /Apr 1.2.2 / openssl 0.9.8, jdk 
>> 1.5.0_03
>> Also tested with current SVN Head and fresh build tcnative from head
>> and Tomcat 5.5.12 / Maldens tcnative 1.1.0 dll / Windows XP
>>
>> Start Tomcat with APR Http Connector and JSR 160 JMX Adaptor
>> request some pages via http Connector
>> start jconsole / open Mbeans tab
>> Open RequestProcessor tree
>> Open one off the RequestInfo MBeans
>
>
> Let me know if my change fixes the problem, as I didn't even try to 
> reproduce the problem (and during the time I was using it with the APR 
> connector, neither the status servlet nor the JMX proxy crashed on me).
>
> I did add guard code like there was in the HTTP connector, which 
> critical here as these are pointers.
>
> Rémy
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: dev-help@tomcat.apache.org
>
>
>
>




---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Re: Tomcat Crash with apr when RequestProcessor accessed

Posted by Remy Maucherat <re...@apache.org>.
Peter Rossbach wrote:
> Hey,
> 
> A customer report today a very strange tomcat crash to me and
> I can simulate this bugs with following releases and OS's:
> 
> Tested with Suse 9.3, Tomcat 5.5.12 /Apr 1.2.2 / openssl 0.9.8, jdk 
> 1.5.0_03
> Also tested with current SVN Head and fresh build tcnative from head
> and Tomcat 5.5.12 / Maldens tcnative 1.1.0 dll / Windows XP
> 
> Start Tomcat with APR Http Connector and JSR 160 JMX Adaptor
> request some pages via http Connector
> start jconsole / open Mbeans tab
> Open RequestProcessor tree
> Open one off the RequestInfo MBeans

Let me know if my change fixes the problem, as I didn't even try to 
reproduce the problem (and during the time I was using it with the APR 
connector, neither the status servlet nor the JMX proxy crashed on me).

I did add guard code like there was in the HTTP connector, which 
critical here as these are pointers.

Rémy

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Re: Tomcat Crash with apr when RequestProcessor accessed

Posted by Remy Maucherat <re...@apache.org>.
Peter Rossbach wrote:
> Hey,
> 
> A customer report today a very strange tomcat crash to me and
> I can simulate this bugs with following releases and OS's:
> 
> Tested with Suse 9.3, Tomcat 5.5.12 /Apr 1.2.2 / openssl 0.9.8, jdk 
> 1.5.0_03
> Also tested with current SVN Head and fresh build tcnative from head
> and Tomcat 5.5.12 / Maldens tcnative 1.1.0 dll / Windows XP
> 
> Start Tomcat with APR Http Connector and JSR 160 JMX Adaptor
> request some pages via http Connector
> start jconsole / open Mbeans tab
> Open RequestProcessor tree
> Open one off the RequestInfo MBeans

Can you give the full stack trace just to be sure ?

This seems a bit evident though: the HTTP connector has guards for 
(socket != null) and the APR HTTP connector would need equivalent 
(socket != 0). Woops, bad Java to APR translation.

Rémy

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org