wpt.fyi
wpt.fyi copied to clipboard
"Failed to fetch test runs" on prod with only 6 runs
I'm not able to load a filtered list of the Interop 2022 tests across 6 runs on prod today: https://wpt.fyi/results/?view=subtest&q=label%3Ainterop-2021-aspect-ratio%20or%20label%3Ainterop-2021-flexbox%20or%20label%3Ainterop-2021-grid%20or%20label%3Ainterop-2021-position-sticky%20or%20label%3Ainterop-2021-transforms%20or%20label%3Ainterop-2022-cascade%20or%20label%3Ainterop-2022-color%20or%20label%3Ainterop-2022-contain%20or%20label%3Ainterop-2022-dialog%20or%20label%3Ainterop-2022-forms%20or%20label%3Ainterop-2022-scrolling%20or%20label%3Ainterop-2022-subgrid%20or%20label%3Ainterop-2022-text%20or%20label%3Ainterop-2022-viewport%20or%20label%3Ainterop-2022-webcompat&run_id=5652738877685760&run_id=5680388870504448&run_id=5635446534045696&run_id=5131133808279552&run_id=5134205785210880&run_id=5125533909123072
What I see is this:

This is common on staging (https://github.com/web-platform-tests/wpt.fyi/issues/2617) but I haven't seen it on prod much.
cc @KyleJu
Looking at the logs, I don't see any obvious errors/issues

I am able to load the test runs when I was experimenting with fewer search atoms. It is probably a API timeout issue because it is taking too long to process, as it runs (the number of tests) * (the number of browsers) * (the number of label atoms) operations, then search cache will have to combine all the test results because these are or operands. I have two ideas:
- Label is filed at the test-level, regarding of the browsers. You can split this 6 browsers into two groups, where each group has the Chrome-Firefox-Safari, as shown below. It does work but it defeats the purpose of this specific search for 6 browsers.
https://wpt.fyi/results/?view=subtest&q=label%3Ainterop-2021-aspect-ratio%20or%20label%3Ainterop-2021-flexbox%20or%20label%3Ainterop-2021-grid%20or%20label%3Ainterop-2021-position-sticky%20or%20label%3Ainterop-2021-transforms%20or%20label%3Ainterop-2022-cascade%20or%20label%3Ainterop-2022-color%20or%20label%3Ainterop-2022-contain%20or%20label%3Ainterop-2022-dialog%20or%20label%3Ainterop-2022-forms%20or%20label%3Ainterop-2022-scrolling%20or%20label%3Ainterop-2022-subgrid%20or%20label%3Ainterop-2022-text%20or%20label%3Ainterop-2022-viewport%20or%20label%3Ainterop-2022-webcompat&run_id=5652738877685760&run_id=5680388870504448&run_id=5635446534045696
- The way we are searching
labelatoms is inherently inefficient, because it is independent of browsers. We could only runlabelatoms on the tests, instead of tests on one browser at a time, which will cut the number of operations to (the number of tests) * (the number of label atoms). However, we need a smart way to combine tests, as each test run could run a different sets of tests, e.g. deletion.
I just hit this again a few times, this time with the query (label:interop-2021-aspect-ratio or label:interop-2021-flexbox or label:interop-2021-grid or label:interop-2021-position-sticky or label:interop-2021-transforms or label:interop-2022-cascade or label:interop-2022-color or label:interop-2022-contain or label:interop-2022-dialog or label:interop-2022-forms or label:interop-2022-scrolling or label:interop-2022-subgrid or label:interop-2022-text or label:interop-2022-viewport or label:interop-2022-webcompat) exists(status:!pass) seq(status:!missing status:!missing status:!missing status:pass status:pass status:pass) with 3 runs from early March and 3 recent ones:
https://wpt.fyi/results/?view=subtest&q=%28label%3Ainterop-2021-aspect-ratio%20or%20label%3Ainterop-2021-flexbox%20or%20label%3Ainterop-2021-grid%20or%20label%3Ainterop-2021-position-sticky%20or%20label%3Ainterop-2021-transforms%20or%20label%3Ainterop-2022-cascade%20or%20label%3Ainterop-2022-color%20or%20label%3Ainterop-2022-contain%20or%20label%3Ainterop-2022-dialog%20or%20label%3Ainterop-2022-forms%20or%20label%3Ainterop-2022-scrolling%20or%20label%3Ainterop-2022-subgrid%20or%20label%3Ainterop-2022-text%20or%20label%3Ainterop-2022-viewport%20or%20label%3Ainterop-2022-webcompat%29%20exists%28status%3A%21pass%29%20seq%28status%3A%21missing%20status%3A%21missing%20status%3A%21missing%20status%3Apass%20status%3Apass%20status%3Apass%29&run_id=5694898400395264&run_id=5671385434161152&run_id=5747379813744640&run_id=4818947338141696&run_id=4882567984054272&run_id=5158468428759040
When reloading I eventually get it to load.
@KyleJu this query also uses labels a lot, so if label queries could be made more efficient that would probably help, yeah.
Fixed in prod. Future improvement in https://github.com/web-platform-tests/wpt.fyi/issues/3323