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

Issue 592160 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Mar 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android
Pri: 2
Type: Bug



Sign in to add a comment

DCHECK fail in tile_manager.cc(206)

Project Member Reported by wkorman@chromium.org, Mar 5 2016

Issue description

Breakout from http://crbug.com/590856 we are hitting a DCHECK in tile_manager.cc. Steps to reproduce:

- sync to ToT, build Linux Debug
- hack your chrome_content_renderer_client.cc per attached patch (may not be necessary)
- visit http://www.deepika.com
- scroll up and down extensively, repeatedly, for potentially a couple of minutes

BEGIN PATCH
diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc
index 8486b3e..e74e6d8 100644
--- a/chrome/renderer/chrome_content_renderer_client.cc
+++ b/chrome/renderer/chrome_content_renderer_client.cc
@@ -556,39 +556,12 @@ bool ChromeContentRendererClient::OverrideCreatePlugin(
     const WebPluginParams& params,
     WebPlugin** plugin) {
   std::string orig_mime_type = params.mimeType.utf8();
-#if defined(ENABLE_EXTENSIONS)
-  if (!ChromeExtensionsRendererClient::GetInstance()->OverrideCreatePlugin(
-          render_frame, params)) {
-    return false;
-  }
-#endif
 
   GURL url(params.url);
-#if defined(ENABLE_PLUGINS)
-  ChromeViewHostMsg_GetPluginInfo_Output output;
-  WebString top_origin = frame->top()->securityOrigin().toString();
-  render_frame->Send(new ChromeViewHostMsg_GetPluginInfo(
-      render_frame->GetRoutingID(), url, blink::WebStringToGURL(top_origin),
-      orig_mime_type, &output));
-  *plugin = CreatePlugin(render_frame, frame, params, output);
-#else  // !defined(ENABLE_PLUGINS)
-
-#if defined(OS_ANDROID)
-  if (plugins::MobileYouTubePlugin::IsYouTubeURL(url, orig_mime_type)) {
-    base::StringPiece template_html(
-        ResourceBundle::GetSharedInstance().GetRawDataResource(
-            IDR_MOBILE_YOUTUBE_PLUGIN_HTML));
-    *plugin = (new plugins::MobileYouTubePlugin(render_frame, frame, params,
-                                                template_html))->plugin();
-    return true;
-  }
-#endif  // defined(OS_ANDROID)
-
   PluginUMAReporter::GetInstance()->ReportPluginMissing(orig_mime_type, url);
   *plugin = NonLoadablePluginPlaceholder::CreateNotSupportedPlugin(
                 render_frame, frame, params)->plugin();
 
-#endif  // defined(ENABLE_PLUGINS)
   return true;
 }


BEGIN SAMPLE CRASH STACK TRACE

[1:1:0304/163554:WARNING:webmediaplayer_impl.cc(311)] Using MultibufferDataSource
[1:1:0304/163557:ERROR:phishing_dom_feature_extractor.cc(196)] Feature extraction took too long, giving up
[1:5:0304/163619:FATAL:tile_manager.cc(206)] Check failed: decode_it == graph->nodes.end() || !high_priority || static_cast<uint16_t>(TASK_CATEGORY_FOREGROUND) == decode_it->category. 
#0 0x7f52bb76e89e base::debug::StackTrace::StackTrace()
#1 0x7f52bb7c9c6f logging::LogMessage::~LogMessage()
#2 0x7f52ba0cd383 cc::(anonymous namespace)::InsertNodesForRasterTask()
#3 0x7f52ba0cc438 cc::TileManager::ScheduleTasks()
#4 0x7f52ba0c9c60 cc::TileManager::PrepareTiles()
#5 0x7f52ba124406 cc::LayerTreeHostImpl::PrepareTiles()
#6 0x7f52ba123167 cc::LayerTreeHostImpl::CommitComplete()
#7 0x7f52ba1aa30f cc::ProxyImpl::ScheduledActionCommit()
#8 0x7f52ba077d2d cc::Scheduler::ProcessScheduledActions()
#9 0x7f52ba0786be cc::Scheduler::NotifyReadyToCommit()
#10 0x7f52ba1a5b0c cc::ProxyImpl::StartCommitOnImpl()
#11 0x7f52ba1bbd89 _ZN4base8internal15RunnableAdapterIMN2cc9ProxyImplEFvPNS2_15CompletionEventEPNS2_13LayerTreeHostENS_9TimeTicksEbEE3RunIJRKS5_RKS7_RKS8_RKbEEEvPS3_DpOT_
#12 0x7f52ba1bbc08 _ZN4base8internal12InvokeHelperILb1EvNS0_15RunnableAdapterIMN2cc9ProxyImplEFvPNS3_15CompletionEventEPNS3_13LayerTreeHostENS_9TimeTicksEbEEEE8MakeItSoINS_7WeakPtrIS4_EEJRKS6_RKS8_RKS9_RKbEEEvSC_T_DpOT0_
#13 0x7f52ba1bbb59 _ZN4base8internal7InvokerINS_13IndexSequenceIJLm0ELm1ELm2ELm3ELm4EEEENS0_9BindStateINS0_15RunnableAdapterIMN2cc9ProxyImplEFvPNS6_15CompletionEventEPNS6_13LayerTreeHostENS_9TimeTicksEbEEEFvPS7_S9_SB_SC_bEJRNS_7WeakPtrIS7_EES9_RSB_RSC_bEEENS0_12InvokeHelperILb1EvSF_EEFvvEE3RunEPNS0_13BindStateBaseE
#14 0x7f52bb75602e base::Callback<>::Run()
#15 0x7f52bb773d5e base::debug::TaskAnnotator::RunTask()
#16 0x7f52bb7e5f8f base::MessageLoop::RunTask()
#17 0x7f52bb7e6218 base::MessageLoop::DeferOrRunPendingTask()
#18 0x7f52bb7e63e2 base::MessageLoop::DoWork()
#19 0x7f52bb7f7bc3 base::MessagePumpDefault::Run()
#20 0x7f52bb7e59bf base::MessageLoop::RunHandler()
#21 0x7f52bb85cb64 base::RunLoop::Run()
#22 0x7f52bb7e4a64 base::MessageLoop::Run()
#23 0x7f52bb8ceea9 base::Thread::Run()
#24 0x7f52bb8cf1f9 base::Thread::ThreadMain()
#25 0x7f52bb8baeca base::(anonymous namespace)::ThreadFunc()
#26 0x7f52acf7c182 start_thread
#27 0x7f52a8e5647d clone

Received signal 6
#0 0x7f52bb76e89e base::debug::StackTrace::StackTrace()
#1 0x7f52bb76e3df base::debug::(anonymous namespace)::StackDumpSignalHandler()
#2 0x7f52acf84340 <unknown>
#3 0x7f52a8d92cc9 gsignal
#4 0x7f52a8d960d8 abort
#5 0x7f52bb76b466 base::debug::(anonymous namespace)::DebugBreak()
#6 0x7f52bb76b448 base::debug::BreakDebugger()
#7 0x7f52bb7c9fbd logging::LogMessage::~LogMessage()
#8 0x7f52ba0cd383 cc::(anonymous namespace)::InsertNodesForRasterTask()
#9 0x7f52ba0cc438 cc::TileManager::ScheduleTasks()
#10 0x7f52ba0c9c60 cc::TileManager::PrepareTiles()
#11 0x7f52ba124406 cc::LayerTreeHostImpl::PrepareTiles()
#12 0x7f52ba123167 cc::LayerTreeHostImpl::CommitComplete()
#13 0x7f52ba1aa30f cc::ProxyImpl::ScheduledActionCommit()
#14 0x7f52ba077d2d cc::Scheduler::ProcessScheduledActions()
#15 0x7f52ba0786be cc::Scheduler::NotifyReadyToCommit()
#16 0x7f52ba1a5b0c cc::ProxyImpl::StartCommitOnImpl()
#17 0x7f52ba1bbd89 _ZN4base8internal15RunnableAdapterIMN2cc9ProxyImplEFvPNS2_15CompletionEventEPNS2_13LayerTreeHostENS_9TimeTicksEbEE3RunIJRKS5_RKS7_RKS8_RKbEEEvPS3_DpOT_
#18 0x7f52ba1bbc08 _ZN4base8internal12InvokeHelperILb1EvNS0_15RunnableAdapterIMN2cc9ProxyImplEFvPNS3_15CompletionEventEPNS3_13LayerTreeHostENS_9TimeTicksEbEEEE8MakeItSoINS_7WeakPtrIS4_EEJRKS6_RKS8_RKS9_RKbEEEvSC_T_DpOT0_
#19 0x7f52ba1bbb59 _ZN4base8internal7InvokerINS_13IndexSequenceIJLm0ELm1ELm2ELm3ELm4EEEENS0_9BindStateINS0_15RunnableAdapterIMN2cc9ProxyImplEFvPNS6_15CompletionEventEPNS6_13LayerTreeHostENS_9TimeTicksEbEEEFvPS7_S9_SB_SC_bEJRNS_7WeakPtrIS7_EES9_RSB_RSC_bEEENS0_12InvokeHelperILb1EvSF_EEFvvEE3RunEPNS0_13BindStateBaseE
#20 0x7f52bb75602e base::Callback<>::Run()
#21 0x7f52bb773d5e base::debug::TaskAnnotator::RunTask()
#22 0x7f52bb7e5f8f base::MessageLoop::RunTask()
#23 0x7f52bb7e6218 base::MessageLoop::DeferOrRunPendingTask()
#24 0x7f52bb7e63e2 base::MessageLoop::DoWork()
#25 0x7f52bb7f7bc3 base::MessagePumpDefault::Run()
#26 0x7f52bb7e59bf base::MessageLoop::RunHandler()
#27 0x7f52bb85cb64 base::RunLoop::Run()
#28 0x7f52bb7e4a64 base::MessageLoop::Run()
#29 0x7f52bb8ceea9 base::Thread::Run()
#30 0x7f52bb8cf1f9 base::Thread::ThreadMain()
#31 0x7f52bb8baeca base::(anonymous namespace)::ThreadFunc()
#32 0x7f52acf7c182 start_thread
#33 0x7f52a8e5647d clone
  r8: 00007f529aaf50b0  r9: 0000000000000000 r10: 0000000000000008 r11: 0000000000000202
 r12: 0000000000000000 r13: 0000000000000000 r14: 00007f529aaf99c0 r15: 00007f529aaf9700
  di: 0000000000000001  si: 0000000000000005  bp: 00007f529aaf54f0  bx: 00007f529aaf9700
  dx: 0000000000000006  ax: 0000000000000000  cx: ffffffffffffffff  sp: 00007f529aaf53b8
  ip: 00007f52a8d92cc9 efl: 0000000000000202 cgf: 0000000000000033 erf: 0000000000000000
 trp: 0000000000000000 msk: 0000000000000000 cr2: 0000000000000000
[end of stack trace]
[20566:20566:0304/163627:ERROR:process_metrics_linux.cc(136)] opendir(/proc/0/task): No such file or directory

 

Comment 1 by roc...@chromium.org, Mar 11 2016

Labels: OS-Android
I'm seeing this on ToT very frequently in Android builds.

Comment 2 by roc...@chromium.org, Mar 11 2016

(with no patches applied)

Comment 3 by ericrk@chromium.org, Mar 14 2016

Cc: ericrk@chromium.org
 Issue 594413  has been merged into this issue.
Project Member

Comment 4 by bugdroid1@chromium.org, Mar 24 2016

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

commit c38d1f4bce5165b0114fc9c429812e93f64850bf
Author: ericrk <ericrk@chromium.org>
Date: Thu Mar 24 20:03:13 2016

Handle out of order tile priorities when building graph

Currently, InsertNodesForRasterTask in tile_manager.cc assumes that
all high priority tasks will be added before low priority ones. This is
generally true, but two cases violate this:
- low resolution tiles in the NOW bin may have higher priority than
  other tiles that are required for draw/activation.
- some SOON tiles not required for activation may come before SOON
  tiles which are required for activation. (bug files)

To address the first issue, the calculation of high_priority now takes
the NOW bucket into account. To fix the second issue,
InsertNodesForRasterTask now handles out-of-order priorities and a bug
has been filed to fix this.

BUG= 592160 
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

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

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

[modify] https://crrev.com/c38d1f4bce5165b0114fc9c429812e93f64850bf/cc/tiles/tile_manager.cc

Comment 5 by ericrk@chromium.org, Mar 24 2016

Status: Fixed (was: Assigned)

Sign in to add a comment