Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Indexer slowness freezes editor (+2) #342

Closed
pq opened this issue Nov 4, 2011 · 7 comments
Closed

Indexer slowness freezes editor (+2) #342

pq opened this issue Nov 4, 2011 · 7 comments
Assignees
Labels
closed-obsolete Closed as the reported issue is no longer relevant type-performance Issue relates to performance or code size

Comments

@pq
Copy link
Member

pq commented Nov 4, 2011

I tried to add the base library (the one that contains the AnimationScheduler) to my project by opening the library, and then using #Library('base'). When I did that, and attempted to get an AutoComplete for AnimationScheduler, the app froze.

////////////////////////////////////////////////////////////////////////////////////
Editor Version: 921
OS: Windows 7
////////////////////////////////////////////////////////////////////////////////////

!SESSION 2011-11-03 15:47:15.510 -----------------------------------------------

eclipse.buildId=unknown
java.version=1.7.0_01
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
Command-line arguments: -os win32 -ws win32 -arch x86_64 -data workspace

!ENTRY org.eclipse.core.resources 4 2 2011-11-03 17:16:15.539
       at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1262)
       at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1052)
       at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077)
       at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062)
       at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1104)
       at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1100)
       at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1509)
       at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:4640)
       at org.eclipse.swt.widgets.Canvas.WM_CHAR(Canvas.java:345)
       at org.eclipse.swt.widgets.Control.windowProc(Control.java:4528)
       at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:341)
       at org.eclipse.swt.widgets.Display.windowProc(Display.java:4972)
       at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
       at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2530)
       at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3752)

       at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696)
       at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660)
       at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494)
       at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674)
       at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
       at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667)
       at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
       at com.google.dart.tools.deploy.DartIDEApplication.start(DartIDEApplication.java:44)
       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:344)
       at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
       at java.lang.reflect.Method.invoke(Unknown Source)
       at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
       at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
       at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
       at org.eclipse.equinox.launcher.Main.main(Main.java:1386)

!ENTRY org.eclipse.core.jobs 2 2 2011-11-03 17:17:04.665
!MESSAGE Job found still running after platform shutdown. Jobs should be canceled by the plugin that scheduled them during shutdown: org.eclipse.ui.internal.decorators.DecorationScheduler$1
!SESSION 2011-11-03 17:55:31.786 -----------------------------------------------

eclipse.buildId=unknown
java.version=1.7.0_01
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
Command-line arguments: -os win32 -ws win32 -arch x86_64 -data workspace

!ENTRY com.google.dart.tools.ui 4 10001 2011-11-03 17:56:58.496
!MESSAGE Internal Error
!STACK 0
java.lang.reflect.InvocationTargetException
       at org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.java:121)
       at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
Caused by: Dart Model Exception: Core Exception [code 0] Too many files representing the library file ${user.home}esktopartorkspaceestest.dart

       at com.google.dart.tools.core.internal.model.DartModelManager.createLibraryProject(DartModelManager.java:1273)
       at com.google.dart.tools.core.internal.model.DartModelManager.openLibrary(DartModelManager.java:971)
       at com.google.dart.tools.core.DartCore.openLibrary(DartCore.java:492)
       at com.google.dart.tools.core.generator.ApplicationGenerator.execute(ApplicationGenerator.java:99)
       at com.google.dart.tools.ui.wizard.NewApplicationWizard.performOperation(NewApplicationWizard.java:99)
       at com.google.dart.tools.ui.wizard.NewApplicationWizard$1.execute(NewApplicationWizard.java:70)

       at org.eclipse.ui.actions.WorkspaceModifyOperation$1.run(WorkspaceModifyOperation.java:106)
       at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2344)
       at org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.java:118)
       ... 1 more
Root exception:
Dart Model Exception: Core Exception [code 0] Too many files representing the library file ${user.home}esktopartorkspaceestest.dart

       at com.google.dart.tools.core.internal.model.DartModelManager.createLibraryProject(DartModelManager.java:1273)
       at com.google.dart.tools.core.internal.model.DartModelManager.openLibrary(DartModelManager.java:971)
       at com.google.dart.tools.core.DartCore.openLibrary(DartCore.java:492)
       at com.google.dart.tools.core.generator.ApplicationGenerator.execute(ApplicationGenerator.java:99)
       at com.google.dart.tools.ui.wizard.NewApplicationWizard.performOperation(NewApplicationWizard.java:99)
       at com.google.dart.tools.ui.wizard.NewApplicationWizard$1.execute(NewApplicationWizard.java:70)

       at org.eclipse.ui.actions.WorkspaceModifyOperation$1.run(WorkspaceModifyOperation.java:106)
       at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2344)
       at org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.java:118)
       at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
Caused by: Dart Model Exception: Dart Model Status [Too many files representing the library file ${user.home}esktopartorkspaceestest.dart]
       at com.google.dart.tools.core.internal.model.DartModelManager.createLibraryProject(DartModelManager.java:1240)
       at com.google.dart.tools.core.internal.model.DartModelManager.openLibrary(DartModelManager.java:971)
       at com.google.dart.tools.core.DartCore.openLibrary(DartCore.java:492)
       at com.google.dart.tools.core.generator.ApplicationGenerator.execute(ApplicationGenerator.java:99)
       at com.google.dart.tools.ui.wizard.NewApplicationWizard.performOperation(NewApplicationWizard.java:99)
       at com.google.dart.tools.ui.wizard.NewApplicationWizard$1.execute(NewApplicationWizard.java:70)

       at org.eclipse.ui.actions.WorkspaceModifyOperation$1.run(WorkspaceModifyOperation.java:106)
       at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2344)
       at org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.java:118)
       at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)

!ENTRY org.eclipse.ui 4 0 2011-11-03 17:56:58.505
!MESSAGE Unhandled event loop exception
!STACK 0
org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.NullPointerException)
       at org.eclipse.swt.SWT.error(SWT.java:4282)
       at org.eclipse.swt.SWT.error(SWT.java:4197)
       at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:138)
       at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4140)
       at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3757)

       at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696)
       at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660)
       at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494)
       at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674)
       at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
       at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667)
       at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
       at com.google.dart.tools.deploy.DartIDEApplication.start(DartIDEApplication.java:44)
       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:344)
       at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
       at java.lang.reflect.Method.invoke(Unknown Source)
       at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
       at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
       at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
       at org.eclipse.equinox.launcher.Main.main(Main.java:1386)
Caused by: java.lang.NullPointerException
       at com.google.dart.tools.ui.wizard.NewApplicationWizard.performPostOperationUIAction(NewApplicationWizard.java:108)
       at com.google.dart.tools.ui.wizard.NewApplicationWizard$2.run(NewApplicationWizard.java:82)
       at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
       at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)
       ... 23 more

@pq
Copy link
Member Author

pq commented Nov 4, 2011

(Submitted via user feedback.)

@stevemessick
Copy link
Contributor

Removed the owner.

@keertip
Copy link
Contributor

keertip commented Nov 4, 2011

Could not reproduce the problem.

Not sure whether user meant added library by using #import. Anyways tried to do add library('base') and also #import, in both cases autocomplete did not freeze the editor.

@stevemessick
Copy link
Contributor

This has the same root problem as issue #196. If you try to do something before the indexer has finished you may freeze the UI thread. We might be able to work around this particular problem by changing the way SearchEngine works. If the indexer isn't done it could return an empty list. You'd get no type completion proposals but at least it wouldn't look like your app is frozen.

In this case, it takes about 5 minutes (Mac Pro desktop machine) for the indexer to finish with base. That's enough time for a lot of things to go wrong. We can expect to see more bug reports from users blaming all sorts of things for their app freezing, if they try to work with base.

Pre-compiled indices would not help in this case since he's opening the library in the editor.


Added Usability, Performance labels.
Changed the title to: "Indexer slowness freezes editor".

@danrubel
Copy link

danrubel commented Dec 8, 2011

[user feedback]
During the index phase of the development, if you do something that causes code completion to occur, it stalls the UI

////////////////////////////////////////////////////////////////////////////////////
Editor Version: 2224.hackathon
OS: Mac OS X
////////////////////////////////////////////////////////////////////////////////////

log unavailable: /Users/lukechurch/Downloads/dart/workspace/.metadata/.log (No such file or directory)


Changed the title to: "Indexer slowness freezes editor (+2)".

@bwilkerson
Copy link
Member

Set owner to @bwilkerson.
Added Accepted label.

@bwilkerson
Copy link
Member

The indexer has been replaced. Please re-open if there is still a problem.


Added AssumedStale label.

This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
closed-obsolete Closed as the reported issue is no longer relevant type-performance Issue relates to performance or code size
Projects
None yet
Development

No branches or pull requests

5 participants