Details
-
Type:
Bug
-
Status: Resolved
-
Priority:
Major
-
Resolution: Invalid
-
Affects Version/s: 2.0.9
-
Fix Version/s: None
-
Component/s: Core: Flow Executor
-
Labels:None
Description
In the production environment, we have been facing a lot of LockTimeoutException: Unable to acquire conversation lock after 30 seconds. We have already tried increasing the time out value to 60 seconds but it doesn't seem to help.The basic problem is we are unable to identify why actually the lock is occurring. There are few case we have found as application issue and we have fixed those. But some of them it is not at all clear why the lock is happening,when there is a single request to the application server. Also, it some times happen on accessing the home page itself.
Is there a way to put a identify the activity for which lock has been put in place ?
I have already referred to below listed jira for the this issue.
Related JIRA:
https://jira.springsource.org/browse/SWF-1059
https://jira.springsource.org/browse/SWF-1107
https://jira.springsource.org/browse/SWF-1213
Exception Stack Trace,
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.webflow.mvc.servlet.FlowController.handleRequest(FlowController.java:174)
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:511)