NEW 208139
[GTK] Several Fetch API related tests are flaky after r256967
https://bugs.webkit.org/show_bug.cgi?id=208139
Summary [GTK] Several Fetch API related tests are flaky after r256967
Diego Pino
Reported 2020-02-24 08:36:48 PST
The following tests became flaky after r256967: * http/tests/cache/disk-cache/disk-cache-disable.html [ Pass Failure ] * http/tests/cache/link-prefetch-main-resource.html [ Pass Failure ] * http/tests/inspector/network/resource-response-source-disk-cache.html [ Pass Failure ] * http/tests/inspector/network/resource-sizes-disk-cache.html [ Pass Failure ] * http/wpt/fetch/disable-speculative-load-for-xhr-and-fetch-loads.html [ Pass Failure ] * imported/w3c/web-platform-tests/fetch/api/basic/conditional-get.html [ Pass Failure ] * imported/w3c/web-platform-tests/fetch/api/request/request-cache-default.html [ Pass Failure ] * imported/w3c/web-platform-tests/fetch/api/request/request-cache-force-cache.html [ Pass Failure ] * imported/w3c/web-platform-tests/fetch/api/request/request-cache-reload.html [ Pass Failure ] * imported/w3c/web-platform-tests/service-workers/service-worker/update-no-cache-request-headers.https.html [ Pass Failure ] Actual failing range is [r256918-r257038], but within those revision numbers I think r256967 is the most likely cause for the regression. --- /home/igalia/dpino/workspace/webkit-gtk/layout-test-results/retries/http/tests/cache/disk-cache/disk-cache-disable-expected.txt +++ /home/igalia/dpino/workspace/webkit-gtk/layout-test-results/retries/http/tests/cache/disk-cache/disk-cache-disable-actual.txt @@ -6,7 +6,7 @@ Default (cache enabled) --------Testing loads from disk cache-------- response headers: {"Cache-control":"max-age=100"} -response source: Disk cache +response source: Network --------Testing loads through memory cache (XHR behavior)-------- response headers: {"Cache-control":"max-age=100"} --- /home/igalia/dpino/workspace/webkit-gtk/layout-test-results/retries/http/tests/cache/link-prefetch-main-resource-expected.txt +++ /home/igalia/dpino/workspace/webkit-gtk/layout-test-results/retries/http/tests/cache/link-prefetch-main-resource-actual.txt @@ -1 +1 @@ -PASS +FAIL: resource is not in the disk cache. --- /home/igalia/dpino/workspace/webkit-gtk/layout-test-results/http/tests/inspector/network/resource-response-source-disk-cache-expected.txt +++ /home/igalia/dpino/workspace/webkit-gtk/layout-test-results/http/tests/inspector/network/resource-response-source-disk-cache-actual.txt @@ -11,5 +11,7 @@ PASS: Resource should be created. PASS: Resource should receive a Response. PASS: statusCode should be 200 -PASS: responseSource should be Symbol(disk-cache) +FAIL: responseSource should be Symbol(disk-cache) + Expected: Symbol(disk-cache) + Actual: Symbol(network) --- /home/igalia/dpino/workspace/webkit-gtk/layout-test-results/http/tests/inspector/network/resource-sizes-disk-cache-expected.txt +++ /home/igalia/dpino/workspace/webkit-gtk/layout-test-results/http/tests/inspector/network/resource-sizes-disk-cache-actual.txt @@ -7,14 +7,22 @@ -- Running test case: Resource.Size.DiskCache.Basic PASS: statusCode should be 200. PASS: compressed should be false. -PASS: responseSource should be Symbol(disk-cache). +FAIL: responseSource should be Symbol(disk-cache). + Expected: Symbol(disk-cache) + Actual: Symbol(network) size: 529 -requestBodyTransferSize: 0 -responseBodyTransferSize: 0 -estimatedNetworkEncodedSize: 0 -networkEncodedSize: 0 +requestBodyTransferSize: NaN +responseBodyTransferSize: NaN +estimatedNetworkEncodedSize: 529 +networkEncodedSize: NaN PASS: estimatedTotalTransferSize should be >= (encoded body size + headers). -PASS: networkTotalTransferSize should be >= (encoded body size + headers). -PASS: requestHeadersTransferSize should be empty. -PASS: responseHeadersTransferSize should be empty. +FAIL: networkTotalTransferSize should be >= (encoded body size + headers). + Expected: greater than or equal to 0 + Actual: NaN +FAIL: requestHeadersTransferSize should be empty. + Expected: 0 + Actual: NaN +FAIL: responseHeadersTransferSize should be empty. + Expected: 0 + Actual: NaN --- /home/igalia/dpino/workspace/webkit-gtk/layout-test-results/http/wpt/fetch/disable-speculative-load-for-xhr-and-fetch-loads-expected.txt +++ /home/igalia/dpino/workspace/webkit-gtk/layout-test-results/http/wpt/fetch/disable-speculative-load-for-xhr-and-fetch-loads-actual.txt @@ -1,4 +1,5 @@ -PASS Ensure fetch is not speculatively loaded -PASS Ensure XHR is not speculatively loaded +FAIL Ensure fetch is not speculatively loaded assert_equals: after reload expected "0" but got "1" +FAIL Ensure XHR is not speculatively loaded assert_equals: after reload expected "0" but got "1" --- /home/igalia/dpino/workspace/webkit-gtk/layout-test-results/imported/w3c/web-platform-tests/fetch/api/basic/conditional-get-expected.txt +++ /home/igalia/dpino/workspace/webkit-gtk/layout-test-results/imported/w3c/web-platform-tests/fetch/api/basic/conditional-get-actual.txt @@ -1,3 +1,3 @@ -PASS Testing conditional GET with ETags +FAIL Testing conditional GET with ETags assert_equals: expected (string) "304" but got (object) null --- /home/igalia/dpino/workspace/webkit-gtk/layout-test-results/imported/w3c/web-platform-tests/fetch/api/request/request-cache-default-expected.txt +++ /home/igalia/dpino/workspace/webkit-gtk/layout-test-results/imported/w3c/web-platform-tests/fetch/api/request/request-cache-default-actual.txt @@ -1,8 +1,8 @@ PASS RequestCache "default" mode checks the cache for previously cached content and goes to the network for stale responses with Etag and stale response PASS RequestCache "default" mode checks the cache for previously cached content and goes to the network for stale responses with Last-Modified and stale response -PASS RequestCache "default" mode checks the cache for previously cached content and avoids going to the network if a fresh response exists with Etag and fresh response -PASS RequestCache "default" mode checks the cache for previously cached content and avoids going to the network if a fresh response exists with Last-Modified and fresh response +FAIL RequestCache "default" mode checks the cache for previously cached content and avoids going to the network if a fresh response exists with Etag and fresh response assert_equals: expected 1 but got 2 +FAIL RequestCache "default" mode checks the cache for previously cached content and avoids going to the network if a fresh response exists with Last-Modified and fresh response assert_equals: expected 1 but got PASS Responses with the "Cache-Control: no-store" header are not stored in the cache with Etag and stale response PASS Responses with the "Cache-Control: no-store" header are not stored in the cache with Last-Modified and stale response PASS Responses with the "Cache-Control: no-store" header are not stored in the cache with Etag and fresh response --- /home/igalia/dpino/workspace/webkit-gtk/layout-test-results/imported/w3c/web-platform-tests/fetch/api/request/request-cache-force-cache-expected.txt +++ /home/igalia/dpino/workspace/webkit-gtk/layout-test-results/imported/w3c/web-platform-tests/fetch/api/request/request-cache-force-cache-actual.txt @@ -1,8 +1,8 @@ -PASS RequestCache "force-cache" mode checks the cache for previously cached content and avoid revalidation for stale responses with Etag and stale response -PASS RequestCache "force-cache" mode checks the cache for previously cached content and avoid revalidation for stale responses with Last-Modified and stale response -PASS RequestCache "force-cache" mode checks the cache for previously cached content and avoid revalidation for fresh responses with Etag and fresh response -PASS RequestCache "force-cache" mode checks the cache for previously cached content and avoid revalidation for fresh responses with Last-Modified and fresh response +FAIL RequestCache "force-cache" mode checks the cache for previously cached content and avoid revalidation for stale responses with Etag and stale response assert_equals: expected 1 but got 2 +FAIL RequestCache "force-cache" mode checks the cache for previously cached content and avoid revalidation for stale responses with Last-Modified and stale response assert_equals: expected 1 but got 2 +FAIL RequestCache "force-cache" mode checks the cache for previously cached content and avoid revalidation for fresh responses with Etag and fresh response assert_equals: expected 1 but got 2 +FAIL RequestCache "force-cache" mode checks the cache for previously cached content and avoid revalidation for fresh responses with Last-Modified and fresh response assert_equals: expected 1 but got 2 PASS RequestCache "force-cache" mode checks the cache for previously cached content and goes to the network if a cached response is not found with Etag and stale response PASS RequestCache "force-cache" mode checks the cache for previously cached content and goes to the network if a cached response is not found with Last-Modified and stale response PASS RequestCache "force-cache" mode checks the cache for previously cached content and goes to the network if a cached response is not found with Etag and fresh response @@ -13,6 +13,6 @@ PASS RequestCache "force-cache" mode checks the cache for previously cached content and goes to the network if a cached response would vary with Last-Modified and fresh response PASS RequestCache "force-cache" stores the response in the cache if it goes to the network with Etag and stale response PASS RequestCache "force-cache" stores the response in the cache if it goes to the network with Last-Modified and stale response -PASS RequestCache "force-cache" stores the response in the cache if it goes to the network with Etag and fresh response -PASS RequestCache "force-cache" stores the response in the cache if it goes to the network with Last-Modified and fresh response +FAIL RequestCache "force-cache" stores the response in the cache if it goes to the network with Etag and fresh response assert_equals: expected 1 but got 2 +FAIL RequestCache "force-cache" stores the response in the cache if it goes to the network with Last-Modified and fresh response assert_equals: expected 1 but got 2 --- /home/igalia/dpino/workspace/webkit-gtk/layout-test-results/imported/w3c/web-platform-tests/fetch/api/request/request-cache-reload-expected.txt +++ /home/igalia/dpino/workspace/webkit-gtk/layout-test-results/imported/w3c/web-platform-tests/fetch/api/request/request-cache-reload-actual.txt @@ -5,10 +5,10 @@ PASS RequestCache "reload" mode does not check the cache for previously cached content and goes to the network regardless with Last-Modified and fresh response PASS RequestCache "reload" mode does store the response in the cache with Etag and stale response PASS RequestCache "reload" mode does store the response in the cache with Last-Modified and stale response -PASS RequestCache "reload" mode does store the response in the cache with Etag and fresh response -PASS RequestCache "reload" mode does store the response in the cache with Last-Modified and fresh response +FAIL RequestCache "reload" mode does store the response in the cache with Etag and fresh response assert_equals: expected 1 but got 2 +FAIL RequestCache "reload" mode does store the response in the cache with Last-Modified and fresh response assert_equals: expected 1 but got 2 PASS RequestCache "reload" mode does store the response in the cache even if a previous response is already stored with Etag and stale response PASS RequestCache "reload" mode does store the response in the cache even if a previous response is already stored with Last-Modified and stale response -PASS RequestCache "reload" mode does store the response in the cache even if a previous response is already stored with Etag and fresh response -PASS RequestCache "reload" mode does store the response in the cache even if a previous response is already stored with Last-Modified and fresh response +FAIL RequestCache "reload" mode does store the response in the cache even if a previous response is already stored with Etag and fresh response assert_equals: expected 2 but got 3 +FAIL RequestCache "reload" mode does store the response in the cache even if a previous response is already stored with Last-Modified and fresh response assert_equals: expected 2 but got 3 --- /home/igalia/dpino/workspace/webkit-gtk/layout-test-results/imported/w3c/web-platform-tests/service-workers/service-worker/update-no-cache-request-headers.https-expected.txt +++ /home/igalia/dpino/workspace/webkit-gtk/layout-test-results/imported/w3c/web-platform-tests/service-workers/service-worker/update-no-cache-request-headers.https-actual.txt @@ -1,3 +1,3 @@ -PASS headers in no-cache mode +FAIL headers in no-cache mode assert_equals: expected (string) "etag" but got (undefined) undefined
Attachments
Diego Pino
Comment 1 2020-02-25 01:55:48 PST
More related flaky tests: * http/tests/cache/disk-cache/disk-cache-307-status-code.html [ Failure Pass ] * http/tests/cache/disk-cache/disk-cache-404-status-code.html [ Failure Pass ] * http/tests/cache/disk-cache/disk-cache-vary-cookie-private.html [ Failure Pass ] * imported/w3c/web-platform-tests/cors/304.htm [ Failure Pass ] * imported/w3c/web-platform-tests/fetch/http-cache/304-update.html [ Failure Pass ] * imported/w3c/web-platform-tests/fetch/http-cache/freshness.html [ Failure Pass ] * imported/w3c/web-platform-tests/fetch/http-cache/heuristic.html [ Failure Pass ] * imported/w3c/web-platform-tests/fetch/http-cache/invalidate.html [ Failure Pass ] * imported/w3c/web-platform-tests/fetch/http-cache/status.html [ Failure Pass ] * imported/w3c/web-platform-tests/fetch/http-cache/vary.html [ Failure Pass ]
Diego Pino
Comment 2 2020-02-25 03:47:05 PST
I triaged r256966 and run the following tests: * http/tests/cache/disk-cache/disk-cache-307-status-code.html * http/tests/cache/disk-cache/disk-cache-404-status-code.html * http/tests/cache/disk-cache/disk-cache-vary-cookie-private.html * imported/w3c/web-platform-tests/cors/304.htm * imported/w3c/web-platform-tests/fetch/http-cache/304-update.html * imported/w3c/web-platform-tests/fetch/http-cache/freshness.html * imported/w3c/web-platform-tests/fetch/http-cache/heuristic.html * imported/w3c/web-platform-tests/fetch/http-cache/invalidate.html * imported/w3c/web-platform-tests/fetch/http-cache/status.html * imported/w3c/web-platform-tests/fetch/http-cache/vary.html All tests passed. Then, I run the same tests on r256967 and all tests failed: Regressions: Unexpected text-only failures (9) http/tests/cache/disk-cache/disk-cache-307-status-code.html [ Failure ] http/tests/cache/disk-cache/disk-cache-404-status-code.html [ Failure ] imported/w3c/web-platform-tests/cors/304.htm [ Failure ] imported/w3c/web-platform-tests/fetch/http-cache/304-update.html [ Failure ] imported/w3c/web-platform-tests/fetch/http-cache/freshness.html [ Failure ] imported/w3c/web-platform-tests/fetch/http-cache/heuristic.html [ Failure ] imported/w3c/web-platform-tests/fetch/http-cache/invalidate.html [ Failure ] imported/w3c/web-platform-tests/fetch/http-cache/status.html [ Failure ] imported/w3c/web-platform-tests/fetch/http-cache/vary.html [ Failure ] It seems r256967 introduced this regression.
Diego Pino
Comment 3 2020-03-01 08:22:11 PST
Another flaky test within the same revision range: * http/wpt/prefetch/link-prefetch-skip-disk-cache.html [r256916-r256917] NOERROR [r256918-r257038] UNKNOWN r257039 NOERROR [r257040-r257045] UNKNOWN r257046 TEXT PASS (Expected: PASS) Diff: --- /home/igalia/dpino/workspace/webkit-gtk/layout-test-results/http/wpt/prefetch/link-prefetch-skip-disk-cache-expected.txt +++ /home/igalia/dpino/workspace/webkit-gtk/layout-test-results/http/wpt/prefetch/link-prefetch-skip-disk-cache-actual.txt @@ -1,3 +1,3 @@ -PASS Verify that navigating to a main resource can skip disk cache. +FAIL Verify that navigating to a main resource can skip disk cache. assert_equals: expected "prefetch" but got ""
Diego Pino
Comment 4 2020-04-08 11:59:23 PDT
disk-cache failures were fixed by r259712. Remaining tests pending to be solved in this bug: http/tests/cache/link-prefetch-main-resource.html [ Failure Pass ] http/wpt/fetch/disable-speculative-load-for-xhr-and-fetch-loads.html [ Failure Pass ] imported/w3c/web-platform-tests/fetch/api/basic/conditional-get.html [ Failure Pass ] imported/w3c/web-platform-tests/fetch/api/request/request-cache-default.html [ Failure Pass ] imported/w3c/web-platform-tests/fetch/api/request/request-cache-force-cache.html [ Failure Pass ] imported/w3c/web-platform-tests/fetch/api/request/request-cache-reload.html [ Failure Pass ] imported/w3c/web-platform-tests/service-workers/service-worker/update-no-cache-request-headers.https.html [ Failure Pass ]
Note You need to log in before you can comment on or make changes to this bug.