Bug 230910

Summary: [ Catalina BigSur wk1 Debug ] storage/websql/multiple-databases-garbage-collection.html is a flaky crash
Product: WebKit Reporter: Eric Hutchison <ehutchison>
Component: New BugsAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: ehutchison, sihui_liu, webkit-bot-watchers-bugzilla, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
See Also: https://bugs.webkit.org/show_bug.cgi?id=230245
Attachments:
Description Flags
Crash Log none

Description Eric Hutchison 2021-09-28 13:31:00 PDT
Created attachment 439512 [details]
Crash Log

storage/websql/multiple-databases-garbage-collection.html

is a flaky crash on Catalina and BigSur wk1 Debug.

History: https://results.webkit.org/?suite=layout-tests&test=storage/websql/multiple-databases-garbage-collection.html

Results: https://ews-build.webkit.org/#/builders/56/builds/16153, https://ews-build.s3-us-west-2.amazonaws.com/macOS-Catalina-Debug-WK1-Tests-EWS/r439413-16153/results.html

Crash Log attached:

Thread 1 Crashed:: JavaScriptCore bmalloc scavenger
0   com.apple.JavaScriptCore      	0x0000000103e5d6c6 bmalloc::Heap::decommitLargeRange(std::__1::unique_lock<bmalloc::Mutex>&, bmalloc::LargeRange&, bmalloc::BulkDecommit&) + 486 (Heap.cpp:146)
1   com.apple.JavaScriptCore      	0x0000000103e5df9c bmalloc::Heap::scavenge(std::__1::unique_lock<bmalloc::Mutex>&, bmalloc::BulkDecommit&, unsigned long&) + 1548 (Heap.cpp:190)
2   com.apple.JavaScriptCore      	0x0000000103e6e24d bmalloc::Scavenger::scavenge() + 205 (Scavenger.cpp:205)
3   com.apple.JavaScriptCore      	0x0000000103e6efcc bmalloc::Scavenger::threadRunLoop() + 284 (Scavenger.cpp:339)
4   com.apple.JavaScriptCore      	0x0000000103e6e495 bmalloc::Scavenger::threadEntryPoint(bmalloc::Scavenger*) + 21
5   com.apple.JavaScriptCore      	0x0000000103e72cb2 decltype(std::__1::forward<void (*)(bmalloc::Scavenger*)>(fp)(std::__1::forward<bmalloc::Scavenger*>(fp0))) std::__1::__invoke<void (*)(bmalloc::Scavenger*), bmalloc::Scavenger*>(void (*&&)(bmalloc::Scavenger*), bmalloc::Scavenger*&&) + 50
6   com.apple.JavaScriptCore      	0x0000000103e72bfe void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (*)(bmalloc::Scavenger*), bmalloc::Scavenger*, 2ul>(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (*)(bmalloc::Scavenger*), bmalloc::Scavenger*>&, std::__1::__tuple_indices<2ul>) + 62 (thread:342)
7   com.apple.JavaScriptCore      	0x0000000103e7246b void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (*)(bmalloc::Scavenger*), bmalloc::Scavenger*> >(void*) + 91 (thread:353)
8   libsystem_pthread.dylib       	0x00007fff6eb21109 _pthread_start + 148
9   libsystem_pthread.dylib       	0x00007fff6eb1cb8b thread_start + 15

Thread 2:: LocalStorage
0   libsystem_kernel.dylib        	0x00007fff6ea5c882 __psynch_cvwait + 10
1   libsystem_pthread.dylib       	0x00007fff6eb21425 _pthread_cond_wait + 698
2   com.apple.JavaScriptCore      	0x0000000103deeb00 WTF::ThreadCondition::wait(WTF::Mutex&) + 48 (ThreadingPOSIX.cpp:582)
3   com.apple.JavaScriptCore      	0x0000000103deebf5 WTF::ThreadCondition::timedWait(WTF::Mutex&, WTF::WallTime) + 133 (ThreadingPOSIX.cpp:591)
4   com.apple.JavaScriptCore      	0x0000000103d82cbb WTF::ParkingLot::parkConditionallyImpl(void const*, WTF::ScopedLambda<bool ()> const&, WTF::ScopedLambda<void ()> const&, WTF::TimeWithDynamicClockType const&) + 427 (ParkingLot.cpp:602)
5   com.apple.WebKitLegacy        	0x0000000102058410 WTF::ParkingLot::ParkResult WTF::ParkingLot::parkConditionally<bool WTF::Condition::waitUntilUnchecked<WTF::Lock>(WTF::Lock&, WTF::TimeWithDynamicClockType const&)::'lambda'(), bool WTF::Condition::waitUntilUnchecked<WTF::Lock>(WTF::Lock&, WTF::TimeWithDynamicClockType const&)::'lambda0'()>(void const*, WTF::Lock const&, bool WTF::Condition::waitUntilUnchecked<WTF::Lock>(WTF::Lock&, WTF::TimeWithDynamicClockType const&)::'lambda0'() const&, WTF::TimeWithDynamicClockType const&) + 96
6   com.apple.WebKitLegacy        	0x000000010205837c bool WTF::Condition::waitUntilUnchecked<WTF::Lock>(WTF::Lock&, WTF::TimeWithDynamicClockType const&) + 140
7   com.apple.WebKitLegacy        	0x00000001020582e5 WTF::Condition::waitUntil(WTF::Lock&, WTF::TimeWithDynamicClockType const&) + 37
8   com.apple.WebKitLegacy        	0x000000010206e454 std::__1::unique_ptr<WTF::Function<void ()>, std::__1::default_delete<WTF::Function<void ()> > > WTF::MessageQueue<WTF::Function<void ()> >::waitForMessageFilteredWithTimeout<WTF::MessageQueue<WTF::Function<void ()> >::waitForMessage()::'lambda'(WTF::Function<void ()> const&)>(WTF::MessageQueueWaitResult&, WTF::MessageQueue<WTF::Function<void ()> >::waitForMessage()::'lambda'(WTF::Function<void ()> const&)&&, WTF::Seconds) + 436
9   com.apple.WebKitLegacy        	0x0000000102069697 WTF::MessageQueue<WTF::Function<void ()> >::waitForMessage() + 71
10  com.apple.WebKitLegacy        	0x00000001020695dc WebCore::StorageThread::threadEntryPoint() + 140
11  com.apple.WebKitLegacy        	0x000000010206bb88 WebCore::StorageThread::start()::$_1::operator()() const + 24
12  com.apple.WebKitLegacy        	0x000000010206bb1e WTF::Detail::CallableWrapper<WebCore::StorageThread::start()::$_1, void>::call() + 30
13  com.apple.JavaScriptCore      	0x0000000103d0c9f2 WTF::Function<void ()>::operator()() const + 130 (Function.h:82)
14  com.apple.JavaScriptCore      	0x0000000103ddfec8 WTF::Thread::entryPoint(WTF::Thread::NewThreadContext*) + 424 (Threading.cpp:188)
15  com.apple.JavaScriptCore      	0x0000000103dede78 WTF::wtfThreadEntryPoint(void*) + 24 (ThreadingPOSIX.cpp:241)
16  libsystem_pthread.dylib       	0x00007fff6eb21109 _pthread_start + 148
17  libsystem_pthread.dylib       	0x00007fff6eb1cb8b thread_start + 15

STDIO:
08:44:44.714 721 worker/7 worker/7 storage/websql/multiple-databases-garbage-collection.html crashed, (stderr lines):
08:44:44.714 721 worker/7   ERROR: Unable to turn on incremental auto-vacuum (0 not an error)
08:44:44.714 721 worker/7   ./Modules/webdatabase/Database.cpp(345) : ExceptionOr<void> WebCore::Database::performOpenAndVerify(bool)
08:44:44.714 721 worker/7   ERROR: Unable to turn on incremental auto-vacuum (0 not an error)
08:44:44.715 721 worker/7   ./Modules/webdatabase/Database.cpp(345) : ExceptionOr<void> WebCore::Database::performOpenAndVerify(bool)
08:44:44.715 721 [51542/55848] storage/websql/multiple-databases-garbage-collection.html failed unexpectedly (DumpRenderTree crashed [pid=852])
08:44:44.715 721 worker/7 killing driver

Unable to reproduce on ToT (r283184) on BigSur: using run-webkit-tests --debug -1 --iterations 1000 --exit-after-n-crashes-or-timeouts 1 --clobber-old-results -f --force storage/websql/multiple-databases-garbage-collection.html
Comment 1 Radar WebKit Bug Importer 2021-09-28 13:31:42 PDT
<rdar://problem/83637543>
Comment 2 Eric Hutchison 2021-09-28 13:35:27 PDT
Updated test expectations at https://trac.webkit.org/changeset/283191/webkit
Comment 3 Eric Hutchison 2021-10-01 10:42:31 PDT
Removed test expectations: https://trac.webkit.org/changeset/283379/webkit