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


Reply via email to