You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-user@logging.apache.org by "KARR, DAVID" <dk...@att.com> on 2016/09/09 20:17:25 UTC

Tried to remove Log4jServletFilter reference to avoid "GC overhead limit exceeded", but still happens

At one point, I had changed my webapp's web.xml to reference the "Log4jServletFilter", but I since decided I didn't need to use that, and I was also seeing my app dying with stacktraces like the following:
------------------
org.apache.cxf.interceptor.Fault: GC overhead limit exceeded
	at org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.handleWriteException(JAXRSOutInterceptor.java:391)
	at org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.serializeMessage(JAXRSOutInterceptor.java:266)
	at org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.processResponse(JAXRSOutInterceptor.java:120)
	at org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.handleMessage(JAXRSOutInterceptor.java:83)
	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
	at org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:83)
	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
	at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
	at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:254)
	at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234)
	at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208)
	at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160)
	at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:180)
	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:299)
	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:223)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:274)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
	at org.apache.logging.log4j.web.Log4jServletFilter.doFilter(Log4jServletFilter.java:71)
------------------

When I saw the last entry shown here, I tried to comment out the block in my web.xml that configures this filter and restarted my service.  However, after a while I saw this same error again.  What might be happening here?

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-user-help@logging.apache.org


Re: Tried to remove Log4jServletFilter reference to avoid "GC overhead limit exceeded", but still happens

Posted by Remko Popma <re...@gmail.com>.
This appears to have been useful for people: http://stackoverflow.com/a/1393503/1446916

My guess would be that your application is creating objects in a tight loop somewhere. If you run the app with FlightRecorder you should be able to zoom in on where the allocation is taking place. See https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/memleaks001.html
and https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/tooldescr005.html

Remko
Sent from my iPhone

> On 2016/09/10, at 6:52, Ralph Goers <ra...@dslextreme.com> wrote:
> 
> I hope you realize that the Log4jServletFilter is probably not the culprit here. It is just a servlet filter in your filter chain.
> 
> Ralph
> 
>> On Sep 9, 2016, at 1:17 PM, KARR, DAVID <dk...@att.com> wrote:
>> 
>> At one point, I had changed my webapp's web.xml to reference the "Log4jServletFilter", but I since decided I didn't need to use that, and I was also seeing my app dying with stacktraces like the following:
>> ------------------
>> org.apache.cxf.interceptor.Fault: GC overhead limit exceeded
>>    at org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.handleWriteException(JAXRSOutInterceptor.java:391)
>>    at org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.serializeMessage(JAXRSOutInterceptor.java:266)
>>    at org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.processResponse(JAXRSOutInterceptor.java:120)
>>    at org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.handleMessage(JAXRSOutInterceptor.java:83)
>>    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
>>    at org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:83)
>>    at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
>>    at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
>>    at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:254)
>>    at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234)
>>    at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208)
>>    at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160)
>>    at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:180)
>>    at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:299)
>>    at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:223)
>>    at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
>>    at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:274)
>>    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
>>    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
>>    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
>>    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
>>    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
>>    at org.apache.logging.log4j.web.Log4jServletFilter.doFilter(Log4jServletFilter.java:71)
>> ------------------
>> 
>> When I saw the last entry shown here, I tried to comment out the block in my web.xml that configures this filter and restarted my service.  However, after a while I saw this same error again.  What might be happening here?
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
>> For additional commands, e-mail: log4j-user-help@logging.apache.org
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
> For additional commands, e-mail: log4j-user-help@logging.apache.org
> 

Re: Tried to remove Log4jServletFilter reference to avoid "GC overhead limit exceeded", but still happens

Posted by Ralph Goers <ra...@dslextreme.com>.
I hope you realize that the Log4jServletFilter is probably not the culprit here. It is just a servlet filter in your filter chain.

Ralph

> On Sep 9, 2016, at 1:17 PM, KARR, DAVID <dk...@att.com> wrote:
> 
> At one point, I had changed my webapp's web.xml to reference the "Log4jServletFilter", but I since decided I didn't need to use that, and I was also seeing my app dying with stacktraces like the following:
> ------------------
> org.apache.cxf.interceptor.Fault: GC overhead limit exceeded
> 	at org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.handleWriteException(JAXRSOutInterceptor.java:391)
> 	at org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.serializeMessage(JAXRSOutInterceptor.java:266)
> 	at org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.processResponse(JAXRSOutInterceptor.java:120)
> 	at org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.handleMessage(JAXRSOutInterceptor.java:83)
> 	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
> 	at org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(OutgoingChainInterceptor.java:83)
> 	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
> 	at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
> 	at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:254)
> 	at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234)
> 	at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208)
> 	at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160)
> 	at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:180)
> 	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:299)
> 	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:223)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
> 	at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:274)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
> 	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192)
> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165)
> 	at org.apache.logging.log4j.web.Log4jServletFilter.doFilter(Log4jServletFilter.java:71)
> ------------------
> 
> When I saw the last entry shown here, I tried to comment out the block in my web.xml that configures this filter and restarted my service.  However, after a while I saw this same error again.  What might be happening here?
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
> For additional commands, e-mail: log4j-user-help@logging.apache.org
> 
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-user-help@logging.apache.org


Re: Tried to remove Log4jServletFilter reference to avoid "GC overhead limit exceeded", but still happens

Posted by Matt Sicker <bo...@gmail.com>.
If you're using Servlet 3.x, the filter is automatically injected. If you
don't want to use it, you can just remove the log4j-web dependency entirely.

On 9 September 2016 at 15:17, KARR, DAVID <dk...@att.com> wrote:

> At one point, I had changed my webapp's web.xml to reference the
> "Log4jServletFilter", but I since decided I didn't need to use that, and I
> was also seeing my app dying with stacktraces like the following:
> ------------------
> org.apache.cxf.interceptor.Fault: GC overhead limit exceeded
>         at org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.
> handleWriteException(JAXRSOutInterceptor.java:391)
>         at org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.
> serializeMessage(JAXRSOutInterceptor.java:266)
>         at org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.
> processResponse(JAXRSOutInterceptor.java:120)
>         at org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor.
> handleMessage(JAXRSOutInterceptor.java:83)
>         at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
> PhaseInterceptorChain.java:308)
>         at org.apache.cxf.interceptor.OutgoingChainInterceptor.
> handleMessage(OutgoingChainInterceptor.java:83)
>         at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
> PhaseInterceptorChain.java:308)
>         at org.apache.cxf.transport.ChainInitiationObserver.onMessage(
> ChainInitiationObserver.java:121)
>         at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(
> AbstractHTTPDestination.java:254)
>         at org.apache.cxf.transport.servlet.ServletController.
> invokeDestination(ServletController.java:234)
>         at org.apache.cxf.transport.servlet.ServletController.
> invoke(ServletController.java:208)
>         at org.apache.cxf.transport.servlet.ServletController.
> invoke(ServletController.java:160)
>         at org.apache.cxf.transport.servlet.CXFNonSpringServlet.
> invoke(CXFNonSpringServlet.java:180)
>         at org.apache.cxf.transport.servlet.AbstractHTTPServlet.
> handleRequest(AbstractHTTPServlet.java:299)
>         at org.apache.cxf.transport.servlet.AbstractHTTPServlet.
> doGet(AbstractHTTPServlet.java:223)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
>         at org.apache.cxf.transport.servlet.AbstractHTTPServlet.
> service(AbstractHTTPServlet.java:274)
>         at org.apache.catalina.core.ApplicationFilterChain.
> internalDoFilter(ApplicationFilterChain.java:230)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(
> ApplicationFilterChain.java:165)
>         at org.apache.tomcat.websocket.server.WsFilter.doFilter(
> WsFilter.java:52)
>         at org.apache.catalina.core.ApplicationFilterChain.
> internalDoFilter(ApplicationFilterChain.java:192)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(
> ApplicationFilterChain.java:165)
>         at org.apache.logging.log4j.web.Log4jServletFilter.doFilter(
> Log4jServletFilter.java:71)
> ------------------
>
> When I saw the last entry shown here, I tried to comment out the block in
> my web.xml that configures this filter and restarted my service.  However,
> after a while I saw this same error again.  What might be happening here?
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: log4j-user-unsubscribe@logging.apache.org
> For additional commands, e-mail: log4j-user-help@logging.apache.org
>
>


-- 
Matt Sicker <bo...@gmail.com>