| Summary: | [ macOS Release wk2 ] http/tests/cache-storage/cache-records-persistency.https.html is flaky crashing | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | Robert Jenner <jenner> | ||||||
| Component: | Page Loading | Assignee: | Chris Dumez <cdumez> | ||||||
| Status: | RESOLVED FIXED | ||||||||
| Severity: | Normal | CC: | achristensen, ap, beidson, benjamin, cdumez, cmarcelo, darin, ews-watchlist, ggaren, koivisto, sam, webkit-bot-watchers-bugzilla, webkit-bug-importer, youennf | ||||||
| Priority: | P2 | Keywords: | InRadar | ||||||
| Version: | WebKit Nightly Build | ||||||||
| Hardware: | Unspecified | ||||||||
| OS: | Unspecified | ||||||||
| Bug Depends on: | |||||||||
| Bug Blocks: | 225289 | ||||||||
| Attachments: |
|
||||||||
|
Description
Robert Jenner
2021-05-07 11:06:50 PDT
Created attachment 428011 [details]
Crashlog for test
Attaching full crashlog to bug.
I was able to reproduce the crash at BigSur Release ToT using the following test: run-webkit-tests http/tests/cache-storage/cache-records-persistency.https.html --iterations 1000 -f I am working on narrowing the regression point. So far I have found that the issue was introduced somewhere in between r276902 and r276971. I will continue narrowing that down. I have updated the test expectations from Pass Failure, to Pass Failure Crash here: https://trac.webkit.org/changeset/277298/webkit Still working on verifying a regression point. It now appears that it is somewhere between r276902 and r276911. The regression range is invalid, as I was able to reproduce the crashing test even further back, then I initially thought. At this time, I can't figure out what the regression point of this test was. terminating with uncaught exception of type std::__1::__fs::filesystem::filesystem_error: filesystem error: in directory_iterator::directory_iterator(...): No such file or directory [/var/folders/nb/x54nnkxj3qs9r19fsps6cj880000gn/T/WebKitTestRunners-gCzZxC/CacheStorage/2915450984/2B0047B0E18033807A0A4BD1163F2D17595AB5A2/Development/Version 16/Records/B69DB1D16DEA04A8B3F94C84E35198A088A031DD] This looks related to Chris's recent std::filesystem fun (In reply to Alex Christensen from comment #7) > This looks related to Chris's recent std::filesystem fun Ok. Looking now. Will have a fix shortly. Created attachment 428232 [details]
Patch
Regression from https://commits.webkit.org/r276906. Comment on attachment 428232 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=428232&action=review > Source/WTF/ChangeLog:9 > + Pass ec parameter to std::filesystem::directory_iterator() so that it doesn't throw in case of the Did you search for other calls that forgot "ec"? Obviously if we accidentally call any of the exception-throwing variants that is not good. (In reply to Darin Adler from comment #12) > Comment on attachment 428232 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=428232&action=review > > > Source/WTF/ChangeLog:9 > > + Pass ec parameter to std::filesystem::directory_iterator() so that it doesn't throw in case of the > > Did you search for other calls that forgot "ec"? Obviously if we > accidentally call any of the exception-throwing variants that is not good. I'll double check. I missed this one because I did not expect a constructor to take an ec. I found these: Tools/TestRunnerShared/TestCommand.cpp: return std::filesystem::absolute(pathOrURL); Tools/TestRunnerShared/TestCommand.cpp: return "file://" + std::filesystem::absolute(pathOrURL).generic_string(); Tools/TestRunnerShared/TestFeatures.cpp: if (!std::filesystem::exists(path)) All in the test runner, though. (In reply to Darin Adler from comment #14) > I found these: > > Tools/TestRunnerShared/TestCommand.cpp: return > std::filesystem::absolute(pathOrURL); > Tools/TestRunnerShared/TestCommand.cpp: return "file://" + > std::filesystem::absolute(pathOrURL).generic_string(); > Tools/TestRunnerShared/TestFeatures.cpp: if > (!std::filesystem::exists(path)) > > All in the test runner, though. I have just checked in WTF::FileSystem and I did not find any missed ec. I did not realize our TestRunner was using std::filesystem directly. That's not a recent change from me but I'll fix it as needed. Committed r277315 (237574@main): <https://commits.webkit.org/237574@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 428232 [details]. |