[Webkit-unassigned] [Bug 34081] New: [Qt] QtWebkit apps crash on exit on Symbian^3 onwards

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Jan 25 04:01:13 PST 2010


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

           Summary: [Qt] QtWebkit apps crash on exit on Symbian^3 onwards
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: S60 Hardware
        OS/Version: S60 3rd edition
            Status: NEW
          Keywords: Qt
          Severity: Normal
          Priority: P1
         Component: New Bugs
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: koshuin at gmail.com
            Blocks: 27065


Symbian^3 is the first version to implement global destructors and there is
kern-exec 3 crash coming when running the destructors (see attached
call-stack).

There is something really fishy going on with __cxa_finalize as you can see we
end up calling WebCore::threadGlobalData() construction during the destruction
which leads to crash on WTF::isMainThread() where there is no instance of
QtCoreApp anymore.
Offending call is ThreadingQt.cpp::IsMainThread() { ...
QCoreApplication::instance()->thread()}

Symbian does a lazy unloading of DLLs and the crash happens long after the
application has exited (~30sec) and nothing is alive at that point. So my
suggested hotfix for this one is to have:

bool isMainThread()
{
+    if (QCoreApplication::instance() == 0)
+        return true;
    return QThread::currentThread() == QCoreApplication::instance()->thread();
}

Above has been tested and it works. I'd still like to see the root cause why
this is happening.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list