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

Issue 657443 link

Starred by 3 users

Issue metadata

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



Sign in to add a comment

Crash in blink::Document::updateStyleAndLayoutTreeIgnorePendingStylesheets

Project Member Reported by ClusterFuzz, Oct 19 2016

Issue description

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

Fuzzer: inferno_layout_test_unmodified
Job Type: linux_asan_content_shell_drt
Platform Id: linux

Crash Type: UNKNOWN READ
Crash Address: 0x000000000518
Crash State:
  blink::Document::updateStyleAndLayoutTreeIgnorePendingStylesheets
  blink::Document::updateStyleAndLayoutIgnorePendingStylesheets
  blink::Internals::updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks
  
Regressed: https://cluster-fuzz.appspot.com/revisions?job=linux_asan_content_shell_drt&range=283013:284047

Minimized Testcase (0.19 Kb): https://cluster-fuzz.appspot.com/download/AMIfv97cHQthInmeNGR123b7CTHzcd05eRAIcwOx8NNRH--I3h9pQju-EwkD8EpN6xC_aHeO3z7jTkb-m9Qi1SGKmc420F5adQ-iZIizZ-j31FPuHShouJl-LdTlLyR6wZbUFduvDFgHXPSTKHGy4XwON8nZ2MKsGg?testcase_id=4985580394119168

Issue filed automatically.

See https://dev.chromium.org/Home/chromium-security/bugs/reproducing-clusterfuzz-bugs for more information.
 
Owner: jsb...@chromium.org
Status: Assigned (was: Untriaged)
 jsbell @ could you please look into this.please feel free to re-assigned back if needed. thanks in advance !

Comment 2 by jsb...@chromium.org, Oct 28 2016

Cc: jsb...@chromium.org
Owner: nainar@chromium.org
My change was mechanical replacement, so "not it". I also know nothing about style/layout...

nainar@ - can you take a peek and see if you can route this appropriately?

Comment 3 by nainar@chromium.org, Oct 28 2016

Cc: nainar@chromium.org
Owner: r...@opera.com
Correct me if I am wrong here but the two suspected CLs of mine are renames of functions. So not me. Passing on to rune@ to take a look. 

Comment 4 by nainar@chromium.org, Oct 28 2016

For added context this is what ClusterFuzz has to say: 

Author: rune@opera.com
Project: chromium
Changelist: https://chromium.googlesource.com/chromium/src/+/192cf55fa442b0f947d52f7343a76565c4622273
Time: Wed Mar 04 19:57:51 2015
The CL last changed line 1957 of file Document.cpp, which is stack frame 1.

And the stack trace is as follows:

#0 0xaf8f30a in IgnoringPendingStylesheet third_party/WebKit/Source/core/dom/StyleEngine.h:67:31
    #1 0xaf8f30a in blink::Document::updateStyleAndLayoutTreeIgnorePendingStylesheets() third_party/WebKit/Source/core/dom/Document.cpp:1957
    #2 0xaf8df52 in blink::Document::updateStyleAndLayoutIgnorePendingStylesheets(blink::Document::RunPostLayoutTasks) third_party/WebKit/Source/core/dom/Document.cpp:1983:5
    #3 0x53cc503 in blink::Internals::updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks(blink::Node*, blink::ExceptionState&) third_party/WebKit/Source/core/testing/Internals.cpp:2007:15
    #4 0x54e155b in updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasksMethod out/Release/gen/blink/bindings/core/v8/V8Internals.cpp:3785:11
    #5 0x54e155b in blink::InternalsV8Internal::updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasksMethodCallback(v8::FunctionCallbackInfo<v8::Value> const&) out/Release/gen/blink/bindings/core/v8/V8Internals.cpp:3793
    #6 0x12d13d1 in v8::internal::FunctionCallbackArguments::Call(void (*)(v8::FunctionCallbackInfo<v8::Value> const&)) v8/src/api-arguments.cc:21:3
    #7 0x14b5ed9 in v8::internal::MaybeHandle<v8::internal::Object> v8::internal::(anonymous namespace)::HandleApiCallHelper<false>(v8::internal::Isolate*, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::FunctionTemplateInfo>, v8::internal::Handle<v8::internal::Object>, v8::internal::BuiltinArguments) v8/src/builtins/builtins-api.cc:106:36
    #8 0x14b2db6 in v8::internal::Builtin_Impl_HandleApiCall(v8::internal::BuiltinArguments, v8::internal::Isolate*) v8/src/builtins/builtins-api.cc:135:5
    #7 0x7fd7079063a6  (<unknown module>)
    #8 0x7fd7079778a5  (<unknown module>)
    #9 0x7fd707949ee2  (<unknown module>)
    #10 0x7fd707929f20  (<unknown module>)
    #9 0x204248e in v8::internal::(anonymous namespace)::Invoke(v8::internal::Isolate*, bool, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*, v8::internal::Handle<v8::internal::Object>) v8/src/execution.cc:141:13
    #10 0x20418d7 in v8::internal::Execution::Call(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*) v8/src/execution.cc:178:10
    #11 0x12f342e in v8::Script::Run(v8::Local<v8::Context>) v8/src/api.cc:1848:23
    #12 0xa4434b9 in blink::V8ScriptRunner::runCompiledScript(v8::Isolate*, v8::Local<v8::Script>, blink::ExecutionContext*) third_party/WebKit/Source/bindings/core/v8/V8ScriptRunner.cpp:417:26
    #13 0xa3a05a9 in blink::ScriptController::executeScriptAndReturnValue(v8::Local<v8::Context>, blink::ScriptSourceCode const&, blink::AccessControlStatus) third_party/WebKit/Source/bindings/core/v8/ScriptController.cpp:149:21
    #14 0xa3a6c54 in blink::ScriptController::evaluateScriptInMainWorld(blink::ScriptSourceCode const&, blink::AccessControlStatus, blink::ScriptController::ExecuteScriptPolicy) third_party/WebKit/Source/bindings/core/v8/ScriptController.cpp:395:35
    #15 0xa3a7319 in blink::ScriptController::executeScriptInMainWorld(blink::ScriptSourceCode const&, blink::AccessControlStatus) third_party/WebKit/Source/bindings/core/v8/ScriptController.cpp:373:5
    #16 0x11a97499 in blink::ScriptLoader::executeScript(blink::ScriptSourceCode const&) third_party/WebKit/Source/core/dom/ScriptLoader.cpp:429:21
    #17 0x11a8dc40 in blink::ScriptLoader::prepareScript(WTF::TextPosition const&, blink::ScriptLoader::LegacyTypeSupport) third_party/WebKit/Source/core/dom/ScriptLoader.cpp:276:14
    #18 0xb850667 in blink::HTMLScriptRunner::runScript(blink::Element*, WTF::TextPosition const&) third_party/WebKit/Source/core/html/parser/HTMLScriptRunner.cpp:427:23
    #19 0xb84f9de in blink::HTMLScriptRunner::execute(blink::Element*, WTF::TextPosition const&) third_party/WebKit/Source/core/html/parser/HTMLScriptRunner.cpp:280:5
    #20 0xb7f99d0 in runScriptsForPausedTreeBuilder third_party/WebKit/Source/core/html/parser/HTMLDocumentParser.cpp:273:25
    #21 0xb7f99d0 in blink::HTMLDocumentParser::processTokenizedChunkFromBackgroundParser(std::__1::unique_ptr<blink::HTMLDocumentParser::TokenizedChunk, std::__1::default_delete<blink::HTMLDocumentParser::TokenizedChunk> >) third_party/WebKit/Source/core/html/parser/HTMLDocumentParser.cpp:518
    #22 0xb7f1c7f in blink::HTMLDocumentParser::pumpPendingSpeculations() third_party/WebKit/Source/core/html/parser/HTMLDocumentParser.cpp:575:36
    #23 0x9f48671 in Invoke<std::__1::unique_ptr<blink::WebTaskRunner::Task, std::__1::default_delete<blink::WebTaskRunner::Task> > > base/bind_internal.h:164:12
    #24 0x9f48671 in MakeItSo<void (*const &)(std::__1::unique_ptr<blink::WebTaskRunner::Task, std::__1::default_delete<blink::WebTaskRunner::Task> >), std::__1::unique_ptr<blink::WebTaskRunner::Task, std::__1::default_delete<blink::WebTaskRunner::Task> > > base/bind_internal.h:283
    #25 0x9f48671 in RunImpl<void (*const &)(std::__1::unique_ptr<blink::WebTaskRunner::Task, std::__1::default_delete<blink::WebTaskRunner::Task> >), const std::__1::tuple<base::internal::PassedWrapper<std::__1::unique_ptr<blink::WebTaskRunner::Task, std::__1::default_delete<blink::WebTaskRunner::Task> > > > &, 0> base/bind_internal.h:346
    #26 0x9f48671 in base::internal::Invoker<base::internal::BindState<void (*)(std::__1::unique_ptr<blink::WebTaskRunner::Task, std::__1::default_delete<blink::WebTaskRunner::Task> >), base::internal::PassedWrapper<std::__1::unique_ptr<blink::WebTaskRunner::Task, std::__1::default_delete<blink::WebTaskRunner::Task> > > >, void ()>::Run(base::internal::BindStateBase*) base/bind_internal.h:324
    #27 0x58fd540 in Run base/callback.h:388:12
    #28 0x58fd540 in base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask const&) base/debug/task_annotator.cc:54
    #29 0x9f26756 in blink::scheduler::TaskQueueManager::ProcessTaskFromWorkQueue(blink::scheduler::internal::WorkQueue*, blink::scheduler::internal::TaskQueueImpl::Task*) third_party/WebKit/Source/platform/scheduler/base/task_queue_manager.cc:320:19
    #30 0x9f21a4d in blink::scheduler::TaskQueueManager::DoWork(base::TimeTicks, bool) third_party/WebKit/Source/platform/scheduler/base/task_queue_manager.cc:221:13
    #31 0x58fd540 in Run base/callback.h:388:12
    #32 0x58fd540 in base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask const&) base/debug/task_annotator.cc:54
    #33 0x5746578 in base::MessageLoop::RunTask(base::PendingTask const&) base/message_loop/message_loop.cc:488:19
    #34 0x574740f in base::MessageLoop::DeferOrRunPendingTask(base::PendingTask) base/message_loop/message_loop.cc:497:5
    #35 0x574894e in base::MessageLoop::DoWork() base/message_loop/message_loop.cc:621:13
    #36 0x57527ed in base::MessagePumpDefault::Run(base::MessagePump::Delegate*) base/message_loop/message_pump_default.cc:35:31
    #37 0x57bb4e4 in base::RunLoop::Run() base/run_loop.cc:35:10
    #38 0x94cadbd in content::RendererMain(content::MainFunctionParams const&) content/renderer/renderer_main.cc:198:23
    #39 0x3ee8cb1 in content::RunZygote(content::MainFunctionParams const&, content::ContentMainDelegate*) content/app/content_main_runner.cc:343:14
    #40 0x3eed556 in content::ContentMainRunnerImpl::Run() content/app/content_main_runner.cc:786:12
    #41 0x3ed1cdd in content::ContentMain(content::ContentMainParams const&) content/app/content_main.cc:20:28
    #42 0x514c8a in main content/shell/app/shell_main.cc:48:10
    #43 0x7fd8825f4f44 in __libc_start_main /build/eglibc-oGUzwX/eglibc-2.19/csu/libc-start.c:287

Comment 5 by r...@opera.com, Oct 28 2016

git blames for finding the offending CL is almost never correct, and I doubt mine is to blame, but the crash is straight-forward to reproduce, and it should be simple to fix.

Comment 6 by r...@opera.com, Oct 28 2016

Status: Started (was: Assigned)

Comment 8 by r...@opera.com, Oct 28 2016

Components: Blink>Internals

Comment 10 by r...@opera.com, Oct 28 2016

Status: Fixed (was: Started)
Project Member

Comment 11 by ClusterFuzz, Oct 29 2016

ClusterFuzz has detected this issue as fixed in range 428077:428348.

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

Fuzzer: inferno_layout_test_unmodified
Job Type: linux_asan_content_shell_drt
Platform Id: linux

Crash Type: UNKNOWN READ
Crash Address: 0x000000000518
Crash State:
  blink::Document::updateStyleAndLayoutTreeIgnorePendingStylesheets
  blink::Document::updateStyleAndLayoutIgnorePendingStylesheets
  blink::Internals::updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks
  
Regressed: https://cluster-fuzz.appspot.com/revisions?job=linux_asan_content_shell_drt&range=283013:284047
Fixed: https://cluster-fuzz.appspot.com/revisions?job=linux_asan_content_shell_drt&range=428077:428348

Minimized Testcase (0.19 Kb): https://cluster-fuzz.appspot.com/download/AMIfv97cHQthInmeNGR123b7CTHzcd05eRAIcwOx8NNRH--I3h9pQju-EwkD8EpN6xC_aHeO3z7jTkb-m9Qi1SGKmc420F5adQ-iZIizZ-j31FPuHShouJl-LdTlLyR6wZbUFduvDFgHXPSTKHGy4XwON8nZ2MKsGg?testcase_id=4985580394119168

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.
Cc: est...@chromium.org alex...@chromium.org r...@opera.com
 Issue 582494  has been merged into this issue.
Project Member

Comment 13 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

Sign in to add a comment