New issue
Advanced search Search tips

Issue 678498 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner: ----
Closed: Jan 2017
Cc:
Components:
EstimatedDays: ----
NextAction: 2017-02-01
OS: Windows
Pri: 3
Type: Bug



Sign in to add a comment

http/tests/serviceworker/foreign-fetch-cors.html is flaky on windows bots

Project Member Reported by yhirano@chromium.org, Jan 5 2017

Issue description

Labels: OS-Windows
NextAction: 2017-02-01
Owner: mek@chromium.org
Status: Assigned (was: Untriaged)
mek@ could you take this? It looks like the test is just slow and sometimes times out.

Comment 3 by mek@chromium.org, Jan 6 2017

Yeah, I guess the "3x variance" guidance that's documented in SlowTests is no longer true (since mostly this test passes in less than 1 second, and the timeout is 6 seconds...)
Project Member

Comment 4 by bugdroid1@chromium.org, Jan 6 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/349d304bdcd2747ab6ec7efb35b502180e53aecb

commit 349d304bdcd2747ab6ec7efb35b502180e53aecb
Author: mek <mek@chromium.org>
Date: Fri Jan 06 23:54:42 2017

Mark foreign-fetch-basics and foreign-fetch-cors tests as slow on windows.

Hopefully these tests are indeed just sometimes extra slow (at least a
6x slowdown). If not I'll have to do more digging to see why they sometimes
timeout.

BUG= 678498 
BUG= 678496 

Review-Url: https://codereview.chromium.org/2610923011
Cr-Commit-Position: refs/heads/master@{#442100}

[modify] https://crrev.com/349d304bdcd2747ab6ec7efb35b502180e53aecb/third_party/WebKit/LayoutTests/SlowTests
[modify] https://crrev.com/349d304bdcd2747ab6ec7efb35b502180e53aecb/third_party/WebKit/LayoutTests/TestExpectations

Comment 5 by mek@chromium.org, Jan 9 2017

Cc: mek@chromium.org
Components: Blink>Infra
Owner: ----
Status: Available (was: Assigned)
So that seems to have mostly "fixed" it, although it does seem like a >15x slowdown on certain runs (usually finishes in 1-2 seconds, some runs take > 20 seconds, upto 29 seconds for one particular run) is not something that should really happen...

Not sure what's going on... Looking at the access_log for a particularly bad run (https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Win7/builds/49415/ with a 29 second virtual/mojo-loading/http/tests/serviceworker/foreign-fetch-cors.html) there for some reason just is a 28 second gap between any network fetches, which I can't really explain. At the same time http/tests/serviceworker/foreign-fetch-basics.html was also running (on a different worker), and that test simply timed out because of this 28 second stall (or in other words, something is causing two tests running on different workers, but at the same time, to stall for 28 seconds between 04:30:24 and 04:30:52).

Any blink infra people have any ideas what could be causing stalls like this?

Comment 6 by mek@chromium.org, Jan 9 2017

 Issue 678496  has been merged into this issue.

Comment 7 by falken@chromium.org, Jan 10 2017

The delays sound suspiciously close to ServiceWorkerVersion's 30 second timeout timer. Could it be related?

Comment 8 by mek@chromium.org, Jan 10 2017

I don't think that would be related. The 28 second stall was just the most extreme case I saw; most of the slow runs are anywhere in the 8-20 second range (while normal runs are 1-2 seconds).
Looking at https://storage.googleapis.com/chromium-layout-test-archives/WebKit_Win7/49415/layout-test-results/access_log.txt excerpt:

127.0.0.1 - - [09/Jan/2017:04:30:24 -0800] "GET /serviceworker/resources/foreign-fetch-cors-worker.js?%7B%7D HTTP/1.1" 200 1113
127.0.0.1 - - [09/Jan/2017:04:30:24 -0800] "GET /resources/get-host-info.js HTTP/1.1" 200 1096
127.0.0.1 - - [09/Jan/2017:04:30:52 -0800] "GET /serviceworker/resources/foreign-fetch-helper-iframe.html HTTP/1.1" 200 495
127.0.0.1 - - [09/Jan/2017:04:30:52 -0800] "GET /serviceworker/resources/fetch-access-control.php? HTTP/1.1" 200 525
127.0.0.1 - - [09/Jan/2017:04:30:52 -0800] "GET /serviceworker/resources/fetch-access-control.php? HTTP/1.1" 200 525
127.0.0.1 - - [09/Jan/2017:04:30:52 -0800] "GET /serviceworker/resources/fetch-access-control.php? HTTP/1.1" 200 525
127.0.0.1 - - [09/Jan/2017:04:30:52 -0800] "GET /serviceworker/resources/install-worker-helper.html HTTP/1.1" 200 832
127.0.0.1 - - [09/Jan/2017:04:30:52 -0800] "GET /serviceworker/resources/foreign-fetch-cors-worker.js?%7B%22origin%22%3A%22http%3A%2F%2F127.0.0.1%3A8000%22%7D HTTP/1.1" 200 1113

In the stdio for the test run:

04:30:22.116 2916 worker/0 http/tests/serviceworker/register-foreign-fetch-errors.html passed
... lots of time with no output from worker/0 ...
04:30:52.249 2916 "taskkill.exe /f /t /pid 4824" took 0.12s
04:30:52.249 2916 killed pid 4824
04:30:52.251 3816 [41792/44921] http/tests/serviceworker/foreign-fetch-basics.html failed unexpectedly (test timed out)
04:30:52.251 2916 worker/0 killing primary driver
04:30:52.251 2916 worker/0 killing secondary driver
04:30:52.251 2916 worker/0 http/tests/serviceworker/foreign-fetch-basics.html failed:
04:30:52.251 2916 worker/0  test timed out

(Note, in this log it doesn't say when each test started, since we removed those lines (because of  bug 673207 ).


I don't have any good idea now of why there would be a stall like that - whatever it is, it's not very consistent. I don't know, but running that tests makes > 50 GET requests to the local apache server, so maybe at some point sometimes it's waiting for the apache process?
Ah, this sounds like  bug 431172 . IIRC the problem was Apache can't deal with too many concurrent connections, and cross-origin tests easily trigger the bug.

I assume the switch to wptserve will stop the use of Apache?
Hm, yep. The proposal to move to wptserve and stop the use of Apache is bug 347864. Updating that bug.

mek@, OK to close this bug?

Comment 12 by mek@chromium.org, Jan 12 2017

Status: WontFix (was: Available)
Yeah, definitely seems like too many concurrent connections to Apache is the problem here. I guess closing this is okay, although it seems a bit weird, since the problem is still there, just more rare to cause timeouts now the tests are marked as slow... And there is actually work to be done to rewrite these tests to use python/wptserve rather than php. But then I suppose any such work is going to be part of bug 347864, so probably okay to mark this as WONTFIX for now.
I'd expect us to upstream this test to WPT and have it run in imported/wpt so that  wptserve would be used. That would probably happen before changing to wptserve everywhere (for both wpt and non-wpt tests).

Comment 14 by mek@chromium.org, Jan 13 2017

Yes, it's definitely on my radar to upstream these tests. But I'd rather not do that until we're actually running wpt tests on wptserve (I believe we're really really close to re-enabling that again at least).
Project Member

Comment 15 by bugdroid1@chromium.org, Feb 13 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e09a722158af5e49f59381a50669a30003f3bbb5

commit e09a722158af5e49f59381a50669a30003f3bbb5
Author: mek <mek@chromium.org>
Date: Mon Feb 13 22:59:25 2017

Upstream foreign fetch tests.

BUG= 678498 
BUG= 688116 

Review-Url: https://codereview.chromium.org/2676733002
Cr-Commit-Position: refs/heads/master@{#450134}

[modify] https://crrev.com/e09a722158af5e49f59381a50669a30003f3bbb5/third_party/WebKit/LayoutTests/SlowTests
[modify] https://crrev.com/e09a722158af5e49f59381a50669a30003f3bbb5/third_party/WebKit/LayoutTests/external/wpt/MANIFEST.json
[rename] https://crrev.com/e09a722158af5e49f59381a50669a30003f3bbb5/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/foreign-fetch-basics.https.html
[rename] https://crrev.com/e09a722158af5e49f59381a50669a30003f3bbb5/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/foreign-fetch-cors.https.html
[add] https://crrev.com/e09a722158af5e49f59381a50669a30003f3bbb5/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/foreign-fetch-event.https.html
[rename] https://crrev.com/e09a722158af5e49f59381a50669a30003f3bbb5/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/foreign-fetch-workers.https.html
[modify] https://crrev.com/e09a722158af5e49f59381a50669a30003f3bbb5/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/fetch-access-control.py
[rename] https://crrev.com/e09a722158af5e49f59381a50669a30003f3bbb5/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/foreign-fetch-cors-worker.js
[rename] https://crrev.com/e09a722158af5e49f59381a50669a30003f3bbb5/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/foreign-fetch-event-worker.js
[rename] https://crrev.com/e09a722158af5e49f59381a50669a30003f3bbb5/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/foreign-fetch-helper-iframe.html
[rename] https://crrev.com/e09a722158af5e49f59381a50669a30003f3bbb5/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/foreign-fetch-helper-script.js
[add] https://crrev.com/e09a722158af5e49f59381a50669a30003f3bbb5/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/foreign-fetch-helper-worker.js
[add] https://crrev.com/e09a722158af5e49f59381a50669a30003f3bbb5/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/foreign-fetch-helpers.js
[rename] https://crrev.com/e09a722158af5e49f59381a50669a30003f3bbb5/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/foreign-fetch-worker.js
[modify] https://crrev.com/e09a722158af5e49f59381a50669a30003f3bbb5/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/get-host-info.sub.js
[rename] https://crrev.com/e09a722158af5e49f59381a50669a30003f3bbb5/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/install-worker-helper.html
[add] https://crrev.com/e09a722158af5e49f59381a50669a30003f3bbb5/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/resources/reply-to-message.html
[delete] https://crrev.com/95ca8e045eb12df12283d61f68caba1971ff0bff/third_party/WebKit/LayoutTests/external/wpt/service-workers/service-worker/service-worker-csp-script.https-expected.txt
[delete] https://crrev.com/95ca8e045eb12df12283d61f68caba1971ff0bff/third_party/WebKit/LayoutTests/http/tests/serviceworker/foreign-fetch-event.html
[delete] https://crrev.com/95ca8e045eb12df12283d61f68caba1971ff0bff/third_party/WebKit/LayoutTests/http/tests/serviceworker/resources/foreign-fetch-helper-worker.js
[delete] https://crrev.com/95ca8e045eb12df12283d61f68caba1971ff0bff/third_party/WebKit/LayoutTests/http/tests/serviceworker/resources/foreign-fetch-helpers.js

Sign in to add a comment