Skip to content

Framework shouldn't send invalid matrix to engine #31700

Closed

Description

@liyuqian

See #31650 (comment) for where we got an invalid matrix, and #31650 (comment) for how to reproduce it.

Activity

  1. liyuqian commented on Apr 26, 2019

    @liyuqian
    ContributorAuthor

    While running #31650 (comment) with #31701 and FlutterError.onError = (FlutterErrorDetails details, { bool forceReport = false }) => FlutterError.dumpErrorToConsole(details, forceReport: true);, we have:

    1. The first exception stack trace:
    I/flutter (15531): ══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
    I/flutter (15531): The following assertion was thrown during performResize():
    I/flutter (15531): RenderListWheelViewport object was given an infinite size during layout.
    I/flutter (15531): This probably means that it is a render object that tries to be as big as possible, but it was put
    I/flutter (15531): inside another render object that allows its children to pick their own size.
    I/flutter (15531): The nearest ancestor providing an unbounded width constraint is:
    I/flutter (15531):   RenderFittedBox#4775a relayoutBoundary=up4 NEEDS-LAYOUT NEEDS-PAINT
    I/flutter (15531):   creator: FittedBox ← DefaultTextStyle ← AnimatedDefaultTextStyle ← _InkFeatures-[GlobalKey#0c3df
    I/flutter (15531):   ink renderer] ← NotificationListener<LayoutChangedNotification> ← PhysicalModel ←
    I/flutter (15531):   AnimatedPhysicalModel ← Material ← Crasher ← MediaQuery ← Padding ← SafeArea ← ⋯
    I/flutter (15531):   parentData: <none> (can use size)
    I/flutter (15531):   constraints: BoxConstraints(0.0<=w<=360.0, 0.0<=h<=568.0)
    I/flutter (15531):   size: MISSING
    I/flutter (15531):   fit: contain
    I/flutter (15531):   alignment: center
    I/flutter (15531):   textDirection: ltr
    I/flutter (15531): The nearest ancestor providing an unbounded height constraint is:
    I/flutter (15531):   RenderFittedBox#4775a relayoutBoundary=up4 NEEDS-LAYOUT NEEDS-PAINT
    I/flutter (15531):   creator: FittedBox ← DefaultTextStyle ← AnimatedDefaultTextStyle ← _InkFeatures-[GlobalKey#0c3df
    I/flutter (15531):   ink renderer] ← NotificationListener<LayoutChangedNotification> ← PhysicalModel ←
    I/flutter (15531):   AnimatedPhysicalModel ← Material ← Crasher ← MediaQuery ← Padding ← SafeArea ← ⋯
    I/flutter (15531):   parentData: <none> (can use size)
    I/flutter (15531):   constraints: BoxConstraints(0.0<=w<=360.0, 0.0<=h<=568.0)
    I/flutter (15531):   size: MISSING
    I/flutter (15531):   fit: contain
    I/flutter (15531):   alignment: center
    I/flutter (15531):   textDirection: ltr
    I/flutter (15531): The constraints that applied to the RenderListWheelViewport were:
    I/flutter (15531):   BoxConstraints(unconstrained)
    I/flutter (15531): The exact size it was given was:
    I/flutter (15531):   Size(Infinity, Infinity)
    I/flutter (15531): See https://flutter.dev/layout/ for more information.
    I/flutter (15531): 
    I/flutter (15531): When the exception was thrown, this was the stack:
    I/flutter (15531): #0      RenderBox.debugAssertDoesMeetConstraints.<anonymous closure> (package:flutter/src/rendering/box.dart:1749:9)
    I/flutter (15531): #1      RenderBox.debugAssertDoesMeetConstraints (package:flutter/src/rendering/box.dart:1823:6)
    I/flutter (15531): #2      RenderBox.size=.<anonymous closure> (package:flutter/src/rendering/box.dart:1543:17)
    I/flutter (15531): #3      RenderBox.size= (package:flutter/src/rendering/box.dart:1543:65)
    I/flutter (15531): #4      RenderListWheelViewport.performResize (package:flutter/src/rendering/list_wheel_viewport.dart:595:5)
    I/flutter (15531): #5      RenderObject.layout (package:flutter/src/rendering/object.dart:1629:9)
    I/flutter (15531): #6      _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
    I/flutter (15531): #7      RenderObject.layout (package:flutter/src/rendering/object.dart:1644:7)
    I/flutter (15531): #8      _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
    I/flutter (15531): #9      RenderObject.layout (package:flutter/src/rendering/object.dart:1644:7)
    I/flutter (15531): #10     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
    I/flutter (15531): #11     RenderObject.layout (package:flutter/src/rendering/object.dart:1644:7)
    I/flutter (15531): #12     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
    I/flutter (15531): #13     RenderObject.layout (package:flutter/src/rendering/object.dart:1644:7)
    I/flutter (15531): #14     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
    I/flutter (15531): #15     RenderObject.layout (package:flutter/src/rendering/object.dart:1644:7)
    I/flutter (15531): #16     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
    I/flutter (15531): #17     RenderObject.layout (package:flutter/src/rendering/object.dart:1644:7)
    I/flutter (15531): #18     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
    I/flutter (15531): #19     RenderObject.layout (package:flutter/src/rendering/object.dart:1644:7)
    I/flutter (15531): #20     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
    I/flutter (15531): #21     RenderObject.layout (package:flutter/src/rendering/object.dart:1644:7)
    I/flutter (15531): #22     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
    I/flutter (15531): #23     RenderObject.layout (package:flutter/src/rendering/object.dart:1644:7)
    I/flutter (15531): #24     RenderPositionedBox.performLayout (package:flutter/src/rendering/shifted_box.dart:385:13)
    I/flutter (15531): #25     RenderObject.layout (package:flutter/src/rendering/object.dart:1644:7)
    I/flutter (15531): #26     RenderFittedBox.performLayout (package:flutter/src/rendering/proxy_box.dart:2245:13)
    I/flutter (15531): #27     RenderObject.layout (package:flutter/src/rendering/object.dart:1644:7)
    I/flutter (15531): #28     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
    I/flutter (15531): #29     RenderObject.layout (package:flutter/src/rendering/object.dart:1644:7)
    I/flutter (15531): #30     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
    I/flutter (15531): #31     _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1206:11)
    I/flutter (15531): #32     RenderObject.layout (package:flutter/src/rendering/object.dart:1644:7)
    I/flutter (15531): #33     RenderPadding.performLayout (package:flutter/src/rendering/shifted_box.dart:199:11)
    I/flutter (15531): #34     RenderObject.layout (package:flutter/src/rendering/object.dart:1644:7)
    I/flutter (15531): #35     MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:142:11)
    I/flutter (15531): #36     _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:436:7)
    I/flutter (15531): #37     MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:212:7)
    I/flutter (15531): #38     RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:356:14)
    I/flutter (15531): #39     RenderObject.layout (package:flutter/src/rendering/object.dart:1644:7)
    I/flutter (15531): #40     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
    I/flutter (15531): #41     RenderObject.layout (package:flutter/src/rendering/object.dart:1644:7)
    I/flutter (15531): #42     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
    I/flutter (15531): #43     _RenderCustomClip.performLayout (package:flutter/src/rendering/proxy_box.dart:1206:11)
    I/flutter (15531): #44     RenderObject.layout (package:flutter/src/rendering/object.dart:1644:7)
    I/flutter (15531): #45     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
    I/flutter (15531): #46     RenderObject.layout (package:flutter/src/rendering/object.dart:1644:7)
    I/flutter (15531): #47     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
    I/flutter (15531): #48     RenderObject.layout (package:flutter/src/rendering/object.dart:1644:7)
    I/flutter (15531): #49     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
    I/flutter (15531): #50     RenderObject.layout (package:flutter/src/rendering/object.dart:1644:7)
    I/flutter (15531): #51     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
    I/flutter (15531): #52     RenderObject.layout (package:flutter/src/rendering/object.dart:1644:7)
    I/flutter (15531): #53     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
    I/flutter (15531): #54     RenderObject.layout (package:flutter/src/rendering/object.dart:1644:7)
    I/flutter (15531): #55     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
    I/flutter (15531): #56     RenderObject.layout (package:flutter/src/rendering/object.dart:1644:7)
    I/flutter (15531): #57     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
    I/flutter (15531): #58     RenderObject.layout (package:flutter/src/rendering/object.dart:1644:7)
    I/flutter (15531): #59     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
    I/flutter (15531): #60     RenderOffstage.performLayout (package:flutter/src/rendering/proxy_box.dart:3016:13)
    I/flutter (15531): #61     RenderObject.layout (package:flutter/src/rendering/object.dart:1644:7)
    I/flutter (15531): #62     RenderStack.performLayout (package:flutter/src/rendering/stack.dart:510:15)
    I/flutter (15531): #63     RenderObject.layout (package:flutter/src/rendering/object.dart:1644:7)
    I/flutter (15531): #64     __RenderTheatre&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
    I/flutter (15531): #65     RenderObject.layout (package:flutter/src/rendering/object.dart:1644:7)
    I/flutter (15531): #66     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
    I/flutter (15531): #67     RenderObject.layout (package:flutter/src/rendering/object.dart:1644:7)
    I/flutter (15531): #68     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
    I/flutter (15531): #69     RenderObject.layout (package:flutter/src/rendering/object.dart:1644:7)
    I/flutter (15531): #70     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
    I/flutter (15531): #71     RenderObject.layout (package:flutter/src/rendering/object.dart:1644:7)
    I/flutter (15531): #72     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
    I/flutter (15531): #73     RenderObject.layout (package:flutter/src/rendering/object.dart:1644:7)
    I/flutter (15531): #74     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:105:13)
    I/flutter (15531): #75     RenderObject.layout (package:flutter/src/rendering/object.dart:1644:7)
    I/flutter (15531): #76     RenderView.performLayout (package:flutter/src/rendering/view.dart:151:13)
    I/flutter (15531): #77     RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1519:7)
    I/flutter (15531): #78     PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:766:18)
    I/flutter (15531): #79     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:347:19)
    I/flutter (15531): #80     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding&WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:701:13)
    I/flutter (15531): #81     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:286:5)
    I/flutter (15531): #82     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1012:15)
    I/flutter (15531): #83     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:952:9)
    I/flutter (15531): #84     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.scheduleWarmUpFrame.<anonymous closure> (package:flutter/src/scheduler/binding.dart:773:7)
    I/flutter (15531): #93     _Timer._runTimers (dart:isolate-patch/timer_impl.dart:382:19)
    I/flutter (15531): #94     _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:416:5)
    I/flutter (15531): #95     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:171:12)
    I/flutter (15531): (elided 8 frames from package dart:async and package dart:async-patch)
    I/flutter (15531): 
    I/flutter (15531): The following RenderObject was being processed when the exception was fired:
    I/flutter (15531):   RenderListWheelViewport#38160 NEEDS-LAYOUT NEEDS-PAINT
    I/flutter (15531):   creator: ListWheelViewport ← IgnorePointer-[GlobalKey#a2751] ← Semantics ← Listener ←
    I/flutter (15531):   _GestureSemantics ← RawGestureDetector-[LabeledGlobalKey<RawGestureDetectorState>#8b5fa] ←
    I/flutter (15531):   Listener ← _ScrollableScope ← _ScrollSemantics-[GlobalKey#4e294] ← RepaintBoundary ← CustomPaint ←
    I/flutter (15531):   RepaintBoundary ← ⋯
    I/flutter (15531):   parentData: <none> (can use size)
    I/flutter (15531):   constraints: BoxConstraints(unconstrained)
    I/flutter (15531):   size: Size(Infinity, Infinity)
    I/flutter (15531): This RenderObject has no descendants.
    I/flutter (15531): ════════════════════════════════════════════════════════════════════════════════════════════════════
    
    1. The last exception stack trace:
    I/flutter (28660): ══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
    I/flutter (28660): The following assertion was thrown during paint():
    I/flutter (28660): 'package:flutter/src/rendering/proxy_box.dart': Failed assertion: line 2277 pos 14: 'scaleX.isFinite
    I/flutter (28660): && scaleY.isFinite': is not true.
    I/flutter (28660): 
    I/flutter (28660): Either the assertion indicates an error in the framework itself, or we should provide substantially
    I/flutter (28660): more information in this error message to help you determine and fix the underlying cause.
    I/flutter (28660): In either case, please report this assertion by filing a bug on GitHub:
    I/flutter (28660):   https://github.com/flutter/flutter/issues/new?template=BUG.md
    I/flutter (28660): 
    I/flutter (28660): When the exception was thrown, this was the stack:
    I/flutter (28660): #2      RenderFittedBox._updatePaintData (package:flutter/src/rendering/proxy_box.dart:2277:14)
    I/flutter (28660): #3      RenderFittedBox.paint (package:flutter/src/rendering/proxy_box.dart:2297:5)
    I/flutter (28660): #4      RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2104:7)
    I/flutter (28660): #5      PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
    I/flutter (28660): #6      _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
    I/flutter (28660): #7      _RenderInkFeatures.paint (package:flutter/src/material/material.dart:510:11)
    I/flutter (28660): #8      RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2104:7)
    I/flutter (28660): #9      PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
    I/flutter (28660): #10     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
    I/flutter (28660): #11     PaintingContext.pushLayer (package:flutter/src/rendering/object.dart:370:12)
    I/flutter (28660): #12     RenderPhysicalModel.paint (package:flutter/src/rendering/proxy_box.dart:1716:15)
    I/flutter (28660): #13     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2104:7)
    I/flutter (28660): #14     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
    I/flutter (28660): #15     RenderShiftedBox.paint (package:flutter/src/rendering/shifted_box.dart:70:15)
    I/flutter (28660): #16     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2104:7)
    I/flutter (28660): #17     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
    I/flutter (28660): #18     _RenderCustomMultiChildLayoutBox&RenderBox&ContainerRenderObjectMixin&RenderBoxContainerDefaultsMixin.defaultPaint (package:flutter/src/rendering/box.dart:2273:15)
    I/flutter (28660): #19     RenderCustomMultiChildLayoutBox.paint (package:flutter/src/rendering/custom_layout.dart:361:5)
    I/flutter (28660): #20     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2104:7)
    I/flutter (28660): #21     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
    I/flutter (28660): #22     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
    I/flutter (28660): #23     _RenderInkFeatures.paint (package:flutter/src/material/material.dart:510:11)
    I/flutter (28660): #24     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2104:7)
    I/flutter (28660): #25     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
    I/flutter (28660): #26     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
    I/flutter (28660): #27     PaintingContext.pushLayer (package:flutter/src/rendering/object.dart:370:12)
    I/flutter (28660): #28     RenderPhysicalModel.paint (package:flutter/src/rendering/proxy_box.dart:1716:15)
    I/flutter (28660): #29     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2104:7)
    I/flutter (28660): #30     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
    I/flutter (28660): #31     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
    I/flutter (28660): #32     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2104:7)
    I/flutter (28660): #33     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
    I/flutter (28660): #34     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
    I/flutter (28660): #35     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2104:7)
    I/flutter (28660): #36     PaintingContext._repaintCompositedChild (package:flutter/src/rendering/object.dart:128:11)
    I/flutter (28660): #37     PaintingContext.repaintCompositedChild (package:flutter/src/rendering/object.dart:96:5)
    I/flutter (28660): #38     PaintingContext._compositeChild (package:flutter/src/rendering/object.dart:190:7)
    I/flutter (28660): #39     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:171:7)
    I/flutter (28660): #40     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
    I/flutter (28660): #41     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2104:7)
    I/flutter (28660): #42     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
    I/flutter (28660): #43     RenderAnimatedOpacity.paint (package:flutter/src/rendering/proxy_box.dart:910:17)
    I/flutter (28660): #44     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2104:7)
    I/flutter (28660): #45     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
    I/flutter (28660): #46     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
    I/flutter (28660): #47     RenderFractionalTranslation.paint (package:flutter/src/rendering/proxy_box.dart:2408:13)
    I/flutter (28660): #48     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2104:7)
    I/flutter (28660): #49     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
    I/flutter (28660): #50     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
    I/flutter (28660): #51     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2104:7)
    I/flutter (28660): #52     PaintingContext._repaintCompositedChild (package:flutter/src/rendering/object.dart:128:11)
    I/flutter (28660): #53     PaintingContext.repaintCompositedChild (package:flutter/src/rendering/object.dart:96:5)
    I/flutter (28660): #54     PaintingContext._compositeChild (package:flutter/src/rendering/object.dart:190:7)
    I/flutter (28660): #55     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:171:7)
    I/flutter (28660): #56     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
    I/flutter (28660): #57     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2104:7)
    I/flutter (28660): #58     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
    I/flutter (28660): #59     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
    I/flutter (28660): #60     RenderOffstage.paint (package:flutter/src/rendering/proxy_box.dart:3030:11)
    I/flutter (28660): #61     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2104:7)
    I/flutter (28660): #62     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
    I/flutter (28660): #63     _RenderStack&RenderBox&ContainerRenderObjectMixin&RenderBoxContainerDefaultsMixin.defaultPaint (package:flutter/src/rendering/box.dart:2273:15)
    I/flutter (28660): #64     RenderStack.paintStack (package:flutter/src/rendering/stack.dart:594:5)
    I/flutter (28660): #65     RenderStack.paint (package:flutter/src/rendering/stack.dart:602:7)
    I/flutter (28660): #66     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2104:7)
    I/flutter (28660): #67     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
    I/flutter (28660): #68     __RenderTheatre&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
    I/flutter (28660): #69     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2104:7)
    I/flutter (28660): #70     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
    I/flutter (28660): #71     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
    I/flutter (28660): #72     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2104:7)
    I/flutter (28660): #73     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
    I/flutter (28660): #74     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
    I/flutter (28660): #75     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2104:7)
    I/flutter (28660): #76     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
    I/flutter (28660): #77     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
    I/flutter (28660): #78     RenderPointerListener.paint (package:flutter/src/rendering/proxy_box.dart:2610:11)
    I/flutter (28660): #79     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2104:7)
    I/flutter (28660): #80     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
    I/flutter (28660): #81     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
    I/flutter (28660): #82     RenderCustomPaint.paint (package:flutter/src/rendering/custom_paint.dart:569:11)
    I/flutter (28660): #83     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2104:7)
    I/flutter (28660): #84     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
    I/flutter (28660): #85     _RenderProxyBox&RenderBox&RenderObjectWithChildMixin&RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:123:15)
    I/flutter (28660): #86     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2104:7)
    I/flutter (28660): #87     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:173:13)
    I/flutter (28660): #88     RenderView.paint (package:flutter/src/rendering/view.dart:182:15)
    I/flutter (28660): #89     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:2104:7)
    I/flutter (28660): #90     PaintingContext._repaintCompositedChild (package:flutter/src/rendering/object.dart:128:11)
    I/flutter (28660): #91     PaintingContext.repaintCompositedChild (package:flutter/src/rendering/object.dart:96:5)
    I/flutter (28660): #92     PipelineOwner.flushPaint (package:flutter/src/rendering/object.dart:859:29)
    I/flutter (28660): #93     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:349:19)
    I/flutter (28660): #94     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding&WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:701:13)
    I/flutter (28660): #95     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding&PaintingBinding&SemanticsBinding&RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:286:5)
    I/flutter (28660): #96     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1012:15)
    I/flutter (28660): #97     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:952:9)
    I/flutter (28660): #98     _WidgetsFlutterBinding&BindingBase&GestureBinding&ServicesBinding&SchedulerBinding.scheduleWarmUpFrame.<anonymous closure> (package:flutter/src/scheduler/binding.dart:773:7)
    I/flutter (28660): #107    _Timer._runTimers (dart:isolate-patch/timer_impl.dart:382:19)
    I/flutter (28660): #108    _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:416:5)
    I/flutter (28660): #109    _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:171:12)
    I/flutter (28660): (elided 10 frames from class _AssertionError, package dart:async, and package dart:async-patch)
    I/flutter (28660): 
    I/flutter (28660): The following RenderObject was being processed when the exception was fired:
    I/flutter (28660):   RenderFittedBox#4c7d2 relayoutBoundary=up4
    I/flutter (28660):   creator: FittedBox ← DefaultTextStyle ← AnimatedDefaultTextStyle ← _InkFeatures-[GlobalKey#f7c4a
    I/flutter (28660):   ink renderer] ← NotificationListener<LayoutChangedNotification> ← PhysicalModel ←
    I/flutter (28660):   AnimatedPhysicalModel ← Material ← Crasher ← MediaQuery ← Padding ← SafeArea ← ⋯
    I/flutter (28660):   parentData: <none> (can use size)
    I/flutter (28660):   constraints: BoxConstraints(0.0<=w<=360.0, 0.0<=h<=568.0)
    I/flutter (28660):   size: Size(360.0, 568.0)
    I/flutter (28660):   fit: contain
    I/flutter (28660):   alignment: center
    I/flutter (28660):   textDirection: ltr
    I/flutter (28660): This RenderObject had the following descendants (showing up to depth 5):
    I/flutter (28660):   RenderPositionedBox#276cc relayoutBoundary=up5 NEEDS-PAINT
    I/flutter (28660):     RenderRepaintBoundary#6e5e7 relayoutBoundary=up6 NEEDS-PAINT
    I/flutter (28660):       RenderCustomPaint#16ce8 relayoutBoundary=up7 NEEDS-PAINT
    I/flutter (28660):         RenderRepaintBoundary#16b59 relayoutBoundary=up8 NEEDS-PAINT
    I/flutter (28660):           _RenderScrollSemantics#0cf2c relayoutBoundary=up9 NEEDS-PAINT
    I/flutter (28660): ════════════════════════════════════════════════════════════════════════════════════════════════════
    
  2. liyuqian commented on Apr 26, 2019

    @liyuqian
    ContributorAuthor
  3. xster commented on Apr 26, 2019

    @xster
    Member

    As I mentioned in the engine chat thread, discussed offline with @Hixie. Given our current patterns, this is more or less a design choice and given that, it's an 'intended behavior'.

    Once we hit a un-layout-able render object during layout, the framework already failed and all bets are off. We're choosing to let it limp on because we want to not crash to allow hot reload and because sometimes, trying to paint even without a layout might work. But most of the time, what we end up trying to paint is likely non-sensical and downstream APIs will need to degrade gracefully as much as possible.

  4. liyuqian commented on Apr 26, 2019

    @liyuqian
    ContributorAuthor

    @xster For the engine our current solution is FML_CHECK which will terminate the app. Is there a way for the framework to elegantly fall back to some simple matrix (say identity) instead of sending an invalid one?

  5. xster commented on Apr 27, 2019

    @xster
    Member

    We can, though for consistency with every other canvas/layer/etc APIs which may all be invoked with non-sensical values, it still might not help you avoid needing to let all 'dart:ui' APIs be resilient to invalid input.

  6. liyuqian commented on Apr 27, 2019

    @liyuqian
    ContributorAuthor

    @xster : right, I think we need to be resilient in multiple levels. In the lowest engine level, the solution might be too brutal (e.g., terminate the app without useful stack trace information of the framework). Catching it in the framework seems to be a little more helpful.

    For this specific stack trace and crash app, do you think that we need to add anything in the framework? I guess this may also depend on what the purpose of @tvolkert 's crash app is. I'm not familiar with the stack trace or the crash app, so I'll leave the final decision between you and Todd :)

  7. github-actions commented on Aug 29, 2021

    @github-actions

    This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

  8. locked as resolved and limited conversation to collaborators on Aug 29, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions