[cas-user] LockTimeoutException: Unable to acquire conversation lock after 30 seconds

2,464 views
Skip to first unread message

Zac Harvey

unread,
Jan 8, 2015, 1:48:40 PM1/8/15
to cas-...@lists.jasig.org

We have had our live CAS servers running for 2 months since the last (tiny) config change.  Now all of the sudden, about every 15 minutes, users are unable to login, and I have to restart the service to fix things.  When I tail the logs while this is happening, and attempt to login, I see:


org.springframework.webflow.conversation.impl.LockTimeoutException: Unable to acquire conversation lock after 30 seconds
        at org.springframework.webflow.conversation.impl.JdkConcurrentConversationLock.lock(JdkConcurrentConversationLock.java:44)
        at org.springframework.webflow.conversation.impl.ContainedConversation.lock(ContainedConversation.java:69)
        at org.springframework.webflow.execution.repository.support.ConversationBackedFlowExecutionLock.lock(ConversationBackedFlowExecutionLock.java:51)
        at org.springframework.webflow.executor.FlowExecutorImpl.resumeExecution(FlowExecutorImpl.java:166)
        at org.springframework.webflow.mvc.servlet.FlowHandlerAdapter.handle(FlowHandlerAdapter.java:183)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
        at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:838)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
        at org.jasig.cas.web.init.SafeDispatcherServlet.service(SafeDispatcherServlet.java:125)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
        at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343)
        at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at com.github.inspektr.common.web.ClientInfoThreadLocalFilter.doFilter(ClientInfoThreadLocalFilter.java:63)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)

Any idea as to what is going on?  We authenticate against AD; could that be causing issues?  Nothing has changed in literally 2 months...

Thanks for any and all help...


-- 
You are currently subscribed to cas-...@lists.jasig.org as: jasig-cas-user...@googlegroups.com
To unsubscribe, change settings or access archives, see http://www.ja-sig.org/wiki/display/JSG/cas-user

Zac Harvey

unread,
Jan 9, 2015, 7:36:44 AM1/9/15
to cas-...@lists.jasig.org

​This is still an issue for us, any ideas?


From: Zac Harvey
Sent: Thursday, January 8, 2015 1:48 PM
To: cas-...@lists.jasig.org
Subject: LockTimeoutException: Unable to acquire conversation lock after 30 seconds
 

Waldbieser, Carl

unread,
Jan 9, 2015, 9:30:50 AM1/9/15
to cas-...@lists.jasig.org
Zac,

This SO question/answer describes what the error is trying to tell you:

http://stackoverflow.com/questions/9533786/spring-web-flow-locktimeoutexception

So it looks like the Spring Webflow conversation is taking too long. As the answer points out, troubleshooting is tricky because the place the error occurs is not where it is reported. The answer has a couple tips you could try. It seems to me that you need to understand the entire system in place in order to figure out where the slow down is.

Thanks,
Carl Waldbieser
ITS Systems Programmer
Lafayette College
You are currently subscribed to cas-...@lists.jasig.org as: wald...@lafayette.edu
Reply all
Reply to author
Forward
0 new messages