Closed Bug 1123469 Opened 9 years ago Closed 8 years ago

Intermittent test_bug879717.html | Test timed out

Categories

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

x86_64
Windows 10
defect

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: philor, Unassigned)

References

(Depends on 1 open bug)

Details

(Keywords: intermittent-failure)

      No description provided.
The log looks the same in both cases. To me this looks related to the hardware decoder on B2G.

Here we are doing removeNodeAndSource() directly in each element's onended handler. We get both "loadedmetadata" and "loadeddata" on v1, so it has certainly used the decoder. Before it ends though, v2 takes over and can play through to the end. Seems like either the decoder is misbehaving so v1 does not fire "ended" or v2 "stole" the decoder before v1 was finished. Have you ever seen something like this before JW?

---

08:27:24 INFO - 3112 INFO TEST-PASS | dom/media/test/test_bug879717.html | [started gizmo.mp4-3] Length of array should match number of running tests
08:27:24 INFO - 3113 INFO TEST-PASS | dom/media/test/test_bug879717.html | drawImage shouldn't throw an exception on beforeplay of v1 (gizmo.mp4), got nothing
08:27:24 INFO - 3114 INFO TEST-PASS | dom/media/test/test_bug879717.html | drawImage shouldn't throw an exception on beforeplay of v2 (Captured gizmo.mp4), got nothing
08:27:24 INFO - 3115 INFO TEST-PASS | dom/media/test/test_bug879717.html | drawImage shouldn't throw an exception on beforeplay of v3 (Stream of gizmo.mp4), got nothing
(vp9.webm ...)
08:27:24 INFO - 3117 INFO TEST-PASS | dom/media/test/test_bug879717.html | drawImage shouldn't throw an exception on play of v3 (Stream of gizmo.mp4), got nothing
08:27:24 INFO - 3127 INFO TEST-PASS | dom/media/test/test_bug879717.html | drawImage shouldn't throw an exception on loadedmetadata of v1 (gizmo.mp4), got nothing
08:27:24 INFO - 3128 INFO TEST-PASS | dom/media/test/test_bug879717.html | drawImage shouldn't throw an exception on loadeddata of v1 (gizmo.mp4), got nothing
08:27:24 INFO - 3129 INFO TEST-PASS | dom/media/test/test_bug879717.html | drawImage shouldn't throw an exception on play of v1 (gizmo.mp4), got nothing
08:27:24 INFO - 3130 INFO TEST-PASS | dom/media/test/test_bug879717.html | drawImage shouldn't throw an exception on playing of v1 (gizmo.mp4), got nothing
08:27:24 INFO - 3131 INFO TEST-PASS | dom/media/test/test_bug879717.html | drawImage shouldn't throw an exception on loadedmetadata of v2 (Captured gizmo.mp4), got nothing
08:27:24 INFO - 3132 INFO TEST-PASS | dom/media/test/test_bug879717.html | drawImage shouldn't throw an exception on loadeddata of v2 (Captured gizmo.mp4), got nothing
08:27:24 INFO - 3133 INFO TEST-PASS | dom/media/test/test_bug879717.html | drawImage shouldn't throw an exception on play of v2 (Captured gizmo.mp4), got nothing
08:27:24 INFO - 3134 INFO TEST-PASS | dom/media/test/test_bug879717.html | drawImage shouldn't throw an exception on playing of v2 (Captured gizmo.mp4), got nothing
08:27:24 INFO - 3135 INFO TEST-PASS | dom/media/test/test_bug879717.html | drawImage shouldn't throw an exception on loadedmetadata of v3 (Stream of gizmo.mp4), got nothing
08:27:24 INFO - 3136 INFO TEST-PASS | dom/media/test/test_bug879717.html | drawImage shouldn't throw an exception on loadeddata of v3 (Stream of gizmo.mp4), got nothing
08:27:24 INFO - 3137 INFO TEST-PASS | dom/media/test/test_bug879717.html | drawImage shouldn't throw an exception on playing of v3 (Stream of gizmo.mp4), got nothing
08:27:24 INFO - 3138 INFO TEST-PASS | dom/media/test/test_bug879717.html | drawImage shouldn't throw an exception on ended of v3 (Stream of gizmo.mp4), got nothing
08:27:24 INFO - 3139 INFO TEST-PASS | dom/media/test/test_bug879717.html | drawImage shouldn't throw an exception on ended of v2 (Captured gizmo.mp4), got nothing
08:27:24 INFO - 3140 INFO Watchdog remaining tests= gizmo.mp4-3
08:27:24 INFO - 3141 INFO TEST-UNEXPECTED-FAIL | dom/media/test/test_bug879717.html | Test timed out. - expected PASS
Flags: needinfo?(jwwang)
No, I didn't see this before.

Comment 2 happened on b2g desktop instead of b2g emulator. I am not sure if there is limitation in number of h264 decoder instance.

If there is only one, it is possible for v1 to release the decoder for some reason (like dormancy) after decoding metadta. That's why we see 'loadedmetadata' fired on both v1 and v2.

If there is more than one, it could be some playback problems which prevent v1 from playing to the end.
Flags: needinfo?(jwwang)
Ah, yes. Both of them are on B2G desktop.
(In reply to JW Wang [:jwwang] from comment #4)
> No, I didn't see this before.
> 
> Comment 2 happened on b2g desktop instead of b2g emulator. I am not sure if
> there is limitation in number of h264 decoder instance.
> 
> If there is only one, it is possible for v1 to release the decoder for some
> reason (like dormancy) after decoding metadta. That's why we see
> 'loadedmetadata' fired on both v1 and v2.

Does it not automatically acquire it again afterwards (it's autoplaying)? Would that be a bug?
Flags: needinfo?(jwwang)
Do you mean to acquire the decoder resource again after restoring from dormant state? Yes it will. However, I wonder if there is something wrong such that it never wakes up from dormant state to resume playback.
Flags: needinfo?(jwwang)
I tried reproducing this for my local b2g-desktop build but couldn't get gizmo.mp4 to play, even though Gstreamer was setup and properly detected during configure.

Who would know more about how the b2g desktop machines are set up?
Can you play mp4 in your desktop browser?
No, I couldn't. But I can now.

I tried to mimic the b2g-desktop machines (Ubuntu 12.04) as closely as possible by using GStreamer0.10. It worked fine to build Firefox out of the box but on Ubuntu 14.04 the gstreamer0.10-ffmpeg package (needed for mp4 support) is not provided.

`sudo apt-add-repository ppa:mc3man/gstffmpeg-keep &&
sudo apt-get update &&
sudo apt-get install gstreamer0.10-ffmpeg` gave me mp4 support so now I'll run a bunch of test iterations to see if I can repro this thing.
moving to audio/video because media play back bug.
Component: WebRTC: Audio/Video → Video/Audio
Assignee: nobody → edwin
Flags: needinfo?(edwin)
Depends on: 1140675
Clearing ni?. See bug 1140675.
Flags: needinfo?(edwin)
JW, can you please help investigate this?
Flags: needinfo?(jwwang)
Hi Andreas,
Can you take a look?
Flags: needinfo?(jwwang) → needinfo?(pehrsons)
See comment 3 for my initial analysis. Unless something new has come up (doesn't seem like it at first glance) I'd really appreciate if someone on the b2g media team could dig into this. Perhaps someone with know-how in how the hardware decoder acquisition works.
Flags: needinfo?(pehrsons) → needinfo?(jwwang)
All recent occurrences have been since bug 1143575 landed.
Flags: needinfo?(roc)
(In reply to Ryan VanderMeulen [:RyanVM UTC-4] from comment #287)
> All recent occurrences have been since bug 1143575 landed.

I think the problem on B2G is the test takes so much time that it can't finish before timeout. That's why we see such logs:

334 INFO TEST-UNEXPECTED-FAIL | dom/media/test/test_bug879717.html | Test timed out. - expected PASS
380 INFO TEST-UNEXPECTED-ERROR | dom/media/test/test_bug879717.html | called finish() multiple times
Return code: 1

finish() is called after timeout. If given more time, the test should be able to finish without any error.

Such timeouts can also be observed on other test cases like:
https://bugzilla.mozilla.org/show_bug.cgi?id=762774#c535
https://bugzilla.mozilla.org/show_bug.cgi?id=684173#c498


I wonder if test machines for B2G are overloaded...
Flags: needinfo?(jwwang)
Depends on: 1181456
See comment 300. Is there a way to have an isolated machine to run B2G to identify if the tests time out because media code are running slower than before or the machines are more overloaded than before?
Flags: needinfo?(ryanvm)
You can request a loaner slave.
https://wiki.mozilla.org/ReleaseEngineering/How_To/Request_a_slave
Flags: needinfo?(ryanvm)
Depends on: 1183955
Component: Audio/Video → Audio/Video: Playback
Flags: needinfo?(roc)
P5
OS: All → Gonk (Firefox OS)
Priority: -- → P5
B2G tests are no longer run.
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → WORKSFORME
(In reply to OrangeFactor Robot from comment #432)
> 1 failures in 947 pushes (0.001 failures/push) were associated with this bug
> in the last 7 days.    
> 
> Repository breakdown:
> * mozilla-inbound: 1
> 
> Platform breakdown:
> * windows10-64: 1
> 
> For more details, see:
> https://brasstacks.mozilla.com/orangefactor/
> ?display=Bug&bugid=1123469&startday=2017-10-09&endday=2017-10-15&tree=all

Windows 10 timeout.
Depends on: 1407553
OS: Gonk (Firefox OS) → Windows 10
Hardware: All → x86_64
You need to log in before you can comment on or make changes to this bug.