wpt.fyi icon indicating copy to clipboard operation
wpt.fyi copied to clipboard

"Failed to fetch test runs" on prod with only 6 runs

Open foolip opened this issue 3 years ago • 1 comments

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: image

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

foolip avatar Sep 14 '22 16:09 foolip

Looking at the logs, I don't see any obvious errors/issues

Screen Shot 2022-09-29 at 10 41 44 AM (2)

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 label atoms is inherently inefficient, because it is independent of browsers. We could only run label atoms 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.

KyleJu avatar Sep 29 '22 18:09 KyleJu

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.

foolip avatar Dec 19 '22 11:12 foolip

Fixed in prod. Future improvement in https://github.com/web-platform-tests/wpt.fyi/issues/3323

KyleJu avatar May 23 '23 17:05 KyleJu