Skip to content
New issue

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

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

Already on GitHub? # 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

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

No branches or pull requests

5 participants