WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
104110
[EFL][WK2] EWK2UnitTestBase.ewk_favicon_database_async_icon_get is crashing with new Ewk_Context
https://bugs.webkit.org/show_bug.cgi?id=104110
Summary
[EFL][WK2] EWK2UnitTestBase.ewk_favicon_database_async_icon_get is crashing w...
Chris Dumez
Reported
2012-12-05 03:32:12 PST
Bug 103692
is creating a new Ewk_Context for each API test, this causes the following API test to crash: EWK2UnitTestBase.ewk_favicon_database_async_icon_get With the following backtrace: ASSERTION FAILED: !result /home/jinwoo/webkit_opensource/webkit-efl/WebKit/Source/WTF/wtf/ThreadingPthreads.cpp(345) : void WTF::Mutex::lock() 1 0x7ffa60c82839 WTF::Mutex::lock() 2 0x7ffa6089f4a4 WTF::Locker<WTF::Mutex>::Locker(WTF::Mutex&) 3 0x7ffa5ff23d47 void WTF::addIterator<void (*)(char const*, void*), WTF::KeyValuePair<void (*)(char const*, void*), IconChangeCallbackData>, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<void (*)(char const*, void*), IconChangeCallbackData> >, WTF::PtrHash<void (*)(char const*, void*)>, WTF::HashMapValueTraits<WTF::HashTraits<void (*)(char const*, void*)>, WTF::HashTraits<IconChangeCallbackData> >, WTF::HashTraits<void (*)(char const*, void*)> >(WTF::HashTable<void (*)(char const*, void*), WTF::KeyValuePair<void (*)(char const*, void*), IconChangeCallbackData>, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<void (*)(char const*, void*), IconChangeCallbackData> >, WTF::PtrHash<void (*)(char const*, void*)>, WTF::HashMapValueTraits<WTF::HashTraits<void (*)(char const*, void*)>, WTF::HashTraits<IconChangeCallbackData> >, WTF::HashTraits<void (*)(char const*, void*)> > const*, WTF::HashTableConstIterator<void (*)(char const*, void*), WTF::KeyValuePair<void (*)(char const*, void*), IconChangeCallbackData>, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<void (*)(char const*, void*), IconChangeCallbackData> >, WTF::PtrHash<void (*)(char const*, void*)>, WTF::HashMapValueTraits<WTF::HashTraits<void (*)(char const*, void*)>, WTF::HashTraits<IconChangeCallbackData> >, WTF::HashTraits<void (*)(char const*, void*)> >*) 4 0x7ffa5ff25f5a WTF::HashTableConstIterator<void (*)(char const*, void*), WTF::KeyValuePair<void (*)(char const*, void*), IconChangeCallbackData>, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<void (*)(char const*, void*), IconChangeCallbackData> >, WTF::PtrHash<void (*)(char const*, void*)>, WTF::HashMapValueTraits<WTF::HashTraits<void (*)(char const*, void*)>, WTF::HashTraits<IconChangeCallbackData> >, WTF::HashTraits<void (*)(char const*, void*)> >::HashTableConstIterator(WTF::HashTable<void (*)(char const*, void*), WTF::KeyValuePair<void (*)(char const*, void*), IconChangeCallbackData>, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<void (*)(char const*, void*), IconChangeCallbackData> >, WTF::PtrHash<void (*)(char const*, void*)>, WTF::HashMapValueTraits<WTF::HashTraits<void (*)(char const*, void*)>, WTF::HashTraits<IconChangeCallbackData> >, WTF::HashTraits<void (*)(char const*, void*)> > const*, WTF::KeyValuePair<void (*)(char const*, void*), IconChangeCallbackData> const*, WTF::KeyValuePair<void (*)(char const*, void*), IconChangeCallbackData> const*) 5 0x7ffa5ff2525b WTF::HashTable<void (*)(char const*, void*), WTF::KeyValuePair<void (*)(char const*, void*), IconChangeCallbackData>, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<void (*)(char const*, void*), IconChangeCallbackData> >, WTF::PtrHash<void (*)(char const*, void*)>, WTF::HashMapValueTraits<WTF::HashTraits<void (*)(char const*, void*)>, WTF::HashTraits<IconChangeCallbackData> >, WTF::HashTraits<void (*)(char const*, void*)> >::makeConstIterator(WTF::KeyValuePair<void (*)(char const*, void*), IconChangeCallbackData>*) const 6 0x7ffa5ff23cb9 WTF::HashTable<void (*)(char const*, void*), WTF::KeyValuePair<void (*)(char const*, void*), IconChangeCallbackData>, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<void (*)(char const*, void*), IconChangeCallbackData> >, WTF::PtrHash<void (*)(char const*, void*)>, WTF::HashMapValueTraits<WTF::HashTraits<void (*)(char const*, void*)>, WTF::HashTraits<IconChangeCallbackData> >, WTF::HashTraits<void (*)(char const*, void*)> >::begin() const 7 0x7ffa5ff22be1 WTF::HashMap<void (*)(char const*, void*), IconChangeCallbackData, WTF::PtrHash<void (*)(char const*, void*)>, WTF::HashTraits<void (*)(char const*, void*)>, WTF::HashTraits<IconChangeCallbackData> >::begin() const 8 0x7ffa5ff21a0b EwkFaviconDatabase::didChangeIconForPageURL(OpaqueWKIconDatabase const*, OpaqueWKURL const*, void const*) 9 0x7ffa5fd52711 WebKit::WebIconDatabaseClient::didChangeIconForPageURL(WebKit::WebIconDatabase*, WebKit::WebURL*) 10 0x7ffa5fd4fae5 WebKit::WebIconDatabase::didChangeIconForPageURL(WTF::String const&) 11 0x7ffa5aa60111 WebCore::IconDatabase::setIconDataForIconURL(WTF::PassRefPtr<WebCore::SharedBuffer>, WTF::String const&) 12 0x7ffa5fd4f43d WebKit::WebIconDatabase::setIconDataForIconURL(CoreIPC::DataReference const&, WTF::String const&) 13 0x7ffa5ff6ce6f void CoreIPC::callMemberFunction<WebKit::WebIconDatabase, void (WebKit::WebIconDatabase::*)(CoreIPC::DataReference const&, WTF::String const&), CoreIPC::DataReference, WTF::String>(CoreIPC::Arguments2<CoreIPC::DataReference, WTF::String> const&, WebKit::WebIconDatabase*, void (WebKit::WebIconDatabase::*)(CoreIPC::DataReference const&, WTF::String const&)) 14 0x7ffa5ff6c9a7 void CoreIPC::handleMessage<Messages::WebIconDatabase::SetIconDataForIconURL, WebKit::WebIconDatabase, void (WebKit::WebIconDatabase::*)(CoreIPC::DataReference const&, WTF::String const&)>(CoreIPC::MessageDecoder&, WebKit::WebIconDatabase*, void (WebKit::WebIconDatabase::*)(CoreIPC::DataReference const&, WTF::String const&)) 15 0x7ffa5ff6c1f1 WebKit::WebIconDatabase::didReceiveWebIconDatabaseMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::MessageDecoder&) 16 0x7ffa5fd4fde8 WebKit::WebIconDatabase::didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::MessageDecoder&) 17 0x7ffa5fc9e6c2 CoreIPC::MessageReceiverMap::dispatchMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::MessageDecoder&) 18 0x7ffa5fd2e25d WebKit::WebContext::dispatchMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::MessageDecoder&) 19 0x7ffa5fdab9ba WebKit::WebProcessProxy::didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::MessageDecoder&) 20 0x7ffa5fc936f4 CoreIPC::Connection::dispatchMessage(CoreIPC::MessageID, CoreIPC::MessageDecoder&) 21 0x7ffa5fc93860 CoreIPC::Connection::dispatchMessage(CoreIPC::Connection::Message<CoreIPC::MessageDecoder>&) 22 0x7ffa5fc93aab CoreIPC::Connection::dispatchOneMessage() 23 0x7ffa5fc9dc4c WTF::FunctionWrapper<void (CoreIPC::Connection::*)()>::operator()(CoreIPC::Connection*) 24 0x7ffa5fc9da52 WTF::BoundFunctionImpl<WTF::FunctionWrapper<void (CoreIPC::Connection::*)()>, void (CoreIPC::Connection*)>::operator()() 25 0x7ffa60c86496 WTF::Function<void ()>::operator()() const 26 0x7ffa5ab79622 WebCore::RunLoop::performWork() 27 0x7ffa5b5a5a17 WebCore::RunLoop::wakeUpEvent(void*, void*, unsigned int) 28 0x7ffa61307751 29 0x7ffa613066a1 30 0x7ffa61306b45 ecore_main_loop_iterate 31 0x40e49f EWK2UnitTest::EWK2UnitTestBase::waitUntilLoadFinished(double)
Attachments
Patch
(1.55 KB, patch)
2012-12-05 03:45 PST
,
Chris Dumez
no flags
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
Chris Dumez
Comment 1
2012-12-05 03:45:44 PST
Created
attachment 177717
[details]
Patch
Mikhail Pozdnyakov
Comment 2
2012-12-05 03:52:20 PST
Comment on
attachment 177717
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=177717&action=review
> Source/WebKit2/UIProcess/API/efl/ewk_favicon_database.cpp:56 > + WKIconDatabaseSetIconDatabaseClient(toAPI(m_iconDatabase.get()), 0);
is it possible to use c++ analogue instead?
Chris Dumez
Comment 3
2012-12-05 03:58:10 PST
Comment on
attachment 177717
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=177717&action=review
>> Source/WebKit2/UIProcess/API/efl/ewk_favicon_database.cpp:56 >> + WKIconDatabaseSetIconDatabaseClient(toAPI(m_iconDatabase.get()), 0); > > is it possible to use c++ analogue instead?
In theory yes, and I don't mind if we switch to C++ in a separate patch. At the moment, my patch is consistent with the use of WKIconDatabaseSetIconDatabaseClient() in the class constructor. If I use C API in constructor and C++ API in the destructor, it is going to look weird.
Mikhail Pozdnyakov
Comment 4
2012-12-05 04:05:23 PST
(In reply to
comment #3
)
> (From update of
attachment 177717
[details]
) > View in context:
https://bugs.webkit.org/attachment.cgi?id=177717&action=review
> > >> Source/WebKit2/UIProcess/API/efl/ewk_favicon_database.cpp:56 > >> + WKIconDatabaseSetIconDatabaseClient(toAPI(m_iconDatabase.get()), 0); > > > > is it possible to use c++ analogue instead? > > In theory yes, and I don't mind if we switch to C++ in a separate patch. At the moment, my patch is consistent with the use of WKIconDatabaseSetIconDatabaseClient() in the class constructor. > If I use C API in constructor and C++ API in the destructor, it is going to look weird.
Agreed, looks good than.
Laszlo Gombos
Comment 5
2012-12-05 07:21:20 PST
Comment on
attachment 177717
[details]
Patch r=me.
WebKit Review Bot
Comment 6
2012-12-05 08:11:33 PST
Comment on
attachment 177717
[details]
Patch Clearing flags on attachment: 177717 Committed
r136691
: <
http://trac.webkit.org/changeset/136691
>
WebKit Review Bot
Comment 7
2012-12-05 08:11:37 PST
All reviewed patches have been landed. Closing bug.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug