Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-5612

Qt applications using webkit deadlock on exit

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: P1: Critical P1: Critical
    • 4.6.0
    • 4.6.0
    • None
    • None
    • 135710b1fa38f72a934c542d196af9eff066d908

      • Start a Qt application using webkit, like assistant or, even more reproducible, demos/browser/browser.
      • Wait a bit and then exit the application.
      • The application will now hang with at least two threads still being open.
      • Example backtrace: The browser application leaves three threads open.
        => Thread 1:
        #0 0xb7fe1424 in __kernel_vsyscall ()
        #1 0xb57c8f65 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i686/cmov/libpthread.so.0
        #2 0xb58703bc in QWaitConditionPrivate::wait (this=0x825c080, time=4294967295)
        at /home/christian/dev/qt-4.6-tools-team/src/corelib/thread/qwaitcondition_unix.cpp:87
        #3 0xb586febb in QWaitCondition::wait (this=0x825c00c, mutex=0x825bff8, time=4294967295)
        at /home/christian/dev/qt-4.6-tools-team/src/corelib/thread/qwaitcondition_unix.cpp:159
        #4 0xb586ec24 in QThread::wait (this=0x825bf88, time=4294967295)
        at /home/christian/dev/qt-4.6-tools-team/src/corelib/thread/qthread_unix.cpp:615
        #5 0xb68b15d2 in QHostInfoAgent::cleanup (this=0x825bf88) at /home/christian/dev/qt-4.6-tools-team/src/network/kernel/qhostinfo_p.h:166
        #6 0xb68affb1 in QHostInfoAgent::staticCleanup () at /home/christian/dev/qt-4.6-tools-team/src/network/kernel/qhostinfo.cpp:66
        #7 0xb599b9ba in qt_call_post_routines () at /home/christian/dev/qt-4.6-tools-team/src/corelib/kernel/qcoreapplication.cpp:201
        #8 0xb5c915de in ~QApplication (this=0xbfffeca4, __in_chrg=<value optimized out>)
        at /home/christian/dev/qt-4.6-tools-team/src/gui/kernel/qapplication.cpp:1011
        #9 0x0807c3ac in ~BrowserApplication (this=0xbfffeca4, __in_chrg=<value optimized out>)
        at /home/christian/dev/qt-4.6-tools-team/demos/browser/browserapplication.cpp:158
        #10 0x080d19d6 in main (argc=1, argv=0xbfffed64) at /home/christian/dev/qt-4.6-tools-team/demos/browser/main.cpp:51

      => Thread 2:
      #0 0xb7fe1424 in __kernel_vsyscall ()
      #1 0xb57c8f65 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i686/cmov/libpthread.so.0
      #2 0xb70b2bc1 in WTF::TCMalloc_PageHeap::scavengerThread() () from /home/christian/builds/qt-4.6-tools-team/lib/libQtWebKit.so.4
      #3 0xb70b2c4d in WTF::TCMalloc_PageHeap::runScavengerThread(void*) () from /home/christian/builds/qt-4.6-tools-team/lib/libQtWebKit.so.4
      #4 0xb57c54b5 in start_thread () from /lib/i686/cmov/libpthread.so.0
      #5 0xb55fda5e in clone () from /lib/i686/cmov/libc.so.6

      => Thread 3:
      #0 0xb7fe1424 in __kernel_vsyscall ()
      #1 0xb57c8f65 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i686/cmov/libpthread.so.0
      #2 0xb58703bc in QWaitConditionPrivate::wait (this=0x835f430, time=4294967295)
      at /home/christian/dev/qt-4.6-tools-team/src/corelib/thread/qwaitcondition_unix.cpp:87
      #3 0xb586febb in QWaitCondition::wait (this=0x835ede0, mutex=0x835b5d0, time=4294967295)
      at /home/christian/dev/qt-4.6-tools-team/src/corelib/thread/qwaitcondition_unix.cpp:159
      #4 0xb70b7210 in WTF::ThreadCondition::wait(WTF::Mutex&) () from /home/christian/builds/qt-4.6-tools-team/lib/libQtWebKit.so.4
      #5 0xb7765698 in WebCore::IconDatabase::syncThreadMainLoop() () from /home/christian/builds/qt-4.6-tools-team/lib/libQtWebKit.so.4
      #6 0xb7766f8f in WebCore::IconDatabase::iconDatabaseSyncThread() () from /home/christian/builds/qt-4.6-tools-team/lib/libQtWebKit.so.4
      #7 0xb7766fe9 in WebCore::IconDatabase::iconDatabaseSyncThreadStart(void*) ()
      from /home/christian/builds/qt-4.6-tools-team/lib/libQtWebKit.so.4
      #8 0xb70b5d74 in WTF::threadEntryPoint(void*) () from /home/christian/builds/qt-4.6-tools-team/lib/libQtWebKit.so.4
      #9 0xb70b65b7 in WTF::ThreadPrivate::run() () from /home/christian/builds/qt-4.6-tools-team/lib/libQtWebKit.so.4
      #10 0xb586f91c in QThreadPrivate::start (arg=0x8364318) at /home/christian/dev/qt-4.6-tools-team/src/corelib/thread/qthread_unix.cpp:244
      #11 0xb57c54b5 in start_thread () from /lib/i686/cmov/libpthread.so.0
      #12 0xb55fda5e in clone () from /lib/i686/cmov/libc.so.6

      • In assistant, only threads 1 and 2 are there, with the exact same backtrace.

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            phartman Peter Hartmann (closed Nokia identity) (Inactive)
            kandeler Christian Kandeler
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:

                There are no open Gerrit changes