Closed Bug 1232520 Opened 9 years ago Closed 9 years ago

Intermittent test_bug1113600.html,test_peerConnection_capturedVideo.html | application crashed [@ mozilla::AutoTaskDispatcher::GetTaskGroup(mozilla::AbstractThread *)]

Categories

(Core :: Audio/Video: Playback, defect)

45 Branch
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla46
Tracking Status
firefox46 --- fixed

People

(Reporter: KWierso, Assigned: jwwang)

References

Details

(Keywords: intermittent-failure)

Attachments

(1 file)

Summary: Intermittent test_bug1113600.html | application crashed [@ mozilla::AutoTaskDispatcher::GetTaskGroup(mozilla::AbstractThread *)] → Intermittent test_bug1113600.html,test_peerConnection_capturedVideo.html | application crashed [@ mozilla::AutoTaskDispatcher::GetTaskGroup(mozilla::AbstractThread *)]
regression of bug 1230882.
Assignee: nobody → jwwang
Component: Audio/Video → Audio/Video: Playback
Depends on: 1230882
call stack:
 0  xul.dll!mozilla::AutoTaskDispatcher::GetTaskGroup(mozilla::AbstractThread *) [TaskDispatcher.h:3fff31499837 : 215 + 0x8]
 1  xul.dll!mozilla::AutoTaskDispatcher::EnsureTaskGroup(mozilla::AbstractThread *) [TaskDispatcher.h:3fff31499837 : 203 + 0xa]
 2  xul.dll!mozilla::AutoTaskDispatcher::AddTask(mozilla::AbstractThread *,already_AddRefed<nsIRunnable>,mozilla::AbstractThread::DispatchFailureHandling) [TaskDispatcher.h:3fff31499837 : 115 + 0x8]
 3  xul.dll!mozilla::XPCOMThreadWrapper::Dispatch(already_AddRefed<nsIRunnable>,mozilla::AbstractThread::DispatchFailureHandling,mozilla::AbstractThread::DispatchReason) [AbstractThread.cpp:3fff31499837 : 57 + 0x17]
 4  xul.dll!`mozilla::DecodedStream::CreateData'::`7'::R::~R [DecodedStream.cpp:3fff31499837 : 483 + 0x14]
 5  xul.dll!`mozilla::DecodedStream::CreateData(mozilla::MozPromiseHolder<mozilla::MozPromise<bool,nsresult,0> > &&)'::`7'::R::`scalar deleting destructor'(unsigned int) + 0xb
 6  xul.dll!mozilla::image::DecodePool::Release() [DecodePool.cpp:3fff31499837 : 134 + 0x21]
 7  xul.dll!RefPtr<mozilla::dom::AudioNode>::`scalar deleting destructor'(unsigned int) + 0x12
 8  xul.dll!nsTArray_Impl<RefPtr<mozilla::dom::StorageEvent>,nsTArrayInfallibleAllocator>::DestructRange(unsigned int,unsigned int) [nsTArray.h:3fff31499837 : 2010 + 0x9]
 9  xul.dll!nsTArray_Impl<RefPtr<mozilla::dom::BlobImpl>,nsTArrayFallibleAllocator>::RemoveElementsAt(unsigned int,unsigned int) [nsTArray.h:3fff31499837 : 1652 + 0xd]
10  xul.dll!nsTArray_Impl<nsCOMPtr<nsINode>,nsTArrayInfallibleAllocator>::~nsTArray_Impl<nsCOMPtr<nsINode>,nsTArrayInfallibleAllocator>() [nsTArray.h:3fff31499837 : 825 + 0xe]
11  xul.dll!mozilla::AutoTaskDispatcher::PerThreadTaskGroup::~PerThreadTaskGroup() [TaskDispatcher.h:3fff31499837 : 152 + 0xb]
12  xul.dll!mozilla::DefaultDelete<mozilla::AutoTaskDispatcher::PerThreadTaskGroup>::operator()(mozilla::AutoTaskDispatcher::PerThreadTaskGroup *) [UniquePtr.h:3fff31499837 : 482 + 0xe]
13  xul.dll!mozilla::AutoTaskDispatcher::TaskGroupRunnable::~TaskGroupRunnable() + 0x15
14  xul.dll!mozilla::AutoTaskDispatcher::TaskGroupRunnable::`scalar deleting destructor'(unsigned int) + 0xb
15  xul.dll!mozilla::image::DecodePool::Release() [DecodePool.cpp:3fff31499837 : 134 + 0x21]
16  xul.dll!mozilla::TaskQueue::DispatchLocked(already_AddRefed<nsIRunnable>,mozilla::TaskQueue::DispatchMode,mozilla::AbstractThread::DispatchFailureHandling,mozilla::AbstractThread::DispatchReason) [TaskQueue.cpp:3fff31499837 : 73 + 0xa]
17  xul.dll!mozilla::TaskQueue::Dispatch(already_AddRefed<nsIRunnable>,mozilla::AbstractThread::DispatchFailureHandling,mozilla::AbstractThread::DispatchReason) [TaskQueue.h:3fff31499837 : 47 + 0x14]
18  xul.dll!mozilla::AutoTaskDispatcher::DispatchTaskGroup(mozilla::UniquePtr<mozilla::AutoTaskDispatcher::PerThreadTaskGroup,mozilla::DefaultDelete<mozilla::AutoTaskDispatcher::PerThreadTaskGroup> >) [TaskDispatcher.h:3fff31499837 : 232 + 0xf]
19  xul.dll!mozilla::AutoTaskDispatcher::~AutoTaskDispatcher() [TaskDispatcher.h:3fff31499837 : 87 + 0x13]
20  xul.dll!mozilla::AutoTaskDispatcher::`scalar deleting destructor'(unsigned int) + 0xb
21  xul.dll!mozilla::XPCOMThreadWrapper::FireTailDispatcher() [AbstractThread.cpp:3fff31499837 : 81 + 0xf]

The destructor of R in frame 4 is called in tail dispatching phase. It should not call AbstractThread::MainThread()->Dispatch() since AutoTaskDispatcher is not reentrant.
Comment on attachment 8699361 [details]
MozReview Request: Bug 1232520 - dont' invoke AbstractThread::MainThread()->Dispatch() to avoid reentrant of AutoTaskDispatcher during tail dispatching phase.

Looks like roc is on PTO.
Attachment #8699361 - Flags: review?(roc)
Comment on attachment 8699361 [details]
MozReview Request: Bug 1232520 - dont' invoke AbstractThread::MainThread()->Dispatch() to avoid reentrant of AutoTaskDispatcher during tail dispatching phase.

Review request updated; see interdiff: https://reviewboard.mozilla.org/r/28243/diff/1-2/
Attachment #8699361 - Attachment description: MozReview Request: Bug 1232520 - dont' invoke AbstractThread::MainThread()->Dispatch() to avoid reentrant of AutoTaskDispatcher during tail dispatching phase. r=roc. → MozReview Request: Bug 1232520 - dont' invoke AbstractThread::MainThread()->Dispatch() to avoid reentrant of AutoTaskDispatcher during tail dispatching phase.
Attachment #8699361 - Flags: review?(jyavenard)
Comment on attachment 8699361 [details]
MozReview Request: Bug 1232520 - dont' invoke AbstractThread::MainThread()->Dispatch() to avoid reentrant of AutoTaskDispatcher during tail dispatching phase.

https://reviewboard.mozilla.org/r/28243/#review25357
Attachment #8699361 - Flags: review?(jyavenard) → review+
Thanks!
https://hg.mozilla.org/mozilla-central/rev/d24473842870
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla46
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: