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

Issue 686469 link

Starred by 3 users

Issue metadata

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



Sign in to add a comment

!isDirty() in RootInlineBox.h

Project Member Reported by ClusterFuzz, Jan 28 2017

Issue description

Comment 1 by tkent@chromium.org, Jan 30 2017

Components: Blink>Layout
Cc: msrchandra@chromium.org
Labels: Test-Predator-Wrong M-58
Owner: kojii@chromium.org
Status: Assigned (was: Untriaged)
Predator and CL did not find any possible suspects.
Using Code Search for the file, "RootInlineBox.h" assigning to the concern owner.
Suspecting Commit#
https://chromium.googlesource.com/chromium/src/+/2ac0bb3d271e109b6f71929eecc1e44442f9576b

@kojii -- Could you please look into the issue, kindly re-assign if this is not related to your changes.
Thank You.

Comment 3 by kojii@chromium.org, Jan 30 2017

Not that one...

I can't see the regression range, but isn't there anything related with floats or other line layout?

If none, this might be an old one, just started to trigger coincidentally. I can take a look, but not this week since I'm away from my main machine.

Comment 4 by kojii@chromium.org, Feb 7 2017

Cc: kojii@chromium.org
Owner: msten...@opera.com
mstensho@, any ideas? The call to placeNewFloats () in LineBreaker::skipLeadingWhitespace() seems to be changed in crrev.com/1899193007

Comment 5 by msten...@opera.com, Feb 7 2017

Don't know what introduced this, or if it's something old (nothing in the suggested regression range seems relevant), but LineBoxList::dirtyLinesFromChangedChild() appears to go on a joyride  backwards in the layout tree if the child in question is a float. It ends up escaping the block formatting context it ought to be confined to, and will mark some earlier, completely irrelevant line box, as dirty. In our case it's the line box that we're about to finish laying out, and it asserts when it finds itself dirty when attempting to add a float.

This bug causes visible layout problems, in addition to the assertion failure.

Comment 6 by msten...@opera.com, Feb 8 2017

Cc: robhogan@chromium.org
Introduced by https://codereview.chromium.org/2411773003

Fix attempt here: https://codereview.chromium.org/2686913002

Comment 8 by msten...@opera.com, Feb 9 2017

Status: Fixed (was: Assigned)
Project Member

Comment 9 by ClusterFuzz, Feb 10 2017

ClusterFuzz has detected this issue as fixed in range 449231:449250.

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

Fuzzer: inferno_twister
Job Type: linux_debug_content_shell_drt
Platform Id: linux

Crash Type: CHECK failure
Crash Address: 
Crash State:
  !isDirty() in RootInlineBox.h
  blink::RootInlineBox::appendFloat
  blink::LayoutBlockFlow::appendFloatingObjectToLastLine
  
Sanitizer: address (ASAN)

Regressed: https://cluster-fuzz.appspot.com/revisions?job=linux_debug_content_shell_drt&range=443258:443393
Fixed: https://cluster-fuzz.appspot.com/revisions?job=linux_debug_content_shell_drt&range=449231:449250

Reproducer Testcase: https://cluster-fuzz.appspot.com/download/AMIfv95t6t_ABjWrGdPzjfOtcNWgZ80PVwJ0_JgjZc_qfc_AH85ZQqS3NmfcXIsJqRhSSu6CmhKGNWHmVvCNZTijhKVtWs5O2dVB6F8oOu-wbi1CcEDIKJiG7AROQK4L6lXVtvt6hSOlKmhkaF0NdpFBz_r_DUflbbHN1Wee-1yyed13g67OZAs47GcJ4cri5mssy4u2uHRsUAVIm7Pjkied9PcP8srPz-iW_Rkq5pbDwh54f-ut3REBcGL1rFv0CZjRvALLJbjxGywpEPoG_xpxjvjNZdTlL5IcBVi90YE2ahVyg4_YABszVDAukGKvMBOnMe2Rou51VbY07Mg9oS8X1-UIk_H9_stSsVIPUb2hFo3Gzws_5tE?testcase_id=4599355324760064


Additional requirements: Requires HTTP

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.

Sign in to add a comment