Re: Deadlock in Cache

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

At this point the code hasn't yet gone through formal testing. The 
changes are minimal though (reduction of synchronized section), and a 
backport of some of the changes already in 5.0

Regards,
  Serge Huber.

Brett Randall wrote:
> 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.