Bug 278356

Summary: REGRESSION (280738@main) [WebCodecs] Audio and Video codecs can be garbage collected with pending work.
Product: WebKit Reporter: Anfernee Viduya <aviduya>
Component: WebCore Misc.Assignee: Ryan Reno <rreno>
Status: RESOLVED FIXED    
Severity: Normal CC: rreno, webkit-bot-watchers-bugzilla, webkit-bug-importer, youennf
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   

Anfernee Viduya
Reported 2024-08-19 15:51:59 PDT
http/wpt/webcodecs/hevc-encoder-config.https.any.html is a flaky failure. HISTORY: https://results.webkit.org/?suite=layout-tests&test=http%2Fwpt%2Fwebcodecs%2Fhevc-encoder-config.https.any.html&platform=ios&platform=mac DIFF: + +Harness Error (TIMEOUT), message = null PASS Test that VideoEncoder.isConfigSupported() doesn't support config: Possible future HEVC codec string -PASS Test that VideoEncoder.configure() doesn't support config: Possible future HEVC codec string +TIMEOUT Test that VideoEncoder.configure() doesn't support config: Possible future HEVC codec string Test timed out LINK: https://build.webkit.org/results/Apple-Sonoma-Release-AppleSilicon-WK2-Tests/282441@main%20(5199)/http/wpt/webcodecs/hevc-encoder-config.https.any-diff.txt DESCRIPTION: In 270738@main, changes were made against WebCodecs.
Attachments
Radar WebKit Bug Importer
Comment 1 2024-08-19 15:52:08 PDT
Anfernee Viduya
Comment 2 2024-08-19 15:55:00 PDT
Correction in description: 280738@main is the intended commit that caused the regression
Anfernee Viduya
Comment 3 2024-08-19 15:57:04 PDT
REPRODUCIBILITY: I was able to bisect the regression at 280738@main using command. run-webkit-tests http/wpt/webcodecs/hevc-encoder-config.https.any.html --iterations=10
Ryan Reno
Comment 4 2024-08-20 13:12:03 PDT
It looks like the VideoEncoder is being prematurely garbage collected. Before my change, the error callback was a GC root and so wouldn't be collected along with the VideoEncoder. But, the encoder is no longer being kept alive while it has outstanding work in `VideoEncoder.configure` so it doesn't keep the error callback alive anymore and so the callback is never called and the test doesn't complete. So this is a pre-existing bug that was uncovered by my changes to WebCodecs recently.
Ryan Reno
Comment 5 2024-08-20 14:07:13 PDT
EWS
Comment 6 2024-08-23 07:41:55 PDT
Committed 282657@main (dcc8d978d725): <https://commits.webkit.org/282657@main> Reviewed commits have been landed. Closing PR #32483 and removing active labels.
EWS
Comment 7 2024-08-23 14:46:01 PDT
Committed 280938.266@safari-7619-branch (c0991b6fa1ed): <https://commits.webkit.org/280938.266@safari-7619-branch> Reviewed commits have been landed. Closing PR #1643 and removing active labels.
Note You need to log in before you can comment on or make changes to this bug.