New issue
Advanced search Search tips

Issue 812349 link

Starred by 1 user

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

content_shell startup timeout is handled as test timeout

Project Member Reported by sergeyu@chromium.org, Feb 14 2018

Issue description

Currently when layout tests driver uses 30 seconds timeout when starting content_shell. Problem is that if that timeout expires it proceeds with the test as if the content_shell was started successfully. See  the code in Driver.run_test(): https://codesearch.chromium.org/chromium/src/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/port/driver.py?l=147 . Here start() may fail but that error is not handled in any way. As result content_shell startup timeouts are hard to debug as they are reported as individual tests timeout.
 
FYI this was a problem when landing https://chromium-review.googlesource.com/c/chromium/src/+/910122 . FFC font collections are slow to load, so content_shell was timing out when loading fonts. The issue was reported as a lot of timing out layout tests.

Comment 2 by foolip@chromium.org, Feb 21 2018

sergeyu@, with "Problem is that if that timeout expires it proceeds with the test as if the content_shell was started successfully", do you mean that the 'content_shell took too long to startup.' that is logged is just a log, and that instead it should fail in some other way?

Comment 3 by foolip@chromium.org, Feb 21 2018

Or is the problem that some errors inside start() are suppressed? Where?
The problem is that Driver._start() may fail, but it doesn't return the error to the caller and the caller does try to handle the error. The output that we get on the bots make it looks like bunch of tests are failing while these tests were not even executed, e.g. see https://ci.chromium.org/buildbot/tryserver.chromium.linux/linux_chromium_rel_ng/646102 .
Driver._start() calls _log.error(), but I don't see the corresponding message anywhere in the bot output, I'm not sure why.

Comment 5 by foolip@chromium.org, Feb 27 2018

I'm not quite sure where those error logs would/should end up. Not for the individual tests I presume, because it's not part of the stderr when running the tests, but of what wraps the tests.

Anyway, let's say we propagate the error further where there's now an 'content_shell took too long to startup.' error. I guess then in run_test we should treat that as a separate kind of failure? Or a timeout with a different message?

Anything new would have to be added here:
https://chromium.googlesource.com/chromium/src/+/28390a4663e6bcd261753891d369d42effaaf6d5/third_party/WebKit/LayoutTests/fast/harness/results.html#710

Comment 6 by foolip@chromium.org, Mar 13 2018

Status: Available (was: Untriaged)
Marking this as available, but because it's a P3 (assuming that's right) would not expect it to be done any time soon.

Sign in to add a comment