Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 366831

Summary: Error with massif charting on Juno
Product: [Tools] Linux Tools Reporter: Andrew Overholt <overholt>
Component: ValgrindAssignee: Elliott Baron <ebaron>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: rgrunber
Version: unspecified   
Target Milestone: 1.0   
Hardware: PC   
OS: Linux   
Whiteboard:

Description Andrew Overholt CLA 2011-12-15 11:48:10 EST
Build id: 20111215-0110
EPP package: http://build.eclipse.org/technology/epp/epp_build/juno/download/20111215-0115/20111215-0115_eclipse-linuxtools-juno-M4-linux.gtk.x86_64.tar.gz

Fedora 16, x86_64

While profiling with massif seems to work just fine, I got an "Internal Error" dialogue and the following trace in my workspace log.

!ENTRY org.eclipse.e4.ui.workbench 4 0 2011-12-15 11:45:51.830
!MESSAGE Internal Error
!STACK 0
org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.IllegalArgumentException: Group not found: toolbarLocal)
        at org.eclipse.swt.SWT.error(SWT.java:4300)
        at org.eclipse.swt.SWT.error(SWT.java:4215)
        at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:138)
        at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3563)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3212)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:977)
        at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:893)
        at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:91)
        at org.eclipse.ui.internal.Workbench$3.run(Workbench.java:565)
        at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
        at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:520)
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
        at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124)
        at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:352)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:624)
        at org.eclipse.equinox.launcher.Main.basicRun(Main.java:579)
        at org.eclipse.equinox.launcher.Main.run(Main.java:1433)
        at org.eclipse.equinox.launcher.Main.main(Main.java:1409)
Caused by: java.lang.IllegalArgumentException: Group not found: toolbarLocal
        at org.eclipse.jface.action.ContributionManager.addToGroup(ContributionManager.java:131)
        at org.eclipse.jface.action.ContributionManager.appendToGroup(ContributionManager.java:145)
        at org.eclipse.linuxtools.internal.valgrind.ui.ValgrindViewPart.createDynamicContent(ValgrindViewPart.java:111)
        at org.eclipse.linuxtools.internal.valgrind.ui.ValgrindUIPlugin$1.run(ValgrindUIPlugin.java:96)
        at org.eclipse.ui.internal.UILockListener.doPendingWork(UILockListener.java:164)
        at org.eclipse.ui.internal.UISynchronizer$3.run(UISynchronizer.java:158)
        at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
        at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)
        ... 24 more
Comment 1 Andrew Overholt CLA 2011-12-15 11:48:42 EST
The valgrind view also shows that "Valgrind found no problems to report" yet there's a chart :)
Comment 2 Elliott Baron CLA 2011-12-20 01:41:07 EST
I can reproduce this problem by closing the Valgrind view and then launching a Valgrind run. This issue seems to appear from the underlying toolbar widget being disposed when creating the Valgrind view. The current implementation for creating a view seems to call createPartControl, then disposes the toolbar. The toolbar then gets created again later when actually showing the view. This is a problem for us since we create the toolbar's contents programmatically depending on which tool the user selects.

To workaround this issue I changed the Valgrind view creation code to show the view before creating the toolbar actions. Let me know if this fixes the problem for you. This may also be worth bringing up to the e4/Platform UI team.
Comment 3 Andrew Overholt CLA 2011-12-20 09:51:00 EST
Thanks for the investigation, Elliott.  I'll verify the fix ASAP.

As you can see in the Depends list, I filed bug 367194 to get the Platform UI team's input.