openkraken / kraken

A web standards-compliant, high-performance rendering engine based on Flutter.
https://openkraken.com
Apache License 2.0
4.92k stars 305 forks source link

kraken bug #919

Open colorfulldays opened 2 years ago

colorfulldays commented 2 years ago

version 0.9.1

══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
The following assertion was thrown during performLayout():
RenderRepaintBoundaryFlowLayout object was given an infinite size during layout.
This probably means that it is a render object that tries to be as big as possible, but it was put
inside another render object that allows its children to pick their own size.
The nearest ancestor providing an unbounded width constraint is: RenderFlexLayout#8587d relayoutBoundary=up7 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE:
  parentData: isPositioned=false; offset=Offset(0.0, 0.0); runIndex: 0; (can use size)
  constraints: BoxConstraints(20.0<=w<=344.0, 20.0<=h<=Infinity)
  size: Size(344.0, 47.0)
  contentSize: Size(324.0, 27.0)
  contentConstraints: BoxConstraints(0.0<=w<=324.0, 0.0<=h<=Infinity)
  widthSizeType: BoxSizeType.automatic
  heightSizeType: BoxSizeType.automatic
  maxScrollableSize: Size(344.0, 47.0)
  borderEdge: EdgeInsets.zero
  borderRadius: BorderRadius.circular(12.0)
  clipX: false
  clipY: false
  transformOrigin: Offset(0.0, 0.0)
  transformAlignment: Alignment.center
  flexDirection: FlexDirection.row
  justifyContent: JustifyContent.flexStart
  alignItems: AlignItems.stretch
  flexWrap: FlexWrap.nowrap
The constraints that applied to the RenderRepaintBoundaryFlowLayout were:
  BoxConstraints(0.0<=w<=Infinity, 0.0<=h<=28.0)
The exact size it was given was:
  Size(Infinity, 28.0)
See https://flutter.dev/docs/development/ui/layout/box-constraints for more information.

When the exception was thrown, this was the stack:
#0      RenderBox.debugAssertDoesMeetConstraints.<anonymous closure> (package:flutter/src/rendering/box.dart:2205:9)
#1      RenderBox.debugAssertDoesMeetConstraints (package:flutter/src/rendering/box.dart:2299:6)
#2      RenderBox.size=.<anonymous closure> (package:flutter/src/rendering/box.dart:1991:7)
#3      RenderBox.size= (package:flutter/src/rendering/box.dart:1993:6)
#4      RenderBoxModel.size= (package:kraken/src/rendering/box_model.dart:1000:11)
#5      RenderFlowLayout._layoutChildren (package:kraken/src/rendering/flow.dart:491:7)
#6      RenderFlowLayout._doPerformLayout (package:kraken/src/rendering/flow.dart:438:5)
#7      RenderFlowLayout.performLayout (package:kraken/src/rendering/flow.dart:405:5)
#8      RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#9      RenderBoxModel.layout (package:kraken/src/rendering/box_model.dart:852:11)
#10     CSSPositionedLayout.layoutPositionedChild (package:kraken/src/css/positioned.dart:420:13)
#11     RenderFlexLayout._doPerformLayout (package:kraken/src/rendering/flex.dart:669:29)
#12     RenderFlexLayout.performLayout (package:kraken/src/rendering/flex.dart:644:5)
#13     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#14     RenderBoxModel.layout (package:kraken/src/rendering/box_model.dart:852:11)
#15     RenderFlowLayout._layoutChildren (package:kraken/src/rendering/flow.dart:584:15)
#16     RenderFlowLayout._doPerformLayout (package:kraken/src/rendering/flow.dart:438:5)
#17     RenderFlowLayout.performLayout (package:kraken/src/rendering/flow.dart:405:5)
#18     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#19     RenderBoxModel.layout (package:kraken/src/rendering/box_model.dart:852:11)
#20     RenderFlowLayout._layoutChildren (package:kraken/src/rendering/flow.dart:584:15)
#21     RenderFlowLayout._doPerformLayout (package:kraken/src/rendering/flow.dart:438:5)
#22     RenderFlowLayout.performLayout (package:kraken/src/rendering/flow.dart:405:5)
#23     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#24     RenderBoxModel.layout (package:kraken/src/rendering/box_model.dart:852:11)
#25     RenderFlowLayout._layoutChildren (package:kraken/src/rendering/flow.dart:584:15)
#26     RenderFlowLayout._doPerformLayout (package:kraken/src/rendering/flow.dart:438:5)
#27     RenderFlowLayout.performLayout (package:kraken/src/rendering/flow.dart:405:5)
#28     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#29     RenderBoxModel.layout (package:kraken/src/rendering/box_model.dart:852:11)
#30     RenderFlexLayout._layoutByFlexLine (package:kraken/src/rendering/flex.dart:975:15)
#31     RenderFlexLayout._layoutChildren (package:kraken/src/rendering/flex.dart:765:5)
#32     RenderFlexLayout._doPerformLayout (package:kraken/src/rendering/flex.dart:678:5)
#33     RenderFlexLayout.performLayout (package:kraken/src/rendering/flex.dart:644:5)
#34     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#35     RenderBoxModel.layout (package:kraken/src/rendering/box_model.dart:852:11)
#36     RenderFlowLayout._layoutChildren (package:kraken/src/rendering/flow.dart:584:15)
#37     RenderFlowLayout._doPerformLayout (package:kraken/src/rendering/flow.dart:438:5)
#38     RenderFlowLayout.performLayout (package:kraken/src/rendering/flow.dart:405:5)
#39     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#40     RenderBoxModel.layout (package:kraken/src/rendering/box_model.dart:852:11)
#41     RenderFlowLayout._layoutChildren (package:kraken/src/rendering/flow.dart:584:15)
#42     RenderFlowLayout._doPerformLayout (package:kraken/src/rendering/flow.dart:438:5)
#43     RenderFlowLayout.performLayout (package:kraken/src/rendering/flow.dart:405:5)
#44     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#45     RenderBoxModel.layout (package:kraken/src/rendering/box_model.dart:852:11)
#46     RenderFlowLayout._layoutChildren (package:kraken/src/rendering/flow.dart:584:15)
#47     RenderFlowLayout._doPerformLayout (package:kraken/src/rendering/flow.dart:438:5)
#48     RenderFlowLayout.performLayout (package:kraken/src/rendering/flow.dart:405:5)
#49     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#50     RenderBoxModel.layout (package:kraken/src/rendering/box_model.dart:852:11)
#51     RenderFlowLayout._layoutChildren (package:kraken/src/rendering/flow.dart:584:15)
#52     RenderFlowLayout._doPerformLayout (package:kraken/src/rendering/flow.dart:438:5)
#53     RenderFlowLayout.performLayout (package:kraken/src/rendering/flow.dart:405:5)
#54     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#55     RenderBoxModel.layout (package:kraken/src/rendering/box_model.dart:852:11)
#56     RenderFlowLayout._layoutChildren (package:kraken/src/rendering/flow.dart:584:15)
#57     RenderFlowLayout._doPerformLayout (package:kraken/src/rendering/flow.dart:438:5)
#58     RenderFlowLayout.performLayout (package:kraken/src/rendering/flow.dart:405:5)
#59     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#60     RenderBoxModel.layout (package:kraken/src/rendering/box_model.dart:852:11)
#61     RenderFlowLayout._layoutChildren (package:kraken/src/rendering/flow.dart:584:15)
#62     RenderFlowLayout._doPerformLayout (package:kraken/src/rendering/flow.dart:438:5)
#63     RenderFlowLayout.performLayout (package:kraken/src/rendering/flow.dart:405:5)
#64     RenderObject.layout (package:flutter/src/rendering/object.dart:1858:7)
#65     RenderBoxModel.layout (package:kraken/src/rendering/box_model.dart:852:11)
#66     RenderFlowLayout._layoutChildren (package:kraken/src/rendering/flow.dart:584:15)
#67     RenderFlowLayout._doPerformLayout (package:kraken/src/rendering/flow.dart:438:5)
#68     RenderFlowLayout.performLayout (package:kraken/src/rendering/flow.dart:405:5)
#69     RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1713:7)
#70     PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:885:18)
#71     RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:453:19)
#72     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:883:13)
#73     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:319:5)
#74     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1143:15)
#75     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1080:9)
#76     SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:996:5)
#80     _invoke (dart:ui/hooks.dart:166:10)
#81     PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:270:5)
#82     _drawFrame (dart:ui/hooks.dart:129:31)
(elided 3 frames from dart:async)

The following RenderObject was being processed when the exception was fired: RenderRepaintBoundaryFlowLayout#2608f NEEDS-LAYOUT NEEDS-PAINT:
  needs compositing
  parentData: isPositioned=true; offset=Offset(0.0, 0.0); runIndex: 0;
  constraints: BoxConstraints(0.0<=w<=Infinity, 0.0<=h<=28.0)
  size: Size(Infinity, 28.0)
  contentSize: Size(Infinity, 28.0)
  contentConstraints: BoxConstraints(0.0<=w<=Infinity, 0.0<=h<=28.0)
  widthSizeType: BoxSizeType.automatic
  heightSizeType: BoxSizeType.specified
  maxScrollableSize: Size(Infinity, 28.0)
  renderPositionHolder: RenderPositionPlaceholder#75733 NEEDS-LAYOUT NEEDS-PAINT
  borderEdge: EdgeInsets.zero
  borderRadius: BorderRadius.circular(2.0)
  clipX: false
  clipY: false
  transformOrigin: Offset(0.0, 0.0)
  transformAlignment: Alignment.topLeft
This RenderObject has no descendants.
andycall commented 2 years ago

看上去像是 layout 报错了,请问是如何复线的?

colorfulldays commented 2 years ago

看上去像是 layout 报错了,请问是如何复线的?

用之前一个在0.9.0上可以正常 显示的 页面,更新最新代码,就会出现如上问题,应该就是新的更新引入的问题。具体哪块儿js 代码造成的,我也没确定