[
https://issues.jboss.org/browse/RF-7248?page=com.atlassian.jira.plugin.sy...
]
Koray Gecici edited comment on RF-7248 at 12/29/10 8:29 AM:
------------------------------------------------------------
We are facing this issue at production. The result of bug is %100 CPU consumption. So we
have to stop / start out web application :(
We detected problem using Visual VM and JConsole tools. The thread named http-81-46 is not
stopping, running infinitely. The Visual VM screenshot is attached. Thread stack trace is
below:
Name: http-81-46
State: RUNNABLE
Total blocked: 1,314 Total waited: 327
Stack trace:
java.util.HashMap.get(HashMap.java:303)
org.ajax4jsf.component.UIDataAdaptor.restoreChildState(UIDataAdaptor.java:965)
org.ajax4jsf.component.UIDataAdaptor.restoreChildState(UIDataAdaptor.java:984)
org.ajax4jsf.component.UIDataAdaptor.restoreChildState(UIDataAdaptor.java:943)
org.ajax4jsf.component.UIDataAdaptor.setRowKey(UIDataAdaptor.java:361)
org.richfaces.renderkit.AbstractRowsRenderer.process(AbstractRowsRenderer.java:82)
org.richfaces.model.ModifiableModel.walk(ModifiableModel.java:156)
org.ajax4jsf.component.UIDataAdaptor.walk(UIDataAdaptor.java:1133)
org.richfaces.renderkit.AbstractRowsRenderer.encodeRows(AbstractRowsRenderer.java:104)
org.richfaces.renderkit.AbstractRowsRenderer.encodeRows(AbstractRowsRenderer.java:88)
org.richfaces.renderkit.AbstractTableRenderer.encodeTBody(AbstractTableRenderer.java:90)
org.richfaces.renderkit.AbstractTableRenderer.encodeChildren(AbstractTableRenderer.java:97)
javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:930)
javax.faces.render.Renderer.encodeChildren(Renderer.java:148)
javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837)
org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:277)
org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxComponent(AjaxChildrenRenderer.java:166)
org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxChildren(AjaxChildrenRenderer.java:83)
org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxComponent(AjaxChildrenRenderer.java:157)
org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxChildren(AjaxChildrenRenderer.java:83)
org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxComponent(AjaxChildrenRenderer.java:157)
org.ajax4jsf.renderkit.AjaxContainerRenderer.encodeAjax(AjaxContainerRenderer.java:123)
org.ajax4jsf.component.UIAjaxRegion.encodeAjax(UIAjaxRegion.java:263)
org.ajax4jsf.component.AjaxViewRoot$4.invokeContextCallback(AjaxViewRoot.java:492)
javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:711)
javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:675)
javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:720)
javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:675)
org.ajax4jsf.component.AjaxViewRoot.encodeChildren(AjaxViewRoot.java:546)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:930)
com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:266)
com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:197)
tr.com.provus.common.jsf.postback.PostbackViewHandler.renderView(PostbackViewHandler.java:101)
tr.com.provus.common.jsf.view.handler.DynamicViewHandler.renderView(DynamicViewHandler.java:81)
org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
tr.com.provus.common.jsf.servlet.DelegateFacesServlet.service(DelegateFacesServlet.java:268)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:246)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:301)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
java.lang.Thread.run(Thread.java:619)
was (Author: kgecici):
We are facing this issue at production. The result of bug is %100 CPU consumption. So
we have to stop / start out web application :(
We detected problem using Visual VM and JConsole tools. The Visual VM screenshot is
attached. Thread stack trace is below:
Name: http-81-46
State: RUNNABLE
Total blocked: 1,314 Total waited: 327
Stack trace:
java.util.HashMap.get(HashMap.java:303)
org.ajax4jsf.component.UIDataAdaptor.restoreChildState(UIDataAdaptor.java:965)
org.ajax4jsf.component.UIDataAdaptor.restoreChildState(UIDataAdaptor.java:984)
org.ajax4jsf.component.UIDataAdaptor.restoreChildState(UIDataAdaptor.java:943)
org.ajax4jsf.component.UIDataAdaptor.setRowKey(UIDataAdaptor.java:361)
org.richfaces.renderkit.AbstractRowsRenderer.process(AbstractRowsRenderer.java:82)
org.richfaces.model.ModifiableModel.walk(ModifiableModel.java:156)
org.ajax4jsf.component.UIDataAdaptor.walk(UIDataAdaptor.java:1133)
org.richfaces.renderkit.AbstractRowsRenderer.encodeRows(AbstractRowsRenderer.java:104)
org.richfaces.renderkit.AbstractRowsRenderer.encodeRows(AbstractRowsRenderer.java:88)
org.richfaces.renderkit.AbstractTableRenderer.encodeTBody(AbstractTableRenderer.java:90)
org.richfaces.renderkit.AbstractTableRenderer.encodeChildren(AbstractTableRenderer.java:97)
javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:930)
javax.faces.render.Renderer.encodeChildren(Renderer.java:148)
javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837)
org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:277)
org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxComponent(AjaxChildrenRenderer.java:166)
org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxChildren(AjaxChildrenRenderer.java:83)
org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxComponent(AjaxChildrenRenderer.java:157)
org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxChildren(AjaxChildrenRenderer.java:83)
org.ajax4jsf.renderkit.AjaxChildrenRenderer.encodeAjaxComponent(AjaxChildrenRenderer.java:157)
org.ajax4jsf.renderkit.AjaxContainerRenderer.encodeAjax(AjaxContainerRenderer.java:123)
org.ajax4jsf.component.UIAjaxRegion.encodeAjax(UIAjaxRegion.java:263)
org.ajax4jsf.component.AjaxViewRoot$4.invokeContextCallback(AjaxViewRoot.java:492)
javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:711)
javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:675)
javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:720)
javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:675)
org.ajax4jsf.component.AjaxViewRoot.encodeChildren(AjaxViewRoot.java:546)
javax.faces.component.UIComponent.encodeAll(UIComponent.java:930)
com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:266)
com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:197)
tr.com.provus.common.jsf.postback.PostbackViewHandler.renderView(PostbackViewHandler.java:101)
tr.com.provus.common.jsf.view.handler.DynamicViewHandler.renderView(DynamicViewHandler.java:81)
org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
tr.com.provus.common.jsf.servlet.DelegateFacesServlet.service(DelegateFacesServlet.java:268)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:246)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:301)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
java.lang.Thread.run(Thread.java:619)
a4j creates infinite HashMap.get loop
-------------------------------------
Key: RF-7248
URL:
https://issues.jboss.org/browse/RF-7248
Project: RichFaces
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: component-tables
Affects Versions: 3.3.0, 3.3.3.Final
Reporter: Nida Cibulskyte
Assignee: Nick Belaevski
Labels: ENT
Fix For: 3.3.4.BETA1, ENT_3.3.1.SP2
Attachments: infinite_loop.JPG, screenshot-1.jpg
Concurrent requests on a4j components causes infinite loop. While one request is being
proccessed by restoreChildState method, another request is senT for proccessing. It causes
the code to get stuck in hashmap.get() as the hashmap is not synchronized and causes
infinite loop.
2009 05 25 09:41:43 ERROR demo.NameBean - java.util.HashMap.get(HashMap.java:303)
2009 05 25 09:41:43 ERROR demo.NameBean -
org.ajax4jsf.component.UIDataAdaptor.restoreChildState(UIDataAdaptor.java:965)
2009 05 25 09:41:43 ERROR demo.NameBean -
org.ajax4jsf.component.UIDataAdaptor.restoreChildState(UIDataAdaptor.java:982)
2009 05 25 09:41:43 ERROR demo.NameBean -
org.ajax4jsf.component.UIDataAdaptor.restoreChildState(UIDataAdaptor.java:982)
.......................
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira