Created attachment 336634 [details] keypath-exceptions-crash-log.txt LayoutTest imported/w3c/web-platform-tests/IndexedDB/keypath-exceptions.htm crashes This test is marked Skip in LayoutTests/TestExpectations. So I think this crash is cross platform. I tested with GTK port, debug build, trunk@229994. > Thread 1 (Thread 0x7f2e177fe700 (LWP 100031)): > #0 0x00007f2e770db5f3 in WTFCrash () at ../../Source/WTF/wtf/Assertions.cpp:271 > #1 0x00007f2e83f45df7 in (anonymous namespace)::serializedTypeForKeyType (type=(anonymous namespace)::(anonymous namespace)::Invalid) at ../../Source/WebCore/Modules/indexeddb/server/IDBSerialization.cpp:181 > #2 0x00007f2e83f45eb1 in (anonymous namespace)::encodeKey (data=..., key=...) at ../../Source/WebCore/Modules/indexeddb/server/IDBSerialization.cpp:236 > #3 0x00007f2e83f46121 in (anonymous namespace)::encodeKey (data=..., key=...) at ../../Source/WebCore/Modules/indexeddb/server/IDBSerialization.cpp:273 > #4 0x00007f2e83f4619f in (anonymous namespace)::serializeIDBKeyData (key=...) at ../../Source/WebCore/Modules/indexeddb/server/IDBSerialization.cpp:288 > #5 0x00007f2e83f9ebf5 in (anonymous namespace)::(anonymous namespace)::SQLiteIDBBackingStore::uncheckedPutIndexRecord (this=0x7f2e080a0e70, objectStoreID=1, indexID=1, keyValue=..., indexKey=..., recordID=1) at ../../Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:1285 > #6 0x00007f2e83f9e9e6 in (anonymous namespace)::(anonymous namespace)::SQLiteIDBBackingStore::uncheckedPutIndexKey (this=0x7f2e080a0e70, info=..., key=..., indexKey=..., recordID=1) at ../../Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:1271 > #7 0x00007f2e83fa1fd1 in (anonymous namespace)::(anonymous namespace)::SQLiteIDBBackingStore::updateAllIndexesForAddRecord (this=0x7f2e080a0e70, info=..., key=..., value=..., recordID=1) at ../../Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:1677 > #8 0x00007f2e83fa29df in (anonymous namespace)::(anonymous namespace)::SQLiteIDBBackingStore::addRecord (this=0x7f2e080a0e70, transactionIdentifier=..., objectStoreInfo=..., keyData=..., value=...) at ../../Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:1741 > #9 0x00007f2e83fd0940 in (anonymous namespace)::(anonymous namespace)::UniqueIDBDatabase::performPutOrAdd (this=0x55dd4abb86d0, callbackIdentifier=18, transactionIdentifier=..., objectStoreIdentifier=1, keyData=..., originalRecordValue=..., overwriteMode=(anonymous namespace)::(anonymous namespace)::ObjectStoreOverwriteMode::Overwrite) at ../../Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.cpp:1042 > #10 0x00007f2e84002868 in WTF::callMemberFunctionForCrossThreadTaskImpl<WebCore::IDBServer::UniqueIDBDatabase, void (WebCore::IDBServer::UniqueIDBDatabase::*)(unsigned long, WebCore::IDBResourceIdentifier const&, unsigned long, WebCore::IDBKeyData const&, WebCore::IDBValue const&, WebCore::IndexedDB::ObjectStoreOverwriteMode), std::tuple<unsigned long, WebCore::IDBResourceIdentifier, unsigned long, WebCore::IDBKeyData, WebCore::IDBValue, WebCore::IndexedDB::ObjectStoreOverwriteMode>, 0, 1, 2, 3, 4, 5> (object=0x55dd4abb86d0, function=(void ((anonymous namespace)::(anonymous namespace)::UniqueIDBDatabase::*)((anonymous namespace)::(anonymous namespace)::UniqueIDBDatabase * const, unsigned long, const (anonymous namespace)::IDBResourceIdentifier &, unsigned long, const (anonymous namespace)::IDBKeyData &, const (anonymous namespace)::IDBValue &, (anonymous namespace)::(anonymous namespace)::ObjectStoreOverwriteMode)) 0x7f2e83fcf9da <(anonymous namespace)::(anonymous namespace)::UniqueIDBDatabase::performPutOrAdd(uint64_t, (anonymous namespace)::IDBResourceIdentifier const&, uint64_t, (anonymous namespace)::IDBKeyData const&, (anonymous namespace)::IDBValue const&, (anonymous namespace)::(anonymous namespace)::ObjectStoreOverwriteMode)>, args=...) at DerivedSources/ForwardingHeaders/wtf/CrossThreadTask.h:76 > #11 0x00007f2e83ff6952 in WTF::callMemberFunctionForCrossThreadTask<WebCore::IDBServer::UniqueIDBDatabase, void (WebCore::IDBServer::UniqueIDBDatabase::*)(unsigned long, WebCore::IDBResourceIdentifier const&, unsigned long, WebCore::IDBKeyData const&, WebCore::IDBValue const&, WebCore::IndexedDB::ObjectStoreOverwriteMode), std::tuple<unsigned long, WebCore::IDBResourceIdentifier, unsigned long, WebCore::IDBKeyData, WebCore::IDBValue, WebCore::IndexedDB::ObjectStoreOverwriteMode> > (object=0x55dd4abb86d0, function=(void ((anonymous namespace)::(anonymous namespace)::UniqueIDBDatabase::*)((anonymous namespace)::(anonymous namespace)::UniqueIDBDatabase * const, unsigned long, const (anonymous namespace)::IDBResourceIdentifier &, unsigned long, const (anonymous namespace)::IDBKeyData &, const (anonymous namespace)::IDBValue &, (anonymous namespace)::(anonymous namespace)::ObjectStoreOverwriteMode)) 0x7f2e83fcf9da <(anonymous namespace)::(anonymous namespace)::UniqueIDBDatabase::performPutOrAdd(uint64_t, (anonymous namespace)::IDBResourceIdentifier const&, uint64_t, (anonymous namespace)::IDBKeyData const&, (anonymous namespace)::IDBValue const&, (anonymous namespace)::(anonymous namespace)::ObjectStoreOverwriteMode)>, args=...) at DerivedSources/ForwardingHeaders/wtf/CrossThreadTask.h:82 > #12 0x00007f2e83fe9c50 in WTF::<lambda()>::operator()(void) (__closure=0x7f2e65b970b8) at DerivedSources/ForwardingHeaders/wtf/CrossThreadTask.h:89 > #13 0x00007f2e840270e0 in WTF::Function<void()>::CallableWrapper<WTF::createCrossThreadTask(T&, void (T::*)(Parameters ...), const Arguments& ...) [with T = WebCore::IDBServer::UniqueIDBDatabase; Parameters = {long unsigned int, const WebCore::IDBResourceIdentifier&, long unsigned int, const WebCore::IDBKeyData&, const WebCore::IDBValue&, WebCore::IndexedDB::ObjectStoreOverwriteMode}; Arguments = {long unsigned int, WebCore::IDBResourceIdentifier, long unsigned int, WebCore::IDBKeyData, WebCore::IDBValue, WebCore::IndexedDB::ObjectStoreOverwriteMode}]::<lambda()> >::call(void) (this=0x7f2e65b970b0) at DerivedSources/ForwardingHeaders/wtf/Function.h:101 > #14 0x00007f2e828aab98 in WTF::Function<void()>::operator()(void) const (this=0x7f2e177fd958) at DerivedSources/ForwardingHeaders/wtf/Function.h:56 > #15 0x00007f2e82ae8028 in WTF::CrossThreadTask::performTask (this=0x7f2e177fd958) at DerivedSources/ForwardingHeaders/wtf/CrossThreadTask.h:46 > #16 0x00007f2e83fd5567 in (anonymous namespace)::(anonymous namespace)::UniqueIDBDatabase::executeNextDatabaseTask (this=0x55dd4abb86d0) at ../../Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.cpp:1748 > #17 0x00007f2e83ffe117 in WTF::callMemberFunctionForCrossThreadTaskImpl<WebCore::IDBServer::UniqueIDBDatabase, void (WebCore::IDBServer::UniqueIDBDatabase::*)(), std::tuple<> >((anonymous namespace)::(anonymous namespace)::UniqueIDBDatabase *, void ((anonymous namespace)::(anonymous namespace)::UniqueIDBDatabase::*)((anonymous namespace)::(anonymous namespace)::UniqueIDBDatabase * const), std::tuple<> &&, std::index_sequence) (object=0x55dd4abb86d0, function=(void ((anonymous namespace)::(anonymous namespace)::UniqueIDBDatabase::*)((anonymous namespace)::(anonymous namespace)::UniqueIDBDatabase * const)) 0x7f2e83fd5480 <(anonymous namespace)::(anonymous namespace)::UniqueIDBDatabase::executeNextDatabaseTask()>, args=...) at DerivedSources/ForwardingHeaders/wtf/CrossThreadTask.h:76 > #18 0x00007f2e83ff2652 in WTF::callMemberFunctionForCrossThreadTask<WebCore::IDBServer::UniqueIDBDatabase, void (WebCore::IDBServer::UniqueIDBDatabase::*)(), std::tuple<> >((anonymous namespace)::(anonymous namespace)::UniqueIDBDatabase *, void ((anonymous namespace)::(anonymous namespace)::UniqueIDBDatabase::*)((anonymous namespace)::(anonymous namespace)::UniqueIDBDatabase * const), std::tuple<> &&) (object=0x55dd4abb86d0, function=(void ((anonymous namespace)::(anonymous namespace)::UniqueIDBDatabase::*)((anonymous namespace)::(anonymous namespace)::UniqueIDBDatabase * const)) 0x7f2e83fd5480 <(anonymous namespace)::(anonymous namespace)::UniqueIDBDatabase::executeNextDatabaseTask()>, args=...) at DerivedSources/ForwardingHeaders/wtf/CrossThreadTask.h:82 > #19 0x00007f2e83fe5a7e in WTF::<lambda()>::operator()(void) (__closure=0x7f2e65bfd968) at DerivedSources/ForwardingHeaders/wtf/CrossThreadTask.h:89 > #20 0x00007f2e840272c0 in WTF::Function<void()>::CallableWrapper<WTF::createCrossThreadTask(T&, void (T::*)(Parameters ...), const Arguments& ...) [with T = WebCore::IDBServer::UniqueIDBDatabase; Parameters = {}; Arguments = {}]::<lambda()> >::call(void) (this=0x7f2e65bfd960) at DerivedSources/ForwardingHeaders/wtf/Function.h:101 > #21 0x00007f2e828aab98 in WTF::Function<void()>::operator()(void) const (this=0x7f2e177fdab0) at DerivedSources/ForwardingHeaders/wtf/Function.h:56 > #22 0x00007f2e82ae8028 in WTF::CrossThreadTask::performTask (this=0x7f2e177fdab0) at DerivedSources/ForwardingHeaders/wtf/CrossThreadTask.h:46 > #23 0x00007f2e85dfab01 in WTF::CrossThreadTaskHandler::taskRunLoop (this=0x7f2e65bc2000) at ../../Source/WTF/wtf/CrossThreadTaskHandler.cpp:72 > #24 0x00007f2e85dfa74f in WTF::CrossThreadTaskHandler::<lambda()>::operator()(void) const (__closure=0x7f2e65bfa1a8) at ../../Source/WTF/wtf/CrossThreadTaskHandler.cpp:36 > #25 0x00007f2e85dfb96a in WTF::Function<void()>::CallableWrapper<WTF::CrossThreadTaskHandler::CrossThreadTaskHandler(char const*)::<lambda()> >::call(void) (this=0x7f2e65bfa1a0) at ../../Source/WTF/wtf/Function.h:101 > #26 0x00007f2e828aab98 in WTF::Function<void()>::operator()(void) const (this=0x7f2e177fdb40) at DerivedSources/ForwardingHeaders/wtf/Function.h:56 > #27 0x00007f2e7710f0fd in WTF::Thread::entryPoint (newThreadContext=0x7f2e65bf7140) at ../../Source/WTF/wtf/Threading.cpp:129 > #28 0x00007f2e77158811 in WTF::wtfThreadEntryPoint (context=0x7f2e65bf7140) at ../../Source/WTF/wtf/ThreadingPthreads.cpp:222 > #29 0x00007f2e73bae7fc in start_thread (arg=0x7f2e177fe700) at pthread_create.c:465 > #30 0x00007f2e7b339b5f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
*** This bug has been marked as a duplicate of bug 228169 ***