WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
288378
REGRESSION (
289309@main
): [wk1] fast/harness/internals-object-property-access-on-window-without-frame-crash.html causing multiple tests to fail under imported/w3c/web-platform-tests/css/css-grid/grid-items/*.
https://bugs.webkit.org/show_bug.cgi?id=288378
Summary
REGRESSION (289309@main): [wk1] fast/harness/internals-object-property-access...
Jonathan Bedard
Reported
2025-02-24 10:24:07 PST
Sometimes, many imported/w3c/web-platform-tests/css/css-grid/grid-items/* tests start failing on WebKitLegacy. The first failure we see in infrastructure is at
289398@main
, although this is merely the upper bound of the regression point, not the regression point itself. (determined based on
https://results.webkit.org/?suite=layout-tests&test=imported%2Fw3c%2Fweb-platform-tests%2Fcss%2Fcss-grid%2Fgrid-items%2Fanonymous-grid-item-001.html
)
https://ews-build.webkit.org/#/builders/135/builds/481
is an example of this failure mode in EWS. What especially odd about this failure mode is that it seems that every-other 'css-grid/grid-items' test is failing, rather than every single test when we find ourselves in this mode. It means that we're likely not dealing with an off-by-1 error.
Attachments
Add attachment
proposed patch, testcase, etc.
Radar WebKit Bug Importer
Comment 1
2025-02-24 10:25:58 PST
<
rdar://problem/145488787
>
Ben Schwartz
Comment 2
2025-02-24 12:51:43 PST
I suspect this could be an issue with these tests being run after a certain test(s) on the same worker. Will do some bisection here.
Jonathan Bedard
Comment 3
2025-02-24 13:50:00 PST
***
Bug 288243
has been marked as a duplicate of this bug. ***
Ben Schwartz
Comment 4
2025-02-24 14:21:26 PST
My suspicion was correct. It looks like the test leaving DumpRenderTree in a bad state is `fast/harness/internals-object-property-access-on-window-without-frame-crash.html`. If any of the affected tests are alone, they'll pass; however, if they're run with that one before, they'll fail every time (and pass when the retry on the unexpected failure occurs). The problematic test was added at
289309@main
, and the issue does not reproduce at
289308@main
.
EWS
Comment 5
2025-02-24 14:42:59 PST
Test gardening commit
290986@main
(2c7c77fce750): <
https://commits.webkit.org/290986@main
> Reviewed commits have been landed. Closing PR #41237 and removing active labels.
Ben Schwartz
Comment 6
2025-02-24 14:46:16 PST
CCing Frédéric, as they committed the change at
289309@main
.
Frédéric Wang (:fredw)
Comment 7
2025-02-24 22:38:22 PST
So this test verifies that calling internals API on a window without a frame and can reveal real bugs with APIs interacting with the DOM tree. However, some APIs (e.g. terminateWebContentProcess) also do "weird" things while at the same time not interacting with the DOM tree, and so they are listed in the skippedInternalFunctions array to exclude them from the test. I believed I had already verified the problematic ones, but there are more that affect subsequent tests that I forgot. Also, maybe new APIs were introduced recently. I'll take a look.
Ben Schwartz
Comment 8
2025-02-25 16:34:20 PST
A manual blocklist of problematic functions seems to me like it would be vulnerable to changes over time. Is there a better way to determine which functions should be excluded? If not, maybe the test should be re-written?
Frédéric Wang (:fredw)
Comment 9
2025-02-25 20:57:56 PST
> A manual blocklist of problematic functions seems to me like it would be vulnerable to changes over time. Is there a better way to determine which functions should be excluded? If not, maybe the test should be re-written?
Right, I had thought about it when I wrote it. I did that because fuzzers generate JS code with random internal API calls and detect nullptr crashes in our testing code. I could just have written a test for the specific report in
bug 286252
but then we would get similar bug reports for current APIs and future APIs, so I thought it would be better to try and catch a maximum of this kind of crashes so that people fix their code when they add new internal APIs.
Frédéric Wang (:fredw)
Comment 10
2025-02-26 00:36:53 PST
Pull request:
https://github.com/WebKit/WebKit/pull/41387
Frédéric Wang (:fredw)
Comment 11
2025-02-26 00:42:46 PST
> Pull request:
https://github.com/WebKit/WebKit/pull/41387
I uploaded
https://github.com/WebKit/WebKit/pull/41387
to skip that function and reactivate the test. I was able to reproduce with Tools/Scripts/run-webkit-tests --release --dump-render-tree --child-processes=1 LayoutTests/fast/harness/internals-object-property-access-on-window-without-frame-crash.html LayoutTests/imported/w3c/web-platform-tests/css/css-grid/grid-items/anonymous-grid-item-001.html After running MozillaSecurity/lithium to get a minimal set of functions to skip, the problematic one is internals.setGridMaxTracksLimit(). As a follow-up, an alternative way of testing could be to have two explicit lists for the functions included and the functions excluded and make the test throw for unknown functions. That will keep the benefit of not missing coverage for future functions but letting WebKit developers decide whether they should be covered by the test.
EWS
Comment 12
2025-02-27 12:08:36 PST
Committed
291242@main
(c6c694c35157): <
https://commits.webkit.org/291242@main
> Reviewed commits have been landed. Closing PR #41387 and removing active labels.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug