kdevgit caused crash when trying to commit 1 file

Evgeniy Ivanov powerfox at kde.ru
Tue Nov 25 20:01:19 UTC 2008


Hi,
I will try to have a look this weekend. Can you please provide more
information about what you have done? Last 2 times the reason was in Qt
(QFileInfo) and in KDE (deadlock) libs, but of course there were some my
bugs before.

Andreas Pakulat wrote:
> Hi,
> 
> kdevgit just caused a crash when I was trying to commit a file. It returned
> a 0-KJob from ::add() in VcsCommitDialog::checkedUrls line 235.
> 
> I'm going to add a simple protection around the exec() call and show a
> message dialog, but thats not a permanent solution (what if I commit 20
> files, 20 dialogs are pretty bad). That call at that place should never
> return a 0-job.
> 
> Andreas
> 
> Backtrace:
> Application: KDevelop (kdevelop), signal SIGSEGV
> 0xb609613c in nanosleep () from /lib/libc.so.6
> [Current thread is 1 (Thread 0xb56ba6c0 (LWP 32698))]
> 
> Thread 6 (Thread 0xb3685b90 (LWP 32699)):
> #0  0xb626ac08 in pthread_cond_timedwait@@GLIBC_2.3.2 () from
> /lib/libpthread.so.0
> #1  0xb62f6b56 in QWaitConditionPrivate::wait (this=0x9da4080, time=90000)
> at /home/andreas/src/qt-copy/src/corelib/thread/qwaitcondition_unix.cpp:80
> #2  0xb62f666f in QWaitCondition::wait (this=0x9dc5a0c, mutex=0x9dc5a10,
> time=90000) at
> /home/andreas/src/qt-copy/src/corelib/thread/qwaitcondition_unix.cpp:154
> #3  0xb5d8f34f in KDevelop::DUChainPrivate::CleanupThread::run() () from
> /usr/local/lib/libkdevplatformlanguage.so.1
> #4  0xb62f6114 in QThreadPrivate::start (arg=0x9dc5a00) at
> /home/andreas/src/qt-copy/src/corelib/thread/qthread_unix.cpp:185
> #5  0xb6266f3b in start_thread () from /lib/libpthread.so.0
> #6  0xb60cbc9e in clone () from /lib/libc.so.6
> 
> Thread 5 (Thread 0xb2d86b90 (LWP 32700)):
> #0  0xb60c50b7 in select () from /lib/libc.so.6
> #1  0xb63e521f in QProcessManager::run (this=0x9afb6b0) at
> /home/andreas/src/qt-copy/src/corelib/io/qprocess_unix.cpp:301
> #2  0xb62f6114 in QThreadPrivate::start (arg=0x9afb6b0) at
> /home/andreas/src/qt-copy/src/corelib/thread/qthread_unix.cpp:185
> #3  0xb6266f3b in start_thread () from /lib/libpthread.so.0
> #4  0xb60cbc9e in clone () from /lib/libc.so.6
> 
> Thread 4 (Thread 0xacd3eb90 (LWP 318)):
> #0  0xb5890b94 in g_ptr_array_set_size () from /usr/lib/libglib-2.0.so.0
> #1  0xb58bafda in g_main_context_prepare () from /usr/lib/libglib-2.0.so.0
> #2  0xb58bb53a in ?? () from /usr/lib/libglib-2.0.so.0
> #3  0x0b15be78 in ?? ()
> #4  0xacd3e248 in ?? ()
> #5  0x0ae0bd58 in ?? ()
> #6  0x00000001 in ?? ()
> #7  0x00000001 in ?? ()
> #8  0x0000013e in ?? ()
> #9  0xb5933758 in ?? () from /usr/lib/libglib-2.0.so.0
> #10 0xb626b765 in pthread_getspecific () from /lib/libpthread.so.0
> #11 0xb58bba11 in g_main_context_iteration () from
> /usr/lib/libglib-2.0.so.0
> #12 0xb643edba in QEventDispatcherGlib::processEvents (this=0xb15d9c0,
> flags={i = -1395399992}) at
> /home/andreas/src/qt-copy/src/corelib/kernel/qeventdispatcher_glib.cpp:321
> #13 0xb64054dc in QEventLoop::processEvents (this=0xacd3e348, flags={i =
> -1395399936}) at
> /home/andreas/src/qt-copy/src/corelib/kernel/qeventloop.cpp:143
> #14 0xb640571a in QEventLoop::exec (this=0xacd3e348, flags={i =
> -1395399856}) at
> /home/andreas/src/qt-copy/src/corelib/kernel/qeventloop.cpp:194
> #15 0xb62f189a in QThread::exec (this=0xb15ee60) at
> /home/andreas/src/qt-copy/src/corelib/thread/qthread.cpp:458
> #16 0xb5e6aa1d in KDevelop::CodeCompletionWorker::run (this=0xb15ee60) at
> /home/andreas/src/kdevplatform/language/codecompletion/codecompletionworker.cpp:96
> #17 0xb62f6114 in QThreadPrivate::start (arg=0xb15ee60) at
> /home/andreas/src/qt-copy/src/corelib/thread/qthread_unix.cpp:185
> #18 0xb6266f3b in start_thread () from /lib/libpthread.so.0
> #19 0xb60cbc9e in clone () from /lib/libc.so.6
> 
> Thread 3 (Thread 0xac377b90 (LWP 325)):
> #0  0xb626a8f0 in pthread_cond_wait@@GLIBC_2.3.2 () from
> /lib/libpthread.so.0
> #1  0xb62f6b70 in QWaitConditionPrivate::wait (this=0x9c14908,
> time=4294967295) at
> /home/andreas/src/qt-copy/src/corelib/thread/qwaitcondition_unix.cpp:82
> #2  0xb62f666f in QWaitCondition::wait (this=0x9c14838, mutex=0x9c08eb8,
> time=4294967295) at
> /home/andreas/src/qt-copy/src/corelib/thread/qwaitcondition_unix.cpp:154
> #3  0xb7900c0b in
> ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned
> (this=0x9c14820, th=0xa1a60e0) at
> /home/andreas/src/kdelibs/threadweaver/Weaver/WeaverImpl.cpp:365
> #4  0xb790452c in ThreadWeaver::WorkingHardState::waitForAvailableJob
> (this=0x9c0aaf0, th=0xa1a60e0) at
> /home/andreas/src/kdelibs/threadweaver/Weaver/WorkingHardState.cpp:80
> #5  0xb78ff4ab in ThreadWeaver::WeaverImpl::waitForAvailableJob
> (this=0x9c14820, th=0xa1a60e0) at
> /home/andreas/src/kdelibs/threadweaver/Weaver/WeaverImpl.cpp:356
> #6  0xb790466f in ThreadWeaver::WorkingHardState::applyForWork
> (this=0x9c0aaf0, th=0xa1a60e0) at
> /home/andreas/src/kdelibs/threadweaver/Weaver/WorkingHardState.cpp:71
> #7  0xb7901c83 in ThreadWeaver::WeaverImpl::applyForWork (this=0x9c14820,
> th=0xa1a60e0, previous=0xb8aa430) at
> /home/andreas/src/kdelibs/threadweaver/Weaver/WeaverImpl.cpp:351
> #8  0xb79027ad in ThreadWeaver::ThreadRunHelper::run (this=0xac377360,
> parent=0x9c14820, th=0xa1a60e0) at
> /home/andreas/src/kdelibs/threadweaver/Weaver/Thread.cpp:87
> #9  0xb7902925 in ThreadWeaver::Thread::run (this=0xa1a60e0) at
> /home/andreas/src/kdelibs/threadweaver/Weaver/Thread.cpp:142
> #10 0xb62f6114 in QThreadPrivate::start (arg=0xa1a60e0) at
> /home/andreas/src/qt-copy/src/corelib/thread/qthread_unix.cpp:185
> #11 0xb6266f3b in start_thread () from /lib/libpthread.so.0
> #12 0xb60cbc9e in clone () from /lib/libc.so.6
> 
> Thread 2 (Thread 0xb1817b90 (LWP 332)):
> #0  0xb626a8f0 in pthread_cond_wait@@GLIBC_2.3.2 () from
> /lib/libpthread.so.0
> #1  0xb62f6b70 in QWaitConditionPrivate::wait (this=0xbd501a8,
> time=4294967295) at
> /home/andreas/src/qt-copy/src/corelib/thread/qwaitcondition_unix.cpp:82
> #2  0xb62f666f in QWaitCondition::wait (this=0xbb62a20, mutex=0xad340e0,
> time=4294967295) at
> /home/andreas/src/qt-copy/src/corelib/thread/qwaitcondition_unix.cpp:154
> #3  0xb7900c0b in
> ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned
> (this=0xbb62a08, th=0xbd69f40) at
> /home/andreas/src/kdelibs/threadweaver/Weaver/WeaverImpl.cpp:365
> #4  0xb790452c in ThreadWeaver::WorkingHardState::waitForAvailableJob
> (this=0xa0a2580, th=0xbd69f40) at
> /home/andreas/src/kdelibs/threadweaver/Weaver/WorkingHardState.cpp:80
> #5  0xb78ff4ab in ThreadWeaver::WeaverImpl::waitForAvailableJob
> (this=0xbb62a08, th=0xbd69f40) at
> /home/andreas/src/kdelibs/threadweaver/Weaver/WeaverImpl.cpp:356
> #6  0xb790466f in ThreadWeaver::WorkingHardState::applyForWork
> (this=0xa0a2580, th=0xbd69f40) at
> /home/andreas/src/kdelibs/threadweaver/Weaver/WorkingHardState.cpp:71
> #7  0xb7901c83 in ThreadWeaver::WeaverImpl::applyForWork (this=0xbb62a08,
> th=0xbd69f40, previous=0xbd6a220) at
> /home/andreas/src/kdelibs/threadweaver/Weaver/WeaverImpl.cpp:351
> #8  0xb79027ad in ThreadWeaver::ThreadRunHelper::run (this=0xb1817360,
> parent=0xbb62a08, th=0xbd69f40) at
> /home/andreas/src/kdelibs/threadweaver/Weaver/Thread.cpp:87
> #9  0xb7902925 in ThreadWeaver::Thread::run (this=0xbd69f40) at
> /home/andreas/src/kdelibs/threadweaver/Weaver/Thread.cpp:142
> #10 0xb62f6114 in QThreadPrivate::start (arg=0xbd69f40) at
> /home/andreas/src/qt-copy/src/corelib/thread/qthread_unix.cpp:185
> #11 0xb6266f3b in start_thread () from /lib/libpthread.so.0
> #12 0xb60cbc9e in clone () from /lib/libc.so.6
> 
> Thread 1 (Thread 0xb56ba6c0 (LWP 32698)):
> [KCrash Handler]
> #5  KJob::exec (this=0x0) at
> /home/andreas/src/kdelibs/kdecore/jobs/kjob.h:573
> #6  0xb2042688 in KDevelop::VcsCommitDialog::checkedUrls (this=0xbda9e90)
> at /home/andreas/src/kdevplatform/vcs/widgets/vcscommitdialog.cpp:235
> #7  0xb100f4a4 in KDevVcsCommonPlugin::executeCommit (this=0xa1014c8,
> dlg=0xbda9e90) at
> /home/andreas/src/kdevplatform/plugins/vcscommon/kdevvcscommonplugin.cpp:391
> #8  0xb10104c4 in KDevVcsCommonPlugin::qt_metacall (this=0xa1014c8,
> _c=QMetaObject::InvokeMetaMethod, _id=9, _a=0xbfb3d3ac)
>     at
> /home/andreas/src/build/kdevplatform/plugins/vcscommon/kdevvcscommonplugin.moc:92
> #9  0xb64214fc in QMetaObject::activate (sender=0xbda9e90,
> from_signal_index=71, to_signal_index=71, argv=0xbfb3d3ac) at
> /home/andreas/src/qt-copy/src/corelib/kernel/qobject.cpp:3022
> #10 0xb6421aaf in QMetaObject::activate (sender=0xbda9e90, m=0xb205c088,
> local_signal_index=0, argv=0xbfb3d3ac) at
> /home/andreas/src/qt-copy/src/corelib/kernel/qobject.cpp:3092
> #11 0xb203efe3 in KDevelop::VcsCommitDialog::doCommit (this=0xbda9e90,
> _t1=0xbda9e90) at
> /home/andreas/src/build/kdevplatform/vcs/vcscommitdialog.moc:87
> #12 0xb203f095 in KDevelop::VcsCommitDialog::qt_metacall (this=0xbda9e90,
> _c=QMetaObject::InvokeMetaMethod, _id=2, _a=0xbfb3d450) at
> /home/andreas/src/kdevplatform/vcs/widgets/vcscommitdialog.cpp:59
> #13 0xb64214fc in QMetaObject::activate (sender=0xbda9e90,
> from_signal_index=44, to_signal_index=44, argv=0x0) at
> /home/andreas/src/qt-copy/src/corelib/kernel/qobject.cpp:3022
> #14 0xb6421aaf in QMetaObject::activate (sender=0xbda9e90, m=0xb7403364,
> local_signal_index=9, argv=0x0) at
> /home/andreas/src/qt-copy/src/corelib/kernel/qobject.cpp:3092
> #15 0xb71becb7 in KDialog::okClicked (this=0xbda9e90) at
> /home/andreas/src/build/kdelibs/kdeui/kdialog.moc:247
> #16 0xb71c1c98 in KDialog::slotButtonClicked (this=0xbda9e90, button=4) at
> /home/andreas/src/kdelibs/kdeui/dialogs/kdialog.cpp:850
> #17 0xb71c1e04 in KDialog::qt_metacall (this=0xbda9e90,
> _c=QMetaObject::InvokeMetaMethod, _id=33, _a=0xbfb3d67c) at
> /home/andreas/src/build/kdelibs/kdeui/kdialog.moc:181
> #18 0xb203f02a in KDevelop::VcsCommitDialog::qt_metacall (this=0xbda9e90,
> _c=QMetaObject::InvokeMetaMethod, _id=68, _a=0xbfb3d67c) at
> /home/andreas/src/build/kdevplatform/vcs/vcscommitdialog.moc:68
> #19 0xb64214fc in QMetaObject::activate (sender=0xbdb7a20,
> from_signal_index=4, to_signal_index=4, argv=0xbfb3d67c) at
> /home/andreas/src/qt-copy/src/corelib/kernel/qobject.cpp:3022
> #20 0xb6421aaf in QMetaObject::activate (sender=0xbdb7a20, m=0xb6511b90,
> local_signal_index=0, argv=0xbfb3d67c) at
> /home/andreas/src/qt-copy/src/corelib/kernel/qobject.cpp:3092
> #21 0xb64285b8 in QSignalMapper::mapped (this=0xbdb7a20, _t1=4) at
> .moc/debug-shared/moc_qsignalmapper.cpp:93
> #22 0xb642867d in QSignalMapper::map (this=0xbdb7a20, sender=0xbda74b8) at
> /home/andreas/src/qt-copy/src/corelib/kernel/qsignalmapper.cpp:271
> #23 0xb64287b2 in QSignalMapper::map (this=0xbdb7a20) at
> /home/andreas/src/qt-copy/src/corelib/kernel/qsignalmapper.cpp:262
> #24 0xb6428905 in QSignalMapper::qt_metacall (this=0xbdb7a20,
> _c=QMetaObject::InvokeMetaMethod, _id=4, _a=0xbfb3d80c) at
> .moc/debug-shared/moc_qsignalmapper.cpp:80
> #25 0xb64214fc in QMetaObject::activate (sender=0xbda74b8,
> from_signal_index=29, to_signal_index=30, argv=0xbfb3d80c) at
> /home/andreas/src/qt-copy/src/corelib/kernel/qobject.cpp:3022
> #26 0xb6421814 in QMetaObject::activate (sender=0xbda74b8, m=0xb6f9c424,
> from_local_signal_index=2, to_local_signal_index=3, argv=0xbfb3d80c)
>     at /home/andreas/src/qt-copy/src/corelib/kernel/qobject.cpp:3112
> #27 0xb6d88464 in QAbstractButton::clicked (this=0xbda74b8, _t1=false) at
> .moc/debug-shared/moc_qabstractbutton.cpp:185
> #28 0xb6a685c2 in QAbstractButtonPrivate::emitClicked (this=0xaa37380) at
> /home/andreas/src/qt-copy/src/gui/widgets/qabstractbutton.cpp:538
> #29 0xb6a699fd in QAbstractButtonPrivate::click (this=0xaa37380) at
> /home/andreas/src/qt-copy/src/gui/widgets/qabstractbutton.cpp:531
> #30 0xb6a69b91 in QAbstractButton::timerEvent (this=0xbda74b8,
> e=0xbfb3dfbc) at
> /home/andreas/src/qt-copy/src/gui/widgets/qabstractbutton.cpp:1242
> #31 0xb641efac in QObject::event (this=0xbda74b8, e=0xbfb3dfbc) at
> /home/andreas/src/qt-copy/src/corelib/kernel/qobject.cpp:1111
> #32 0xb66d725e in QWidget::event (this=0xbda74b8, event=0xbfb3dfbc) at
> /home/andreas/src/qt-copy/src/gui/kernel/qwidget.cpp:7551
> #33 0xb6a6855b in QAbstractButton::event (this=0xbda74b8, e=0xbfb3dfbc) at
> /home/andreas/src/qt-copy/src/gui/widgets/qabstractbutton.cpp:1072
> #34 0xb6b37673 in QPushButton::event (this=0xbda74b8, e=0xbfb3dfbc) at
> /home/andreas/src/qt-copy/src/gui/widgets/qpushbutton.cpp:652
> #35 0xb666a9ff in QApplicationPrivate::notify_helper (this=0x9af7f90,
> receiver=0xbda74b8, e=0xbfb3dfbc) at
> /home/andreas/src/qt-copy/src/gui/kernel/qapplication.cpp:3803
> #36 0xb666c84b in QApplication::notify (this=0xbfb3e2d4,
> receiver=0xbda74b8, e=0xbfb3dfbc) at
> /home/andreas/src/qt-copy/src/gui/kernel/qapplication.cpp:3768
> #37 0xb725cbbd in KApplication::notify (this=0xbfb3e2d4,
> receiver=0xbda74b8, event=0xbfb3dfbc) at
> /home/andreas/src/kdelibs/kdeui/kernel/kapplication.cpp:307
> #38 0xb6408e6f in QCoreApplication::notifyInternal (this=0xbfb3e2d4,
> receiver=0xbda74b8, event=0xbfb3dfbc) at
> /home/andreas/src/qt-copy/src/corelib/kernel/qcoreapplication.cpp:587
> #39 0xb76a6e1d in QCoreApplication::sendEvent (receiver=0xbda74b8,
> event=0xbfb3dfbc) at
> ../../../../include/QtCore/../../../../qt-copy/src/corelib/kernel/qcoreapplication.h:209
> #40 0xb6442442 in QTimerInfoList::activateTimers (this=0x9afaf14) at
> /home/andreas/src/qt-copy/src/corelib/kernel/qeventdispatcher_unix.cpp:557
> #41 0xb643fc6b in timerSourceDispatch (source=0x9afaee0) at
> /home/andreas/src/qt-copy/src/corelib/kernel/qeventdispatcher_glib.cpp:160
> #42 0xb58b81b8 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
> #43 0xb58bb853 in ?? () from /usr/lib/libglib-2.0.so.0
> #44 0x09afa258 in ?? ()
> #45 0x00000000 in ?? ()
> 


-- 
Cheers, Evgeniy.
Key fingerprint: F316 B5A1 F6D2 054F CD18 B74A 9540 0ABB 1FE5 67A3





More information about the KDevelop-devel mailing list