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:20:13 UTC
[jira] [Updated] (CXF-6160) AsyncResponse infinite loops
[ https://issues.apache.org/jira/browse/CXF-6160?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Laszlo Hornyak updated CXF-6160:
--------------------------------
Attachment: CXF-6160.tar.gz
sample app
> 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
> Attachments: CXF-6160.tar.gz
>
>
> 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)