You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Laszlo Hornyak (JIRA)" <ji...@apache.org> on 2014/12/16 22:15:13 UTC

[jira] [Created] (CXF-6160) AsyncResponse infinite loops

Laszlo Hornyak created CXF-6160:
-----------------------------------

             Summary: AsyncResponse infinite loops
                 Key: CXF-6160
                 URL: https://issues.apache.org/jira/browse/CXF-6160
             Project: CXF
          Issue Type: Bug
          Components: JAX-RS
    Affects Versions: 3.0.3
         Environment: reproduced under both jetty and tomcat
            Reporter: Laszlo Hornyak


I created a JAX-RS 2.0 service, then I used apache benchmark to create some load on the web application. After some tests ab failed.

{noformat}
Completed 18000 requests
apr_pollset_poll: The timeout specified has expired (70007)
Total of 19997 requests completed
{noformat}

While the test finished and no HTTP requests hit, the application container is still consuming all available CPU time, and it has some threads like this in the thread dump:

{noformat}
"qtp1386911411-56" prio=10 tid=0x00007f5b3803d000 nid=0x56b8 runnable [0x00007f5b06fa8000]
   java.lang.Thread.State: RUNNABLE
	at java.util.HashMap.put(HashMap.java:498)
	at java.util.HashMap.putAll(HashMap.java:647)
	at org.apache.cxf.message.MessageImpl$1.putAll(MessageImpl.java:188)
	at org.apache.cxf.message.MessageImpl.calcContextCache(MessageImpl.java:212)
	at org.apache.cxf.message.MessageImpl.getContextualProperty(MessageImpl.java:174)
	at org.apache.cxf.transport.http.Headers.copyToResponse(Headers.java:430)
	at org.apache.cxf.transport.http.AbstractHTTPDestination.flushHeaders(AbstractHTTPDestination.java:617)
	at org.apache.cxf.transport.http.AbstractHTTPDestination$WrappedOutputStream.close(AbstractHTTPDestination.java:784)
	at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
	at org.apache.cxf.transport.http.AbstractHTTPDestination$BackChannelConduit.close(AbstractHTTPDestination.java:720)
	at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
	- locked <0x00000000fb20efd0> (a org.apache.cxf.phase.PhaseInterceptorChain)
	at org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:83)
	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
	- locked <0x00000000fb20f8f8> (a org.apache.cxf.phase.PhaseInterceptorChain)
	at org.apache.cxf.phase.PhaseInterceptorChain.resume(PhaseInterceptorChain.java:277)
	- eliminated <0x00000000fb20f8f8> (a org.apache.cxf.phase.PhaseInterceptorChain)
	at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)
	- locked <0x00000000fb20f8f8> (a org.apache.cxf.phase.PhaseInterceptorChain)
	at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:251)
	at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:223)
	at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:197)
	at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:149)
	at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:171)
	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:290)
	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:214)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:265)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:769)
{noformat}





--
This message was sent by Atlassian JIRA
(v6.3.4#6332)