You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cxf.apache.org by "Shenavai, Manuel" <ma...@sap.com> on 2021/02/12 17:24:35 UTC

Stuck Thread

Hi everyone,

we found that cxf threads get sometimes stuck. The thread stuck in the Deflater. I think the problem occurs while sending a compressed response. The problem occurs only sporadically and we were not able to reproduce it in dev environment. Any ideas on this? Please find the thread dump below.

Thanks in advance &
Best regards,
Manuel


"https-jsse-nio-8041-exec-13" #339 daemon prio=5 os_prio=0 cpu=469168710.00 [reset 469168710.00] ms elapsed=505793.70 [reset 505793.70] s allocated=366964888 B (349.96 MB) [reset 366964888 B (349.96 MB)] defined_classes=75
io= file i/o: 255736/10246 B, net i/o: 1819088/1510377 B, files opened:0, socks opened:12  [reset file i/o: 255736/10246 B, net i/o: 1819088/1510377 B, files opened:0, socks opened:12 ]
tid=0x00007f753c763000 nid=0x1adee / 110062  pthread-id=140139729127168 runnable   [_thread_blocked (_at_safepoint), stack(0x00007f74d2b60000,0x00007f74d2c61000)] [0x00007f74d2c5d000]
   java.lang.Thread.State: RUNNABLE
                at java.util.zip.Deflater.deflateBytes(J[BIII)I(Native Method)
                at java.util.zip.Deflater.deflate([BIII)I(Deflater.java:508)
                - locked <0x0000000776701a50> (a java.util.zip.ZStreamRef)
                at java.util.zip.Deflater.deflate([BII)I(Deflater.java:390)
                at java.util.zip.DeflaterOutputStream.deflate()V(DeflaterOutputStream.java:251)
                at java.util.zip.DeflaterOutputStream.write([BII)V(DeflaterOutputStream.java:211)
                at java.util.zip.GZIPOutputStream.write([BII)V(GZIPOutputStream.java:145)
                - locked <0x0000000776715a00> (a java.util.zip.GZIPOutputStream)
                at org.apache.cxf.io.AbstractWrappedOutputStream.write([BII)V(AbstractWrappedOutputStream.java:51)
                at org.apache.cxf.io.AbstractThresholdOutputStream.write([BII)V(AbstractThresholdOutputStream.java:69)
                at org.apache.cxf.io.AbstractWrappedOutputStream.write([BII)V(AbstractWrappedOutputStream.java:51)
                at org.apache.cxf.io.AbstractThresholdOutputStream.unBuffer()V(AbstractThresholdOutputStream.java:89)
                at org.apache.cxf.io.AbstractThresholdOutputStream.close()V(AbstractThresholdOutputStream.java:100)
                at org.apache.cxf.transport.AbstractConduit.close(Lorg/apache/cxf/message/Message;)V(AbstractConduit.java:56)
                at org.apache.cxf.transport.http.AbstractHTTPDestination$BackChannelConduit.close(Lorg/apache/cxf/message/Message;)V(AbstractHTTPDestination.java:758)
                at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(Lorg/apache/cxf/message/Message;)V(MessageSenderInterceptor.java:62)
                at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(Lorg/apache/cxf/message/Message;)Z(PhaseInterceptorChain.java:308)
                - locked <0x00000007756e5e90> (a org.apache.cxf.phase.PhaseInterceptorChain)
                at org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(Lorg/apache/cxf/message/Message;)V(AbstractFaultChainInitiatorObserver.java:112)
                at org.apache.cxf.phase.PhaseInterceptorChain.wrapExceptionAsFault(Lorg/apache/cxf/message/Message;Ljava/lang/RuntimeException;)V(PhaseInterceptorChain.java:366)
                at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(Lorg/apache/cxf/message/Message;)Z(PhaseInterceptorChain.java:324)
                - locked <0x00000007756e5ec8> (a org.apache.cxf.phase.PhaseInterceptorChain)
                at org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(Lorg/apache/cxf/message/Message;)V(OutgoingChainInterceptor.java:83)
                at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(Lorg/apache/cxf/message/Message;)Z(PhaseInterceptorChain.java:308)
                - locked <0x00000007732a51a8> (a org.apache.cxf.phase.PhaseInterceptorChain)
                at org.apache.cxf.transport.ChainInitiationObserver.onMessage(Lorg/apache/cxf/message/Message;)V(ChainInitiationObserver.java:121)
                at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(Ljavax/servlet/ServletConfig;Ljavax/servlet/ServletContext;Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V(AbstractHTTPDestination.java:267)
                at org.apache.cxf.transport.servlet.ServletController.invokeDestination(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Lorg/apache/cxf/transport/http/AbstractHTTPDestination;)V(ServletController.java:234)
                at org.apache.cxf.transport.servlet.ServletController.invoke(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Z)Z(ServletController.java:208)
                at org.apache.cxf.transport.servlet.ServletController.invoke(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V(ServletController.java:160)
                at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V(CXFNonSpringServlet.java:189)
                at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V(AbstractHTTPServlet.java:303)
                at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V(AbstractHTTPServlet.java:222)
                at javax.servlet.http.HttpServlet.service(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V(HttpServlet.java:707)
                at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V(AbstractHTTPServlet.java:278)
                at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V(ApplicationFilterChain.java:231)
                at org.apache.catalina.core.ApplicationFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V(ApplicationFilterChain.java:166)
                at org.apache.tomcat.websocket.server.WsFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V(WsFilter.java:52)
                at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V(ApplicationFilterChain.java:193)
                at org.apache.catalina.core.ApplicationFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V(ApplicationFilterChain.java:166)

Re: Stuck Thread

Posted by Andriy Redko <dr...@gmail.com>.
Hi Manuel,

What version / JVM you are running on? I have never run into such issues but there are 
a number of reported problems with ZIP streams in the bug tracker. It seems like [1] or [2] 
may bring some light but without a reproducible (even sporadically) test case it is difficult 
to diagnose the issue. 

[1]  https://bugs.openjdk.java.net/browse/JDK-8060193
[2]  https://bugs.openjdk.java.net/browse/JDK-8193682

Best Regards,
    Andriy Redko

SM> Hi everyone,

SM> we found that cxf threads get sometimes stuck. The thread stuck in the Deflater. I think the problem occurs while sending a compressed response. The problem occurs only sporadically and we were not able to reproduce it in dev environment. Any ideas on this? Please find the thread dump below.

SM> Thanks in advance &
SM> Best regards,
SM> Manuel


SM> "https-jsse-nio-8041-exec-13" #339 daemon prio=5 os_prio=0 cpu=469168710.00 [reset 469168710.00] ms elapsed=505793.70 [reset 505793.70] s allocated=366964888 B (349.96 MB) [reset 366964888 B (349.96 MB)] defined_classes=75
SM> io= file i/o: 255736/10246 B, net i/o: 1819088/1510377 B, files opened:0, socks opened:12  [reset file i/o: 255736/10246 B, net i/o: 1819088/1510377 B, files opened:0, socks opened:12 ]
SM> tid=0x00007f753c763000 nid=0x1adee / 110062  pthread-id=140139729127168 runnable   [_thread_blocked (_at_safepoint), stack(0x00007f74d2b60000,0x00007f74d2c61000)] [0x00007f74d2c5d000]
SM>    java.lang.Thread.State: RUNNABLE
SM>                 at java.util.zip.Deflater.deflateBytes(J[BIII)I(Native Method)
SM>                 at java.util.zip.Deflater.deflate([BIII)I(Deflater.java:508)
SM>                 - locked <0x0000000776701a50> (a java.util.zip.ZStreamRef)
SM>                 at java.util.zip.Deflater.deflate([BII)I(Deflater.java:390)
SM>                 at java.util.zip.DeflaterOutputStream.deflate()V(DeflaterOutputStream.java:251)
SM>                 at java.util.zip.DeflaterOutputStream.write([BII)V(DeflaterOutputStream.java:211)
SM>                 at java.util.zip.GZIPOutputStream.write([BII)V(GZIPOutputStream.java:145)
SM>                 - locked <0x0000000776715a00> (a java.util.zip.GZIPOutputStream)
SM>                 at org.apache.cxf.io.AbstractWrappedOutputStream.write([BII)V(AbstractWrappedOutputStream.java:51)
SM>                 at org.apache.cxf.io.AbstractThresholdOutputStream.write([BII)V(AbstractThresholdOutputStream.java:69)
SM>                 at org.apache.cxf.io.AbstractWrappedOutputStream.write([BII)V(AbstractWrappedOutputStream.java:51)
SM>                 at org.apache.cxf.io.AbstractThresholdOutputStream.unBuffer()V(AbstractThresholdOutputStream.java:89)
SM>                 at org.apache.cxf.io.AbstractThresholdOutputStream.close()V(AbstractThresholdOutputStream.java:100)
SM>                 at org.apache.cxf.transport.AbstractConduit.close(Lorg/apache/cxf/message/Message;)V(AbstractConduit.java:56)
SM>                 at org.apache.cxf.transport.http.AbstractHTTPDestination$BackChannelConduit.close(Lorg/apache/cxf/message/Message;)V(AbstractHTTPDestination.java:758)
SM>                 at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(Lorg/apache/cxf/message/Message;)V(MessageSenderInterceptor.java:62)
SM>                 at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(Lorg/apache/cxf/message/Message;)Z(PhaseInterceptorChain.java:308)
SM>                 - locked <0x00000007756e5e90> (a org.apache.cxf.phase.PhaseInterceptorChain)
SM>                 at org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(Lorg/apache/cxf/message/Message;)V(AbstractFaultChainInitiatorObserver.java:112)
SM>                 at org.apache.cxf.phase.PhaseInterceptorChain.wrapExceptionAsFault(Lorg/apache/cxf/message/Message;Ljava/lang/RuntimeException;)V(PhaseInterceptorChain.java:366)
SM>                 at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(Lorg/apache/cxf/message/Message;)Z(PhaseInterceptorChain.java:324)
SM>                 - locked <0x00000007756e5ec8> (a org.apache.cxf.phase.PhaseInterceptorChain)
SM>                 at org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(Lorg/apache/cxf/message/Message;)V(OutgoingChainInterceptor.java:83)
SM>                 at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(Lorg/apache/cxf/message/Message;)Z(PhaseInterceptorChain.java:308)
SM>                 - locked <0x00000007732a51a8> (a org.apache.cxf.phase.PhaseInterceptorChain)
SM>                 at org.apache.cxf.transport.ChainInitiationObserver.onMessage(Lorg/apache/cxf/message/Message;)V(ChainInitiationObserver.java:121)
SM>                 at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(Ljavax/servlet/ServletConfig;Ljavax/servlet/ServletContext;Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V(AbstractHTTPDestination.java:267)
SM>                 at org.apache.cxf.transport.servlet.ServletController.invokeDestination(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Lorg/apache/cxf/transport/http/AbstractHTTPDestination;)V(ServletController.java:234)
SM>                 at org.apache.cxf.transport.servlet.ServletController.invoke(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Z)Z(ServletController.java:208)
SM>                 at org.apache.cxf.transport.servlet.ServletController.invoke(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V(ServletController.java:160)
SM>                 at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V(CXFNonSpringServlet.java:189)
SM>                 at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V(AbstractHTTPServlet.java:303)
SM>                 at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V(AbstractHTTPServlet.java:222)
SM>                 at javax.servlet.http.HttpServlet.service(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V(HttpServlet.java:707)
SM>                 at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V(AbstractHTTPServlet.java:278)
SM>                 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V(ApplicationFilterChain.java:231)
SM>                 at org.apache.catalina.core.ApplicationFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V(ApplicationFilterChain.java:166)
SM>                 at org.apache.tomcat.websocket.server.WsFilter.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V(WsFilter.java:52)
SM>                 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V(ApplicationFilterChain.java:193)
SM>                 at org.apache.catalina.core.ApplicationFilterChain.doFilter(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V(ApplicationFilterChain.java:166)