New issue
Advanced search Search tips

Issue 793964 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Dec 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

Layout tests flakily crash in IdleSpellCheckCallback.cpp

Project Member Reported by wangxianzhu@chromium.org, Dec 11 2017

Issue description

1. Build release-with-dcheck version of content_shell;
2. run-webkit-tests paint/invalidation/svg/image-animation-with-zoom.html --child-processes=1 --iterations=100

Actual: sometimes the test may crash one or more times.

Crash stack:

crash log for renderer (pid <unknown>):
STDERR: [1:1:1211/144040.215564:FATAL:IdleSpellCheckCallback.cpp(171)] Check failed: GetFrame().GetDocument()->IsActive(). 
STDERR: #0 0x00000307fe4c base::debug::StackTrace::StackTrace()
STDERR: #1 0x00000309e51c logging::LogMessage::~LogMessage()
STDERR: #2 0x000005041438 blink::IdleSpellCheckCallback::invoke()
STDERR: #3 0x000004f0faaf blink::ScriptedIdleTaskController::RunCallback()
STDERR: #4 0x000004f0f238 blink::internal::IdleRequestCallbackWrapper::IdleTaskFired()
STDERR: #5 0x000004f114e0 _ZN4base8internal7InvokerINS0_9BindStateIPFv13scoped_refptrIN5blink8internal26IdleRequestCallbackWrapperEEEJS7_EEEFvvEE7RunOnceEPNS0_13BindStateBaseE
STDERR: #6 0x0000026e25d0 WTF::ThreadCheckingCallbackWrapper<>::Run()
STDERR: #7 0x0000027709c4 blink::scheduler::WebSchedulerImpl::RunIdleTask()

I guess !GetFrame().GetDocument()->IsActive() is a valid (though rare) situation that should be handled instead of DCHECK?

 
Cc: altimin@chromium.org
Seems related to r520908.

Spellchecker used to assume that idle tasks are fired only when document is active, which is incorrect after r520908.

I'll change that DCHECK into a return.
Project Member

Comment 2 by bugdroid1@chromium.org, Dec 12 2017

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

commit 08207a070a276132fdfcfdae556d4b72b66f7453
Author: Xiaocheng Hu <xiaochengh@chromium.org>
Date: Tue Dec 12 04:06:12 2017

Handle inactive document in IdleSpellCheckCallback

IdleSpellCheckCallback asserts that the document is active when the
callback is invoked, which is not true.

This patch changes the assertion into aborting on inactive document.

Bug:  793964 
Change-Id: I4ff65ba1bdb8a7cc7f14a1fbbea2be90a337f745
Reviewed-on: https://chromium-review.googlesource.com/820604
Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org>
Commit-Queue: Xiaocheng Hu <xiaochengh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#523325}
[modify] https://crrev.com/08207a070a276132fdfcfdae556d4b72b66f7453/third_party/WebKit/Source/core/editing/spellcheck/IdleSpellCheckCallback.cpp

Status: Fixed (was: Assigned)

Sign in to add a comment