Re: Deadlocks in the Filestore of Silde 2.1
"Oliver Zeigermann" <[email protected]> Tue, 17 Apr 2007 21:01:42 +0200
| Newsgroups | gmane.comp.jakarta.slide.user |
|---|---|
| Message-ID | <[email protected]> |
I was just having a look at the 2.2 code and it looks that you can even switch off locking completely. Otherwise the locking code in 2.2 looks much better than the code in 2.1 Oliver 2007/4/17, Oliver Zeigermann <[email protected]>: > Hi Arne! > > The stack trace tells you that another thread has the global > read/write lock. So, correctly speaking this is a "live lock". The > reason most likely is a thread that still runs and has forgotten to > release this lock. > > Having said this, even switching to a deadlock free solution will not > help, as you have no deadlocks here. > > Cheers > > Oliver > > 2007/4/17, Arne v.Irmer <[email protected]>: > > Hi, > > we are using slide in our e-learning platform > > http://ews2.uni-dortmund.de in a production environment. We get into > > deep trouble with deadlocks in Slide! > > I checked out Silde 2.2pre1. In the RELEASE-NOTES-2.2 there is the sentence: > > "- New option for a fine grained, deadlock-less locking scheme" > > My question is: > > - Should I change to 2.2pre1 for my productive environment? How can I > > switch back if we discover other problems with this pre-release? > > - Is there a patch for version 2.1. that fixes these deadlocks? > > > > Please help. > > Thanks in advance > > Arne v.Irmer > > > > Our configuration: > > Slide 2.1 with fixed hasmap "suspendedLocks" in > > org.apache.slide.store.ExtendedStore. > > using a filestore in Tomcat 5.5 > > > > Here are some stacktraces from the jconsole in the case of the deadlocks: > > > > Name: http-129.217.205.43-8080-Processor3 > > State: TIMED_WAITING on > > org.apache.commons.transaction.locking.GenericLock@76e9f537 > > Total blocked: 273 Total waited: 332 > > > > Stack trace: > > java.lang.Object.wait(Native Method) > > org.apache.commons.transaction.locking.GenericLock.acquire(GenericLock.java:241) > > org.apache.commons.transaction.locking.GenericLock.acquire(GenericLock.java:165) > > org.apache.slide.webdav.method.AbstractWebdavMethod.assureGlobalWriteLock(AbstractWebdavMethod.java:847) > > org.apache.slide.webdav.method.AbstractWebdavMethod.run(AbstractWebdavMethod.java:362) > > org.apache.slide.webdav.WebdavServlet.service(WebdavServlet.java:155) > > javax.servlet.http.HttpServlet.service(HttpServlet.java:802) > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > > org.apache.slide.webdav.filter.LogFilter.doFilter(LogFilter.java:141) > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) > > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) > > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:524) > > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) > > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) > > org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:419) > > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) > > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) > > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799) > > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705) > > org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) > > org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) > > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) > > java.lang.Thread.run(Thread.java:595) > > > > Name: http-129.217.205.43-8080-Processor3 > > State: TIMED_WAITING on > > org.apache.commons.transaction.locking.GenericLock@667aeb85 > > Total blocked: 44 Total waited: 80 > > > > Stack trace: > > java.lang.Object.wait(Native Method) > > org.apache.commons.transaction.locking.GenericLock.acquire(GenericLock.java:241) > > org.apache.commons.transaction.locking.GenericLock.acquire(GenericLock.java:165) > > org.apache.slide.webdav.method.AbstractWebdavMethod.assureGlobalReadLock(AbstractWebdavMethod.java:838) > > org.apache.slide.webdav.method.AbstractWebdavMethod.run(AbstractWebdavMethod.java:360) > > org.apache.slide.webdav.WebdavServlet.service(WebdavServlet.java:155) > > javax.servlet.http.HttpServlet.service(HttpServlet.java:802) > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > > org.apache.slide.webdav.filter.LogFilter.doFilter(LogFilter.java:141) > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) > > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) > > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:524) > > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) > > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) > > org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:419) > > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) > > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) > > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799) > > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705) > > org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) > > org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) > > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) > > java.lang.Thread.run(Thread.java:595) > > > > -- > > Dipl.-Phys. Arne v.Irmer > > Medienzentrum Universität Dortmund > > Emil-Figge-Straße 50 > > 44227 Dortmund > > Tel.: ++49 231 755 7127 > > Fax : ++49 231 755 4597 > > >