[Webkit-unassigned] [Bug 188728] Various IndexDB tests abandon documents

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Aug 22 20:54:29 PDT 2018


https://bugs.webkit.org/show_bug.cgi?id=188728

--- Comment #5 from Simon Fraser (smfr) <simon.fraser at apple.com> ---
I think what's happening here is this:

1. The test runs, and says it's done, but there are still a bunch of DB operations pending.
2. In WebKtTestRunner, we immediately load about:blank. This load causes us to call IDBRequest::stop() on several IDB requests:

1   0x1f1621f75 WebCore::IDBRequest::stop()
2   0x1f219fbd5 auto WebCore::ScriptExecutionContext::stopActiveDOMObjects()::$_5::operator()<WebCore::ActiveDOMObject>(WebCore::ActiveDOMObject&) const
3   0x1f219fb84 WTF::Function<WebCore::ScriptExecutionContext::ShouldContinue (WebCore::ActiveDOMObject&)>::CallableWrapper<WebCore::ScriptExecutionContext::stopActiveDOMObjects()::$_5>::call(WebCore::ActiveDOMObject&)
4   0x1f2187060 WTF::Function<WebCore::ScriptExecutionContext::ShouldContinue (WebCore::ActiveDOMObject&)>::operator()(WebCore::ActiveDOMObject&) const
5   0x1f2186cb3 WebCore::ScriptExecutionContext::forEachActiveDOMObject(WTF::Function<WebCore::ScriptExecutionContext::ShouldContinue (WebCore::ActiveDOMObject&)> const&) const
6   0x1f2187294 WebCore::ScriptExecutionContext::stopActiveDOMObjects()
7   0x1f1fea655 WebCore::Document::stopActiveDOMObjects()
8   0x1f1fe9e8c WebCore::Document::prepareForDestruction()
9   0x1f2a0d620 WebCore::Frame::setView(WTF::RefPtr<WebCore::FrameView, WTF::DumbPtrTraits<WebCore::FrameView> >&&)
10  0x1f2a1194b WebCore::Frame::createView(WebCore::IntSize const&, WebCore::Color const&, bool, WebCore::IntSize const&, WebCore::IntRect const&, bool, WebCore::ScrollbarMode, bool, WebCore::ScrollbarMode, bool)
11  0x10b9039da WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage()
12  0x1f2846955 WebCore::FrameLoader::transitionToCommitted(WebCore::CachedPage*)
13  0x1f2845990 WebCore::FrameLoader::commitProvisionalLoad()
14  0x1f27ea8bc WebCore::DocumentLoader::commitIfReady()

3. We get to IDBConnectionToServer::didDeleteDatabase() with IDBResultType::DeleteDatabaseSuccess, but m_contextStopped is true, so we never enqueue a "success" event.

This leaves us in a state where a "blocked" event is never cleared, and we have an ActiveDOMObject which remains active, which keeps the Document alive.

Maybe IDBRequest::stop() should set m_hasPendingActivity to false?

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20180823/cf759568/attachment.html>


More information about the webkit-unassigned mailing list