New issue
Advanced search Search tips

Issue 660321 link

Starred by 1 user

Issue metadata

Status: Available
Owner: ----
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

Laying out millions of column rows is slow and may cause out-of-memory situations

Reported by msten...@opera.com, Oct 28 2016

Issue description

Not sure if it's important enough to fix. This is an edge case that will never occur in real situations, but taking minutes to lay out a page isn't that good, either...

When loading the attached test case, it churns for a couple of minutes, and then:

ASSERTION FAILED: count <= kGenericMaxDirectMapped / sizeof(T)
../../third_party/WebKit/Source/wtf/allocator/PartitionAllocator.h(58) : static size_t WTF::PartitionAllocator::quantizedSize(size_t) [T = blink::MultiColumnFragmentainerGroup]
1   0x7fffea38ad03
2   0x7fffea38ac99
3   0x7fffea38add5
4   0x7fffea38aba3
5   0x7fffea38aac4
6   0x7fffea38aa38
7   0x7fffea38a934
8   0x7fffea38a8c5
9   0x7fffea38a7f4
10  0x7fffea38a71d
11  0x7fffea38a27c
12  0x7fffea3889b7 blink::LayoutMultiColumnSet::appendNewFragmentainerGroup()
13  0x7fffea384023 blink::LayoutMultiColumnFlowThread::appendNewFragmentainerGroupIfNeeded(blink::LayoutUnit, blink::LayoutBox::PageBoundaryRule)
14  0x7fffea383c4b blink::LayoutMultiColumnFlowThread::layoutColumns(blink::SubtreeLayoutScope&)
15  0x7fffea2b6ac6 blink::LayoutBlockFlow::layoutSpecialExcludedChild(bool, blink::SubtreeLayoutScope&)
16  0x7fffea2bd442 blink::LayoutBlockFlow::layoutBlockChildren(bool, blink::SubtreeLayoutScope&, blink::LayoutUnit, blink::LayoutUnit)
17  0x7fffea2c9232
18  0x7fffea2b7b09 blink::LayoutBlockFlow::layoutBlock(bool)
19  0x7fffea2a3bb9 blink::LayoutBlock::layout()

The reason is that we create an insane number of column rows, because the outer multicol container is very short. We use a Vector to store the column rows (MultiColumnFragmentainerGroup objects). Building a huge array takes a lot of time and memory.

The test case is taken from bug 583713.
 
tc.html
254 bytes View Download

Comment 1 by e...@chromium.org, Oct 30 2016

Status: Available (was: Untriaged)
Project Member

Comment 2 by sheriffbot@chromium.org, Oct 30 2017

Labels: Hotlist-Recharge-Cold
Status: Untriaged (was: Available)
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue.

Sorry for the inconvenience if the bug really should have been left as Available. If you change it back, also remove the "Hotlist-Recharge-Cold" label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot

Comment 3 by e...@chromium.org, Oct 30 2017

Status: Available (was: Untriaged)
Project Member

Comment 4 by sheriffbot@chromium.org, Oct 31

Status: Untriaged (was: Available)
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue.

Sorry for the inconvenience if the bug really should have been left as Available.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Status: Available (was: Untriaged)

Sign in to add a comment