New issue
Advanced search Search tips

Issue 777078 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Oct 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Chrome , Mac
Pri: 2
Type: Bug

Blocking:
issue 510088



Sign in to add a comment

CdmAdapter should reject all pending promises upon destruction

Project Member Reported by xhw...@chromium.org, Oct 21 2017

Issue description

See the DCHECK fired below:

[18494:775:1020/173838.366277:FATAL:cdm_promise_adapter.cc(15)] Check failed: promises_.empty().
0   libbase.dylib                       0x000000010dc2a84e base::debug::StackTrace::StackTrace(unsigned long) + 174
1   libbase.dylib                       0x000000010dc2a90d base::debug::StackTrace::StackTrace(unsigned long) + 29
2   libbase.dylib                       0x000000010dc28bbc base::debug::StackTrace::StackTrace() + 28
3   libbase.dylib                       0x000000010dcc1def logging::LogMessage::~LogMessage() + 479
4   libbase.dylib                       0x000000010dcbf755 logging::LogMessage::~LogMessage() + 21
5   libmedia.dylib                      0x000000011594aea9 media::CdmPromiseAdapter::~CdmPromiseAdapter() + 249
6   libmedia.dylib                      0x000000011594b4f5 media::CdmPromiseAdapter::~CdmPromiseAdapter() + 21
7   libmedia.dylib                      0x0000000115a8f687 media::CdmAdapter::~CdmAdapter() + 807
8   libmedia.dylib                      0x0000000115a8f745 media::CdmAdapter::~CdmAdapter() + 21
9   libmedia.dylib                      0x0000000115a8f7e9 media::CdmAdapter::~CdmAdapter() + 25
10  libmedia.dylib                      0x00000001159650bb media::ContentDecryptionModule::DeleteOnCorrectThread() const + 43
11  libmedia.dylib                      0x00000001159650e6 media::ContentDecryptionModuleTraits::Destruct(media::ContentDecryptionModule const*) + 22
12  libmedia_mojo_services.dylib        0x00000001558e959c base::RefCountedThreadSafe<media::ContentDecryptionModule, media::ContentDecryptionModuleTraits>::Release() const + 60
13  libmedia_mojo_services.dylib        0x00000001558e9559 scoped_refptr<media::ContentDecryptionModule>::Release(media::ContentDecryptionModule*) + 25
14  libmedia_mojo_services.dylib        0x00000001558e953a scoped_refptr<media::ContentDecryptionModule>::~scoped_refptr() + 42
15  libmedia_mojo_services.dylib        0x00000001558e6675 scoped_refptr<media::ContentDecryptionModule>::~scoped_refptr() + 21
16  libmedia_mojo_services.dylib        0x00000001558faa44 media::MojoCdmService::~MojoCdmService() + 388
17  libmedia_mojo_services.dylib        0x00000001558fab05 media::MojoCdmService::~MojoCdmService() + 21
18  libmedia_mojo_services.dylib        0x00000001558fab29 media::MojoCdmService::~MojoCdmService() + 25
 
Project Member

Comment 1 by bugdroid1@chromium.org, Oct 21 2017

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

commit 2f72915a270c5bd8a67684759932f5ef39d8d7a4
Author: Xiaohan Wang <xhwang@chromium.org>
Date: Sat Oct 21 06:41:05 2017

media: Reject all pending promises in CdmAdapter destructor

Otherwise, we'll hit a DCHECK in CdmPromiseAdapter destructor.

TBR=jrummell@chromium.org
BUG= 777078 

Change-Id: I02e3f262eb6516d7e4dd272ee009a1778379c538
Reviewed-on: https://chromium-review.googlesource.com/731983
Reviewed-by: Xiaohan Wang <xhwang@chromium.org>
Commit-Queue: Xiaohan Wang <xhwang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#510667}
[modify] https://crrev.com/2f72915a270c5bd8a67684759932f5ef39d8d7a4/media/cdm/cdm_adapter.cc

Comment 2 by xhw...@chromium.org, Oct 23 2017

Status: Fixed (was: Started)
This only causes a DCHECK and in release builds all promises will be rejected by default in CdmPromiseAdapter destrutor [1]. Hence no need to merge the fix back to M63.

[1] https://cs.chromium.org/chromium/src/media/base/cdm_promise_adapter.cc?rcl=8eda6c0db7113b5eaf81dfa078e7ea076aeb0aec&l=17

Sign in to add a comment