New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 594833 link

Starred by 0 users

Issue metadata

Status: Fixed
Owner:
NOT IN USE
Closed: Jun 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Bug



Sign in to add a comment

ASSERTION FAILED: m_fragmentainerGroups.size() == 1

Project Member Reported by ClusterFuzz, Mar 14 2016

Issue description

Detailed report: https://cluster-fuzz.appspot.com/testcase?key=5160422128222208

Fuzzer: inferno_twister
Job Type: linux_debug_content_shell_drt
Platform Id: linux

Crash Type: ASSERT
Crash Address: 
Crash State:
  ASSERTION FAILED: m_fragmentainerGroups.size() == 1
  blink::LayoutMultiColumnSet::pageLogicalHeightForOffset
  blink::LayoutFlowThread::pageLogicalHeightForOffset
  

Minimized Testcase (0.49 Kb): https://cluster-fuzz.appspot.com/download/AMIfv95sGGtsGYtLqUxAtYK3Zw-GrpJZJXX0gFg8go67mnitCcH3dF4V_Iaki8BZhNLlZwCFMvApuGWK1DZyrFss7LZcJ1TfoOHSbS1MK_YHKFSGcv-vWn4LF6pI--q0cQOQ3PXO2KpMNdrXvdjM74kHfGqpo3TFxw

Filer: pucchakayala

See https://dev.chromium.org/Home/chromium-security/bugs/reproducing-clusterfuzz-bugs for more information.
 
Labels: M-49 findit-for-crash Te-Logged
Owner: msten...@opera.com
Status: Assigned (was: Available)
Suspected CLs	Regression information is not available. The result is the blame information.

Author: mstensho
Component: chromium
Changelist: https://chromium.googlesource.com/chromium/src//+/3f96177578cf0511174d42546a70660cc8d6eeeb
Time: Wed Feb 24 10:08:17 2016
The CL last changed line 80 of file LayoutMultiColumnSet.cpp, which is stack frame 0.

Author: mstensho@opera.com
Component: chromium
Changelist: https://chromium.googlesource.com/chromium/src//+/822e2a77b10d04b16a27953c7c410f736d414f32
Time: Mon Aug 10 22:50:52 2015
The CL last changed line 143 of file LayoutFlowThread.cpp, which is stack frame 1.

Author: hyatt@apple.com
Component: chromium
Changelist: https://chromium.googlesource.com/chromium/src//+/93ea3d3b1925aae2318de7fca400793aabcf0fcb
Time: Fri Mar 01 21:44:06 2013
The CL last changed line 2636 of file LayoutBlock.cpp, which is stack frame 2.

Author: mstensho@opera.com
Component: chromium
Changelist: https://chromium.googlesource.com/chromium/src//+/71a47a1e662bfca6f6d1e930052dd627a611ffa9
Time: Fri May 29 16:55:38 2015
The CL last changed line 461 of file LayoutBlock.h, which is stack frame 3.

Author: mstensho@opera.com
Component: chromium
Changelist: https://chromium.googlesource.com/chromium/src//+/71a47a1e662bfca6f6d1e930052dd627a611ffa9
Time: Fri May 29 16:55:38 2015
The CL last changed line 1496 of file LayoutBlockFlow.cpp, which is stack frame 4.

Author: leviw@chromium.org
Component: chromium
Changelist: https://chromium.googlesource.com/chromium/src//+/6b1091d2581624bcea72348bc647e3897894a00d
Time: Wed Sep 18 00:50:50 2013
The CL last changed line 571 of file LayoutBlockFlow.cpp, which is stack frame 5.

Author: sunil.ratnu@samsung.com
Component: chromium
Changelist: https://chromium.googlesource.com/chromium/src//+/5c86cf307f860df1f1271f330a76c2d51f8abc34
Time: Thu Nov 27 13:13:01 2014
The CL last changed line 1046 of file LayoutBlockFlow.cpp, which is stack frame 6.

Suspected Component: chromium
Suspected Cr- Label: Cr-Blink-Layout
Components: Blink
Labels: -cr-blink
Remove legacy label cr-blink
Components: -Blink Blink>Layout>MultiCol

Comment 4 by msten...@opera.com, Apr 8 2016

Cleaned up test case.
tc.html
259 bytes View Download
Project Member

Comment 5 by bugdroid1@chromium.org, Apr 15 2016

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

commit 9958b7d0b612a7b1bbea85f1c8f2825faa5cebb6
Author: mstensho <mstensho@opera.com>
Date: Fri Apr 15 07:11:08 2016

Don't call paginatedContentWasLaidOut() until we have the final layout.

Blocks may need relayout because of pagination, and calling
paginatedContentWasLaidOut() before that has taken place could make us account
for a leading pagination strut twice (once before the block child, and once
before the first line inside the block). In a nested multicol context this
could trigger creation of additional fragmentainer groups that will be
unneeded in the end.

This fixes the assertion mentioned in  bug 594833 , but new ones will pop up
instead, because of brokenness in the column balancer. That will be fixed in a
separate CL.

BUG= 594833 

Review URL: https://codereview.chromium.org/1883163002

Cr-Commit-Position: refs/heads/master@{#387548}

[add] https://crrev.com/9958b7d0b612a7b1bbea85f1c8f2825faa5cebb6/third_party/WebKit/LayoutTests/fast/multicol/nested-balanced-with-strut-before-first-line-expected.html
[add] https://crrev.com/9958b7d0b612a7b1bbea85f1c8f2825faa5cebb6/third_party/WebKit/LayoutTests/fast/multicol/nested-balanced-with-strut-before-first-line.html
[modify] https://crrev.com/9958b7d0b612a7b1bbea85f1c8f2825faa5cebb6/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp

Project Member

Comment 6 by bugdroid1@chromium.org, Apr 18 2016

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

commit 5b65a57f38f0260e21b8ec190d201ae2504d73e5
Author: mstensho <mstensho@opera.com>
Date: Mon Apr 18 23:16:17 2016

Support multiple fragmentainer groups per ColumnBalancer run.

Instead of specifying a fragmentainer group for the operation, we now specify a
column set and a flow thread portion (which may be the portion of one group or
many contiguous groups within the same column set).

The reason for this change is that when calculating space shortage in an inner
multicol container, we need to walk through all fragmentainer groups in one
operation, or we'll miss the column boundaries between the fragmentainer
groups, and only find those that lie between two columns in the same
fragmentainer group. This is especially bad if the inner multicol container
only has one column per fragmentainer group (row), since then *all* column
boundaries lie between two fragmentainer groups, and we wouldn't be able to
find any shortage at all.

BUG= 594833 

Review URL: https://codereview.chromium.org/1891783002

Cr-Commit-Position: refs/heads/master@{#388070}

[add] https://crrev.com/5b65a57f38f0260e21b8ec190d201ae2504d73e5/third_party/WebKit/LayoutTests/fast/multicol/nested-balanced-inner-column-count-1-with-forced-break-expected.html
[add] https://crrev.com/5b65a57f38f0260e21b8ec190d201ae2504d73e5/third_party/WebKit/LayoutTests/fast/multicol/nested-balanced-inner-column-count-1-with-forced-break.html
[modify] https://crrev.com/5b65a57f38f0260e21b8ec190d201ae2504d73e5/third_party/WebKit/Source/core/layout/ColumnBalancer.cpp
[modify] https://crrev.com/5b65a57f38f0260e21b8ec190d201ae2504d73e5/third_party/WebKit/Source/core/layout/ColumnBalancer.h
[modify] https://crrev.com/5b65a57f38f0260e21b8ec190d201ae2504d73e5/third_party/WebKit/Source/core/layout/MultiColumnFragmentainerGroup.cpp

Comment 7 by msten...@opera.com, Apr 19 2016

Status: Fixed (was: Assigned)
Status: Assigned (was: Fixed)
Clusterfuzz has detected the issue again, hence re-opening the same.
Project Member

Comment 9 by ClusterFuzz, Jun 14 2016

Detailed report: https://cluster-fuzz.appspot.com/testcase?key=6441796590895104

Fuzzer: inferno_layout_test_unmodified
Job Type: linux_debug_content_shell_drt
Platform Id: linux

Crash Type: ASSERT
Crash Address: 
Crash State:
  m_fragmentainerGroups.size() == 1
  blink::LayoutMultiColumnSet::pageLogicalHeightForOffset
  blink::LayoutFlowThread::pageLogicalHeightForOffset
  

Minimized Testcase (0.12 Kb):
Download: https://cluster-fuzz.appspot.com/download/AMIfv94G-FQXjTjbkwkJvK2wCC_BWgTpHerqyq1kCkZCf-R_PClUi-7GtPv53uOAo6RByZ6qdAGHhgCjwsN85AG7JiA5iGLxHQtOcUb_2ZmvkA6rzBsiB3SRPsf7P-BVUHWBeYesZVppdEswA93pdWyq0b7Q7EbVwQ
   class="constrainedContainer">
    <div class="columns1And2"</div>
   <div>
  <style>
   * {
    -webkit-columns: 10ex;


Filer: durga.behera

See https://dev.chromium.org/Home/chromium-security/bugs/reproducing-clusterfuzz-bugs for more information.
Labels: -ClusterFuzz -findit-for-crash Clusterfuzz Findit-for-crash
#9 reproduced, while my tc.html still works fine.
Project Member

Comment 11 by ClusterFuzz, Sep 23 2016

ClusterFuzz has detected this issue as fixed in range 420372:420465.

Detailed report: https://cluster-fuzz.appspot.com/testcase?key=6441796590895104

Fuzzer: inferno_layout_test_unmodified
Job Type: linux_debug_content_shell_drt
Platform Id: linux

Crash Type: ASSERT
Crash Address: 
Crash State:
  m_fragmentainerGroups.size() == 1
  blink::LayoutMultiColumnSet::pageLogicalHeightForOffset
  blink::LayoutFlowThread::pageLogicalHeightForOffset
  
Regressed: https://cluster-fuzz.appspot.com/revisions?job=linux_debug_content_shell_drt&range=384799:384804
Fixed: https://cluster-fuzz.appspot.com/revisions?job=linux_debug_content_shell_drt&range=420372:420465

Minimized Testcase (0.12 Kb):
Download: https://cluster-fuzz.appspot.com/download/AMIfv94LMzaqDhc2CMJLD-0n93mrLGRdvNhWkRgfr6iE1RK-kz34KeiuNW1HSLalgL-Ok0gIxLX91Xe0qqgaF31bzfUzrZFiGIv7EEnAfQsAynR-gtItyQXdZY7rQjJ4dWnnPn5UrVzgjyfX3igVekN5lNWovuOAFA?testcase_id=6441796590895104
   class="constrainedContainer">
    <div class="columns1And2"</div>
   <div>
  <style>
   * {
    -webkit-columns: 10ex;


See https://dev.chromium.org/Home/chromium-security/bugs/reproducing-clusterfuzz-bugs for more information.

If you suspect that the result above is incorrect, try re-doing that job on the test case report page.
Project Member

Comment 12 by ClusterFuzz, Sep 23 2016

Labels: ClusterFuzz-Verified
Status: Verified (was: Assigned)
ClusterFuzz testcase is verified as fixed, closing issue.

If this is incorrect, please add ClusterFuzz-Wrong label and re-open the issue.

Comment 13 by msten...@opera.com, Sep 28 2016

Status: Assigned (was: Verified)
#9 still reproducible here.
Project Member

Comment 14 by sheriffbot@chromium.org, Nov 22 2016

Labels: -Restrict-View-EditIssue
Removing EditIssue view restrictions from ClusterFuzz filed bugs. If you believe that this issue should still be restricted, please reapply the label.

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

Comment 15 by e...@chromium.org, Dec 14 2016

Labels: -Pri-1 Pri-2
Not a security bug and not happening in the wild, reducing priority.

Comment 16 by msten...@opera.com, Feb 17 2017

Still reproducible.

Comment 17 by msten...@opera.com, Jun 19 2017

Status: Fixed (was: Assigned)
Works fine now.

Sign in to add a comment