DWR randomly hangs with no errors or messages

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

DWR randomly hangs with no errors or messages

Mutaz Alghafary
CONTENTS DELETED
The author has deleted this message.
Reply | Threaded
Open this post in threaded view
|

Re: DWR randomly hangs with no errors or messages

david@butterdev.com
DWR 2.0.3 is very old.  The current release is 3.0, also you have not
kept up with any of the 2.x fixes/security patches/etc.  I suggest you
upgrade to 3.0.

http://svn.directwebremoting.org/dwr/tags/Version_2_0_3/java/org/directwebremoting/dwrp/ParseUtil.java

ParseUtil Line 67 is reading from the input stream.  Have you been able
to view the raw request when this occurs and notice any metrics (size,
etc.).  Have you looked at the health of your container when you are
seeing these failures?

On 2015-08-23 09:23, Mutaz Alghafary wrote:

> Hello Everyone , we are using DWR 2.0.3 and we are facing some strange
> problem ,
>
> We have a simple cluster configuration ( 2 tomcat instances behind
> apache httpd mod_jk load balancer ) . using IE 8 the browser hangs in
> random times so that the screen freezes and no response is
> returned . the hang lasts for random times ( 1 minutes , 2 minutes ,
> .. etc ) . nothing in the logs for tomcat or apache , we generated
> thread dump during the hang and it seems the thread is stopped at
> ParsePost method , here is the thread dump :
>
> "ajp-apr-8009-exec-2" - Thread t@78
>  java.lang.Thread.State: RUNNABLE
>  at org.apache.tomcat.jni.Socket.recvbb(Native Method)
>  at
> org.apache.coyote.ajp.AjpAprProcessor.read(AjpAprProcessor.java:319)
>  at
> org.apache.coyote.ajp.AjpAprProcessor.readMessage(AjpAprProcessor.java:421)
>
>  at
> org.apache.coyote.ajp.AjpAprProcessor.receive(AjpAprProcessor.java:380)
>
>  at
> org.apache.coyote.ajp.AbstractAjpProcessor$SocketInputBuffer.doRead(AbstractAjpProcessor.java:1166)
>
>  at org.apache.coyote.Request.doRead(Request.java:422)
>  at
> org.apache.catalina.connector.InputBuffer.realReadBytes(InputBuffer.java:290)
>
>  at org.apache.tomcat.util.buf.ByteChunk.substract(ByteChunk.java:449)
>
>  at
> org.apache.catalina.connector.InputBuffer.read(InputBuffer.java:315)
>  at
> org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:200)
>
>  at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283)
>  at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325)
>  at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177)
>  - locked <4e20ca93> (a java.io.InputStreamReader)
>  at java.io.InputStreamReader.read(InputStreamReader.java:184)
>  at java.io.BufferedReader.fill(BufferedReader.java:154)
>  at java.io.BufferedReader.readLine(BufferedReader.java:317)
>  - locked <4e20ca93> (a java.io.InputStreamReader)
>  at java.io.BufferedReader.readLine(BufferedReader.java:382)
>  at org.directwebremoting.dwrp.ParseUtil.parsePost(ParseUtil.java:67)
>  at org.directwebremoting.dwrp.Batch.<init>(Batch.java:58)
>  at
> org.directwebremoting.dwrp.BaseCallMarshaller.marshallInbound(BaseCallMarshaller.java:77)
>
>  at
> org.directwebremoting.servlet.PlainCallHandler.handle(PlainCallHandler.java:44)
>
>  at
> org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:101)
>
>  at
> org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:146)
>  at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
>  at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
>  at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
>
>  at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>
>  at com.etq.reliance.control.ajax.AJAXResponseFilter.doFilter(Unknown
> Source)
>  at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>
>  at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>
>  at
> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
>
>  at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>
>  at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>
>  at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
>
>  at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
>
>  at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503)
>
>  at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
>
>  at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
>
>  at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
>
>  at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
>
>  at
> org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationValve.java:333)
>
>  at
> org.apache.catalina.ha.session.JvmRouteBinderValve.invoke(JvmRouteBinderValve.java:218)
>
>  at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
>
>  at
> org.apache.coyote.ajp.AjpAprProcessor.process(AjpAprProcessor.java:188)
>
>  at
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
>
>  at
> org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2466)
>
>  at
> org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2455)
>
>  - locked <4ad3a0f7> (a
> org.apache.tomcat.util.net.AprEndpoint$AprSocketWrapper)
>  at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>
>  at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>
>  at
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
>
>  at java.lang.Thread.run(Thread.java:745)
>
> - I have no steps to duplicate the case since it happens randomly
>
> Can any one help in this ?
> Thanks in advance
>
> MUTAZ ALGHAFARY