Re: Deadlocks in the Filestore of Silde 2.1

"Oliver Zeigermann" <[email protected]> Wed, 18 Apr 2007 20:57:15 +0200
Newsgroups gmane.comp.jakarta.slide.user
Message-ID <[email protected]>
Hi Arne!

Your observation really is interesting. Any idea why the request is
not terminated even if the client finally gives up?

If this really is the case, even my non-blocking "solution" would not
do, as the non-blocking lock still remains. A better solution would be
a lock that times out after some time. AFAIK there is nothing simliar
implemented, yet.

You can switch off locking by setting the mode to "none". In that case
the underlying store is responsible for all locking. If it is a DB
that should be ok, though.

HTH

Oliver


2007/4/18, Arne v.Irmer <[email protected]>:
> Hi Oliver,
> how can I switch off locking and what happens in the case of a
> concurrent file access?
> Might it be a good idea to replace the locking code of 2.1 with code of 2.2?
>
> Yours
>  Arne
>
> Oliver Zeigermann schrieb:
> > 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
> >> >
> >>
>
>
> --
> 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
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>