New issue
Advanced search Search tips

Issue 879088 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Dec 10
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Task



Sign in to add a comment

[LayoutNG] DCHECK failure in ComputeOffsetMappingIfNeeded for stackoverflow

Project Member Reported by kojii@chromium.org, Aug 30

Issue description

mstensho@ found this while investigating  issue 861623  (comment #12) when loading:

https://ja.stackoverflow.com/questions/45438/%E3%81%93%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E9%87%8F%E3%82%92%E6%B8%9B%E3%82%89%E3%81%97%E3%81%9F%E3%81%84

DCHECK failure when loading:

[26124:49163:0830/111413.808288:FATAL:ng_inline_node.cc(323)] Check failed: data->text_content == text ("\u30ED\u30B0\u30A4\u30F3 \u767B\u9332" vs. "\u30ED\u30B0\u30A4\u30F3\u767B\u9332")
0   libbase.dylib                       0x0000000111953c1e base::debug::StackTrace::StackTrace(unsigned long) + 174
1   libbase.dylib                       0x0000000111953cdd base::debug::StackTrace::StackTrace(unsigned long) + 29
2   libbase.dylib                       0x000000011152ec5c base::debug::StackTrace::StackTrace() + 28
3   libbase.dylib                       0x00000001115aa8dc logging::LogMessage::~LogMessage() + 460
4   libbase.dylib                       0x00000001115a84d5 logging::LogMessage::~LogMessage() + 21
5   libblink_core.dylib                 0x0000000136f9dace blink::NGInlineNode::ComputeOffsetMappingIfNeeded() + 606
6   libblink_core.dylib                 0x0000000136f9c527 blink::NGInlineNode::PrepareLayoutIfNeeded() + 1303
7   libblink_core.dylib                 0x0000000136f9dfb9 blink::NGInlineNode::EnsureData() + 25
8   libblink_core.dylib                 0x0000000136f92ac5 blink::NGInlineNode::IsEmptyInline() + 21
9   libblink_core.dylib                 0x0000000136fe96f8 blink::NGBlockLayoutAlgorithm::HandleInflow(blink::NGLayoutInputNode, blink::NGBreakToken*, blink::NGPreviousInflowPosition*, scoped_refptr<blink::NGBreakToken>*) + 680
10  libblink_core.dylib                 0x0000000136fe5b17 blink::NGBlockLayoutAlgorithm::Layout() + 3991
11  libblink_core.dylib                 0x0000000136ff4c14 blink::(anonymous namespace)::LayoutWithAlgorithm(blink::NGBlockNode, blink::NGConstraintSpace const&, blink::NGBreakToken*, void*) + 692
12  libblink_core.dylib                 0x0000000136ff3b53 blink::NGBlockNode::Layout(blink::NGConstraintSpace const&, blink::NGBreakToken*) + 1011
13  libblink_core.dylib                 0x0000000136fcd11f blink::LayoutNGBlockFlow::UpdateBlockLayout(bool) + 383
14  libblink_core.dylib                 0x0000000136cfd711 blink::LayoutBlock::UpdateLayout() + 385
15  libblink_core.dylib                 0x0000000136ccc086 blink::LayoutObject::LayoutIfNeeded() + 54
16  libblink_core.dylib                 0x0000000136dce9ca blink::LayoutFlexibleBox::LayoutLineItems(blink::FlexLine*, bool, blink::SubtreeLayoutScope&) + 858
17  libblink_core.dylib                 0x0000000136dc99a2 blink::LayoutFlexibleBox::LayoutFlexItems(bool, blink::SubtreeLayoutScope&) + 1298
18  libblink_core.dylib                 0x0000000136dc8fc7 blink::LayoutFlexibleBox::UpdateBlockLayout(bool) + 775
19  libblink_core.dylib                 0x0000000136cfd711 blink::LayoutBlock::UpdateLayout() + 385
20  libblink_core.dylib                 0x0000000136ccc086 blink::LayoutObject::LayoutIfNeeded() + 54
21  libblink_core.dylib                 0x0000000136dce9ca blink::LayoutFlexibleBox::LayoutLineItems(blink::FlexLine*, bool, blink::SubtreeLayoutScope&) + 858
22  libblink_core.dylib                 0x0000000136dc99a2 blink::LayoutFlexibleBox::LayoutFlexItems(bool, blink::SubtreeLayoutScope&) + 1298
23  libblink_core.dylib                 0x0000000136dc8fc7 blink::LayoutFlexibleBox::UpdateBlockLayout(bool) + 775
24  libblink_core.dylib                 0x0000000136cfd711 blink::LayoutBlock::UpdateLayout() + 385
25  libblink_core.dylib                 0x0000000136e4b602 blink::LayoutObject::ForceLayout() + 66
26  libblink_core.dylib                 0x0000000136ff4295 blink::NGBlockNode::RunOldLayout(blink::NGConstraintSpace const&) + 1333
27  libblink_core.dylib                 0x0000000136ff37d7 blink::NGBlockNode::Layout(blink::NGConstraintSpace const&, blink::NGBreakToken*) + 119
28  libblink_core.dylib                 0x000000013701991b blink::NGLayoutInputNode::Layout(blink::NGConstraintSpace const&, blink::NGBreakToken*) + 123
29  libblink_core.dylib                 0x0000000136fed6e7 blink::NGBlockLayoutAlgorithm::LayoutNewFormattingContext(blink::NGLayoutInputNode, blink::NGBreakToken*, blink::NGInflowChildData const&, blink::NGBfcOffset, bool) + 1959
30  libblink_core.dylib                 0x0000000136fe8209 blink::NGBlockLayoutAlgorithm::HandleNewFormattingContext(blink::NGLayoutInputNode, blink::NGBreakToken*, blink::NGPreviousInflowPosition*, scoped_refptr<blink::NGBreakToken>*) + 2393
31  libblink_core.dylib                 0x0000000136fe5ac1 blink::NGBlockLayoutAlgorithm::Layout() + 3905
32  libblink_core.dylib                 0x0000000136ff4c14 blink::(anonymous namespace)::LayoutWithAlgorithm(blink::NGBlockNode, blink::NGConstraintSpace const&, blink::NGBreakToken*, void*) + 692
33  libblink_core.dylib                 0x0000000136ff3b53 blink::NGBlockNode::Layout(blink::NGConstraintSpace const&, blink::NGBreakToken*) + 1011
34  libblink_core.dylib                 0x0000000137025760 blink::NGOutOfFlowLayoutPart::GenerateFragment(blink::NGBlockNode, blink::NGOutOfFlowLayoutPart::ContainingBlockInfo const&, base::Optional<blink::LayoutUnit> const&, blink::NGAbsolutePhysicalPosition const&) + 672
35  libblink_core.dylib                 0x0000000137024b57 blink::NGOutOfFlowLayoutPart::LayoutDescendant(blink::NGOutOfFlowPositionedDescendant const&, blink::NGLogicalOffset*) + 2151
36  libblink_core.dylib                 0x0000000137022ef4 blink::NGOutOfFlowLayoutPart::Run(blink::LayoutBox*) + 340
37  libblink_core.dylib                 0x0000000136fcdc86 blink::LayoutNGBlockFlow::UpdateOutOfFlowBlockLayout() + 2166
38  libblink_core.dylib                 0x0000000136fcd0c0 blink::LayoutNGBlockFlow::UpdateBlockLayout(bool) + 288
39  libblink_core.dylib                 0x0000000136cfd711 blink::LayoutBlock::UpdateLayout() + 385
40  libblink_core.dylib                 0x0000000136ccc086 blink::LayoutObject::LayoutIfNeeded() + 54
41  libblink_core.dylib                 0x0000000136cffbbb blink::LayoutBlock::LayoutPositionedObject(blink::LayoutBox*, bool, blink::LayoutBlock::PositionedLayoutBehavior) + 683
42  libblink_core.dylib                 0x0000000136cff8d0 blink::LayoutBlock::LayoutPositionedObjects(bool, blink::LayoutBlock::PositionedLayoutBehavior) + 192
43  libblink_core.dylib                 0x0000000136d1c92f blink::LayoutBlockFlow::UpdateBlockLayout(bool) + 1615
44  libblink_core.dylib                 0x0000000136eed62c blink::LayoutView::UpdateBlockLayout(bool) + 636
45  libblink_core.dylib                 0x0000000136cfd711 blink::LayoutBlock::UpdateLayout() + 385
46  libblink_core.dylib                 0x0000000136eedeed blink::LayoutView::UpdateLayout() + 1981
 
Owner: xiaoche...@chromium.org
Status: Assigned (was: Available)
Still crashing...

I'll take a look.
Project Member

Comment 2 by bugdroid1@chromium.org, Dec 10

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/64698710a10ab64143343f74616cdfffdbfbcd90

commit 64698710a10ab64143343f74616cdfffdbfbcd90
Author: Xiaocheng Hu <xiaochengh@chromium.org>
Date: Mon Dec 10 23:10:08 2018

[LayoutNG] Don't reuse inline items if they collapse a previous segment break

In some cases, a text node may run segment break rules and completely
remove a preceding run of collapsible whitespaces and segment breaks.
This patch ensures that segment break rules are still run in this case
by stopping inline items from being reused.

Bug:  879088 
Change-Id: If4ae3d53bb777c28421851b3ff22bcbaf209cc86
Reviewed-on: https://chromium-review.googlesource.com/c/1370647
Reviewed-by: Emil A Eklund <eae@chromium.org>
Commit-Queue: Xiaocheng Hu <xiaochengh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#615305}
[modify] https://crrev.com/64698710a10ab64143343f74616cdfffdbfbcd90/third_party/blink/renderer/core/layout/ng/inline/ng_inline_items_builder.cc
[modify] https://crrev.com/64698710a10ab64143343f74616cdfffdbfbcd90/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node_test.cc

Status: Fixed (was: Assigned)

Sign in to add a comment