Closed Bug 1317887 Opened 8 years ago Closed 8 years ago

dom/ipc/tests/test_temporaryfile_stream.html crashes on try server when remote codec pref is on.

Categories

(Firefox for Android Graveyard :: Audio/Video, defect, P3)

ARM
Android
defect

Tracking

(firefox53 fixed)

RESOLVED FIXED
Firefox 53
Tracking Status
firefox53 --- fixed

People

(Reporter: jhlin, Assigned: kikuo)

References

Details

Attachments

(1 file)

See https://treeherder.mozilla.org/#/jobs?repo=try&revision=24552811c0ba2575c3aa8c2cf4511e4eba5fd1e4&selectedJob=31101072 It passes when pref is off -- https://treeherder.mozilla.org/#/jobs?repo=try&revision=c61a3d37dd9d5de6926190f0a9996a987720da6a&selectedJob=31101048 Logcat shows the failed test got black pixel at 1st check and GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT at 2nd check. On the other hand, passed test got red pixel at 1st check.
Blocks: 1257777
Blocks: 1311960
No longer blocks: 1257777
Assignee: nobody → kikuo
Tried to reproduce this bug locally. I've tested 1) ./mach android-emulator --version 4.3 ==> CANNOT start up the emulator successfully ... 2) ./mach android-emulator --version 6.0 ==> failed, no matter in-process decode or out-of-process decode, log snippet shown below... 11-24 02:50:55.541 1234 1234 I GeckoApplication: zerdatime 744972 - Fennec application start 11-24 02:50:55.823 1234 1246 D GeckoRemoteCodec: configure org.mozilla.gecko.media.Codec@9404696 11-24 02:50:56.042 1234 1246 W VideoCapabilities: Unrecognized profile/level 0/0 for video/mpeg2 11-24 02:50:56.043 1234 1246 W VideoCapabilities: Unrecognized profile/level 0/2 for video/mpeg2 11-24 02:50:56.043 1234 1246 W VideoCapabilities: Unrecognized profile/level 0/3 for video/mpeg2 11-24 02:50:56.178 1234 1246 I VideoCapabilities: Unsupported profile 4 for video/mp4v-es 11-24 02:50:56.240 1234 1250 I OMXClient: Using client-side OMX mux. 11-24 02:50:56.398 1234 1246 D GeckoAsyncCodecAPIv16: start poller for codec:org.mozilla.gecko.media.JellyBeanAsyncCodec@3e3f217, thread=1253 11-24 02:50:56.406 1234 1246 D GeckoRemoteCodec: configure mediacodec with crypto(false) / Id : 11-24 02:50:56.438 1234 1246 D GeckoAsyncCodecAPIv16: setCallbacks(): sender=Handler (org.mozilla.gecko.media.JellyBeanAsyncCodec$CallbackSender) {9b4 604} 11-24 02:50:56.447 1234 1249 I MediaCodec: [OMX.google.vp8.decoder] setting surface generation to 1263617 11-24 02:50:56.459 1234 1250 W OMXNodeInstance: [1:google.vp8.decoder] component does not support metadata mode; using fallback 11-24 02:50:56.459 1234 1250 E ACodec : [OMX.google.vp8.decoder] storeMetaDataInBuffers failed w/ err -1010 11-24 02:50:56.462 1234 1250 E OMXNodeInstance: getParameter(1:google.vp8.decoder, ParamVideoAndroidVp8Encoder(0x6f600007)) ERROR: UnsupportedIndex(0x8000101a) 11-24 02:50:56.476 1234 1246 D GeckoRemoteCodec: org.mozilla.gecko.media.JellyBeanAsyncCodec@3e3f217 created 11-24 02:50:56.574 1234 1247 D GeckoRemoteCodec: start org.mozilla.gecko.media.Codec@9404696 11-24 02:50:57.026 1043 1186 D : HostConnection::get() New Host Connection established 0x9287fa20, tid 1186 11-24 02:50:57.125 1043 1090 I Gecko : [Main Thread]: D/nsMediaElement 947f9000, FirstFrameLoaded() mFirstFrameLoaded=0 mWaitingForKey=0 11-24 02:50:57.126 1043 1090 I Gecko : [Main Thread]: D/nsMediaElement MediaElement 947f9000 UpdateReadyStateInternal() Decoder download suspended b y cache 11-24 02:50:57.136 1043 1090 I Gecko : [Main Thread]: D/nsMediaElement 947f9000 Ready state changed to HAVE_ENOUGH_DATA 11-24 02:50:57.199 1234 1249 D : HostConnection::get() New Host Connection established 0xaad308f0, tid 1249 11-24 02:50:57.210 1043 1090 I Gecko : [Main Thread]: D/nsMediaElement 947f9000 ChangeDelayLoadStatus(0) doc=0x946be800 11-24 02:50:57.218 1043 1090 I Gecko : [Main Thread]: D/nsMediaElement MediaElement 947f9000 UpdateReadyStateInternal() Decoder download suspended b y cache 11-24 02:50:57.218 1043 1090 I Gecko : [Main Thread]: D/nsMediaElement MediaElement 947f9000 UpdateReadyStateInternal() Decoder download suspended b y cache 11-24 02:50:57.266 1234 1253 D GeckoRemoteCodec: output EOS 11-24 02:50:57.277 1234 1247 D GeckoRemoteCodec: stop org.mozilla.gecko.media.Codec@9404696 11-24 02:50:57.864 1234 1253 D GeckoAsyncCodecAPIv16: handler Handler (org.mozilla.gecko.media.JellyBeanAsyncCodec$BufferPoller) {c2b98b3} done cancel lation, codec=org.mozilla.gecko.media.JellyBeanAsyncCodec@3e3f217 11-24 02:50:57.865 1234 1253 D GeckoAsyncCodecAPIv16: handler Handler (org.mozilla.gecko.media.JellyBeanAsyncCodec$CallbackSender) {9b4604} done cance llation, codec=org.mozilla.gecko.media.JellyBeanAsyncCodec@3e3f217 11-24 02:50:57.976 1043 1090 I Gecko : nsAndroidBridge::Observe, get media-playback event. 11-24 02:50:57.976 1043 1090 I Gecko : nsAndroidBridge, request audio focus. 11-24 02:50:57.977 1043 1090 D AudioFocusAgent: NotifyStartedPlaying 11-24 02:50:57.982 237 779 I MediaFocusControl: AudioFocus requestAudioFocus() from android.media.AudioManager@ddedce9org.mozilla.gecko.media.Audi oFocusAgent$1@4693d6e req=1flags=0x0 11-24 02:50:57.986 1043 1090 D AudioFocusAgent: AudioFocus request granted 11-24 02:50:58.051 1043 1090 I Gecko : [Main Thread]: D/nsMediaElement MediaElement 947f9000 UpdateReadyStateInternal() Decoder download suspended b y cache 11-24 02:50:58.052 1043 1090 I Gecko : [Main Thread]: D/nsMediaElement MediaElement 947f9000 VideoTrack with id 2 disabled 11-24 02:50:58.056 1043 1090 I Gecko : [Main Thread]: D/nsMediaElement MediaElement 947f9000 UpdateReadyStateInternal() Next frame not available 11-24 02:50:58.057 1043 1090 I Gecko : [Main Thread]: D/nsMediaElement 947f9000 Ready state changed to HAVE_CURRENT_DATA 11-24 02:50:58.057 1043 1090 I Gecko : [Main Thread]: D/nsMediaElement MediaElement 947f9000 UpdateReadyStateInternal() Next frame not available 11-24 02:50:58.149 1043 1056 D : HostConnection::get() New Host Connection established 0x9287f6e0, tid 1056 11-24 02:50:58.192 1234 1247 D GeckoRemoteCodec: release org.mozilla.gecko.media.Codec@9404696 11-24 02:50:58.201 1234 1253 D GeckoAsyncCodecAPIv16: handler Handler (org.mozilla.gecko.media.JellyBeanAsyncCodec$BufferPoller) {c2b98b3} done cancel lation, codec=org.mozilla.gecko.media.JellyBeanAsyncCodec@3e3f217 11-24 02:50:58.202 1234 1253 D GeckoAsyncCodecAPIv16: handler Handler (org.mozilla.gecko.media.JellyBeanAsyncCodec$CallbackSender) {9b4604} done cance llation, codec=org.mozilla.gecko.media.JellyBeanAsyncCodec@3e3f217 11-24 02:50:58.314 1043 1090 I Gecko : [Main Thread]: D/nsMediaElement 947f9000 Log VIDEO_AS_CONTENT_SOURCE: visibility = 1, API: '0' and 'All' 11-24 02:50:58.355 1043 1090 E eglCodecCommon: glUtilsParamSize: unknow param 0x00008caa 11-24 02:50:58.369 1043 1090 E eglCodecCommon: glUtilsParamSize: unknow param 0x00008caa 11-24 02:50:58.375 1043 1090 E eglCodecCommon: **** ERROR unknown type 0x0 (glSizeof,72) 11-24 02:50:58.376 1043 1090 E eglCodecCommon: glUtilsParamSize: unknow param 0x00008caa 11-24 02:50:58.473 1043 1090 I Gecko : nsAndroidBridge::Observe, get media-playback event. 11-24 02:50:58.473 1043 1090 I Gecko : nsAndroidBridge, abandon audio focus. 11-24 02:50:58.473 1043 1090 D AudioFocusAgent: NotifyStoppedPlaying 11-24 02:50:58.473 1043 1090 D AudioFocusAgent: Abandon AudioFocus 11-24 02:50:58.475 237 790 I MediaFocusControl: AudioFocus abandonAudioFocus() from android.media.AudioManager@ddedce9org.mozilla.gecko.media.Audi oFocusAgent$1@4693d6e 11-24 02:50:58.483 1043 1090 I Gecko : [Main Thread]: D/nsMediaElement 947f9000 Log VIDEO_AS_CONTENT_SOURCE: visibility = 1, API: '0' and 'All' 11-24 02:50:58.487 1043 1090 E eglCodecCommon: glUtilsParamSize: unknow param 0x00008caa 11-24 02:50:58.489 1043 1090 E eglCodecCommon: glUtilsParamSize: unknow param 0x00008caa 11-24 02:50:58.492 1043 1090 E eglCodecCommon: **** ERROR unknown type 0x0 (glSizeof,72) 11-24 02:50:58.493 1043 1090 E eglCodecCommon: glUtilsParamSize: unknow param 0x00008caa 11-24 02:50:58.505 1043 1090 I Gecko : [Main Thread]: D/nsMediaElement 947f9000 Log VIDEO_AS_CONTENT_SOURCE: visibility = 1, API: '0' and 'All' 11-24 02:50:58.507 1043 1090 E eglCodecCommon: glUtilsParamSize: unknow param 0x00008caa 11-24 02:50:58.516 1043 1090 E eglCodecCommon: glUtilsParamSize: unknow param 0x00008caa 11-24 02:50:58.519 1043 1090 E eglCodecCommon: **** ERROR unknown type 0x0 (glSizeof,72) 11-24 02:50:58.519 1043 1090 E eglCodecCommon: glUtilsParamSize: unknow param 0x00008caa 11-24 02:50:58.756 1043 1118 W GLConsumer: [SurfaceTexture-0-1043-1] bindTextureImage: clearing GL error: 0x502 11-24 02:50:59.282 1234 1247 D GeckoAsyncCodecAPIv16: stop poller org.mozilla.gecko.media.JellyBeanAsyncCodec@3e3f217
I've also tested Android-Emulator stock AVD Image (Nexus5, APIv18, use HostGPU), it works FINE on out-of-process decode !! I'm a bit confused how did that happen and wondering what's the difference between the MOZ AVD and stock AVD images.
Hmm...interesting, the test passed ("media.android-remote-codec.enabled = true") ! https://treeherder.mozilla.org/#/jobs?repo=try&revision=bc2d0f524a289a463c11242136a37c6693cc9fde The only difference is that I set a timeout(0.5s) for invoking MediaRecoder.stop() to make the duration of first frame greater than 0. John, any thoughts ?
Flags: needinfo?(jolin)
I'll check if it's related to Bug 1318245 tomorrow.
Flags: needinfo?(jolin)
(In reply to Kilik Kuo [:kikuo] from comment #3) > Hmm...interesting, the test passed ("media.android-remote-codec.enabled = > true") ! > https://treeherder.mozilla.org/#/ > jobs?repo=try&revision=bc2d0f524a289a463c11242136a37c6693cc9fde > > The only difference is that I set a timeout(0.5s) for invoking > MediaRecoder.stop() to make the duration of first frame greater than 0. > John, any thoughts ? Hmm... With non-zero duration frame, was |video.currentTime| also non-zero when ontimeupdate()[1] is called? [1] http://searchfox.org/mozilla-central/source/dom/canvas/test/captureStream_common.js#117
(In reply to Kilik Kuo [:kikuo] from comment #6) > Without the "setTimeout" modification to the test file, I tried again. Still > passed ! > https://treeherder.mozilla.org/#/ > jobs?repo=try&revision=5f893a6b7490f5c09d2206cd4bac4999102a8b5f&selectedJob=3 > 1839352 > > Rollback to rv 323686 (before Bug 1318245) - Pass > https://treeherder.mozilla.org/#/ > jobs?repo=try&revision=f07a0788832a5eaef1859006670b990c0c187af1 > > Rollback to rv 323687 (With Bug 1318245) - Pass > https://treeherder.mozilla.org/#/ > jobs?repo=try&revision=d59902427307a3f79a531081080c00344fe5c2c8 > > That must be solved somewhere ... In my own try push today, it seems this test case was moved from mochitest-9 to mochitest-11. Could you please check the log to see if it's also moved in your case?
Ah ... sure enough, the test is not in mochitest-9 now, what a stupid thing I've done.
https://treeherder.mozilla.org/#/jobs?repo=try&revision=b50381caacb7bcce0c0880f202c04429378bc5e2&selectedJob=31937612 I dumped the color of several beginning pixels from ImageContainer, they're all black ! (0,0,0) My next step is to figure out whether the video recorded from recorder is already damaged. I'll try to directly play a uploaded video on that video element(id='recorded-video') to verify.
Priority: -- → P2
https://treeherder.mozilla.org/#/jobs?repo=try&revision=c4a02011b8676083d3824bf97f2f7576ee0e4971&selectedJob=32139443 hmm... tried to dump canvas pixels color before encoding & the pixels color before decoding. But recently kept getting this intermittent Bug 1300313. Can't continue the investigation because the test works fine with stock avd android-emulator on local pc. I'm gonna put it aside, and work on Bug 1317628 first.
Priority: P2 → P3
Tried running remote decoder locally instead of out-of-process and the test passed! [1] Will try playing video on emulator to see if that works at all. [1] https://treeherder.mozilla.org/#/jobs?repo=try&revision=1fd817cd774fccf2d0e2424c37a614e4cb3c7af5&selectedJob=32377362
(In reply to John Lin [:jolin][:jhlin] from comment #11) > Will try playing video on emulator to see if that works at all. Couldn't get it work on my desktop PC. T_T
Josh, it seems to me that test_temporaryfile_stream.html was created in bug 1167730 for e10s cross process data serialization. Since Fennec runs in non-e10s mode it seems this test is not useful here. Do you have any concern if I disable it with 'Skip-if = !e10s'?
Flags: needinfo?(josh)
That sounds fine.
Flags: needinfo?(josh)
Comment on attachment 8819147 [details] Bug 1317887 - don't run IPC temporary file stream test in non-e10s mode. https://reviewboard.mozilla.org/r/98990/#review99242
Attachment #8819147 - Flags: review?(josh) → review+
Pushed by jolin@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/68706cd6e148 don't run IPC temporary file stream test in non-e10s mode. r=jdm
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 53
Product: Firefox for Android → Firefox for Android Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: