New issue
Advanced search Search tips

Issue 913089 link

Starred by 1 user

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

DCHECK failure in idb_request.cc when using <webview> in WebUI

Project Member Reported by michae...@chromium.org, Dec 7

Issue description

I don't have consistent repro steps, but while inspecting a <webview> inside a WebUI, this DCHECK in ~IDBRequest() kills the <webview> renderer.

Version: 72.0.3625.0 (developer build with DCHECKs enabled)

Example repro steps:
1. Open chrome://discards
2. Open the Graph tab
3. Right-click the body of the graph view and choose Inspect to inspect the <webview>
4. Flip through the dev tools tabs

[1:1:1207/134438.285460:FATAL:idb_request.cc(147)] Check failed: (ready_state_ == DONE && metrics_.IsEmpty()) || ready_state_ == kEarlyDeath || !GetExecutionContext().
#0 0x7f4c88a765ff base::debug::StackTrace::StackTrace()
#1 0x7f4c8899b1cb logging::LogMessage::~LogMessage()
#2 0x7f4c7d924155 blink::IDBRequest::~IDBRequest()
#3 0x7f4c7e498d10 blink::NormalPage::Sweep()
#4 0x7f4c7e493ea9 blink::BaseArena::CompleteSweep()
#5 0x7f4c7e48b47c blink::ThreadHeap::CompleteSweep()
#6 0x7f4c7e49f2d2 blink::ThreadState::CompleteSweep()
#7 0x7f4c7e497bb0 blink::NormalPageArena::OutOfLineAllocate()
#8 0x7f4c7f5ea232 blink::NormalPageArena::AllocateObject()
#9 0x7f4c7f9998a5 blink::HeapAllocator::AllocateVectorBacking<>()
#10 0x7f4c7f999663 WTF::VectorBufferBase<>::AllocateBuffer()
#11 0x7f4c7f9994a7 WTF::Vector<>::ReserveCapacity()
#12 0x7f4c7f999308 WTF::Vector<>::Append<>()
#13 0x7f4c7f9985b1 blink::CachedMatchedProperties::Set()
#14 0x7f4c7f998b05 blink::MatchedPropertiesCache::Add()
#15 0x7f4c7f9bc943 blink::StyleResolver::ApplyMatchedStandardProperties()
#16 0x7f4c7f9b878a blink::StyleResolver::ApplyMatchedPropertiesAndCustomPropertyAnimations()
#17 0x7f4c7f9b8384 blink::StyleResolver::StyleForElement()
#18 0x7f4c80621774 blink::SVGElement::CustomStyleForLayoutObject()
#19 0x7f4c7faa5075 blink::Element::StyleForLayoutObject()
#20 0x7f4c7faa5eb1 blink::Element::RecalcOwnStyle()
#21 0x7f4c7faa5689 blink::Element::RecalcStyle()
#22 0x7f4c7fa39d8e blink::ContainerNode::RecalcDescendantStyles()
#23 0x7f4c7faa58c9 blink::Element::RecalcStyle()
#24 0x7f4c7f9fc86f blink::StyleEngine::RecalcStyle()
#25 0x7f4c7fa54f7d blink::Document::UpdateStyle()
#26 0x7f4c7fa504f3 blink::Document::UpdateStyleAndLayoutTree()
#27 0x7f4c7fdd6350 blink::LocalFrameView::UpdateStyleAndLayoutIfNeededRecursive()
#28 0x7f4c7fdd582b blink::LocalFrameView::RunStyleAndLayoutLifecyclePhases()
#29 0x7f4c7fdd511f blink::LocalFrameView::UpdateLifecyclePhasesInternal()
#30 0x7f4c7fdd40b9 blink::LocalFrameView::UpdateLifecyclePhases()
#31 0x7f4c7fdd3ee9 blink::LocalFrameView::UpdateAllLifecyclePhases()
#32 0x7f4c804436f0 blink::PageAnimator::UpdateAllLifecyclePhases()
#33 0x7f4c7fd0850b blink::WebViewImpl::UpdateLifecycle()
#34 0x7f4c7fe40620 blink::WebViewFrameWidget::UpdateLifecycle()
#35 0x7f4c866b6474 content::RenderWidget::UpdateVisualState()
#36 0x7f4c7849e0f2 cc::ProxyMain::BeginMainFrame()
#37 0x7f4c7849cd0f _ZN4base8internal12InvokeHelperILb1EvE8MakeItSoIMN2cc9ProxyMainEFvNSt3__110unique_ptrINS4_28BeginMainFrameAndCommitStateENS6_14default_deleteIS8_EEEEENS_7WeakPtrIS5_EEJSB_EEEvOT_OT0_DpOT1_
#38 0x7f4c7849cbde _ZN4base8internal7InvokerINS0_9BindStateIMN2cc9ProxyMainEFvNSt3__110unique_ptrINS3_28BeginMainFrameAndCommitStateENS5_14default_deleteIS7_EEEEEJNS_7WeakPtrIS4_EENS0_13PassedWrapperISA_EEEEEFvvEE7RunOnceEPNS0_13BindStateBaseE
#39 0x7f4c8897bbe9 base::debug::TaskAnnotator::RunTask()
#40 0x7f4c88a1042f base::sequence_manager::internal::ThreadControllerImpl::DoWork()
#41 0x7f4c88a124f8 _ZN4base8internal7InvokerINS0_9BindStateIMNS_16sequence_manager8internal20ThreadControllerImplEFvNS5_8WorkTypeEEJNS_7WeakPtrIS5_EES6_EEEFvvEE3RunEPNS0_13BindStateBaseE
#42 0x7f4c8897bbe9 base::debug::TaskAnnotator::RunTask()
#43 0x7f4c889aa4bf base::MessageLoopImpl::RunTask()
#44 0x7f4c889aac42 base::MessageLoopImpl::DoWork()
#45 0x7f4c889acdba base::MessagePumpDefault::Run()
#46 0x7f4c889a9f95 base::MessageLoopImpl::Run()
#47 0x7f4c889dd196 base::RunLoop::Run()
#48 0x7f4c866c52e9 content::RendererMain()
#49 0x7f4c8679dca3 content::RunZygote()
#50 0x7f4c8679ef39 content::ContentMainRunnerImpl::Run()
#51 0x7f4c77e9947a service_manager::Main()
#52 0x7f4c8679d251 content::ContentMain()
#53 0x560eed4f21b3 ChromeMain
#54 0x7f4c7a32d2b1 __libc_start_main
#55 0x560eed4f202a _start

Keishi/Kent, can you help triage, given you've made recent edits?
 
Cc: siggi@chromium.org
Components: -Blink Blink>Infra
This is not "related to running tests for Blink", why the Blink>Infra tag?
Components: -Blink>Infra
Components: Blink>Storage
Cc: keishi@chromium.org
Components: -Blink>Storage -Platform>Apps>BrowserTag Blink>Storage>IndexedDB
Owner: ----
Status: Available (was: Untriaged)
This is a check we do for metrics - I'm guessing we forgot to record the metrics somewhere, and so this is triggering.

We should just auto-end the metric when the request is destructed.

Sign in to add a comment