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

Regression : Flutter Gallery fails to run with the latest Dart roll #32484

Closed
a-siva opened this issue Mar 10, 2018 · 5 comments
Closed

Regression : Flutter Gallery fails to run with the latest Dart roll #32484

a-siva opened this issue Mar 10, 2018 · 5 comments
Assignees
Labels
customer-flutter P0 A serious issue requiring immediate resolution
Milestone

Comments

@a-siva
Copy link
Contributor

a-siva commented Mar 10, 2018

This is the Dart side issue for flutter/flutter#15368

This is a regression that is introduced when the latest Dart is rolled into flutter, resulting in a crash when flutter gallery is run

`The following NoSuchMethodError was thrown building
_OverlayEntry-[LabeledGlobalKey<_OverlayEntryState>#0e6f9](state: _OverlayEntryState#85633):
Class 'RenderStack' has no instance setter '_firstChild'.
Receiver: Instance of 'RenderStack'
Tried calling: _firstChildInstance of 'RenderIgnorePointer'

When the exception was thrown, this was the stack:
#0      Object.noSuchMethod (dart:core/object_patch.dart:46:5)
#1      _RenderStack&RenderBox&ContainerRenderObjectMixin._insertIntoChildList (package:flutter/src/rendering/object.dart:2727:7)
#2      _RenderStack&RenderBox&ContainerRenderObjectMixin.insert (package:flutter/src/rendering/object.dart:2766:5)
#3      MultiChildRenderObjectElement.insertChildRenderObject (package:flutter/src/widgets/framework.dart:4697:18)
#4      RenderObjectElement.attachRenderObject (package:flutter/src/widgets/framework.dart:4492:35)
#5      RenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4262:5)
#6      SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4632:11)
#7      Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#8      Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#9      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#10     Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#11     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3605:5)
#12     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3752:11)
#13     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3600:5)
#14     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#15     MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4738:32)
#16     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#17     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#18     _TheatreElement.mount (package:flutter/src/widgets/overlay.dart:493:16)
#19     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#20     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#21     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#22     Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#23     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3605:5)
#24     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3752:11)
#25     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3600:5)
#26     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#27     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#28     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#29     Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#30     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3605:5)
#31     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3600:5)
#32     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#33     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#34     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4633:14)
#35     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#36     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#37     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#38     Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#39     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3605:5)
#40     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3752:11)
#41     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3600:5)
#42     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#43     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#44     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4633:14)
#45     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#46     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#47     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4633:14)
#48     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#49     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#50     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#51     Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#52     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3605:5)
#53     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3752:11)
#54     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3600:5)
#55     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#56     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#57     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#58     Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#59     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3605:5)
#60     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3600:5)
#61     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#62     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#63     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#64     Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#65     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3605:5)
#66     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3600:5)
#67     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#68     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#69     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#70     Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#71     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3605:5)
#72     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3600:5)
#73     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#74     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#75     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#76     Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#77     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3605:5)
#78     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3600:5)
#79     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#80     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#81     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#82     Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#83     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3605:5)
#84     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3600:5)
#85     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#86     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#87     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:4633:14)
#88     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#89     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#90     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#91     Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#92     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3605:5)
#93     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3600:5)
#94     Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#95     Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#96     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#97     Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#98     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3605:5)
#99     ComponentElement.mount (package:flutter/src/widgets/framework.dart:3600:5)
#100    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#101    Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#102    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#103    Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#104    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3605:5)
#105    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3600:5)
#106    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#107    Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#108    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#109    Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#110    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3605:5)
#111    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3600:5)
#112    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#113    Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#114    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#115    Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#116    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3605:5)
#117    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3600:5)
#118    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#119    Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#120    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#121    Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#122    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3605:5)
#123    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3752:11)
#124    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3600:5)
#125    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#126    Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#127    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#128    Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#129    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3605:5)
#130    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3600:5)
#131    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#132    Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#133    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
#134    Element.rebuild (package:flutter/src/widgets/framework.dart:3478:5)
#135    ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:3605:5)
#136    StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3752:11)
#137    ComponentElement.mount (package:flutter/src/widgets/framework.dart:3600:5)
#138    Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#139    Element.updateChild (package:flutter/src/widgets/framework.dart:2693:12)
#140    ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:3636:16)
[VERBOSE-2:dart_error.cc(16)] Unhandled exception:
'package:flutter/src/widgets/framework.dart': Failed assertion: line 2209 pos 20: '_debugCurrentBuildTarget == context': is not true.
#0      _AssertionError._doThrowNew (dart:core/errors_patch.dart)
#1      _AssertionError._throwNew (dart:core/errors_patch.dart:33:5)
#2      BuildOwner.buildScope.<anonymous closure> (package:flutter/src/widgets/framework.dart)
#3      BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2213:12)
#4      RenderObjectToWidgetAdapter.attachToRenderTree (package:flutter/src/widgets/binding.dart:768:13)
#5      _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&RendererBinding&WidgetsBinding.attachRootWidget (package:flutter/src/widgets/binding.dart:657:7)
#6      runApp (package:flutter/src/widgets/binding.dart:699:7)
#7      main (file:///Users/aam`
@a-siva a-siva added P0 A serious issue requiring immediate resolution customer-flutter labels Mar 10, 2018
@a-siva a-siva added this to the I/O Beta 2 milestone Mar 10, 2018
@a-siva
Copy link
Contributor Author

a-siva commented Mar 10, 2018

The regression was probably introduced in https://dart-review.googlesource.com/45021, is just reverting this a possibility

@peter-ahe-google
Copy link
Contributor

Unfortunately, reverting https://dart-review.googlesource.com/45021 isn't a good option as that would cause other problems.

@jensjoha
Copy link
Contributor

Interesting dump from the dill file:

  abstract class _RenderStack&RenderBox&ContainerRenderObjectMixin extends box3::RenderBox implements obj::ContainerRenderObjectMixin<box3::RenderBox, sta::StackParentData> {
    [...]
    generic-covariant-impl generic-covariant-interface field box3::RenderBox _firstChild = null /* from file:///usr/local/google/home/jensj/code/nobackup/flutter/flutter/packages/flutter/lib/src/rendering/object.dart */;
    [...]
    method /* from file:///usr/local/google/home/jensj/code/nobackup/flutter/flutter/packages/flutter/lib/src/rendering/object.dart */ _insertIntoChildList(generic-covariant-impl box3::RenderBox child, {generic-covariant-impl box3::RenderBox after = null}) → void {
      [...]
      if(after.{core2::Object::==}(null)) {
        childParentData.{obj::ContainerParentDataMixin::nextSibling} = this.{obj::ContainerRenderObjectMixin::_firstChild};
        if(!this.{obj::ContainerRenderObjectMixin::_firstChild}.{core2::Object::==}(null)) {
          final sta::StackParentData _firstChildParentData = this.{obj::ContainerRenderObjectMixin::_firstChild}.{obj::RenderObject::parentData} as{TypeError} sta::StackParentData;
          _firstChildParentData.{obj::ContainerParentDataMixin::previousSibling} = child;
        }
        this.{obj::ContainerRenderObjectMixin::_firstChild} = child;
        this.{obj::ContainerRenderObjectMixin::_lastChild}.{core2::Object::==}(null) ?{box3::RenderBox} this.{obj::ContainerRenderObjectMixin::_lastChild} = child : null;
      }
      [...]
    }
    [...]
    abstract forwarding-stub set _firstChild(generic-covariant-impl box3::RenderBox _) → void;
  • _firstChild is a field
  • It is read before crashing
  • When trying to set it, it crashes
  • There's a forwarding stub on the setter

@kmillikin
Copy link

Thanks @jensjoha. I think we've identified the problem and a fix is on the way.

@sjindel-google
Copy link
Contributor

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
customer-flutter P0 A serious issue requiring immediate resolution
Projects
None yet
Development

No branches or pull requests

5 participants