[Webkit-unassigned] [Bug 153176] [GTK][OSX] ThreadIdentifierData::initialize assertion fails: (m_key != PTHREAD_KEYS_MAX)

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Jan 15 22:44:49 PST 2016


https://bugs.webkit.org/show_bug.cgi?id=153176

--- Comment #3 from Jeremy Huddleston Sequoia <jeremyhu at apple.com> ---
Oh, I missed it.

JSC::initializeThreading() calls WTF::initializeThreading(), and JSC::initializeThreading() is the first thing called by WebKit2::InitializeWebKit2

namespace JSC {
void initializeThreading()
{
    static std::once_flag initializeThreadingOnceFlag;

    std::call_once(initializeThreadingOnceFlag, []{
        WTF::double_conversion::initialize();
        WTF::initializeThreading();
...

---

void InitializeWebKit2()
{
#if PLATFORM(COCOA)
    InitWebCoreSystemInterface();
#endif
#if PLATFORM(IOS)
    InitWebCoreThreadSystemInterface();
#endif

    JSC::initializeThreading();
    WTF::initializeMainThread();
...

So that all looks OK, BUT the issue comes because of 2-level name-spacing.  Here's the backtrace:

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libsystem_kernel.dylib              0x00007fff8ac13f06 __pthread_kill + 10
1   libsystem_pthread.dylib             0x00007fff8fa204ec pthread_kill + 90
2   libsystem_c.dylib                   0x00007fff8b86e6e7 abort + 129
3   libsystem_c.dylib                   0x00007fff8b835df8 __assert_rtn + 321
4   libwebkit2gtk-4.0.37.dylib          0x000000010b27cb54 WTF::ThreadIdentifierData::identifier() + 68
5   libwebkit2gtk-4.0.37.dylib          0x000000010b27db3d WTF::currentThread() + 13
6   libwebkit2gtk-4.0.37.dylib          0x000000010b222e32 WTF::initializeMainThread() + 34
7   libwebkit2gtk-4.0.37.dylib          0x0000000108e0236e WebKit::InitializeWebKit2() + 14

libwebkit2gtk's WTF::initializeMainThread() was never called.

libjavascriptcoregtk has its own copy of WTF::initializeMainThread(), and THAT was what was called:


webkitgtk-2.11.3/lib $ nm libjavascriptcoregtk-4.0.dylib | grep initializeOnce
0000000000ac29a0 T __ZN3WTF20ThreadIdentifierData14initializeOnceEv
0000000000e3f9f0 b __ZZN3WTF12_GLOBAL__N_112myThreadDataEvE14initializeOnce
0000000000e3fa30 b __ZZN3WTF12_GLOBAL__N_112myThreadDataEvE14initializeOnce

webkitgtk-2.11.3/lib $ nm libwebkit2gtk-4.0.dylib | grep initializeOnce
0000000002634a00 T __ZN3WTF20ThreadIdentifierData14initializeOnceEv
0000000003702500 b __ZZN3WTF12_GLOBAL__N_112myThreadDataEvE14initializeOnce
00000000037024b0 b __ZZN3WTF12_GLOBAL__N_112myThreadDataEvE14initializeOnce

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.webkit.org/pipermail/webkit-unassigned/attachments/20160116/3c8faefe/attachment-0001.html>


More information about the webkit-unassigned mailing list