Closed
Bug 1370063
Opened 8 years ago
Closed 8 years ago
Crash in mozilla::MozPromise<T>::ChainTo
Categories
(Core :: Audio/Video: Playback, defect)
Tracking
()
RESOLVED
FIXED
mozilla55
Tracking | Status | |
---|---|---|
firefox-esr52 | --- | unaffected |
firefox54 | --- | unaffected |
firefox55 | + | fixed |
People
(Reporter: philipp, Assigned: jya)
References
Details
(Keywords: crash, regression)
Crash Data
This bug was filed from the Socorro interface and is
report bp-d9f4d911-bf70-4b89-a491-a8f3a0170603.
=============================================================
Crashing Thread (21), Name: VideoChild
Frame Module Signature Source
0 xul.dll mozilla::MozPromise<bool, mozilla::MediaResult, 1>::ChainTo(already_AddRefed<mozilla::MozPromise<bool, mozilla::MediaResult, 1>::Private>, char const*) obj-firefox/dist/include/mozilla/MozPromise.h:968
1 xul.dll mozilla::detail::ProxyFunctionRunnable<<lambda_0a668af68202c4c8454dc1e89f116afc>, mozilla::MozPromise<bool, mozilla::MediaResult, 1> >::Run() obj-firefox/dist/include/mozilla/MozPromise.h:1488
2 xul.dll mozilla::EventTargetWrapper::Runner::Run() xpcom/threads/AbstractThread.cpp:166
3 xul.dll nsThread::ProcessNextEvent(bool, bool*) xpcom/threads/nsThread.cpp:1321
4 xul.dll NS_ProcessNextEvent(nsIThread*, bool) xpcom/threads/nsThreadUtils.cpp:472
5 xul.dll mozilla::ipc::MessagePumpForNonMainThreads::Run(base::MessagePump::Delegate*) ipc/glue/MessagePump.cpp:368
6 xul.dll MessageLoop::RunHandler() ipc/chromium/src/base/message_loop.cc:231
7 xul.dll MessageLoop::Run() ipc/chromium/src/base/message_loop.cc:211
8 xul.dll nsThread::ThreadFunc(void*) xpcom/threads/nsThread.cpp:501
9 nss3.dll PR_NativeRunThread nsprpub/pr/src/threads/combined/pruthr.c:397
10 nss3.dll pr_root nsprpub/pr/src/md/windows/w95thred.c:95
11 ucrtbase.dll o__realloc_base
12 kernel32.dll BaseThreadInitThunk
13 ntdll.dll RtlUserThreadStart
crash reports with this signature are regressing after 55.0a1 build 20170602030204. so far it's only on windows, in the content process and with "MOZ_RELEASE_ASSERT(!IsExclusive || !mHaveRequest)"
this would be the changelog to the day before:
https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=bdb2387396b4a74dfefb7c983733eed3625e906a&tochange=aeb3d0ca558f034cbef1c5a68bd07dd738611494
![]() |
||
Comment 1•8 years ago
|
||
gerald, any ideas? A MediaResult is involved. This is the #9 topcrash on Windows in Nightly 20170602030204.
Comment 2•8 years ago
|
||
https://crash-stats.mozilla.com/signature/?product=Firefox&version=55.0a1&signature=mozilla%3A%3AMozPromise%3CT%3E%3A%3AChainTo&date=%3E%3D2017-05-05T06%3A35%3A40.000Z&date=%3C2017-06-05T06%3A35%3A40.000Z&_columns=date&_columns=product&_columns=version&_columns=build_id&_columns=platform&_columns=reason&_columns=address&_columns=install_time&_sort=-date&page=1#correlations
(100.0% in signature vs 24.52% overall) Addon "onboarding@mozilla.org" = true
seems suspicious... What is this addon?
See Also: → 1370005
Comment 3•8 years ago
|
||
http://searchfox.org/mozilla-central/rev/507743376d1ba753d14ab6b9305b7c6358570be8/dom/media/ipc/VideoDecoderChild.cpp#32-36
Do we also need to reject |mFlushPromise|? Or the call flow ensures it must've been resolved/rejected by the time destructor is called?
Flags: needinfo?(matt.woodrow)
Updated•8 years ago
|
Component: XPCOM → Audio/Video: Playback
Comment 4•8 years ago
|
||
Tracking for 55 since this looks like a recent crash spike/regression first appearing in Nightly on 6/2.
Comment 5•8 years ago
|
||
Probably best to check with jya, but I can't see why we don't need to reject mFlushPromise (or the other new promises).
Flags: needinfo?(matt.woodrow)
Assignee | ||
Comment 6•8 years ago
|
||
(In reply to JW Wang [:jwwang] [:jw_wang] from comment #3)
> http://searchfox.org/mozilla-central/rev/
> 507743376d1ba753d14ab6b9305b7c6358570be8/dom/media/ipc/VideoDecoderChild.
> cpp#32-36
>
> Do we also need to reject |mFlushPromise|? Or the call flow ensures it
> must've been resolved/rejected by the time destructor is called?
I wrote that code...
The flush promise should always be resolved in the destructor as the MediaFormatReader will always flush the decoder first, wait for the flush promise to be resolved and then call shutdown.
So there should be no need to resolve the flush promise in the destructor
Comment 7•8 years ago
|
||
(In reply to JW Wang [:jwwang] [:jw_wang] from comment #2)
> https://crash-stats.mozilla.com/signature/?product=Firefox&version=55.
> 0a1&signature=mozilla%3A%3AMozPromise%3CT%3E%3A%3AChainTo&date=%3E%3D2017-05-
> 05T06%3A35%3A40.000Z&date=%3C2017-06-05T06%3A35%3A40.
> 000Z&_columns=date&_columns=product&_columns=version&_columns=build_id&_colum
> ns=platform&_columns=reason&_columns=address&_columns=install_time&_sort=-
> date&page=1#correlations
>
> (100.0% in signature vs 24.52% overall) Addon "onboarding@mozilla.org" = true
> seems suspicious... What is this addon?
onboarding@mozilla.org is the Photon onboarding system addon.
Comment 8•8 years ago
|
||
(In reply to Kan-Ru Chen [:kanru] (UTC+8) from comment #7)
> (In reply to JW Wang [:jwwang] [:jw_wang] from comment #2)
> > https://crash-stats.mozilla.com/signature/?product=Firefox&version=55.
> > 0a1&signature=mozilla%3A%3AMozPromise%3CT%3E%3A%3AChainTo&date=%3E%3D2017-05-
> > 05T06%3A35%3A40.000Z&date=%3C2017-06-05T06%3A35%3A40.
> > 000Z&_columns=date&_columns=product&_columns=version&_columns=build_id&_colum
> > ns=platform&_columns=reason&_columns=address&_columns=install_time&_sort=-
> > date&page=1#correlations
> >
> > (100.0% in signature vs 24.52% overall) Addon "onboarding@mozilla.org" = true
> > seems suspicious... What is this addon?
>
> onboarding@mozilla.org is the Photon onboarding system addon.
Hi, Fischer or Photon onboarding team, is this on your radar?
Flags: needinfo?(fliu)
Comment 9•8 years ago
|
||
(In reply to Jean-Yves Avenard [:jya] from comment #6)
> (In reply to JW Wang [:jwwang] [:jw_wang] from comment #3)
> > http://searchfox.org/mozilla-central/rev/
> > 507743376d1ba753d14ab6b9305b7c6358570be8/dom/media/ipc/VideoDecoderChild.
> > cpp#32-36
> >
> > Do we also need to reject |mFlushPromise|? Or the call flow ensures it
> > must've been resolved/rejected by the time destructor is called?
>
> I wrote that code...
>
> The flush promise should always be resolved in the destructor as the
> MediaFormatReader will always flush the decoder first, wait for the flush
> promise to be resolved and then call shutdown.
>
> So there should be no need to resolve the flush promise in the destructor
Does that mean we could have a patch to fix this according to comment 6? Mind suggesting how to proceed this bug, Blake?
Flags: needinfo?(bwu)
Comment 10•8 years ago
|
||
I expect this should have been fixed by jya in some other bug.
Flags: needinfo?(bwu) → needinfo?(jyavenard)
Assignee | ||
Comment 11•8 years ago
|
||
have there been more of those crashes lately?
the crash report above stopped after build 20170606030207 as far as I can tell, which is similar to when bug 1370805 landed.
Status: NEW → RESOLVED
Closed: 8 years ago
Flags: needinfo?(jyavenard)
Resolution: --- → FIXED
Updated•8 years ago
|
Assignee: nobody → jyavenard
status-firefox-esr52:
--- → unaffected
Target Milestone: --- → mozilla55
Updated•8 years ago
|
Flags: needinfo?(fliu)
You need to log in
before you can comment on or make changes to this bug.
Description
•