
| Key: |
AMATH-863
|
| Type: |
Bug
|
| Status: |
Closed
|
| Resolution: |
Won't Fix
|
| Priority: |
Blocker
|
| Assignee: |
Unassigned
|
| Reporter: |
Stefan Winterstein
|
| Votes: |
0
|
| Watchers: |
3
|
Link this issue to another issue
|
|
If you were logged in you would be able to see more operations.
|
|
|
Recently, I'm again experiencing deadlocks of the XLM. They might be related to Rafaels changes from July 17th.
Here are 2 stacktraces from a deadlock state:
> Thread [Thread-8] (Suspended)
> Object.wait(long) line: not available [native method]
> XlmSession(Object).wait() line: not available
> XlmSession.open(int) line: 199
> XlmSession.getSession(String, int) line: 183
> XlmModelImpl.getSessionReadOnly(String) line: 557
> XlmModelImpl.getBelief(String, String, String) line: 326
> XlmModelImpl.getBelief(String, String) line: 271
> XlmModelImpl.getSummaryBelief(String, String) line: 288
> XlmManager.getSummaryBelief(String, String) line: 450
> XlmAdapter.getKnowledgeValue(String, String) line: 78
> User.getMastery(String) line: 487
> UserBeanFactory.createUserItem(User, Item, Formatter) line: 87
> UserBeanFactory.createUserItem(User, Item) line: 97
> ExerciseController.action() line: 393
> ExerciseController(ControllerBase).perform() line: 711
> ExerciseController(ThrowawayBean2).go() line: 44
> ExerciseController(Throwaway2).go(ControllerContext) line: 48
> ThrowawayControllerAdapter.go(ControllerContext) line: 58
> CommandMultipleViews(CommandBase).go(MaverickContext) line: 44
> Dispatcher.service(HttpServletRequest, HttpServletResponse) line: 198
> Dispatcher(HttpServlet).service(ServletRequest, ServletResponse) line: 853
> ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 247
> ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 193
> StandardWrapperValve.invoke(Request, Response, ValveContext) line: 256
> StandardPipeline$StandardPipelineValveContext.invokeNext(Request, Response) line: 643
> StandardPipeline.invoke(Request, Response) line: 480
> StandardWrapper(ContainerBase).invoke(Request, Response) line: 995
> StandardContextValve.invoke(Request, Response, ValveContext) line: 191
> StandardPipeline$StandardPipelineValveContext.invokeNext(Request, Response) line: 643
> StandardPipeline.invoke(Request, Response) line: 480
> StandardContext(ContainerBase).invoke(Request, Response) line: 995
> StandardContext.invoke(Request, Response) line: 2416
> StandardHostValve.invoke(Request, Response, ValveContext) line: 180
> StandardPipeline$StandardPipelineValveContext.invokeNext(Request, Response) line: 643
> ErrorDispatcherValve.invoke(Request, Response, ValveContext) line: 171
> StandardPipeline$StandardPipelineValveContext.invokeNext(Request, Response) line: 641
> ErrorReportValve.invoke(Request, Response, ValveContext) line: 172
> StandardPipeline$StandardPipelineValveContext.invokeNext(Request, Response) line: 641
> AccessLogValve.invoke(Request, Response, ValveContext) line: 577
> StandardPipeline$StandardPipelineValveContext.invokeNext(Request, Response) line: 641
> StandardPipeline.invoke(Request, Response) line: 480
> StandardHost(ContainerBase).invoke(Request, Response) line: 995
> StandardEngineValve.invoke(Request, Response, ValveContext) line: 174
> StandardPipeline$StandardPipelineValveContext.invokeNext(Request, Response) line: 643
> StandardPipeline.invoke(Request, Response) line: 480
> StandardEngine(ContainerBase).invoke(Request, Response) line: 995
> CoyoteAdapter.service(Request, Response) line: 223
> Http11Processor.process(InputStream, OutputStream) line: 601
> Http11Protocol$Http11ConnectionHandler.processConnection(TcpConnection, Object[]) line: 392
> TcpWorkerThread.runIt(Object[]) line: 565
> ThreadPool$ControlRunnable.run() line: 619
> ThreadWithAttributes(Thread).run() line: not available
> Thread [AsyncEventPropagator for org.activemath.xlm.model.XlmModelImpl@1f5438] (Suspended)
> FileChannelImpl.force0(FileDescriptor, boolean) line: not available [native method]
> FileChannelImpl.force(boolean) line: not available
> DirRandomAccessFile4.sync(boolean) line: not available
> LogAccessFile.syncLogAccessFile() line: not available
> LogToFile.flush(long, long) line: not available
> LogToFile.flush(LogInstant) line: not available
> FileLogger.flush(LogInstant) line: not available
> Xact.prepareCommit(int) line: not available
> Xact.commit(int) line: not available
> Xact.commit() line: not available
> RAMTransaction.commit() line: not available
> GenericLanguageConnectionContext.doCommit(boolean, boolean, int, boolean) line: not available
> GenericLanguageConnectionContext.userCommit() line: not available
> TransactionResourceImpl.commit() line: not available
> EmbedConnection30(EmbedConnection).commit() line: not available
> JDBCTransaction.commitAndResetAutoCommit() line: 119
> JDBCTransaction.commit() line: 95
> XlmSession.persistBeliefDescriptor(BeliefDescriptor) line: 395
> LMUpdaterImpl.distributeEvidence(Map) line: 127
> LMUpdaterImpl.processEvent(ActivemathEvent) line: 102
> XlmModelImpl.onActivemathEvent(ActivemathEvent) line: 139
> AsyncEventPropagator.deliverEventsAsync() line: 55
> AsyncEventPropagator.run() line: 34
|
|
Description
|
Recently, I'm again experiencing deadlocks of the XLM. They might be related to Rafaels changes from July 17th.
Here are 2 stacktraces from a deadlock state:
> Thread [Thread-8] (Suspended)
> Object.wait(long) line: not available [native method]
> XlmSession(Object).wait() line: not available
> XlmSession.open(int) line: 199
> XlmSession.getSession(String, int) line: 183
> XlmModelImpl.getSessionReadOnly(String) line: 557
> XlmModelImpl.getBelief(String, String, String) line: 326
> XlmModelImpl.getBelief(String, String) line: 271
> XlmModelImpl.getSummaryBelief(String, String) line: 288
> XlmManager.getSummaryBelief(String, String) line: 450
> XlmAdapter.getKnowledgeValue(String, String) line: 78
> User.getMastery(String) line: 487
> UserBeanFactory.createUserItem(User, Item, Formatter) line: 87
> UserBeanFactory.createUserItem(User, Item) line: 97
> ExerciseController.action() line: 393
> ExerciseController(ControllerBase).perform() line: 711
> ExerciseController(ThrowawayBean2).go() line: 44
> ExerciseController(Throwaway2).go(ControllerContext) line: 48
> ThrowawayControllerAdapter.go(ControllerContext) line: 58
> CommandMultipleViews(CommandBase).go(MaverickContext) line: 44
> Dispatcher.service(HttpServletRequest, HttpServletResponse) line: 198
> Dispatcher(HttpServlet).service(ServletRequest, ServletResponse) line: 853
> ApplicationFilterChain.internalDoFilter(ServletRequest, ServletResponse) line: 247
> ApplicationFilterChain.doFilter(ServletRequest, ServletResponse) line: 193
> StandardWrapperValve.invoke(Request, Response, ValveContext) line: 256
> StandardPipeline$StandardPipelineValveContext.invokeNext(Request, Response) line: 643
> StandardPipeline.invoke(Request, Response) line: 480
> StandardWrapper(ContainerBase).invoke(Request, Response) line: 995
> StandardContextValve.invoke(Request, Response, ValveContext) line: 191
> StandardPipeline$StandardPipelineValveContext.invokeNext(Request, Response) line: 643
> StandardPipeline.invoke(Request, Response) line: 480
> StandardContext(ContainerBase).invoke(Request, Response) line: 995
> StandardContext.invoke(Request, Response) line: 2416
> StandardHostValve.invoke(Request, Response, ValveContext) line: 180
> StandardPipeline$StandardPipelineValveContext.invokeNext(Request, Response) line: 643
> ErrorDispatcherValve.invoke(Request, Response, ValveContext) line: 171
> StandardPipeline$StandardPipelineValveContext.invokeNext(Request, Response) line: 641
> ErrorReportValve.invoke(Request, Response, ValveContext) line: 172
> StandardPipeline$StandardPipelineValveContext.invokeNext(Request, Response) line: 641
> AccessLogValve.invoke(Request, Response, ValveContext) line: 577
> StandardPipeline$StandardPipelineValveContext.invokeNext(Request, Response) line: 641
> StandardPipeline.invoke(Request, Response) line: 480
> StandardHost(ContainerBase).invoke(Request, Response) line: 995
> StandardEngineValve.invoke(Request, Response, ValveContext) line: 174
> StandardPipeline$StandardPipelineValveContext.invokeNext(Request, Response) line: 643
> StandardPipeline.invoke(Request, Response) line: 480
> StandardEngine(ContainerBase).invoke(Request, Response) line: 995
> CoyoteAdapter.service(Request, Response) line: 223
> Http11Processor.process(InputStream, OutputStream) line: 601
> Http11Protocol$Http11ConnectionHandler.processConnection(TcpConnection, Object[]) line: 392
> TcpWorkerThread.runIt(Object[]) line: 565
> ThreadPool$ControlRunnable.run() line: 619
> ThreadWithAttributes(Thread).run() line: not available
> Thread [AsyncEventPropagator for org.activemath.xlm.model.XlmModelImpl@1f5438] (Suspended)
> FileChannelImpl.force0(FileDescriptor, boolean) line: not available [native method]
> FileChannelImpl.force(boolean) line: not available
> DirRandomAccessFile4.sync(boolean) line: not available
> LogAccessFile.syncLogAccessFile() line: not available
> LogToFile.flush(long, long) line: not available
> LogToFile.flush(LogInstant) line: not available
> FileLogger.flush(LogInstant) line: not available
> Xact.prepareCommit(int) line: not available
> Xact.commit(int) line: not available
> Xact.commit() line: not available
> RAMTransaction.commit() line: not available
> GenericLanguageConnectionContext.doCommit(boolean, boolean, int, boolean) line: not available
> GenericLanguageConnectionContext.userCommit() line: not available
> TransactionResourceImpl.commit() line: not available
> EmbedConnection30(EmbedConnection).commit() line: not available
> JDBCTransaction.commitAndResetAutoCommit() line: 119
> JDBCTransaction.commit() line: 95
> XlmSession.persistBeliefDescriptor(BeliefDescriptor) line: 395
> LMUpdaterImpl.distributeEvidence(Map) line: 127
> LMUpdaterImpl.processEvent(ActivemathEvent) line: 102
> XlmModelImpl.onActivemathEvent(ActivemathEvent) line: 139
> AsyncEventPropagator.deliverEventsAsync() line: 55
> AsyncEventPropagator.run() line: 34 |
Show » |
|
What happens is that the second exercise is started right after the first one finishes.
Maybe XLM chokes on handling ExericseFinished and ExerciseStarted concurrently?
Will attach the logfile.