Crash in blink::ElementVisibilityObserver::stop |
|||||||||
Issue descriptionDetailed report: https://cluster-fuzz.appspot.com/testcase?key=4685916222521344 Fuzzer: inferno_twister Job Type: linux_asan_content_shell_drt Platform Id: linux Crash Type: UNKNOWN READ Crash Address: 0x000000000010 Crash State: blink::ElementVisibilityObserver::stop blink::HTMLMediaElement::onVisibilityChangedForAutoplay blink::ElementVisibilityObserver::onVisibilityChanged Regressed: https://cluster-fuzz.appspot.com/revisions?job=linux_asan_content_shell_drt&range=417794:417842 Minimized Testcase (155.12 Kb): https://cluster-fuzz.appspot.com/download/AMIfv97a5008rwpwaIjodyk9cY3x6hZiBW9nXSXCBqLlBrRtuLVFGCNx1hN57bk40SZxiisIjhFo88YS7-p7Xes1cxjg0HveCIdP2SSAsSKbntj-7b7Nc_drJGAlF0dfXO9UES0jz0r4gzqSyaonl7OLL5Dr8zYTWVuzLeVQD1IDazM0mwSwTXY?testcase_id=4685916222521344 Issue manually filed by: ajha See https://dev.chromium.org/Home/chromium-security/bugs/reproducing-clusterfuzz-bugs for more information.
,
Oct 17 2016
It was caused by https://codereview.chromium.org/2322143002 It seems that we now have a race (the crash isn`t actually 100% reproducible) between stopping the observation from `.muted = false;` and receiving a visibility change event because in the same event loop the element becomes visible. Sometimes, we will receive the event even though we disconnected the observer and we assume that if we receive an event, the observer is still here (so we call `->stop()` on it). The obvious fix is to stop making this assumption but I'm not sure that's the right fix because it sounds odd to receive events after asking to stop receiving them. Assigning to ojan@ who wrote the CL that changed the timing of IntersectionObserver. He might have insights regarding why things happen this way and the best way to fix this.
,
Oct 17 2016
It's seems reasonable to me that calling disconnect or unobserve should remove pending records for that element. szager, wdyt? If we change this, we should update the spec as well.
,
Oct 17 2016
Yeah, I think when we were using idle callback, we didn't want to remove pending records when disconnect or unobserve was called; but now that we're using post task, I think that's fine.
,
Oct 18 2016
,
Oct 18 2016
ClusterFuzz has detected this issue as fixed in range 425585:425587. Detailed report: https://cluster-fuzz.appspot.com/testcase?key=4685916222521344 Fuzzer: inferno_twister Job Type: linux_asan_content_shell_drt Platform Id: linux Crash Type: UNKNOWN READ Crash Address: 0x000000000010 Crash State: blink::ElementVisibilityObserver::stop blink::HTMLMediaElement::onVisibilityChangedForAutoplay blink::ElementVisibilityObserver::onVisibilityChanged Regressed: https://cluster-fuzz.appspot.com/revisions?job=linux_asan_content_shell_drt&range=417794:417842 Fixed: https://cluster-fuzz.appspot.com/revisions?job=linux_asan_content_shell_drt&range=425585:425587 Minimized Testcase (155.12 Kb): https://cluster-fuzz.appspot.com/download/AMIfv97a5008rwpwaIjodyk9cY3x6hZiBW9nXSXCBqLlBrRtuLVFGCNx1hN57bk40SZxiisIjhFo88YS7-p7Xes1cxjg0HveCIdP2SSAsSKbntj-7b7Nc_drJGAlF0dfXO9UES0jz0r4gzqSyaonl7OLL5Dr8zYTWVuzLeVQD1IDazM0mwSwTXY?testcase_id=4685916222521344 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.
,
Oct 18 2016
ClusterFuzz testcase is verified as fixed, closing issue. If this is incorrect, please add ClusterFuzz-Wrong label and re-open the issue.
,
Oct 18 2016
I think clusterfuzz is getting tricked by the flaky nature of this issue :)
,
Nov 22 2016
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
,
Jan 26 2017
Unable to reproduce and neither is clusterfuzz.
,
Sep 18 2017
We have made a bunch of changes on ClusterFuzz side, so resetting ClusterFuzz-Wrong label. |
|||||||||
►
Sign in to add a comment |
|||||||||
Comment 1 by ajha@chromium.org
, Oct 17 2016Components: Tools>Test>FindIt>WrongResult Blink>DOM
Labels: M-56 Te-Logged
Owner: mlamouri@chromium.org
Status: Assigned (was: Untriaged)