Intermittent dom/media/webaudio/test/test_mediaStreamTrackAudioSourceNode.html | maxDifference: 0.9999571442604065, first bad index: 1792 with test-data offset 0 and expected-data offset 0; corresponding values 0 and -0.6874497532844543 --- differences

NEW
Unassigned

Status

()

defect
P5
normal
2 months ago
2 months ago

People

(Reporter: intermittent-bug-filer, Unassigned)

Tracking

(Regressed 1 bug, {intermittent-failure, leave-open, regression})

Firefox Tracking Flags

(Not tracked)

Details

(Whiteboard: [stockwell disabled])

Attachments

(1 attachment)

Reporter

Description

2 months ago
treeherder

#[markdown(off)]
Filed by: ccoroiu [at] mozilla.com

https://treeherder.mozilla.org/logviewer.html#?job_id=239425792&repo=autoland

https://queue.taskcluster.net/v1/task/ccKe0dE5Q7KmQSr77TattA/runs/1/artifacts/public/logs/live_backing.log

19:23:46 INFO - TEST-START | dom/media/webaudio/test/test_mediaStreamTrackAudioSourceNode.html
19:23:46 INFO - GECKO(3472) | NOW: enabled
19:23:46 INFO - TEST-INFO | started process screenshot
19:23:46 INFO - TEST-INFO | screenshot: exit 0
19:23:46 INFO - Buffered messages logged at 19:23:46
19:23:46 INFO - TEST-PASS | dom/media/webaudio/test/test_mediaStreamTrackAudioSourceNode.html | Correct number of channels for expected buffer 0
19:23:46 INFO - TEST-PASS | dom/media/webaudio/test/test_mediaStreamTrackAudioSourceNode.html | Correct number of expected frames
19:23:46 INFO - Buffered messages finished
19:23:46 INFO - TEST-UNEXPECTED-FAIL | dom/media/webaudio/test/test_mediaStreamTrackAudioSourceNode.html | maxDifference: 0.9999571442604065, first bad index: 1792 with test-data offset 0 and expected-data offset 0; corresponding values 0 and -0.6874497532844543 --- differences - got 255, expected +0
19:23:46 INFO - SimpleTest.is@SimpleTest/SimpleTest.js:320:16
19:23:46 INFO - compareChannels@dom/media/webaudio/test/webaudio.js:78:3
19:23:46 INFO - compareBuffers@dom/media/webaudio/test/webaudio.js:103:5
19:23:46 INFO - testOutput/sp.onaudioprocess@dom/media/webaudio/test/webaudio.js:214:11
19:23:46 INFO - EventHandlerNonNull*testOutput@dom/media/webaudio/test/webaudio.js:211:9
19:23:46 INFO - runTestOnContext@dom/media/webaudio/test/webaudio.js:202:9
19:23:46 INFO - testOnNormalContext@dom/media/webaudio/test/webaudio.js:222:7
19:23:46 INFO - runTestFunction@dom/media/webaudio/test/webaudio.js:253:5
19:23:46 INFO - rval@SimpleTest/SimpleTest.js:146:30
19:23:46 INFO - EventHandlerNonNull*this.addLoadEvent@SimpleTest/SimpleTest.js:171:13
19:23:46 INFO - @SimpleTest/SimpleTest.js:1453:5
19:23:46 INFO - Not taking screenshot here: see the one that was previously logged
19:23:46 INFO - TEST-UNEXPECTED-FAIL | dom/media/webaudio/test/test_mediaStreamTrackAudioSourceNode.html | maxDifference: 0.9999571442604065, first bad index: 1792 with test-data offset 0 and expected-data offset 0; corresponding values 0 and 0.6874497532844543 --- differences - got 255, expected +0
19:23:46 INFO - SimpleTest.is@SimpleTest/SimpleTest.js:320:16
19:23:46 INFO - compareChannels@dom/media/webaudio/test/webaudio.js:78:3
19:23:46 INFO - compareBuffers@dom/media/webaudio/test/webaudio.js:103:5
19:23:46 INFO - testOutput/sp.onaudioprocess@dom/media/webaudio/test/webaudio.js:214:11
19:23:46 INFO - EventHandlerNonNull*testOutput@dom/media/webaudio/test/webaudio.js:211:9
19:23:46 INFO - runTestOnContext@dom/media/webaudio/test/webaudio.js:202:9
19:23:46 INFO - testOnNormalContext@dom/media/webaudio/test/webaudio.js:222:7
19:23:46 INFO - runTestFunction@dom/media/webaudio/test/webaudio.js:253:5
19:23:46 INFO - rval@SimpleTest/SimpleTest.js:146:30
19:23:46 INFO - EventHandlerNonNull*this.addLoadEvent@SimpleTest/SimpleTest.js:171:13
19:23:46 INFO - @SimpleTest/SimpleTest.js:1453:5

Comment hidden (Intermittent Failures Robot)
Comment hidden (Intermittent Failures Robot)
Comment hidden (Intermittent Failures Robot)
Comment hidden (Intermittent Failures Robot)
Comment hidden (Intermittent Failures Robot)
Comment hidden (Intermittent Failures Robot)

Is there still a way to buffer some data internally in a track or somewhere else? I think this is a phase shift caused by buffering something somewhere.

Flags: needinfo?(padenot) → needinfo?(apehrson)

There are some buffers.

In the MSG we have the track buffers in StreamTracks, i.e., MediaStream::mTracks, [1]. In a SourceMediaStream this buffer could outgrow or underrun an iteration. A TrackUnionStream that copies from an input track will insert silence if the input track underran (i.e., is blocked). For a microphone source there are some conditions early on after starting where underrunning (i.e., pushing silence instead of real samples) is OK, [2]. If we're using a fake microphone (MediaEngineDefaultAudio) we should just be pulled instead, and no underruns can occur here. Any other streams than SourceMediaStream can't underrun either, unless they're not doing ProcessInput() properly.

This test doesn't seem to be using getUserMedia, so the StreamTracks buffers should just follow the iterations. No guarantees for this are in place really (we must still support SourceMediaStream's pushing), so possibly there's a bug somewhere.

Other buffers I can think of would be in AudioInputProcessing::PacketizeAndProcess so that would again not be used in this test.

I can't speak to any other buffers in WebAudio, where I suppose something could also be happening.

[1] https://searchfox.org/mozilla-central/rev/1b2636e8517aa48422ed516affe4d28cb7fa220a/dom/media/MediaStreamGraph.h#545
[2] https://searchfox.org/mozilla-central/rev/1b2636e8517aa48422ed516affe4d28cb7fa220a/dom/media/webrtc/MediaEngineWebRTCAudio.cpp#821-822

Flags: needinfo?(apehrson)

The frequency here is very high and this is occuring on the beta sims:

https://treeherder.mozilla.org/#/jobs?repo=try&resultStatus=testfailed%2Cbusted%2Cexception%2Cretry%2Cusercancel%2Crunnable&revision=459f1df70cd2f9894cf477f95da6c43c53450a7a&searchStr=mda3&selectedJob=240650525

There are 398 total failures in the last 7 days on

pgo: android-hw-p2-8-0-arm7-api-16
opt: linux32-shippable, linux64-shippable, osx-10-10-shippable, windows10-64-shippable, windows7-32, windows7-32-shippable

Paul, can we disable this?

Flags: needinfo?(padenot)
Whiteboard: [retriggered][stockwell disable-recommended] → [retriggered][stockwell needswork:owner]

Yes I don't understand what's going on here.

Flags: needinfo?(padenot)

Joel is there a special condition to disable just shippables?

Flags: needinfo?(jmaher)

:apavel, can you disable on !debug?

Flags: needinfo?(jmaher)

Comment 16

2 months ago
Pushed by apavel@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/637a1287318c
disabled test_mediaStreamTrackAudioSourceNode.html on everything except debug r=jmaher
Keywords: leave-open
Whiteboard: [retriggered][stockwell needswork:owner] → [stockwell disabled]
Comment hidden (Intermittent Failures Robot)
Regressions: 1545077
Comment hidden (Intermittent Failures Robot)
You need to log in before you can comment on or make changes to this bug.