Open Bug 1408241 Opened 7 years ago Updated 2 years ago

dom/media/test/test_mediarecorder_record_addtracked_stream.html | Test timed out. | application crashed [@ mozilla::gfx::Log<1, mozilla::gfx::CriticalLogger>::~Log]

Categories

(Core :: Graphics, defect, P3)

55 Branch
defect

Tracking

()

Tracking Status
firefox56 --- wontfix
firefox57 --- wontfix
firefox58 --- wontfix
firefox59 --- ?

People

(Reporter: bc, Unassigned)

References

Details

(Whiteboard: [gfx-noted][leave open][stockwell disabled])

Attachments

(2 files)

As part of bug 1403283 re-enabling the unit tests on Autophone, I've found the following failures preventing Mdm1 from being enabled.

I ran two sets of tests using production and staging devices:

<https://treeherder.mozilla.org/#/jobs?repo=try&revision=5213cf3519eb9fa4ed16db023a46229c3d49d1f2&filter-searchStr=Mdm1>

<https://treeherder.allizom.org/#/jobs?repo=try&revision=5213cf3519eb9fa4ed16db023a46229c3d49d1f2&filter-searchStr=Mdm1>

opt:
TEST-UNEXPECTED-FAIL | dom/media/test/test_mediarecorder_record_addtracked_stream.html | Test timed out. 

debug:
PROCESS-CRASH | dom/media/test/test_mediarecorder_record_addtracked_stream.html | application crashed [@ mozilla::gfx::Log<1, mozilla::gfx::CriticalLogger>::~Log]
Crash dump filename: /tmp/tmpxtlSC9/717e8999-cd84-552d-8bcd-0f48cb31fb0f.dmp
Operating system: Android
                  0.0.0 Linux 3.4.0-gadb2201 #1 SMP PREEMPT Wed Nov 20 14:42:53 PST 2013 armv7l
CPU: arm
     ARMv7 Qualcomm Krait features: swp,half,thumb,fastmult,vfpv2,edsp,neon,vfpv3,tls,vfpv4,idiva,idivt
     4 CPUs

GPU: UNKNOWN

Crash reason:  SIGSEGV
Crash address: 0x0
Process uptime: not available

Thread 11 (crashed)
 0  libxul.so!mozilla::gfx::Log<1, mozilla::gfx::CriticalLogger>::~Log [Logging.h:2d7b8b5dd174 : 521 + 0x10]
     r0 = 0x0000007e    r1 = 0x8e155b27    r2 = 0x8e155b27    r3 = 0x00000000
     r4 = 0x78f4c3a0    r5 = 0x75c14c48    r6 = 0x00000000    r7 = 0x75c14c88
     r8 = 0x75c14e28    r9 = 0x75c14dfc   r10 = 0x85550240   r12 = 0x00000003
     fp = 0x75c14e14    sp = 0x75c14c48    lr = 0x76af836b    pc = 0x76af9142
    Found by: given as instruction pointer in context
 1  libxul.so!mozilla::gl::GLBlitHelper::BlitImage [GLBlitHelper.cpp:2d7b8b5dd174 : 643 + 0x5]
     r4 = 0x75c14c7c    r5 = 0x85550240    r6 = 0x00000000    r7 = 0x75c14f14
     r8 = 0x75c14e28    r9 = 0x75c14dfc   r10 = 0x85550240    fp = 0x75c14e14
     sp = 0x75c14c78    pc = 0x76b6187b
    Found by: call frame info
 2  libxul.so!mozilla::gl::GLBlitHelper::BlitImageToFramebuffer [GLBlitHelper.cpp:2d7b8b5dd174 : 610 + 0x3]
     r4 = 0x00000005    r5 = 0x85550240    r6 = 0x00000000    r7 = 0x75c14f14
     r8 = 0x75c14e28    r9 = 0x75c14dfc   r10 = 0x85550240    fp = 0x75c14e14
     sp = 0x75c14d20    pc = 0x76b62f0f
    Found by: call frame info
 3  libxul.so!mozilla::layers::GLImage::GetAsSourceSurface [GLImages.cpp:2d7b8b5dd174 : 54 + 0x9]
     r4 = 0x75c14e3c    r5 = 0x7a370d34    r6 = 0x00000000    r7 = 0x75c14f14
     r8 = 0x75c14e28    r9 = 0x75c14dfc   r10 = 0x85550240    fp = 0x75c14e14
     sp = 0x75c14dd0    pc = 0x76b7f1b7
    Found by: call frame info
 4  libxul.so!nsLayoutUtils::SurfaceFromElement [nsLayoutUtils.cpp:2d7b8b5dd174 : 7652 + 0x5]
     r4 = 0x75c15030    r5 = 0x75c14f14    r6 = 0x857b4800    r7 = 0x75c14f0c
     r8 = 0x00000000    r9 = 0x00000000   r10 = 0x857bb84c    fp = 0x75c14fd8
     sp = 0x75c14f00    pc = 0x77952035
    Found by: call frame info
 5  libxul.so!nsLayoutUtils::SurfaceFromElement [nsLayoutUtils.cpp:2d7b8b5dd174 : 7685 + 0xb]
     r4 = 0x75c15030    r5 = 0x85575580    r6 = 0x857b4800    r7 = 0x86b421f0
     r8 = 0x857bb84c    r9 = 0x00000012   r10 = 0x00000000    fp = 0x75c14fd8
     sp = 0x75c14f40    pc = 0x77971145
    Found by: call frame info
 6  libxul.so!mozilla::dom::CanvasRenderingContext2D::DrawImage [CanvasRenderingContext2D.cpp:2d7b8b5dd174 : 5191 + 0x11]
     r4 = 0x857bb800    r5 = 0x75c14fc8    r6 = 0x75c14fbc    r7 = 0x857b4800
     r8 = 0x75c14fb0    r9 = 0x75c151b8   r10 = 0x00000000    fp = 0x75c14fd8
     sp = 0x75c14f68    pc = 0x7723a791
    Found by: call frame info
 7  libxul.so!mozilla::dom::CanvasRenderingContext2DBinding::drawImage [CanvasRenderingContext2D.h:2d7b8b5dd174 : 241 + 0x4b]
     r4 = 0x75c15244    r5 = 0x00000001    r6 = 0x75e2f800    r7 = 0x00000000
     r8 = 0x75c151c8    r9 = 0x857bb800   r10 = 0x00000000    fp = 0x7ff00000
     sp = 0x75c15120    pc = 0x76fe7aeb
    Found by: call frame info

test added in bug 1296531.
This looks like a graphics issue. Crashing at [1].

We're hitting this after recording a video with MediaRecorder, then trying to draw its frames to a 2d canvas. This can be tracked in the test where we're starting this drawing at [2]. The last log entry before the crash (except for two flaky timeout warnings) is:
> {"action":"test_status","time":1507360440227,"thread":null,"pid":null,"source":"mochitest","test":"/tests/dom/media/test/test_mediarecorder_record_addtracked_stream.html","subtest":"Recording should have one audio track","status":"PASS","js_source":"TestRunner.js"}

John, would this fall under Firefox for Android::Audio/Video (because of the decoder outputting these images) or Core::Graphics (for the conversion failing)?


[1] http://searchfox.org/mozilla-central/rev/ed1d5223adcdc07e9a2589ee20f4e5ee91b4df10/gfx/gl/GLBlitHelper.cpp#643
[2] http://searchfox.org/mozilla-central/rev/ed1d5223adcdc07e9a2589ee20f4e5ee91b4df10/dom/media/test/test_mediarecorder_record_addtracked_stream.html#129
Flags: needinfo?(jolin)
Bug 1322650 (patch [1]) looks like it might have caused a regression here. snorp, can you take a look?

[1] http://searchfox.org/mozilla-central/diff/06131003608d8b7a1be322265ccc5362e2986515/gfx/gl/GLBlitHelper.cpp#685
Blocks: 1322650
Flags: needinfo?(snorp)
(In reply to Andreas Pehrson [:pehrsons] from comment #1)
> This looks like a graphics issue. Crashing at [1].
> 
> John, would this fall under Firefox for Android::Audio/Video (because of the
> decoder outputting these images) or Core::Graphics (for the conversion
> failing)?
> 
> 
> [1]
> http://searchfox.org/mozilla-central/rev/
> ed1d5223adcdc07e9a2589ee20f4e5ee91b4df10/gfx/gl/GLBlitHelper.cpp#643
> [2]
> http://searchfox.org/mozilla-central/rev/
> ed1d5223adcdc07e9a2589ee20f4e5ee91b4df10/dom/media/test/
> test_mediarecorder_record_addtracked_stream.html#129

 Core::Graphics, IMHO. On Android, SurfaceTexture was used to convert video decoder output buffers into GL textures for gfx to consume, and should work for both compositor and canvas.
Flags: needinfo?(jolin)
Component: Audio/Video → Graphics
Product: Firefox for Android → Core
Version: unspecified → 55 Branch
Did a quick search in the codebase. It looks like GLReadTexImageHelper::ReadTexImage() [1] performs similar tasks as current GLImage::GetAsSourceSurface() implementation. Perhaps introduce a method (to TexturePoolOGL, which generated the texture and knows the required GL context) that sets up a helper and reads texture images data would simplify the code?


[1] http://searchfox.org/mozilla-central/source/gfx/gl/GLReadTexImageHelper.cpp#501
Priority: -- → P3
Whiteboard: [gfx-noted]
We're fixing the SurfaceTexture blitting in bug 1395497.
Flags: needinfo?(snorp)
Depends on: 1395497
Disable test_mediarecorder_record_addtracked_stream.html on Android.
Attachment #8925400 - Flags: review?(jmaher)
Attachment #8925400 - Flags: review?(jmaher) → review+
Pushed by bclary@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/8172eea4088e
disable Mdm1 dom/media/test/test_mediarecorder_record_addtracked_stream, r=jmaher.
Whiteboard: [gfx-noted] → [gfx-noted][leave open][stockwell disabled]
re-enable Mdm1.
Attachment #8925406 - Flags: review?(jmaher)
Attachment #8925406 - Flags: review?(jmaher) → review+
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: