Bug 164887 - Regression(r208672?): ASSERTION FAILED: isMainThread() in WebCore::Node::ref()
Summary: Regression(r208672?): ASSERTION FAILED: isMainThread() in WebCore::Node::ref()
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Chris Dumez
URL:
Keywords: InRadar
Depends on:
Blocks: 164685
  Show dependency treegraph
 
Reported: 2016-11-17 14:11 PST by Ryan Haddad
Modified: 2016-11-17 16:55 PST (History)
6 users (show)

See Also:


Attachments
Crash log (100.30 KB, text/plain)
2016-11-17 14:13 PST, Ryan Haddad
no flags Details
Patch (2.65 KB, patch)
2016-11-17 15:50 PST, Chris Dumez
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Ryan Haddad 2016-11-17 14:11:55 PST
Encountered with LayoutTest storage/websql/multiple-transactions-on-different-handles.html on El Capitan and Sierra Debug WK1

https://build.webkit.org/results/Apple%20El%20Capitan%20Debug%20WK1%20(Tests)/r208857%20(9825)/results.html

ASSERTION FAILED: isMainThread()
/Volumes/Data/slave/elcapitan-debug/build/Source/WebCore/dom/Node.h(706) : void WebCore::Node::ref()
1   0x102b50440 WTFCrash
2   0x107f636b5 WebCore::Node::ref()
3   0x1086bc455 WebCore::Document::refScriptExecutionContext()
4   0x1086bc57c non-virtual thunk to WebCore::Document::refScriptExecutionContext()
5   0x1083a4e89 WebCore::ScriptExecutionContext::ref()
6   0x1085d06d3 WTF::Ref<WebCore::ScriptExecutionContext>::Ref(WebCore::ScriptExecutionContext&)
7   0x1085cabfd WTF::Ref<WebCore::ScriptExecutionContext>::Ref(WebCore::ScriptExecutionContext&)
8   0x1085cae1f WTF::Ref<WebCore::ScriptExecutionContext>::copyRef() const
9   0x1085c3d74 WebCore::Database::~Database()
10  0x1085c3f65 WebCore::Database::~Database()
11  0x1085d41d9 WTF::ThreadSafeRefCounted<WebCore::Database>::deref() const
12  0x1085e0864 void WTF::derefIfNotNull<WebCore::Database>(WebCore::Database*)
13  0x1085e0823 WTF::RefPtr<WebCore::Database>::~RefPtr()
14  0x1085dcee5 WTF::RefPtr<WebCore::Database>::~RefPtr()
15  0x1085e3cb4 WTF::HashTable<WTF::RefPtr<WebCore::Database>, WTF::RefPtr<WebCore::Database>, WTF::IdentityExtractor, WTF::PtrHash<WTF::RefPtr<WebCore::Database> >, WTF::HashTraits<WTF::RefPtr<WebCore::Database> >, WTF::HashTraits<WTF::RefPtr<WebCore::Database> > >::deallocateTable(WTF::RefPtr<WebCore::Database>*, unsigned int)
ERROR: Unable to turn on incremental auto-vacuum (0 not an error)
/Volumes/Data/slave/elcapitan-debug/build/Source/WebCore/Modules/webdatabase/Database.cpp(355) : ExceptionOr<void> WebCore::Database::performOpenAndVerify(bool)
16  0x1085e3a8e WTF::HashTable<WTF::RefPtr<WebCore::Database>, WTF::RefPtr<WebCore::Database>, WTF::IdentityExtractor, WTF::PtrHash<WTF::RefPtr<WebCore::Database> >, WTF::HashTraits<WTF::RefPtr<WebCore::Database> >, WTF::HashTraits<WTF::RefPtr<WebCore::Database> > >::~HashTable()
17  0x1085e3a45 WTF::HashTable<WTF::RefPtr<WebCore::Database>, WTF::RefPtr<WebCore::Database>, WTF::IdentityExtractor, WTF::PtrHash<WTF::RefPtr<WebCore::Database> >, WTF::HashTraits<WTF::RefPtr<WebCore::Database> >, WTF::HashTraits<WTF::RefPtr<WebCore::Database> > >::~HashTable()
18  0x1085e3a25 WTF::HashSet<WTF::RefPtr<WebCore::Database>, WTF::PtrHash<WTF::RefPtr<WebCore::Database> >, WTF::HashTraits<WTF::RefPtr<WebCore::Database> > >::~HashSet()
19  0x1085e32a5 WTF::HashSet<WTF::RefPtr<WebCore::Database>, WTF::PtrHash<WTF::RefPtr<WebCore::Database> >, WTF::HashTraits<WTF::RefPtr<WebCore::Database> > >::~HashSet()
20  0x1085e2407 WebCore::DatabaseThread::databaseThread()
21  0x1085e1f4d WebCore::DatabaseThread::databaseThreadStart(void*)
22  0x102bc9c49 WTF::createThread(void (*)(void*), void*, char const*)::$_0::operator()() const
23  0x102bc9c1d void std::__1::__invoke_void_return_wrapper<void>::__call<WTF::createThread(void (*)(void*), void*, char const*)::$_0&>(WTF::createThread(void (*)(void*), void*, char const*)::$_0&&&)
24  0x102bc9bbc std::__1::__function::__func<WTF::createThread(void (*)(void*), void*, char const*)::$_0, std::__1::allocator<WTF::createThread(void (*)(void*), void*, char const*)::$_0>, void ()>::operator()()
25  0x1020c19ea std::__1::function<void ()>::operator()() const
26  0x102bc881e WTF::threadEntryPoint(void*)
27  0x102bca2c1 WTF::wtfThreadEntryPoint(void*)
28  0x7fff92d4599d _pthread_body
29  0x7fff92d4591a _pthread_body
30  0x7fff92d43351 thread_start
Comment 1 Radar WebKit Bug Importer 2016-11-17 14:12:31 PST
<rdar://problem/29319497>
Comment 2 Ryan Haddad 2016-11-17 14:13:49 PST
Created attachment 295085 [details]
Crash log
Comment 3 Chris Dumez 2016-11-17 15:42:44 PST
Likely a regression from Darin's http://trac.webkit.org/changeset/208672. Before that commit, we were not ref'ing the scriptExecutionContext in the non-main thread.
Comment 4 Chris Dumez 2016-11-17 15:50:19 PST
Created attachment 295099 [details]
Patch
Comment 5 Chris Dumez 2016-11-17 16:55:41 PST
Comment on attachment 295099 [details]
Patch

Clearing flags on attachment: 295099

Committed r208869: <http://trac.webkit.org/changeset/208869>
Comment 6 Chris Dumez 2016-11-17 16:55:46 PST
All reviewed patches have been landed.  Closing bug.