Closed Bug 1150923 Opened 9 years ago Closed 9 years ago

[Crash] [@ mozilla::MediaStreamGraphImpl::AddBlockingRelatedStreamsToSet ]

Categories

(Firefox OS Graveyard :: Stability, defect)

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

(blocking-b2g:2.2+)

RESOLVED WORKSFORME
blocking-b2g 2.2+

People

(Reporter: ntroast, Unassigned)

References

Details

(Keywords: crash, Whiteboard: [b2g-crash][caf-crash 599][caf priority: p3][CR 817668])

Attachments

(5 files)

We observed the following crash signature during testing.

[@ mozilla::MediaStreamGraphImpl::AddBlockingRelatedStreamsToSet | mozilla::MediaStreamGraphImpl::AddBlockingRelatedStreamsToSet | mozilla::MediaStreamGraphImpl::AddBlockingRelatedStreamsToSet | mozilla::MediaStreamGraphImpl::RecomputeBlocking ]

Cafbot will upload the decoded minidump and extra file.
Johnny & Andrew,

Can you have someone(s) on the DOM team familiar with the media codebase look into this critical fxOS 2.2 crash asap. It's currently blocking CAF and is directly contributing to their inability to reach our MTBF goal.

Thanks,
Mike
Component: Stability → DOM
Flags: needinfo?(overholt)
Flags: needinfo?(jst)
Product: Firefox OS → Core
Whiteboard: [CR 817668]
Whiteboard: [CR 817668] → [caf priority: p1][CR 817668]
Whiteboard: [caf priority: p1][CR 817668] → [b2g-crash][caf-crash 599][caf priority: p1][CR 817668]
Keywords: crash
Hi roc, 

Could you please check this problem? I checked out b2g-2.2. It crashes at the first line of MediaStreamGraphImpl::AddBlockingRelatedStreamsToSet, "if(aStream->mInBlockingSet)". It looks like aStream has beeb deleted.
Flags: needinfo?(roc)
Bug 1113927 crashes at the same place.
Flags: needinfo?(overholt)
Flags: needinfo?(jst)
blocking-b2g: 2.2? → 2.2+
See Also: → 1113927
ni padenot, too.
Flags: needinfo?(padenot)
This also looks like an UAF (like 1150918). Having steps to reproduce would make this actionable.

From the stacks, we can see that this is a video-only application (there is no audio flowing in the graph), but it's not clear to me what it is?
Flags: needinfo?(padenot)
This crash was produced during stability tests which involves monkey testing for several hours and there is no clear STR for this. If we are not able to identify the issue using provided logs then please feel free to provide us a debug patch with additional logging to identify the issue.
(In reply to StevenLee[:slee] from comment #8)
> Bug 1113927 crashes at the same place.

Unfortunately we only have two crashes reported there, both in December last year.

I've tried running dom/media/tests many times locally on desktop Linux, with chaos mode and --shuffle, with no success.

(In reply to StevenLee[:slee] from comment #7)
> Could you please check this problem? I checked out b2g-2.2. It crashes at
> the first line of MediaStreamGraphImpl::AddBlockingRelatedStreamsToSet,
> "if(aStream->mInBlockingSet)". It looks like aStream has beeb deleted.

Can you explain the reasoning that lead to that conclusion? Can you tell from the disassembly and the crash dump that aStream is a non-null pointer to unmapped memory?

Is this crash occurring frequently enough that we can add some logging to get some additional information?
(In reply to Inder from comment #11)
> This crash was produced during stability tests which involves monkey testing
> for several hours and there is no clear STR for this.

You mean tests that drive the interface of a phone? So Gaia application code involved in triggering this?
Flags: needinfo?(roc)
(In reply to Robert O'Callahan (:roc) (Mozilla Corporation) from comment #12)
> (In reply to StevenLee[:slee] from comment #7)
> > Could you please check this problem? I checked out b2g-2.2. It crashes at
> > the first line of MediaStreamGraphImpl::AddBlockingRelatedStreamsToSet,
> > "if(aStream->mInBlockingSet)". It looks like aStream has beeb deleted.
> Can you explain the reasoning that lead to that conclusion? Can you tell
> from the disassembly and the crash dump that aStream is a non-null pointer
> to unmapped memory?

I was guessing. From the crash dump below, it crashed at [1]. I assumed r1 and r2 are the arguments, nsTArray<MediaStream*>* aStreams and MediaStream* aStream. The offset from r2 to crash address, 0x2d6f665a, is 0xF6. I checked the class definition if MediaStream and it looks like the address should be located in the object. So that I think the memory address pointed by aStream should be deleted in other places. 

Crash address: 0x2d6f665a
 0  libxul.so!mozilla::MediaStreamGraphImpl::AddBlockingRelatedStreamsToSet [MediaStreamGraph.cpp : 793 + 0x0]
     r0 = 0xb1f01600    r1 = 0xaef8fb60    r2 = 0x2d6f6564    r3 = 0xb1f5b920
 1  libxul.so!mozilla::MediaStreamGraphImpl::AddBlockingRelatedStreamsToSet [MediaStreamGraph.cpp : 800 + 0x9]
     r0 = 0xb1f01600    r1 = 0xaef8fb60    r2 = 0x2d6f6564    r4 = 0x0000008e

[1] http://git.mozilla.org/?p=integration/gecko-dev.git;a=blob;f=dom/media/MediaStreamGraph.cpp;h=4a50ea3185be2f8f01ea44d2e52444e119c2e11a;hb=643f37b68305d90ecfa148f81db63891c30e4620#l793

> 
> Is this crash occurring frequently enough that we can add some logging to
> get some additional information?
Hi Inder,
Can you tell us the frequency of the problem happening?
Flags: needinfo?(ikumar)
This patch will log the addresses of destroyed MediaStreams. It should help us tell if a MediaStream is being referenced after it has been destroyed.
Steven, can you help to find someone to do the testing based on the patch provided by :roc and provide the logs again? Thanks.
Flags: needinfo?(slee)
Nicholas, since you're the reporter, can you also test it with the patch from :roc? 
Thanks.
Flags: needinfo?(ntroast)
Hi Kevin,

Since we have no any information about how this bug happens, we may need Nicholas to test this.
Flags: needinfo?(slee)
(In reply to Robert O'Callahan (:roc) (Mozilla Corporation) from comment #13)
> (In reply to Inder from comment #11)
> > This crash was produced during stability tests which involves monkey testing
> > for several hours and there is no clear STR for this.
> 
> You mean tests that drive the interface of a phone? So Gaia application code
> involved in triggering this?

Testing is done for several hours with monkey testing so no assumptions can be made about how this crash was triggered. For all we know the crash could happen if we just leave the phone on for several hours with no UI interaction. All we know is that there was a crash, and we have collected as much as we could at the time of the crash.

I have added the logging patch. It will be included in either the very next AU or the one after. Thanks!
Flags: needinfo?(ntroast)
(In reply to StevenLee[:slee] from comment #14)
> (In reply to Robert O'Callahan (:roc) (Mozilla Corporation) from comment #12)
> > (In reply to StevenLee[:slee] from comment #7)
> > > Could you please check this problem? I checked out b2g-2.2. It crashes at
> > > the first line of MediaStreamGraphImpl::AddBlockingRelatedStreamsToSet,
> > > "if(aStream->mInBlockingSet)". It looks like aStream has beeb deleted.
> > Can you explain the reasoning that lead to that conclusion? Can you tell
> > from the disassembly and the crash dump that aStream is a non-null pointer
> > to unmapped memory?
> 
> I was guessing. From the crash dump below, it crashed at [1]. I assumed r1
> and r2 are the arguments, nsTArray<MediaStream*>* aStreams and MediaStream*
> aStream. The offset from r2 to crash address, 0x2d6f665a, is 0xF6. I checked
> the class definition if MediaStream and it looks like the address should be
> located in the object. So that I think the memory address pointed by aStream
> should be deleted in other places. 
> 
> Crash address: 0x2d6f665a
>  0  libxul.so!mozilla::MediaStreamGraphImpl::AddBlockingRelatedStreamsToSet
> [MediaStreamGraph.cpp : 793 + 0x0]
>      r0 = 0xb1f01600    r1 = 0xaef8fb60    r2 = 0x2d6f6564    r3 = 0xb1f5b920
>  1  libxul.so!mozilla::MediaStreamGraphImpl::AddBlockingRelatedStreamsToSet
> [MediaStreamGraph.cpp : 800 + 0x9]
>      r0 = 0xb1f01600    r1 = 0xaef8fb60    r2 = 0x2d6f6564    r4 = 0x0000008e
> 
> [1]
> http://git.mozilla.org/?p=integration/gecko-dev.git;a=blob;f=dom/media/
> MediaStreamGraph.cpp;h=4a50ea3185be2f8f01ea44d2e52444e119c2e11a;
> hb=643f37b68305d90ecfa148f81db63891c30e4620#l793
> 
> > 
> > Is this crash occurring frequently enough that we can add some logging to
> > get some additional information?
> Hi Inder,
> Can you tell us the frequency of the problem happening?

We saw this crash twice in a single run on AU 119
Flags: needinfo?(ikumar)
(In reply to Nicholas Troast [:ntroast] from comment #19)
> Testing is done for several hours with monkey testing so no assumptions can
> be made about how this crash was triggered. For all we know the crash could
> happen if we just leave the phone on for several hours with no UI
> interaction. All we know is that there was a crash, and we have collected as
> much as we could at the time of the crash.

Right, but just to be clear: this testing doesn't run specific Mozilla test code, e.g. our mochitests?
Flags: needinfo?(ntroast)
Also, do these builds have #ifdef DEBUG enabled (e.g. NS_ASSERTIONs)?
(In reply to Robert O'Callahan (:roc) (Mozilla Corporation) from comment #21)
> (In reply to Nicholas Troast [:ntroast] from comment #19)
> > Testing is done for several hours with monkey testing so no assumptions can
> > be made about how this crash was triggered. For all we know the crash could
> > happen if we just leave the phone on for several hours with no UI
> > interaction. All we know is that there was a crash, and we have collected as
> > much as we could at the time of the crash.
> 
> Right, but just to be clear: this testing doesn't run specific Mozilla test
> code, e.g. our mochitests?

Right, this testing does not run specific Mozilla test code
Flags: needinfo?(ntroast)
(In reply to Robert O'Callahan (:roc) (Mozilla Corporation) from comment #22)
> Also, do these builds have #ifdef DEBUG enabled (e.g. NS_ASSERTIONs)?

These builds do not have DEBUG enabled
See Also: → 1150918
See Also: → 1154030
Keywords: steps-wanted
I removed attachment 8589477 [details] [diff] [review] from our build due to a conflict with the logging patch from bug 1152439. I believe the patch from bug 1152439 supersedes this one.
Whiteboard: [b2g-crash][caf-crash 599][caf priority: p1][CR 817668] → [b2g-crash][caf-crash 599][caf priority: p3][CR 817668]
Component: DOM → Stability
Product: Core → Firefox OS
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → WORKSFORME
"Closing issue which has not been seen since 04/01/15 18:39"
See comment 26.
QA Whiteboard: [QAnalyst-Triage?]
Flags: needinfo?(ktucker)
Keywords: steps-wanted
QA Whiteboard: [QAnalyst-Triage?] → [QAnalyst-Triage+]
Flags: needinfo?(ktucker)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: