Closed Bug 1504336 Opened Last year Closed 10 months ago

Intermittent dom/media/tests/mochitest/test_peerConnection_simulcastOddResolution.html | Width 640 should be within 10% of 1280 for rid 'foo'

Categories

(Core :: WebRTC: Audio/Video, defect, P3)

defect

Tracking

()

RESOLVED FIXED
mozilla68
Tracking Status
firefox67 --- fixed
firefox68 --- fixed

People

(Reporter: intermittent-bug-filer, Assigned: pehrsons)

Details

(Keywords: intermittent-failure)

Attachments

(1 file)

Filed by: csabou [at] mozilla.com

https://treeherder.mozilla.org/logviewer.html#?job_id=209505291&repo=mozilla-inbound

https://queue.taskcluster.net/v1/task/crkqBhj4SwujmsMWxGS9DQ/runs/0/artifacts/public/logs/live_backing.log

[task 2018-11-02T20:28:08.260Z] 20:28:08     INFO - TEST-PASS | dom/media/tests/mochitest/test_peerConnection_simulcastOddResolution.html | We have exactly one RTP receiver 
[task 2018-11-02T20:28:08.261Z] 20:28:08     INFO - element _remote_{707ab9f3-d5ec-448b-8dde-bc7178392c26} resized to 640x352
[task 2018-11-02T20:28:08.262Z] 20:28:08     INFO - Source resolution is 1280x720
[task 2018-11-02T20:28:08.264Z] 20:28:08     INFO - Buffered messages finished
[task 2018-11-02T20:28:08.266Z] 20:28:08     INFO - TEST-UNEXPECTED-FAIL | dom/media/tests/mochitest/test_peerConnection_simulcastOddResolution.html | Width 640 should be within 10% of 1280 for rid 'foo' 
[task 2018-11-02T20:28:08.267Z] 20:28:08     INFO -     SimpleTest.ok@SimpleTest/SimpleTest.js:275:7
[task 2018-11-02T20:28:08.268Z] 20:28:08     INFO -     checkResolution@dom/media/tests/mochitest/test_peerConnection_simulcastOddResolution.html:68:5
[task 2018-11-02T20:28:08.270Z] 20:28:08     INFO -     async*checkResolutions@dom/media/tests/mochitest/test_peerConnection_simulcastOddResolution.html:84:11
[task 2018-11-02T20:28:08.272Z] 20:28:08     INFO -     async*PC_LOCAL_CHANGE_PARAMS_2@dom/media/tests/mochitest/test_peerConnection_simulcastOddResolution.html:176:15
[task 2018-11-02T20:28:08.273Z] 20:28:08     INFO -     async*execute/</<@dom/media/tests/mochitest/head.js:849:31
[task 2018-11-02T20:28:08.275Z] 20:28:08     INFO -     promise callback*execute/<@dom/media/tests/mochitest/head.js:847:14
[task 2018-11-02T20:28:08.277Z] 20:28:08     INFO -     execute@dom/media/tests/mochitest/head.js:842:12
[task 2018-11-02T20:28:08.278Z] 20:28:08     INFO -     PeerConnectionTest.prototype.run@dom/media/tests/mochitest/pc.js:486:10
[task 2018-11-02T20:28:08.279Z] 20:28:08     INFO -     @dom/media/tests/mochitest/test_peerConnection_simulcastOddResolution.html:180:11
[task 2018-11-02T20:28:08.281Z] 20:28:08     INFO -     async*runNetworkTest/<@dom/media/tests/mochitest/pc.js:2211:13
[task 2018-11-02T20:28:08.282Z] 20:28:08     INFO -     async*runTestWhenReady/<@dom/media/tests/mochitest/head.js:470:41
[task 2018-11-02T20:28:08.284Z] 20:28:08     INFO -     promise callback*runTestWhenReady@dom/media/tests/mochitest/head.js:470:10
[task 2018-11-02T20:28:08.285Z] 20:28:08     INFO -     runNetworkTest@dom/media/tests/mochitest/pc.js:2193:9
[task 2018-11-02T20:28:08.287Z] 20:28:08     INFO -     async*@dom/media/tests/mochitest/test_peerConnection_simulcastOddResolution.html:89:3
[task 2018-11-02T20:28:08.288Z] 20:28:08     INFO - Not taking screenshot here: see the one that was previously logged
[task 2018-11-02T20:28:08.290Z] 20:28:08     INFO - TEST-UNEXPECTED-FAIL | dom/media/tests/mochitest/test_peerConnection_simulcastOddResolution.html | Height 352 should be within 10% of 720 for rid 'foo' 
[task 2018-11-02T20:28:08.292Z] 20:28:08     INFO -     SimpleTest.ok@SimpleTest/SimpleTest.js:275:7
[task 2018-11-02T20:28:08.293Z] 20:28:08     INFO -     checkResolution@dom/media/tests/mochitest/test_peerConnection_simulcastOddResolution.html:70:5
[task 2018-11-02T20:28:08.295Z] 20:28:08     INFO -     async*checkResolutions@dom/media/tests/mochitest/test_peerConnection_simulcastOddResolution.html:84:11
[task 2018-11-02T20:28:08.296Z] 20:28:08     INFO -     async*PC_LOCAL_CHANGE_PARAMS_2@dom/media/tests/mochitest/test_peerConnection_simulcastOddResolution.html:176:15
[task 2018-11-02T20:28:08.298Z] 20:28:08     INFO -     async*execute/</<@dom/media/tests/mochitest/head.js:849:31
[task 2018-11-02T20:28:08.299Z] 20:28:08     INFO -     promise callback*execute/<@dom/media/tests/mochitest/head.js:847:14
[task 2018-11-02T20:28:08.300Z] 20:28:08     INFO -     execute@dom/media/tests/mochitest/head.js:842:12
[task 2018-11-02T20:28:08.302Z] 20:28:08     INFO -     PeerConnectionTest.prototype.run@dom/media/tests/mochitest/pc.js:486:10
[task 2018-11-02T20:28:08.303Z] 20:28:08     INFO -     @dom/media/tests/mochitest/test_peerConnection_simulcastOddResolution.html:180:11
[task 2018-11-02T20:28:08.304Z] 20:28:08     INFO -     async*runNetworkTest/<@dom/media/tests/mochitest/pc.js:2211:13
[task 2018-11-02T20:28:08.306Z] 20:28:08     INFO -     async*runTestWhenReady/<@dom/media/tests/mochitest/head.js:470:41
[task 2018-11-02T20:28:08.307Z] 20:28:08     INFO -     promise callback*runTestWhenReady@dom/media/tests/mochitest/head.js:470:10
[task 2018-11-02T20:28:08.308Z] 20:28:08     INFO -     runNetworkTest@dom/media/tests/mochitest/pc.js:2193:9
[task 2018-11-02T20:28:08.310Z] 20:28:08     INFO -     async*@dom/media/tests/mochitest/test_peerConnection_simulcastOddResolution.html:89:3
[task 2018-11-02T20:28:08.312Z] 20:28:08     INFO - Changing to rid bar

This happens because sending frames through the VideoFrameConverter [1] is async, and thus this test becomes racy after setParameters when listening for a resize event. We expect the resize to come from switching to rid 'bar', but we don't verify the size of it. It is instead coming from setParameters, because the scaling factor for the already-selected rid 'baz' changed.

This means the next time we're waiting for resize, we're expecting it from switching to rid 'foo', thus being 1280x720, but it is instead coming from the previous switch to rid 'bar', being 640x352.

This wouldn't be a problem if [1] was sync, because no frames are emitted as setParameters is called.

A simple fix in the test is to explicitly emit frames and wait for a resize after setParameters.

[1] https://searchfox.org/mozilla-central/rev/2c912888e3b7ae4baf161d98d7a01434f31830aa/dom/media/VideoFrameConverter.h#95,231

Assignee: nobody → apehrson
Rank: 25
Component: WebRTC → WebRTC: Audio/Video
Priority: P5 → P3
Status: NEW → ASSIGNED
Pushed by pehrsons@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/eb2781c15ef3
Avoid race in test_pc_simulcastOddResolution.html. r=jib
Status: ASSIGNED → RESOLVED
Closed: 10 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla68
You need to log in before you can comment on or make changes to this bug.