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

Issue 668742 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Nov 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 1
Type: Bug

Blocking:
issue 468240



Sign in to add a comment

!ThreadState::current()->isGCForbidden() in ScriptWrappableVisitor.cpp

Project Member Reported by ClusterFuzz, Nov 25 2016

Issue description

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

Fuzzer: mbarbella_js_mutation_layout
Job Type: linux_asan_chrome_v8_ignition
Platform Id: linux

Crash Type: CHECK failure
Crash Address: 
Crash State:
  !ThreadState::current()->isGCForbidden() in ScriptWrappableVisitor.cpp
  blink::ScriptWrappableVisitor::TracePrologue
  v8::internal::IncrementalMarking::StartMarking
  
Regressed: V8: r41193:41199

Minimized Testcase (0.36 Kb):
Download: https://cluster-fuzz.appspot.com/download/AMIfv96gjvfT2Y1HNTOsawy3dKRq1RwiiYI5rqeS8dFtvljE1gx692WD0g6A3z8Bq7PI9r4FTRjwJ8gc9tYj4-1Rqgm1qIrtBso8pIErZolTd_FP7_xEYJ0y1zZnCw6I0jPBL83_Xi2NCPbUa1DqsbMrUFOzuhKpFg?testcase_id=5428050075582464
<script>
   function __f_12(nest) {
    var __v_14 = [];
    for (var __v_12 = 0; __v_12 < nest; ++__v_12)
        __v_14.push('* > ');
}
__f_12(400000);
Object.prototype.foo = function() {
  top.postMessage('PASS: Called the correct method.', '*');
}
  top.postMessage('ready', '*');
window.addEventListener('message', function() {
  Object.prototype.foo();
});
</script>


Issue filed automatically.

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

Comment 1 by ajha@chromium.org, Nov 28 2016

Labels: M-57
Components: Blink>Bindings
Owner: mlippautz@chromium.org
Status: Assigned (was: Untriaged)
Unable to find the possible suspect from find it and CL.
Using Code Search for the file, "ScriptWrappableVisitor.cpp", assigning to the concern owner --

@mlippautz -- Could you please look into the issue, kindly re-assign if this is not related to your changes.
Thank You.
Components: Blink>JavaScript>GC
Status: Started (was: Assigned)
Thanks, taking a look!
Blocking: 468240
Labels: Test-Predator-Wrong
Project Member

Comment 6 by bugdroid1@chromium.org, Nov 28 2016

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

commit ca07ee393934e403d0bb2e0d8790d8edbbe3df96
Author: mlippautz <mlippautz@chromium.org>
Date: Mon Nov 28 12:07:26 2016

[wrapper-tracing] Avoid GC during PostMessageTimer construction

BUG= chromium:668742 ,chromium:668059, chromium:668060

Review-Url: https://codereview.chromium.org/2529353002
Cr-Commit-Position: refs/heads/master@{#434638}

[modify] https://crrev.com/ca07ee393934e403d0bb2e0d8790d8edbbe3df96/third_party/WebKit/Source/core/frame/LocalDOMWindow.cpp

Status: Fixed (was: Started)
Project Member

Comment 8 by ClusterFuzz, Nov 29 2016

ClusterFuzz has detected this issue as fixed in range 41295:41323.

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

Fuzzer: mbarbella_js_mutation_layout
Job Type: linux_asan_chrome_v8_ignition
Platform Id: linux

Crash Type: CHECK failure
Crash Address: 
Crash State:
  !ThreadState::current()->isGCForbidden() in ScriptWrappableVisitor.cpp
  blink::ScriptWrappableVisitor::TracePrologue
  v8::internal::IncrementalMarking::StartMarking
  
Regressed: V8: r41193:41199
Fixed: V8: r41295:41323

Minimized Testcase (0.36 Kb):
Download: https://cluster-fuzz.appspot.com/download/AMIfv96gjvfT2Y1HNTOsawy3dKRq1RwiiYI5rqeS8dFtvljE1gx692WD0g6A3z8Bq7PI9r4FTRjwJ8gc9tYj4-1Rqgm1qIrtBso8pIErZolTd_FP7_xEYJ0y1zZnCw6I0jPBL83_Xi2NCPbUa1DqsbMrUFOzuhKpFg?testcase_id=5428050075582464
<script>
   function __f_12(nest) {
    var __v_14 = [];
    for (var __v_12 = 0; __v_12 < nest; ++__v_12)
        __v_14.push('* > ');
}
__f_12(400000);
Object.prototype.foo = function() {
  top.postMessage('PASS: Called the correct method.', '*');
}
  top.postMessage('ready', '*');
window.addEventListener('message', function() {
  Object.prototype.foo();
});
</script>


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