-
Notifications
You must be signed in to change notification settings - Fork 325
Closed
Labels
Description
Describe the bug
NPE when using the Ruby view of the heap.
To Reproduce
Connected to a TruffleRuby process. Take a heap dump. Try to view as Ruby.
Expected behavior
Being able to see the Ruby heap.
VisualVM log
java.lang.NullPointerException
at org.graalvm.visualvm.heapviewer.truffle.dynamicobject.DynamicObjectDetailsProvider.getInstanceId(DynamicObjectDetailsProvider.java:111)
at org.graalvm.visualvm.heapviewer.truffle.dynamicobject.DynamicObjectDetailsProvider.getJSUdefined(DynamicObjectDetailsProvider.java:100)
at org.graalvm.visualvm.heapviewer.truffle.dynamicobject.DynamicObjectDetailsProvider.getDetailsString(DynamicObjectDetailsProvider.java:59)
at org.graalvm.visualvm.lib.profiler.heapwalk.details.api.DetailsSupport.getDetailsString(DetailsSupport.java:70)
at org.graalvm.visualvm.lib.profiler.heapwalk.details.spi.DetailsUtils.getInstanceString(DetailsUtils.java:204)
at org.graalvm.visualvm.lib.profiler.heapwalk.details.spi.DetailsUtils.getInstanceFieldString(DetailsUtils.java:200)
at org.graalvm.visualvm.heapviewer.truffle.details.SourceDetailsProvider.getDetailsString(SourceDetailsProvider.java:91)
at org.graalvm.visualvm.lib.profiler.heapwalk.details.api.DetailsSupport.getDetailsString(DetailsSupport.java:70)
at org.graalvm.visualvm.lib.profiler.heapwalk.details.spi.DetailsUtils.getInstanceString(DetailsUtils.java:204)
at org.graalvm.visualvm.heapviewer.truffle.dynamicobject.DynamicObject$Property.<init>(DynamicObject.java:428)
at org.graalvm.visualvm.heapviewer.truffle.dynamicobject.DynamicObject$Property.<init>(DynamicObject.java:418)
at org.graalvm.visualvm.heapviewer.truffle.dynamicobject.DynamicObject.initFields(DynamicObject.java:226)
at org.graalvm.visualvm.heapviewer.truffle.dynamicobject.DynamicObject.getFieldValues(DynamicObject.java:123)
at org.graalvm.visualvm.heapviewer.truffle.dynamicobject.DynamicObject.getFieldValue(DynamicObject.java:128)
at org.graalvm.visualvm.heapviewer.truffle.lang.ruby.RubyDetailsProvider.getDetailsString(RubyDetailsProvider.java:146)
at org.graalvm.visualvm.lib.profiler.heapwalk.details.api.DetailsSupport.getDetailsString(DetailsSupport.java:70)
at org.graalvm.visualvm.heapviewer.truffle.dynamicobject.DynamicObjectDetailsProvider.getDetailsString(DynamicObjectDetailsProvider.java:75)
at org.graalvm.visualvm.lib.profiler.heapwalk.details.api.DetailsSupport.getDetailsString(DetailsSupport.java:70)
at org.graalvm.visualvm.heapviewer.truffle.dynamicobject.DynamicObject.computeType(DynamicObject.java:172)
at org.graalvm.visualvm.heapviewer.truffle.dynamicobject.DynamicObject.getType(DynamicObject.java:160)
at org.graalvm.visualvm.heapviewer.truffle.TruffleType$TypesComputer.getTypeName(TruffleType.java:179)
at org.graalvm.visualvm.heapviewer.truffle.TruffleType$TypesComputer.addObject(TruffleType.java:157)
at org.graalvm.visualvm.heapviewer.truffle.TruffleLanguageHeapFragment.computeStatistics(TruffleLanguageHeapFragment.java:165)
at org.graalvm.visualvm.heapviewer.truffle.TruffleLanguageHeapFragment.checkInitialized(TruffleLanguageHeapFragment.java:123)
at org.graalvm.visualvm.heapviewer.truffle.TruffleLanguageHeapFragment.getHeapSize(TruffleLanguageHeapFragment.java:78)
at org.graalvm.visualvm.heapviewer.truffle.ui.TruffleSummaryView$OverviewSection.computeHeapData(TruffleSummaryView.java:248)
at org.graalvm.visualvm.heapviewer.truffle.ui.TruffleSummaryView$OverviewSection.computeData(TruffleSummaryView.java:234)
at org.graalvm.visualvm.heapviewer.truffle.ui.TruffleSummaryView$1$1.run(TruffleSummaryView.java:124)
at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:1418)
at org.netbeans.modules.openide.util.GlobalLookup.execute(GlobalLookup.java:45)
at org.openide.util.lookup.Lookups.executeWith(Lookups.java:278)
at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2033)
Caused: org.openide.util.RequestProcessor$SlowItem: task failed due to
at org.openide.util.RequestProcessor.post(RequestProcessor.java:395)
at org.graalvm.visualvm.heapviewer.truffle.ui.TruffleSummaryView$1.uiCreated(TruffleSummaryView.java:120)
at org.graalvm.visualvm.heapviewer.ui.SummaryView.initUI(SummaryView.java:115)
at org.graalvm.visualvm.heapviewer.ui.SummaryView.getComponent(SummaryView.java:83)
at org.graalvm.visualvm.heapviewer.truffle.ui.TruffleSummaryView.getComponent(TruffleSummaryView.java:148)
at org.graalvm.visualvm.heapviewer.ui.HeapViewerComponent$MainView.selectFeature(HeapViewerComponent.java:366)
at org.graalvm.visualvm.heapviewer.ui.HeapViewerComponent$MainView$2.fireItemStateChanged(HeapViewerComponent.java:498)
at javax.swing.AbstractButton$Handler.itemStateChanged(AbstractButton.java:2355)
at javax.swing.DefaultButtonModel.fireItemStateChanged(DefaultButtonModel.java:455)
at javax.swing.JToggleButton$ToggleButtonModel.setSelected(JToggleButton.java:272)
at javax.swing.ButtonGroup.setSelected(ButtonGroup.java:165)
at javax.swing.JToggleButton$ToggleButtonModel.setSelected(JToggleButton.java:254)
at javax.swing.AbstractButton.setSelected(AbstractButton.java:348)
at org.graalvm.visualvm.lib.ui.swing.StayOpenPopupMenu.performAction(StayOpenPopupMenu.java:132)
at org.graalvm.visualvm.lib.ui.swing.StayOpenPopupMenu.performAction(StayOpenPopupMenu.java:143)
at org.graalvm.visualvm.lib.ui.swing.StayOpenPopupMenu.access$000(StayOpenPopupMenu.java:71)
at org.graalvm.visualvm.lib.ui.swing.StayOpenPopupMenu$RadioButtonItem.processMouseEvent(StayOpenPopupMenu.java:257)
at java.awt.Component.processEvent(Component.java:6304)
at java.awt.Container.processEvent(Container.java:2239)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2297)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
at java.awt.Container.dispatchEventImpl(Container.java:2283)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
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:74)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
at java.awt.EventQueue$4.run(EventQueue.java:733)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:136)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
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)
[catch] at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Screenshots
n/a
Desktop (please complete the following information):
- OS: MacOS
- JDK version 1.8.0_222; OpenJDK 64-Bit Server VM 25.222-b10; AdoptOpenJDK
- Version 1.8
Additional context
n/a
CC @eregon.