Deadlock in Webview 10.5 - WebView is not able to display any metric data

Document ID : KB000008984
Last Modified Date : 14/02/2018
Show Technical Document Details
Issue:

-WebView is not able to display any metric data

-There are no exceptions in the log

-The below deadlock condition is found in the IntroscopeWebviewConsole.log after taken a threadump of the webview process the problem occurs:

Found one Java-level deadlock:

=============================

"Thread-1398553":
waiting to lock monitor 0x00007f40d0054758 (object 0x00000006ac7d4368, a com.ca.apm.introscope.workstation.webapp.server.models.TypeViewerModel),
  which is held by "Thread-1391438"
"Thread-1391438":
  waiting to lock monitor 0x00007f416c00d628 (object 0x00000006ad905b90, a java.util.ArrayList),
  which is held by "Timer-9633"
"Timer-9633":
  waiting to lock monitor 0x00007f41d002fcf8 (object 0x00000006ad905b30, a java.lang.Object),
  which is held by "AWT-EventQueue-0"
"AWT-EventQueue-0":
  waiting to lock monitor 0x00007f416c00d628 (object 0x00000006ad905b90, a java.util.ArrayList),
which is held by "Timer-9633"

Java stack information for the threads listed above:

===================================================

"Thread-1398553":
at com.ca.apm.introscope.workstation.webapp.server.models.TypeViewerModel.receiveMessage(TypeViewerModel.java)
- waiting to lock <0x00000006ac7d4368> (a com.ca.apm.introscope.workstation.webapp.server.models.TypeViewerModel)
at com.ca.apm.introscope.workstation.webapp.server.models.ModelManager$ModelRequestThread$1.run(ModelManager.java:410)
at java.lang.Thread.run(Thread.java:745)
"Thread-1391438":
at com.ca.apm.introscope.workstation.webapp.server.dataviewermodels.LiveBarChartViewerModel.getViewerDataBean(LiveBarChartViewerModel.java:74)
- waiting to lock <0x00000006ad905b90> (a java.util.ArrayList)
at com.ca.apm.introscope.workstation.webapp.server.typeviewers.ThornhillPreviewDrawingTypeViewerServer.getData(ThornhillPreviewDrawingTypeViewerServer.java:234)
- locked <0x00000006ad9880d0> (a com.ca.apm.introscope.workstation.webapp.server.typeviewers.ThornhillPreviewDrawingTypeViewerServer)
at com.ca.apm.introscope.workstation.webapp.server.models.TypeViewerModel.getViewerData(TypeViewerModel.java:169)
at com.ca.apm.introscope.workstation.webapp.server.models.TypeViewerModel.receiveMessage(TypeViewerModel.java:66)
- locked <0x00000006ac7d4368> (a com.ca.apm.introscope.workstation.webapp.server.models.TypeViewerModel)
at com.ca.apm.introscope.workstation.webapp.server.models.ModelManager$ModelRequestThread$1.run(ModelManager.java:410)
at java.lang.Thread.run(Thread.java:745)
"Timer-9633":
at com.ca.apm.introscope.workstation.webapp.server.dataviewermodels.ALiveMetricViewerModel.getSubscriptionCount(ALiveMetricViewerModel.java:277)
- waiting to lock <0x00000006ad905b30> (a java.lang.Object)
at com.ca.apm.introscope.workstation.webapp.server.dataviewermodels.ALiveWidgetMetricViewerModel.resetWidgetModels(ALiveWidgetMetricViewerModel.java:235)
- locked <0x00000006ad905b90> (a java.util.ArrayList)
at com.ca.apm.introscope.workstation.webapp.server.dataviewermodels.ALiveWidgetMetricViewerModel.doEntireSetChanged(ALiveWidgetMetricViewerModel.java:77)
- locked <0x00000006ad905b90> (a java.util.ArrayList)
at com.ca.apm.introscope.workstation.webapp.server.dataviewermodels.ALiveMetricViewerModel$3.run(ALiveMetricViewerModel.java:506)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)
"AWT-EventQueue-0":
at com.ca.apm.introscope.workstation.webapp.server.dataviewermodels.ALiveWidgetMetricViewerModel.doEntireSetChanged(ALiveWidgetMetricViewerModel.java:74)
- waiting to lock <0x00000006ad905b90> (a java.util.ArrayList)
at com.ca.apm.introscope.workstation.webapp.server.dataviewermodels.ALiveMetricViewerModel.entireSetChanged(ALiveMetricViewerModel.java:525)at com.ca.apm.introscope.workstation.webapp.server.dataviewermodels.ALiveMetricViewerModel.access$2(ALiveMetricViewerModel.java:478)at com.ca.apm.introscope.workstation.webapp.server.dataviewermodels.ALiveMetricViewerModel$SubscriptionSetListener.ISubscriptionSetDataModelListener_entireSetChanged(ALiveMetricViewerModel.java:716)
- locked <0x00000006ad905b30> (a java.lang.Object)
at com.wily.introscope.util.subscription.ASubscriptionSetDataModel.fireEntireSetChanged(ASubscriptionSetDataModel.java:70)
at com.wily.introscope.console.thornhill.ui.SwingSubscriptionSetDataModelAdapter.handleEntireSetChanged(SwingSubscriptionSetDataModelAdapter.java:150)
at com.wily.introscope.console.thornhill.ui.SwingSubscriptionSetDataModelAdapter.access$0(SwingSubscriptionSetDataModelAdapter.java:145)
at com.wily.introscope.console.thornhill.ui.SwingSubscriptionSetDataModelAdapter$JournaledDataModelEventListener$1.run(SwingSubscriptionSetDataModelAdapter.java:265)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Found 1 deadlock.

Environment:
Any 10.5.x release
Cause:

The problem is related to webview defect # DE327098, a bug in ALiveWidgetMetricViewerModel

 

Resolution:

Solution:

1) Upgrade to APM 10.7

2) If you are using APM 10.5.1, apply hotfix 10.5.1#53

Contact CA Support to obtain a copy of a hotfix package or in case you need a hotfix for a different APM release

 

Workaround:

Restart the Introscope Webview process