RE: Deadlock in Cache

"Brett Randall" <[email protected]>
Newsgroups gmane.comp.cms.jahia.devel
Message-ID <6B2BED55D4802A43A823D13C70ACD00C0241934D@exchfsnetr1.netreturn.internal>
Hi Serge,

Thanks for that.  I note these revisions on the following branches for
this change:

4.0 - 14113
4.1 - 14117
TRUNK - 14118

Has this patch been tested against a system setup including JMS cache
replication?

Regards
Brett Randall


-----Original Message-----
From: Serge Huber [mailto:[email protected]] 
Sent: Thursday, 4 May 2006 19:07
To: [email protected]
Subject: Re: Deadlock in Cache


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.loadAllDefinition
s(JahiaContainerDefinitionsRegistry.java:106)
>
> - locked <0x92ffc790> (a 
> org.jahia.registries.JahiaContainerDefinitionsRegistry)
>
> at 
>
org.jahia.registries.JahiaContainerDefinitionsRegistry.onCacheFlush(Jahi
aContainerDefinitionsRegistry.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:3
56)
>
> - 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:19
0)
>
> at 
>
org.jahia.admin.status.ManageStatus.userRequestDispatcher(ManageStatus.j
ava:111)
>
> at org.jahia.admin.status.ManageStatus.<init>(ManageStatus.java:91)
>
> at 
>
org.jahia.bin.JahiaAdministration.userRequestDispatcher(JahiaAdministrat
ion.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(Applica
tionFilterChain.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.loadDefinitionByI
D(JahiaContainerDefinitionsRegistry.java:122)
>
> at 
>
org.jahia.registries.JahiaContainerDefinitionsRegistry.getDefinition(Jah
iaContainerDefinitionsRegistry.java:162)
>
> - locked <0x92ffe878> (a org.jahia.services.cache.Cache)
>
> at 
>
org.jahia.data.containers.JahiaContainerStructure.<init>(JahiaContainerS
tructure.java:75)
>
> at 
>
org.jahia.services.containers.JahiaContainerStructuresDB.db_load_contain
er_structure(JahiaContainerStructuresDB.java:88)
>
> at 
>
org.jahia.services.containers.JahiaContainerDefinitionsDB.db_load_contai
ner_definition(JahiaContainerDefinitionsDB.java:124)
>
> at 
>
org.jahia.services.containers.JahiaContainersBaseService.loadContainerDe
finition(JahiaContainersBaseService.java:2053)
>
> at 
>
org.jahia.registries.JahiaContainerDefinitionsRegistry.loadDefinitionByI
D(JahiaContainerDefinitionsRegistry.java:115)
>
> at 
>
org.jahia.registries.JahiaContainerDefinitionsRegistry.getDefinition(Jah
iaContainerDefinitionsRegistry.java:162)
>
> - locked <0x92ffe878> (a org.jahia.services.cache.Cache)
>
> at 
>
org.jahia.data.containers.JahiaContainerStructure.<init>(JahiaContainerS
tructure.java:75)
>
> at 
>
org.jahia.services.containers.JahiaContainerStructuresDB.db_load_contain
er_structure(JahiaContainerStructuresDB.java:88)
>
> at 
>
org.jahia.services.containers.JahiaContainerDefinitionsDB.db_load_contai
ner_definition(JahiaContainerDefinitionsDB.java:124)
>
> at 
>
org.jahia.services.containers.JahiaContainersBaseService.loadContainerDe
finition(JahiaContainersBaseService.java:2053)
>
> at 
>
org.jahia.registries.JahiaContainerDefinitionsRegistry.loadDefinitionByI
D(JahiaContainerDefinitionsRegistry.java:115)
>
> at 
>
org.jahia.registries.JahiaContainerDefinitionsRegistry.getDefinition(Jah
iaContainerDefinitionsRegistry.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(HTMLToolBo
x.java:536)
>
> at 
>
org.jahia.gui.HTMLToolBox.drawContainerListPropertiesLauncher(HTMLToolBo
x.java:515)
>
> - locked <0xa1f16b80> (a org.jahia.gui.HTMLToolBox)
>
> at 
>
org.jahia.taglibs.url.ContainerListPropertiesURLTag.getJSPopupURL(Contai
nerListPropertiesURLTag.java:69)
>
> at 
>
org.jahia.taglibs.url.ContainerListPropertiesURLTag.getIdObject(Containe
rListPropertiesURLTag.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.ja
va: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(ApplicationDispatc
her.java:627)
>
> at 
>
org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDisp
atcher.java:518)
>
> at 
>
org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispat
cher.java:448)
>
> at 
>
org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.ja
va: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.ja
va: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(ApplicationDispatc
her.java:627)
>
> at 
>
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDisp
atcher.java:382)
>
> at 
>
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispat
cher.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(RequestPr
ocessor.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(Applica
tionFilterChain.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.