Re: Deadlock in Cache

Serge Huber <[email protected]>
Newsgroups gmane.comp.cms.jahia.devel
Message-ID <[email protected]>
Hi Brett,

I have committed modifications to the cache system so that we don't lock 
everything on a cache flush. This will be in the next release of the 
4.0.x and 4.1.x versions.

Regards,
Serge Huber.

Brett Randall wrote:
>
> We have a production site suffering the same intermittent deadlock 
> issue identified in http://www.jahia.net/jira/browse/JAHIA-639 . This 
> is a Jahia 4.0.5 system. The result is a completely deadlocked Jahia 
> engine, no rendering, no authoring.
>
> I’m enquiring whether this bug is likely to receive any attention in 
> the near future, given the severity.
>
> Stack traces below – I will also update the Jira.
>
> Found one Java-level deadlock:
>
> =============================
>
> "TP-Processor70593":
>
> waiting to lock monitor 0x080cc0bc (object 0x92ffe878, a 
> org.jahia.services.cache.Cache),
>
> which is held by "TP-Processor70118"
>
> "TP-Processor70118":
>
> waiting to lock monitor 0x080cc0f4 (object 0x92ffe8a8, a 
> org.jahia.services.cache.Cache),
>
> which is held by "TP-Processor70593"
>
> Java stack information for the threads listed above:
>
> ===================================================
>
> "TP-Processor70593":
>
> at org.jahia.services.cache.Cache.putCacheEntry(Cache.java:280)
>
> - waiting to lock <0x92ffe878> (a org.jahia.services.cache.Cache)
>
> at org.jahia.services.cache.Cache.put(Cache.java:259)
>
> at org.jahia.services.cache.Cache.put(Cache.java:235)
>
> at 
> org.jahia.registries.JahiaContainerDefinitionsRegistry.loadAllDefinitions(JahiaContainerDefinitionsRegistry.java:106)
>
> - locked <0x92ffc790> (a 
> org.jahia.registries.JahiaContainerDefinitionsRegistry)
>
> at 
> org.jahia.registries.JahiaContainerDefinitionsRegistry.onCacheFlush(JahiaContainerDefinitionsRegistry.java:301)
>
> at org.jahia.services.cache.Cache.flush(Cache.java:442)
>
> - locked <0x92ffe8a8> (a org.jahia.services.cache.Cache)
>
> at org.jahia.services.cache.Cache.flush(Cache.java:412)
>
> at 
> org.jahia.services.cache.CacheFactory.flushAllCaches(CacheFactory.java:356)
>
> - locked <0x92ffe8a8> (a org.jahia.services.cache.Cache)
>
> - locked <0x92c46d70> (a org.jahia.services.cache.CacheFactory) at 
> org.jahia.admin.status.ManageStatus.processSettings(ManageStatus.java:190)
>
> at 
> org.jahia.admin.status.ManageStatus.userRequestDispatcher(ManageStatus.java:111)
>
> at org.jahia.admin.status.ManageStatus.<init>(ManageStatus.java:91)
>
> at 
> org.jahia.bin.JahiaAdministration.userRequestDispatcher(JahiaAdministration.java:374)
>
> at org.jahia.bin.JahiaAdministration.service(JahiaAdministration.java:245)
>
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)
>
> at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:200)
>
> <snip>
>
> "TP-Processor70118":
>
> at org.jahia.services.cache.Cache.putCacheEntry(Cache.java:280)
>
> - waiting to lock <0x92ffe8a8> (a org.jahia.services.cache.Cache)
>
> at org.jahia.services.cache.Cache.put(Cache.java:259)
>
> at org.jahia.services.cache.Cache.put(Cache.java:235)
>
> at 
> org.jahia.registries.JahiaContainerDefinitionsRegistry.loadDefinitionByID(JahiaContainerDefinitionsRegistry.java:122)
>
> at 
> org.jahia.registries.JahiaContainerDefinitionsRegistry.getDefinition(JahiaContainerDefinitionsRegistry.java:162)
>
> - locked <0x92ffe878> (a org.jahia.services.cache.Cache)
>
> at 
> org.jahia.data.containers.JahiaContainerStructure.<init>(JahiaContainerStructure.java:75)
>
> at 
> org.jahia.services.containers.JahiaContainerStructuresDB.db_load_container_structure(JahiaContainerStructuresDB.java:88)
>
> at 
> org.jahia.services.containers.JahiaContainerDefinitionsDB.db_load_container_definition(JahiaContainerDefinitionsDB.java:124)
>
> at 
> org.jahia.services.containers.JahiaContainersBaseService.loadContainerDefinition(JahiaContainersBaseService.java:2053)
>
> at 
> org.jahia.registries.JahiaContainerDefinitionsRegistry.loadDefinitionByID(JahiaContainerDefinitionsRegistry.java:115)
>
> at 
> org.jahia.registries.JahiaContainerDefinitionsRegistry.getDefinition(JahiaContainerDefinitionsRegistry.java:162)
>
> - locked <0x92ffe878> (a org.jahia.services.cache.Cache)
>
> at 
> org.jahia.data.containers.JahiaContainerStructure.<init>(JahiaContainerStructure.java:75)
>
> at 
> org.jahia.services.containers.JahiaContainerStructuresDB.db_load_container_structure(JahiaContainerStructuresDB.java:88)
>
> at 
> org.jahia.services.containers.JahiaContainerDefinitionsDB.db_load_container_definition(JahiaContainerDefinitionsDB.java:124)
>
> at 
> org.jahia.services.containers.JahiaContainersBaseService.loadContainerDefinition(JahiaContainersBaseService.java:2053)
>
> at 
> org.jahia.registries.JahiaContainerDefinitionsRegistry.loadDefinitionByID(JahiaContainerDefinitionsRegistry.java:115)
>
> at 
> org.jahia.registries.JahiaContainerDefinitionsRegistry.getDefinition(JahiaContainerDefinitionsRegistry.java:162)
>
> - locked <0x92ffe878> (a org.jahia.services.cache.Cache)
>
> at 
> org.jahia.engines.containerlistproperties.ContainerListProperties_Engine.renderLink(ContainerListProperties_Engine.java:113)
>
> at org.jahia.gui.GuiBean.drawUrlCheckWriteAccess(GuiBean.java:720)
>
> at org.jahia.gui.GuiBean.drawContainerListPropertiesUrl(GuiBean.java:488)
>
> at 
> org.jahia.gui.HTMLToolBox.drawContainerListPropertiesLauncher(HTMLToolBox.java:536)
>
> at 
> org.jahia.gui.HTMLToolBox.drawContainerListPropertiesLauncher(HTMLToolBox.java:515)
>
> - locked <0xa1f16b80> (a org.jahia.gui.HTMLToolBox)
>
> at 
> org.jahia.taglibs.url.ContainerListPropertiesURLTag.getJSPopupURL(ContainerListPropertiesURLTag.java:69)
>
> at 
> org.jahia.taglibs.url.ContainerListPropertiesURLTag.getIdObject(ContainerListPropertiesURLTag.java:43)
>
> at org.jahia.taglibs.url.AbstractURLTag.doStartTag(AbstractURLTag.java:91)
>
> at org.apache.jsp.columns_jsp._jspService(columns_jsp.java:3858)
>
> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:92)
>
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)
>
> at 
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:162)
>
> at 
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:240)
>
> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:187)
>
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)
>
> at 
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:627)
>
> at 
> org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:518)
>
> at 
> org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:448)
>
> at 
> org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:768)
>
> at 
> org.apache.jsp.general_columns_jsp._jspService(general_columns_jsp.java:1895)
>
> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:92)
>
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)
>
> at 
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:162)
>
> at 
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:240)
>
> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:187)
>
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)
>
> at 
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:627)
>
> at 
> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:382)
>
> at 
> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:306)
>
> at org.jahia.engines.EngineRenderer.renderCore(EngineRenderer.java:182)
>
> at org.jahia.engines.EngineRenderer.render(EngineRenderer.java:78)
>
> at org.jahia.engines.core.Core_Engine.processCore(Core_Engine.java:186)
>
> at org.jahia.engines.core.Core_Engine.handleActions(Core_Engine.java:107)
>
> at 
> org.jahia.operations.OperationManager.handleOperations(OperationManager.java:279)
>
> at org.jahia.bin.JahiaAction.execute(JahiaAction.java:50)
>
> at 
> org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
>
> at 
> org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
>
> at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
>
> at org.jahia.bin.Jahia.process(Jahia.java:1522)
>
> at org.jahia.bin.Jahia.service(Jahia.java:846)
>
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)
>
> at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:200)
>
> <snip>
>
> Found 1 deadlock.
>
> Thanks
>
> Brett Randall
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.