FFmpegDemuxer weak pointer factory hits a DCHECK |
|||||
Issue descriptionI saw this on Android, while running a test page that infinitely creates and destroys video elements (http://jsfiddle.net/r7y38zdj/7/). Only saw it once after a lot of testing so it happens super infrequently. [FATAL:weak_ptr.cc(20)] Check failed: sequence_checker_.CalledOnValidSequencedThread() || HasOneRef(). WeakPtrs must be invalidated on the same sequenced thread. Stack Trace: RELADDR FUNCTION FILE:LINE 000e112b logging::LogMessage::~LogMessage() /s/c/src/base/logging.cc:524 000eae7f base::internal::WeakReference::Flag::Invalidate() /s/c/src/base/memory/weak_ptr.cc:20 000eb103 base::internal::WeakReferenceOwner::Invalidate() /s/c/src/base/memory/weak_ptr.cc:64 ----------------------------------------------------- r0 00000000 r1 00005a4e r2 00000006 r3 a0c9f978 r4 a0c9f980 r5 a0c9f930 r6 00000002 r7 0000010c r8 48c0819d r9 92e32f90 sl 92e32024 fp a0c9decc ip 00000006 sp a0c9d090 lr b6d5db61 pc b6d5ff50 Stack Trace: RELADDR FUNCTION FILE:LINE 00041f50 tgkill+12 /system/lib/libc.so 0003fb5d pthread_kill+32 /system/lib/libc.so 0001c30f raise+10 /system/lib/libc.so 000194c1 __libc_android_abort+34 /system/lib/libc.so 000174ac abort+4 /system/lib/libc.so 000acecd DebugBreak /s/c/src/base/debug/debugger_posix.cc:219 000acee3 base::debug::BreakDebugger() /s/c/src/base/debug/debugger_posix.cc:249 000e18f7 logging::LogMessage::~LogMessage() /s/c/src/base/logging.cc:740 000eae7d base::internal::WeakReference::Flag::Invalidate() /s/c/src/base/memory/weak_ptr.cc:20 000eb101 base::internal::WeakReferenceOwner::Invalidate() /s/c/src/base/memory/weak_ptr.cc:64 000eb06b base::internal::WeakReferenceOwner::~WeakReferenceOwner() /s/c/src/base/memory/weak_ptr.cc:51 000a6f9b base::WeakPtrFactory<media::CdmAdapter>::~WeakPtrFactory() /s/c/src/base/memory/weak_ptr.h:285 0019f2d1 media::FFmpegDemuxer::~FFmpegDemuxer() /s/c/src/media/filters/ffmpeg_demuxer.cc:789 0019f3e7 media::FFmpegDemuxer::~FFmpegDemuxer() /s/c/src/media/filters/ffmpeg_demuxer.cc:789 v------> std::__1::default_delete<media::Demuxer>::operator()(media::Demuxer*) const /s/c/src/third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++/libcxx/include/memory:2431 v------> std::__1::unique_ptr<media::Demuxer, std::__1::default_delete<media::Demuxer> >::reset(media::Demuxer*) /s/c/src/third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++/libcxx/include/memory:2630 v------> std::__1::unique_ptr<media::Demuxer, std::__1::default_delete<media::Demuxer> >::~unique_ptr() /s/c/src/third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++/libcxx/include/memory:2598 00078725 media::WebMediaPlayerImpl::~WebMediaPlayerImpl() /s/c/src/media/blink/webmediaplayer_impl.cc:232 000788cf media::WebMediaPlayerImpl::~WebMediaPlayerImpl() /s/c/src/media/blink/webmediaplayer_impl.cc:263 0035ee69 WTF::OwnedPtrDeleter<blink::DOMObjectHolderBase>::deletePtr(blink::DOMObjectHolderBase*) /s/c/src/third_party/WebKit/Source/wtf/OwnPtrCommon.h:54 003c4a8b WTF::OwnPtr<blink::ThreadDebugger>::clear() /s/c/src/third_party/WebKit/Source/wtf/OwnPtr.h:109 0085dff9 blink::HTMLMediaElement::clearMediaPlayerAndAudioSourceProviderClientWithoutLocking() /s/c/src/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp:3123 0085f445 blink::HTMLMediaElement::resetMediaPlayerAndMediaSource() /s/c/src/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp:3520 00854c2b blink::HTMLMediaElement::invokeLoadAlgorithm() /s/c/src/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp:754 00854087 blink::HTMLMediaElement::parseAttribute(blink::QualifiedName const&, WTF::AtomicString const&, WTF::AtomicString const&) /s/c/src/third_party/WebKit/Source/core/html/HTMLMediaElement.cpp:542 0089978d blink::HTMLVideoElement::parseAttribute(blink::QualifiedName const&, WTF::AtomicString const&, WTF::AtomicString const&) /s/c/src/third_party/WebKit/Source/core/html/HTMLVideoElement.cpp:137 006c4d5b blink::Element::attributeChanged(blink::QualifiedName const&, WTF::AtomicString const&, WTF::AtomicString const&, blink::Element::AttributeModificationReason) /s/c/src/third_party/WebKit/Source/core/dom/Element.cpp:1154 006cc817 blink::Element::didModifyAttribute(blink::QualifiedName const&, WTF::AtomicString const&, WTF::AtomicString const&) /s/c/src/third_party/WebKit/Source/core/dom/Element.cpp:3205 006c4c59 blink::Element::setAttributeInternal(unsigned int, blink::QualifiedName const&, WTF::AtomicString const&, blink::Element::SynchronizationOfLazyAttribute) /s/c/src/third_party/WebKit/Source/core/dom/Element.cpp:1132 006c4af1 blink::Element::setAttribute(blink::QualifiedName const&, WTF::AtomicString const&) /s/c/src/third_party/WebKit/Source/core/dom/Element.cpp:1101 0040060b srcAttributeSetter /s/c/src/out/a/gen/blink/bindings/core/v8/V8HTMLEmbedElement.cpp:62 004006bf srcAttributeSetterCallback /s/c/src/out/a/gen/blink/bindings/core/v8/V8HTMLEmbedElement.cpp:69 00008964 <unknown>
,
May 20 2016
I don't see any way for FFmpegDemuxer to call into CdmAdapter. Also we are not using CdmAdapter in prod yet. I suspect the callstack is bogus.
,
May 20 2016
Hmm, I wonder what weakptr might be going wrong here. I don't see anyway for the one in FffmpegDemuxer to go bad.
,
May 22 2017
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue. Sorry for the inconvenience if the bug really should have been left as Available. If you change it back, also remove the "Hotlist-Recharge-Cold" label. For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
May 23 2017
this bug has been stale for > one year. xhwang@, Do you want to keep it? If not, please go ahead resolve it as won't fix. thanks
,
May 23 2017
,
Jun 12 2017
this bug has been stale for > 1 year. resolve them as won't fix. StaleClosed label is added. if the bug owner want to keep it, please r-activate an assign appropriately. |
|||||
►
Sign in to add a comment |
|||||
Comment 1 by dalecur...@chromium.org
, May 20 2016