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
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 | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Radar WebKit Bug Importer
<rdar://problem/134297589>
Anfernee Viduya
Correction in description: 280738@main is the intended commit that caused the regression
Anfernee Viduya
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
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
Pull request: https://github.com/WebKit/WebKit/pull/32483
EWS
Committed 282657@main (dcc8d978d725): <https://commits.webkit.org/282657@main>
Reviewed commits have been landed. Closing PR #32483 and removing active labels.
EWS
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.