RESOLVED FIXED 203652
Flaky API Test TestWebKitAPI.WebKit.UploadDirectory
https://bugs.webkit.org/show_bug.cgi?id=203652
Summary Flaky API Test TestWebKitAPI.WebKit.UploadDirectory
Aakash Jain
Reported 2019-10-30 18:23:30 PDT
TestWebKitAPI.WebKit.UploadDirectory seems flaky on macOS. In https://ews-build.webkit.org/#/builders/3/builds/11242, the test failed in run-api-tests step. However, in the immediately next retry step (re-run-api-tests), it passed. Similar thing happened in: https://ews-build.webkit.org/#/builders/3/builds/11243
Attachments
Patch (1.73 KB, patch)
2019-11-04 03:55 PST, Alex Christensen
no flags
Patch (1.79 KB, patch)
2019-11-04 08:13 PST, Alex Christensen
no flags
Alexey Proskuryakov
Comment 1 2019-10-30 23:37:58 PDT
This test started to crash in r251778, then it turned into a failure with r251795, and then it stopped failing without a clear reason a few commits later. I suspect that this is a bad test that can leak state when it crashes. Either way, this is not happening any more.
Aakash Jain
Comment 2 2019-10-31 05:41:23 PDT
Alexey Proskuryakov
Comment 3 2019-10-31 12:54:49 PDT
Build 11251 had 788 API test failures with the patch, and then just this one with the patch removed. I think that this is a bad test that leaves state sometimes, which makes it fail the next time.
Radar WebKit Bug Importer
Comment 4 2019-10-31 12:56:01 PDT
Alex Christensen
Comment 5 2019-11-04 03:55:16 PST
Chris Dumez
Comment 6 2019-11-04 08:01:50 PST
Comment on attachment 382732 [details] Patch Can't we remove the directory at the beginning of the test?
Alex Christensen
Comment 7 2019-11-04 08:13:33 PST
Chris Dumez
Comment 8 2019-11-04 08:18:17 PST
Comment on attachment 382741 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=382741&action=review > Tools/TestWebKitAPI/Tests/WebKitCocoa/UploadDirectory.mm:75 > + [fileManager removeItemAtPath:directory.path error:nil]; Then why not keep the assertion?
Alex Christensen
Comment 9 2019-11-04 08:35:54 PST
Comment on attachment 382741 [details] Patch The point was that after a previous iteration of this test crashes, it leaves behind a file. removeItemAtPath:error: returns different values depending on whether the file existed before or not, so keeping the assertion would be propagating the flakiness.
Chris Dumez
Comment 10 2019-11-04 08:44:01 PST
(In reply to Alex Christensen from comment #9) > Comment on attachment 382741 [details] > Patch > > The point was that after a previous iteration of this test crashes, it > leaves behind a file. removeItemAtPath:error: returns different values > depending on whether the file existed before or not, so keeping the > assertion would be propagating the flakiness. I don't understand why asserting that the folder is not there after removing it would cause flakiness? Do you expect folder removal to fail for some reason?
Alex Christensen
Comment 11 2019-11-04 08:49:53 PST
Oh, asserting that the folder is not there after removing it would be fine but I think it would be redundant. I was talking about asserting that removing it succeeded or that the folder is not there before removing, both of which would be flaky.
Alexey Proskuryakov
Comment 12 2019-11-04 09:06:19 PST
Comment on attachment 382741 [details] Patch I would slightly prefer checking for the error or asserting after deleting. Knowing that deletion succeeded will make it easier to reason about future failures, if any occur. r=me with or without such changes.
Alex Christensen
Comment 13 2019-11-04 09:07:26 PST
Comment on attachment 382741 [details] Patch Committing as-is. If we see future flakiness we can add such assertions.
WebKit Commit Bot
Comment 14 2019-11-04 09:50:42 PST
Comment on attachment 382741 [details] Patch Clearing flags on attachment: 382741 Committed r251996: <https://trac.webkit.org/changeset/251996>
WebKit Commit Bot
Comment 15 2019-11-04 09:50:44 PST
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.