New issue
Advanced search Search tips

Issue 761291 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner: ----
Closed: Sep 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

[WPT import] Import failed because response-consume-stream.html baseline didn't match CQ

Project Member Reported by foolip@chromium.org, Sep 1 2017

Issue description

https://build.chromium.org/p/chromium.infra.cron/builders/wpt-importer/builds/1024
https://chromium-review.googlesource.com/c/chromium/src/+/646027

Before the changes, there were 5 response-consume-stream-expected.txt files:
LayoutTests/external/wpt/fetch/api/response/response-consume-stream-expected.txt
LayoutTests/platform/mac/virtual/mojo-blobs/external/wpt/fetch/api/response/response-consume-stream-expected.txt
LayoutTests/platform/mac/virtual/outofblink-cors/external/wpt/fetch/api/response/response-consume-stream-expected.txt
LayoutTests/platform/linux/virtual/mojo-blobs/external/wpt/fetch/api/response/response-consume-stream-expected.txt
LayoutTests/platform/linux/virtual/outofblink-cors/external/wpt/fetch/api/response/response-consume-stream-expected.txt

In the review, all except LayoutTests/platform/linux/external/wpt/fetch/api/response/response-consume-stream-expected.txt was deleted, which remained like this:

This is a testharness.js-based test.
PASS Read empty text response's body as readableStream
PASS Read empty blob response's body as readableStream
PASS Read blob response's body as readableStream
PASS Read text response's body as readableStream
PASS Read URLSearchParams response's body as readableStream
PASS Read array buffer response's body as readableStream
FAIL Read form data response's body as readableStream assert_array_equals: Retrieve and verify stream lengths differ, expected 10 got 140
PASS Getting an error Response stream
FAIL Getting a redirect Response stream assert_not_equals: got disallowed value undefined
Harness: the test ran to completion.

However, this test passed fully in CQ, so the import failed. If the tests fail on the waterfall bots, expectations specific to them would be needed.
 
Curious, the following import in https://chromium-review.googlesource.com/c/chromium/src/+/646454 doesn't look like it's going to fail in the same way.
This is rather strange. I went down the rabbit hole and it seems to me the non-virtual version of response-consume-stream.html was not run on linux_trusty_blink_rel for some reason during the initial tryjob, and `webkit_patch rebaseline-cl` filled in the missing baseline with the old generic baseline, which contained the FAIL entries.

Timeline:
0. response-consume-stream.html had two failures in testharness reports on all platforms (not considering Android, same below).
1. response-consume-stream.html was changed upstream, and all test cases in the new version should now pass on all platforms.
2. Importer imported the change and triggered initial try jobs. Theoretically, all platforms should fail this test unexpectedly because of result mismatch (all passes vs two failures). However, it was not run on linux_trusty_blink_rel [a].
3. Importer tried to rebaseline. All other platforms received new all-pass results. Yet the result for linux_trusty_blink_rel was missing, and the old generic result with two failures was used to fill in. After optimization, the baseline became all-pass on generic but had two failures on linux_trusty_blink_rel. [b]
4. CQ was triggered. This time the test was run on linux_trusty_blink_rel. Naturally it failed due to mismatch. [c]


[a] https://luci-logdog.appspot.com/v/?s=chromium%2Fbb%2Ftryserver.blink%2Flinux_trusty_blink_rel%2F14875%2F%2B%2Frecipes%2Fsteps%2Fwebkit_layout_tests__with_patch_%2F0%2Fstdout  (note only virtual/*/external/wpt/fetch/api/response/response-consume-stream.html were run)

[b] I tweaked the tool to get it running locally and produced some debug outputs:

webkitpy.tool.commands.rebaseline: [INFO] Rebaselining external/wpt/fetch/api/response/response-consume-stream.html
webkitpy.tool.commands.rebaseline: [DEBUG] No test result for test external/wpt/fetch/api/response/response-consume-stream.html in build Build(builder_name=u'android_blink_rel', build_number=3551)
webkitpy.tool.commands.rebaseline: [DEBUG] No test result for test external/wpt/fetch/api/response/response-consume-stream.html in build Build(builder_name=u'linux_trusty_blink_rel', build_number=14875)
...
webkitpy.tool.commands.copy_existing_baselines: [DEBUG] Copying baseline from /usr/local/google/home/robertma/chromium/src/third_party/WebKit/LayoutTests/external/wpt/fetch/api/response/response-consume-stream-expected.txt to /usr/local/google/home/robertma/chromium/src/third_party/WebKit/LayoutTests/platform/linux/external/wpt/fetch/api/response/response-consume-stream-expected.txt.

(Missing android_blink_rel is expected.)

[c] https://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_rel_ng/builds/537767
> 4. CQ was triggered. This time the test was run on linux_trusty_blink_rel. Naturally it failed due to mismatch. [c]

Sorry, I meant linux_chromium_rel_ng.


And on the following successful import, the test ran on linux_trusty_blink_rel and produced correct results during the initial tryjob: https://storage.googleapis.com/chromium-layout-test-archives/linux_trusty_blink_rel/14880/layout-test-results/results.html
Status: Unconfirmed (was: Untriaged)
Marking this as unconfirmed/unreproducible (not sure if it's accurate), as I've done some triage but got stuck (see above). Let's see if we can find other examples of this.

Comment 6 by foolip@chromium.org, Sep 18 2017

Status: WontFix (was: Unconfirmed)
Thanks for the deep dive in #3! I can't make sense of what might have happened here, flakiness seems like it wouldn't explain it if the test didn't run at all on linux_trusty_blink_rel that one time. Hunting this down doesn't seem worth the time it'd take, closing as WontFix and if something happens again maybe it sounds familiar and we dupe into this one.

Sign in to add a comment