RESOLVED FIXED 224387
[ macOS ] 3 webaudio/OfflineAudioContext/ layout-tests are flakey text failures
https://bugs.webkit.org/show_bug.cgi?id=224387
Summary [ macOS ] 3 webaudio/OfflineAudioContext/ layout-tests are flakey text failures
Robert Jenner
Reported 2021-04-09 12:57:30 PDT
The following three tests are flakey text failures on macOS Catalina and up. webaudio/OfflineAudioContext/offlineaudiocontext-leak-after-rendering.html webaudio/OfflineAudioContext/offlineaudiocontext-leak-while-suspended.html webaudio/OfflineAudioContext/offlineaudiocontext-leak.html HISTORY URL: https://results.webkit.org/?suite=layout-tests&suite=layout-tests&suite=layout-tests&test=webaudio%2FOfflineAudioContext%2Fofflineaudiocontext-leak-after-rendering.html&test=webaudio%2FOfflineAudioContext%2Fofflineaudiocontext-leak-while-suspended.html&test=webaudio%2FOfflineAudioContext%2Fofflineaudiocontext-leak.html It looks like these tests were started fairly recently, and it appears they've had flakey failures since they started. It also looks like all three tests fail at the same time, and have the same text diff. TEXT DIFF: -PASS internals.numberOfBaseAudioContexts() < instancesToCreate is true +FAIL internals.numberOfBaseAudioContexts() < instancesToCreate should be true. Was false. PASS successfullyParsed is true +Some tests failed. TEST COMPLETE
Attachments
224387-Test list (427.87 KB, text/plain)
2021-04-09 14:11 PDT, Robert Jenner
no flags
Patch (19.08 KB, patch)
2021-04-09 16:40 PDT, Chris Dumez
ews-feeder: commit-queue-
Patch (19.10 KB, patch)
2021-04-09 16:43 PDT, Chris Dumez
ews-feeder: commit-queue-
Patch (19.19 KB, patch)
2021-04-09 17:01 PDT, Chris Dumez
no flags
Patch (19.18 KB, patch)
2021-04-09 17:05 PDT, Chris Dumez
no flags
Patch (19.19 KB, patch)
2021-04-09 19:46 PDT, Chris Dumez
no flags
Radar WebKit Bug Importer
Comment 1 2021-04-09 13:43:13 PDT
Robert Jenner
Comment 2 2021-04-09 14:09:53 PDT
When running these tests standalone, they do not fail anywhere. However, I was finally able to reproduce their failures at BigSur Release ToT using a test list, and the following test: run-webkit-tests <path to revision being tested> --test-list <path to test list location> --child-process=1 What this indicates is that these tests failures are dependent upon tests that run before them. I have attached the test list I used for reproduction, and will begin narrowing down what causes these tests to fail.
Robert Jenner
Comment 3 2021-04-09 14:11:49 PDT
Created attachment 425651 [details] 224387-Test list Test list used to reproduce the test failures.
Robert Jenner
Comment 4 2021-04-09 14:17:05 PDT
The following two tests were introduced at r275668(https://trac.webkit.org/changeset/275668/webkit): webaudio/OfflineAudioContext/offlineaudiocontext-leak.html webaudio/OfflineAudioContext/offlineaudiocontext-leak-after-rendering.html The third test was introduced at r275679 (https://trac.webkit.org/changeset/275679/webkit): webaudio/OfflineAudioContext/offlineaudiocontext-leak-while-suspended.html
Robert Jenner
Comment 5 2021-04-09 15:17:15 PDT
After a process of elimination, I have verified that the following test causes the three tests to fail when ran before them: webaudio/AudioListener/audiolistener-set-position.html When I ran the test directly before the three tests in a four test list on a loop, it caused the three tests to fail. When I removed the AudioListener test from the entire 6000+ test list, the three tests passed.
Chris Dumez
Comment 6 2021-04-09 15:19:04 PDT
Investigating now, thanks.
Chris Dumez
Comment 7 2021-04-09 15:26:29 PDT
Can reproduce like so: run-webkit-tests webaudio/AudioListener/audiolistener-set-position.html webaudio/OfflineAudioContext/offlineaudiocontext-leak.html --child-processes=1 --iterations=30 It does not fail on first iteration but it starts failing after a while. webaudio/AudioListener/audiolistener-set-position.html is probably leaking contexts.
Chris Dumez
Comment 8 2021-04-09 15:48:50 PDT
Looks like webaudio/AudioListener/audiolistener-set-position.html is leaking PannerNodes and the PannerNodes (like all AudioNodes) are ref'ing the AudioContext.
Chris Dumez
Comment 9 2021-04-09 16:40:27 PDT
Chris Dumez
Comment 10 2021-04-09 16:43:25 PDT
Peng Liu
Comment 11 2021-04-09 16:58:41 PDT
Comment on attachment 425665 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=425665&action=review > Source/WebCore/testing/Internals.cpp:2659 > +uint64_t Internals::baseAudioContextIdentifier(BaseAudioContext& context) Nit. const?
Chris Dumez
Comment 12 2021-04-09 17:01:32 PDT
Chris Dumez
Comment 13 2021-04-09 17:01:52 PDT
(In reply to Peng Liu from comment #11) > Comment on attachment 425665 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=425665&action=review > > > Source/WebCore/testing/Internals.cpp:2659 > > +uint64_t Internals::baseAudioContextIdentifier(BaseAudioContext& context) > > Nit. const? Fixed, thanks.
Chris Dumez
Comment 14 2021-04-09 17:05:39 PDT
Eric Carlson
Comment 15 2021-04-09 18:41:06 PDT
Comment on attachment 425670 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=425670&action=review > Source/WebCore/Modules/webaudio/BaseAudioContext.cpp:123 > + static uint64_t contextIDSeed = 0; Not: won’t this be initialized to zero automatically?
Chris Dumez
Comment 16 2021-04-09 19:44:24 PDT
(In reply to Eric Carlson from comment #15) > Comment on attachment 425670 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=425670&action=review > > > Source/WebCore/Modules/webaudio/BaseAudioContext.cpp:123 > > + static uint64_t contextIDSeed = 0; > > Not: won’t this be initialized to zero automatically? Yes, will fix.
Chris Dumez
Comment 17 2021-04-09 19:46:36 PDT
Chris Dumez
Comment 18 2021-04-09 19:47:30 PDT
Comment on attachment 425675 [details] Patch Looks like the stress bot wasn't happy. Will check.
EWS
Comment 19 2021-04-10 10:11:12 PDT
Committed r275798 (236369@main): <https://commits.webkit.org/236369@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 425675 [details].
Note You need to log in before you can comment on or make changes to this bug.