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>