-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
DeltaProcessor getting stuck inside of itself when closing the Frog.dart defining compilation unit #665
Comments
This comment was originally written by drfibonacci@google.com Added Triaged label. |
I added a breakpoint in the code at the point at which the projects are being re-created (stack trace included below), and I believe the problem is in the RootArtifactProvider rather than in the delta processor. I'll coordinate with Dan to solve the issue. Daemon Thread [Thread-1](Suspended %28breakpoint at line 1224 in DartModelManager%29) cc @jwren. |
I don't have time to test this tonight, but it should be fixed by http://codereview.chromium.org/8893013/. If you have time to test it, let me know what you discovered. Otherwise re-assign the issue to me and I'll look at it on Monday. Set owner to @jwren. |
I just verified that this bug has been fixed with this CL. cc @bwilkerson. |
…ions) https://dart.googlesource.com/protobuf/+log/b149f801cf7a..408f69b98b2d 2022-06-08 omersa@google.com Update documentation according to Effective Dart documentation guide (#664) 2022-06-02 omersa@google.com Move closures in proto3 deserializer to top-level (#668) 2022-06-02 omersa@google.com Refactor protobuf bench runners, update README: (#665) 2022-06-02 omersa@google.com Benchmarks: add proto3 ser/deser benchs, move common code to common.dart (#667) 2022-06-02 omersa@google.com Remove makeLongInt helper (#666) 2022-05-31 lorenvs@outlook.com Use `-O4` when compiling benchmarks. (#552) 2022-05-25 omersa@google.com Remove invalid check in `_FieldSet.writeFieldValue` (#660) 2022-05-20 devoncarew@gmail.com Refactor file locations, update READMEs (#657) 2022-05-19 omersa@google.com Remove trailing whitespace in protoc_plugin/README If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/dart-protobuf-dart-sdk Please CC dart-ecosystem-gardener@grotations.appspotmail.com on the revert to ensure that a human is aware of the problem. To file a bug in Dart Protobuf Support: https://github.com/dart-lang/protobuf/issues To file a bug in Dart SDK: https://github.com/dart-lang/sdk/issues To report a problem with the AutoRoller itself, please file a bug: https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md Tbr: dart-ecosystem-gardener@grotations.appspotmail.com Change-Id: I0f1aa66ee6fe167f37443957234f4d0140828416 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/247467 Reviewed-by: Devon Carew <devoncarew@google.com> Commit-Queue: Devon Carew <devoncarew@google.com>
DeltaProcessor bug.
To reproduce, open frog.dart in a clean runtime environment (version 1939) and then close the library. The DeltaProcessor, stunk inside of a DeltaProcessor stack trace from below will be triggered.
The root of the issue comes down to this part of the stack trace:
at com.google.dart.tools.core.internal.model.delta.DeltaProcessor.updateCurrentDelta(DeltaProcessor.java:1460)
The DP thinks that the contents of the elements.dart is being modified. By changing the flags, or being smarter than the flags from Eclipse (knowing that a change has not occurred), will fix this issue.
!ENTRY com.google.dart.tools.core 1 0 2011-12-01 10:26:21.541
!MESSAGE INFO: Failed to open imported library ../tree/tree.dart in file:/Users/brianwilkerson/src/dart-public/dart/frog/leg/elements/elements.dart
!STACK 1
Dart Model Exception: Core Exception [code 380] The resource tree is locked for modifications.
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.internal.model.DartLibraryImpl$1.visitImportDirective(DartLibraryImpl.java:578)
at com.google.dart.tools.core.internal.model.DartLibraryImpl$1.visitImportDirective(DartLibraryImpl.java:1)
at com.google.dart.compiler.ast.DartImportDirective.accept(DartImportDirective.java:49)
at com.google.dart.compiler.ast.DartNodeTraverser.visit(DartNodeTraverser.java:413)
at com.google.dart.compiler.ast.DartUnit.visitChildren(DartUnit.java:97)
at com.google.dart.tools.core.dom.visitor.SafeDartNodeTraverser.visitChildren(SafeDartNodeTraverser.java:51)
at com.google.dart.tools.core.dom.visitor.SafeDartNodeTraverser.visitNode(SafeDartNodeTraverser.java:39)
at com.google.dart.compiler.ast.DartNodeTraverser.visitUnit(DartNodeTraverser.java:391)
at com.google.dart.compiler.ast.DartUnit.accept(DartUnit.java:107)
at com.google.dart.tools.core.internal.model.DartLibraryImpl.buildStructure(DartLibraryImpl.java:540)
at com.google.dart.tools.core.internal.model.OpenableElementImpl.generateInfos(OpenableElementImpl.java:477)
at com.google.dart.tools.core.internal.model.DartElementImpl.openWhenClosed(DartElementImpl.java:520)
at com.google.dart.tools.core.internal.model.DartElementImpl.getElementInfo(DartElementImpl.java:298)
at com.google.dart.tools.core.internal.model.DartElementImpl.getElementInfo(DartElementImpl.java:283)
at com.google.dart.tools.core.internal.model.DartElementImpl.getChildren(DartElementImpl.java:237)
at com.google.dart.tools.core.internal.model.DartModelManager.create(DartModelManager.java:427)
at com.google.dart.tools.core.internal.model.DartModelManager.create(DartModelManager.java:493)
at com.google.dart.tools.core.DartCore.create(DartCore.java:215)
at com.google.dart.tools.core.internal.model.delta.DeltaProcessor.createElement(DeltaProcessor.java:696)
at com.google.dart.tools.core.internal.model.delta.DeltaProcessor.updateCurrentDelta(DeltaProcessor.java:1460)
at com.google.dart.tools.core.internal.model.delta.DeltaProcessor.traverseDelta(DeltaProcessor.java:1365)
at com.google.dart.tools.core.internal.model.delta.DeltaProcessor.traverseDelta(DeltaProcessor.java:1387)
at com.google.dart.tools.core.internal.model.delta.DeltaProcessor.processResourceDelta(DeltaProcessor.java:1298)
at com.google.dart.tools.core.internal.model.delta.DeltaProcessor.resourceChanged(DeltaProcessor.java:336)
at com.google.dart.tools.core.internal.model.delta.DeltaProcessingState.resourceChanged(DeltaProcessingState.java:317)
at org.eclipse.core.internal.events.NotificationManager$1.run(NotificationManager.java:291)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:285)
at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:149)
at org.eclipse.core.internal.resources.Workspace.broadcastPostChange(Workspace.java:395)
at org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java:1530)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2353)
at com.google.dart.tools.core.DartCore.run(DartCore.java:604)
at com.google.dart.tools.ui.internal.actions.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:100)
at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:464)
at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:372)
at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:507)
at org.eclipse.ui.internal.progress.ProgressMonitorJobsDialog.run(ProgressMonitorJobsDialog.java:275)
at org.eclipse.ui.internal.progress.ProgressManager.run(ProgressManager.java:1162)
at com.google.dart.tools.ui.actions.CloseLibraryAction.run(CloseLibraryAction.java:79)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)
at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)
at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4125)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1457)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1480)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1465)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1270)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3971)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3610)
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(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
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: org.eclipse.core.internal.resources.ResourceException: The resource tree is locked for modifications.
at org.eclipse.core.internal.resources.WorkManager.checkIn(WorkManager.java:116)
at org.eclipse.core.internal.resources.Workspace.prepareOperation(Workspace.java:2282)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2339)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2326)
at com.google.dart.tools.core.generator.DartProjectGenerator.execute(DartProjectGenerator.java:48)
at com.google.dart.tools.core.internal.model.DartModelManager.createProjectForLibrary(DartModelManager.java:1289)
at com.google.dart.tools.core.internal.model.DartModelManager.createLibraryProject(DartModelManager.java:1224)
at com.google.dart.tools.core.internal.model.DartModelManager.openLibrary(DartModelManager.java:971)
at com.google.dart.tools.core.internal.model.DartLibraryImpl$1.visitImportDirective(DartLibraryImpl.java:578)
at com.google.dart.tools.core.internal.model.DartLibraryImpl$1.visitImportDirective(DartLibraryImpl.java:1)
at com.google.dart.compiler.ast.DartImportDirective.accept(DartImportDirective.java:49)
at com.google.dart.compiler.ast.DartNodeTraverser.visit(DartNodeTraverser.java:413)
at com.google.dart.compiler.ast.DartUnit.visitChildren(DartUnit.java:97)
at com.google.dart.tools.core.dom.visitor.SafeDartNodeTraverser.visitChildren(SafeDartNodeTraverser.java:51)
at com.google.dart.tools.core.dom.visitor.SafeDartNodeTraverser.visitNode(SafeDartNodeTraverser.java:39)
at com.google.dart.compiler.ast.DartNodeTraverser.visitUnit(DartNodeTraverser.java:391)
at com.google.dart.compiler.ast.DartUnit.accept(DartUnit.java:107)
at com.google.dart.tools.core.internal.model.DartLibraryImpl.buildStructure(DartLibraryImpl.java:540)
at com.google.dart.tools.core.internal.model.OpenableElementImpl.generateInfos(OpenableElementImpl.java:477)
at com.google.dart.tools.core.internal.model.DartElementImpl.openWhenClosed(DartElementImpl.java:520)
at com.google.dart.tools.core.internal.model.DartElementImpl.getElementInfo(DartElementImpl.java:298)
at com.google.dart.tools.core.internal.model.DartElementImpl.getElementInfo(DartElementImpl.java:283)
at com.google.dart.tools.core.internal.model.DartElementImpl.getChildren(DartElementImpl.java:237)
at com.google.dart.tools.core.internal.model.DartModelManager.create(DartModelManager.java:427)
at com.google.dart.tools.core.internal.model.DartModelManager.create(DartModelManager.java:493)
at com.google.dart.tools.core.DartCore.create(DartCore.java:215)
at com.google.dart.tools.core.internal.model.delta.DeltaProcessor.createElement(DeltaProcessor.java:696)
at com.google.dart.tools.core.internal.model.delta.DeltaProcessor.updateCurrentDelta(DeltaProcessor.java:1460)
at com.google.dart.tools.core.internal.model.delta.DeltaProcessor.traverseDelta(DeltaProcessor.java:1365)
at com.google.dart.tools.core.internal.model.delta.DeltaProcessor.traverseDelta(DeltaProcessor.java:1387)
at com.google.dart.tools.core.internal.model.delta.DeltaProcessor.processResourceDelta(DeltaProcessor.java:1298)
at com.google.dart.tools.core.internal.model.delta.DeltaProcessor.resourceChanged(DeltaProcessor.java:336)
at com.google.dart.tools.core.internal.model.delta.DeltaProcessingState.resourceChanged(DeltaProcessingState.java:317)
at org.eclipse.core.internal.events.NotificationManager$1.run(NotificationManager.java:291)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:285)
at org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:149)
at org.eclipse.core.internal.resources.Workspace.broadcastPostChange(Workspace.java:395)
at org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java:1530)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2353)
at com.google.dart.tools.core.DartCore.run(DartCore.java:604)
at com.google.dart.tools.ui.internal.actions.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:100)
at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:464)
at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:372)
at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:507)
at org.eclipse.ui.internal.progress.ProgressMonitorJobsDialog.run(ProgressMonitorJobsDialog.java:275)
at org.eclipse.ui.internal.progress.ProgressManager.run(ProgressManager.java:1162)
at com.google.dart.tools.ui.actions.CloseLibraryAction.run(CloseLibraryAction.java:79)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)
at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)
at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4125)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1457)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1480)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1465)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1270)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3971)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3610)
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(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
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)
!SUBENTRY 1 org.eclipse.core.resources 4 380 2011-12-01 10:26:21.543
!MESSAGE The resource tree is locked for modifications.
The text was updated successfully, but these errors were encountered: