RESOLVED FIXED 225522
[ macOS Release wk2 ] http/tests/cache-storage/cache-records-persistency.https.html is flaky crashing
https://bugs.webkit.org/show_bug.cgi?id=225522
Summary [ macOS Release wk2 ] http/tests/cache-storage/cache-records-persistency.http...
Robert Jenner
Reported 2021-05-07 11:06:50 PDT
http/tests/cache-storage/cache-records-persistency.https.html is a flaky crash on macOS Catalina and BigSur Release wk2. HISTORY: https://results.webkit.org/?suite=layout-tests&test=http%2Ftests%2Fcache-storage%2Fcache-records-persistency.https.html CRASH TEXT: Thread 2 Crashed:: Dispatch queue: com.apple.WebKit.Cache.Storage.background 0 libsystem_kernel.dylib 0x00007fff2037c946 __pthread_kill + 10 1 libsystem_pthread.dylib 0x00007fff203ab615 pthread_kill + 263 2 libsystem_c.dylib 0x00007fff20300411 abort + 120 3 libc++abi.dylib 0x00007fff2036eef2 abort_message + 241 4 libc++abi.dylib 0x00007fff203605e5 demangling_terminate_handler() + 242 5 libobjc.A.dylib 0x00007fff20259595 _objc_terminate() + 104 6 libc++abi.dylib 0x00007fff2036e307 std::__terminate(void (*)()) + 8 7 libc++abi.dylib 0x00007fff2036e2a9 std::terminate() + 41 8 libdispatch.dylib 0x00007fff202017fa _dispatch_client_callout + 28 9 libdispatch.dylib 0x00007fff20204190 _dispatch_continuation_pop + 423 10 libdispatch.dylib 0x00007fff20203915 _dispatch_async_redirect_invoke + 882 11 libdispatch.dylib 0x00007fff202107f8 _dispatch_root_queue_drain + 326 12 libdispatch.dylib 0x00007fff20210f50 _dispatch_worker_thread2 + 92 13 libsystem_pthread.dylib 0x00007fff203a847a _pthread_wqthread + 244 14 libsystem_pthread.dylib 0x00007fff203a7493 start_wqthread + 15 https://build.webkit.org/results/Apple-BigSur-Release-WK2-Tests/r277174%20(2405)/http/tests/cache-storage/cache-records-persistency.https-crash-log.txt
Attachments
Crashlog for test (71.96 KB, text/plain)
2021-05-07 11:07 PDT, Robert Jenner
no flags
Patch (3.83 KB, patch)
2021-05-10 18:28 PDT, Chris Dumez
ews-feeder: commit-queue-
Robert Jenner
Comment 1 2021-05-07 11:07:50 PDT
Created attachment 428011 [details] Crashlog for test Attaching full crashlog to bug.
Robert Jenner
Comment 2 2021-05-07 17:17:22 PDT
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.
Radar WebKit Bug Importer
Comment 3 2021-05-07 17:17:54 PDT
Robert Jenner
Comment 4 2021-05-10 15:19:36 PDT
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.
Robert Jenner
Comment 5 2021-05-10 16:59:56 PDT
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.
Alexey Proskuryakov
Comment 6 2021-05-10 17:57:19 PDT
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]
Alex Christensen
Comment 7 2021-05-10 18:01:24 PDT
This looks related to Chris's recent std::filesystem fun
Chris Dumez
Comment 8 2021-05-10 18:19:22 PDT
(In reply to Alex Christensen from comment #7) > This looks related to Chris's recent std::filesystem fun Ok. Looking now.
Chris Dumez
Comment 9 2021-05-10 18:20:17 PDT
Will have a fix shortly.
Chris Dumez
Comment 10 2021-05-10 18:28:35 PDT
Chris Dumez
Comment 11 2021-05-10 18:32:28 PDT
Darin Adler
Comment 12 2021-05-10 18:32:30 PDT
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.
Chris Dumez
Comment 13 2021-05-10 18:33:20 PDT
(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.
Darin Adler
Comment 14 2021-05-10 18:35:44 PDT
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.
Chris Dumez
Comment 15 2021-05-10 18:49:10 PDT
(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.
EWS
Comment 16 2021-05-10 19:15:03 PDT
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].
Note You need to log in before you can comment on or make changes to this bug.