Summary: | deadlock on shutdown (exit handler destroys QMutex , sys call is waiting) | ||
---|---|---|---|
Product: | [Applications] kdevelop | Reporter: | Milian Wolff <mail> |
Component: | general | Assignee: | kdevelop-bugs-null |
Status: | RESOLVED UPSTREAM | ||
Severity: | crash | ||
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | 4.0.1 | ||
Platform: | Unlisted Binaries | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Milian Wolff
2010-05-27 18:41:11 UTC
still reproducible with kdev 4.1 better backtrace: (gdb) thread apply all bt Thread 7 (Thread 0xb048eb70 (LWP 18743)): #0 0xb7828424 in __kernel_vsyscall () #1 0xb4af4482 in pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_timedwait.S:179 #2 0xb554fe64 in __pthread_cond_timedwait (cond=0x990c2c8, mutex=0x990c2b0, abstime=0xb048e2d0) at forward.c:152 #3 0xb6261f3f in QWaitConditionPrivate::wait (this=0x99175c4, mutex=0x99175c8, time=200000) at thread/qwaitcondition_unix.cpp:85 #4 QWaitCondition::wait (this=0x99175c4, mutex=0x99175c8, time=200000) at thread/qwaitcondition_unix.cpp:159 #5 0xb4f12c60 in KDevelop::DUChainPrivate::CleanupThread::run (this=0x99175b8) at /home/milianw/projects/kde4/kdevplatform/language/duchain/duchain.cpp:286 #6 0xb6260fbe in QThreadPrivate::start (arg=0x99175b8) at thread/qthread_unix.cpp:248 #7 0xb4aef955 in start_thread (arg=0xb048eb70) at pthread_create.c:300 #8 0xb5542e7e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130 Thread 6 (Thread 0xafb84b70 (LWP 18745)): #0 0xb7828424 in __kernel_vsyscall () #1 0xb553c011 in select () at ../sysdeps/unix/syscall-template.S:82 #2 0xb633825c in QProcessManager::run (this=0xb6474390) at io/qprocess_unix.cpp:245 #3 0xb6260fbe in QThreadPrivate::start (arg=0xb6474390) at thread/qthread_unix.cpp:248 #4 0xb4aef955 in start_thread (arg=0xafb84b70) at pthread_create.c:300 #5 0xb5542e7e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130 Thread 5 (Thread 0xae984b70 (LWP 18747)): #0 0xb7828424 in __kernel_vsyscall () #1 0xb4af3f7f in __pthread_cond_wait (cond=0x99d7b40, mutex=0x99d7b28) at pthread_cond_wait.c:153 #2 0xb554fe0d in __pthread_cond_wait (cond=0x99d7b40, mutex=0x99d7b28) at forward.c:139 #3 0xb6261fb7 in QWaitConditionPrivate::wait (this=0x99a4520, mutex=0x99b2760, time=4294967295) at thread/qwaitcondition_unix.cpp:87 #4 QWaitCondition::wait (this=0x99a4520, mutex=0x99b2760, time=4294967295) at thread/qwaitcondition_unix.cpp:159 #5 0xb711a682 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x99a4508, th=0x99ab258) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365 #6 0xb711d3dc in ThreadWeaver::WorkingHardState::waitForAvailableJob (this=0x99b2460, th=0x99ab258) at ../../../threadweaver/Weaver/WorkingHardState.cpp:80 #7 0xb711924b in ThreadWeaver::WeaverImpl::waitForAvailableJob (this=0x99a4508, th=0x99ab258) at ../../../threadweaver/Weaver/WeaverImpl.cpp:356 #8 0xb711d4d2 in ThreadWeaver::WorkingHardState::applyForWork (this=0x99b2460, th=0x99ab258) at ../../../threadweaver/Weaver/WorkingHardState.cpp:71 #9 0xb711abe3 in ThreadWeaver::WeaverImpl::applyForWork (this=0x99a4508, th=0x99ab258, previous=0xaf20cc98) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351 #10 0xb711b57e in ThreadWeaver::ThreadRunHelper::run (this=0xae9842f4, parent=0x99a4508, th=0x99ab258) at ../../../threadweaver/Weaver/Thread.cpp:87 #11 0xb711bc9b in ThreadWeaver::Thread::run (this=0x99ab258) at ../../../threadweaver/Weaver/Thread.cpp:142 #12 0xb6260fbe in QThreadPrivate::start (arg=0x99ab258) at thread/qthread_unix.cpp:248 ---Type <return> to continue, or q <return> to quit--- #13 0xb4aef955 in start_thread (arg=0xae984b70) at pthread_create.c:300 #14 0xb5542e7e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130 Thread 4 (Thread 0xade85b70 (LWP 18749)): #0 0xb7828424 in __kernel_vsyscall () #1 0xb4af3f7f in __pthread_cond_wait (cond=0x99d7b40, mutex=0x99d7b28) at pthread_cond_wait.c:153 #2 0xb554fe0d in __pthread_cond_wait (cond=0x99d7b40, mutex=0x99d7b28) at forward.c:139 #3 0xb6261fb7 in QWaitConditionPrivate::wait (this=0x99a4520, mutex=0x99b2760, time=4294967295) at thread/qwaitcondition_unix.cpp:87 #4 QWaitCondition::wait (this=0x99a4520, mutex=0x99b2760, time=4294967295) at thread/qwaitcondition_unix.cpp:159 #5 0xb711a682 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x99a4508, th=0x9c29ba8) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365 #6 0xb711d3dc in ThreadWeaver::WorkingHardState::waitForAvailableJob (this=0x99b2460, th=0x9c29ba8) at ../../../threadweaver/Weaver/WorkingHardState.cpp:80 #7 0xb711924b in ThreadWeaver::WeaverImpl::waitForAvailableJob (this=0x99a4508, th=0x9c29ba8) at ../../../threadweaver/Weaver/WeaverImpl.cpp:356 #8 0xb711d4d2 in ThreadWeaver::WorkingHardState::applyForWork (this=0x99b2460, th=0x9c29ba8) at ../../../threadweaver/Weaver/WorkingHardState.cpp:71 #9 0xb711abe3 in ThreadWeaver::WeaverImpl::applyForWork (this=0x99a4508, th=0x9c29ba8, previous=0x0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351 #10 0xb711d4f1 in ThreadWeaver::WorkingHardState::applyForWork (this=0x99b2460, th=0x9c29ba8) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74 #11 0xb711abe3 in ThreadWeaver::WeaverImpl::applyForWork (this=0x99a4508, th=0x9c29ba8, previous=0x0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351 #12 0xb711b57e in ThreadWeaver::ThreadRunHelper::run (this=0xade852f4, parent=0x99a4508, th=0x9c29ba8) at ../../../threadweaver/Weaver/Thread.cpp:87 #13 0xb711bc9b in ThreadWeaver::Thread::run (this=0x9c29ba8) at ../../../threadweaver/Weaver/Thread.cpp:142 #14 0xb6260fbe in QThreadPrivate::start (arg=0x9c29ba8) at thread/qthread_unix.cpp:248 #15 0xb4aef955 in start_thread (arg=0xade85b70) at pthread_create.c:300 #16 0xb5542e7e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130 Thread 3 (Thread 0xac66fb70 (LWP 18759)): #0 0xb7828424 in __kernel_vsyscall () #1 0xb4af3f7f in __pthread_cond_wait (cond=0x99d7b40, mutex=0x99d7b28) at pthread_cond_wait.c:153 #2 0xb554fe0d in __pthread_cond_wait (cond=0x99d7b40, mutex=0x99d7b28) at forward.c:139 #3 0xb6261fb7 in QWaitConditionPrivate::wait (this=0x99a4520, mutex=0x99b2760, time=4294967295) at thread/qwaitcondition_unix.cpp:87 #4 QWaitCondition::wait (this=0x99a4520, mutex=0x99b2760, time=4294967295) at thread/qwaitcondition_unix.cpp:159 #5 0xb711a682 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x99a4508, th=0xaf207268) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365 #6 0xb711d3dc in ThreadWeaver::WorkingHardState::waitForAvailableJob (this=0x99b2460, th=0xaf207268) at ../../../threadweaver/Weaver/WorkingHardState.cpp:80 #7 0xb711924b in ThreadWeaver::WeaverImpl::waitForAvailableJob (this=0x99a4508, th=0xaf207268) at ../../../threadweaver/Weaver/WeaverImpl.cpp:356 #8 0xb711d4d2 in ThreadWeaver::WorkingHardState::applyForWork (this=0x99b2460, th=0xaf207268) at ../../../threadweaver/Weaver/WorkingHardState.cpp:71 #9 0xb711abe3 in ThreadWeaver::WeaverImpl::applyForWork (this=0x99a4508, th=0xaf207268, previous=0x0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351 ---Type <return> to continue, or q <return> to quit--- #10 0xb711b57e in ThreadWeaver::ThreadRunHelper::run (this=0xac66f2f4, parent=0x99a4508, th=0xaf207268) at ../../../threadweaver/Weaver/Thread.cpp:87 #11 0xb711bc9b in ThreadWeaver::Thread::run (this=0xaf207268) at ../../../threadweaver/Weaver/Thread.cpp:142 #12 0xb6260fbe in QThreadPrivate::start (arg=0xaf207268) at thread/qthread_unix.cpp:248 #13 0xb4aef955 in start_thread (arg=0xac66fb70) at pthread_create.c:300 #14 0xb5542e7e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130 Thread 2 (Thread 0xaa787b70 (LWP 18916)): #0 0xb7828424 in __kernel_vsyscall () #1 0xb4af3f7f in __pthread_cond_wait (cond=0xb541024c, mutex=0xb5410234) at pthread_cond_wait.c:153 #2 0xb554fe0d in __pthread_cond_wait (cond=0xb541024c, mutex=0xb5410234) at forward.c:139 #3 0xb5332417 in QTWTF::TCMalloc_PageHeap::scavengerThread (this=0xb540b160) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:2304 #4 0xb5332461 in QTWTF::TCMalloc_PageHeap::runScavengerThread (context=0xb540b160) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:1438 #5 0xb4aef955 in start_thread (arg=0xaa787b70) at pthread_create.c:300 #6 0xb5542e7e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130 Thread 1 (Thread 0xb2e3e930 (LWP 18742)): #0 0xb7828424 in __kernel_vsyscall () #1 0xb4af6c03 in __lll_lock_wait_private () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/lowlevellock.S:95 #2 0xb4af3e0f in _L_lock_23 () from /lib/i686/cmov/libpthread.so.0 #3 0xb4af3c89 in __pthread_cond_destroy (cond=0xa9951d18) at pthread_cond_destroy.c:33 #4 0xb554fd36 in __pthread_cond_destroy (cond=0xa9951d18) at forward.c:107 #5 0xb62605a8 in ~QMutexPrivate (this=0xa9951ce8, __in_chrg=<value optimized out>) at thread/qmutex_unix.cpp:74 #6 0xb625bb28 in ~QMutex (this=0xfffffe00, __in_chrg=<value optimized out>) at thread/qmutex.cpp:132 #7 0xb54a62bf in __run_exit_handlers (status=0, listp=0xb55b9304, run_list_atexit=true) at exit.c:78 #8 0xb54a632f in *__GI_exit (status=0) at exit.c:100 #9 0xb548dc7e in __libc_start_main (main=0x804adc4 <main>, argc=3, ubp_av=0xbf95bab4, init=0x8052ec0 <__libc_csu_init>, fini=0x8052eb0 <__libc_csu_fini>, rtld_fini=0xb78370b0 <_dl_fini>, stack_end=0xbf95baac) at libc-start.c:260 #10 0x0804ad31 in _start () (gdb) Have you recently switched to Qt 4.7? We are having a similar problem in Digikam under Qt 4.7: bug #247175 Michael @Michael: No, this bug was triggered months ago the first time and I reproduce it on Qt 4.6.3. probably a dupe of http://bugreports.qt.nokia.com/browse/QTBUG-16115 as the testcase there also shows this behavior sometimes, esp. the message "QMutex: mutex destroy failure: Device or resource busy" is shown in both. |