kdevgit caused crash when trying to commit 1 file

Andreas Pakulat apaku at gmx.de
Tue Nov 25 19:47:54 UTC 2008


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 ?? ()

-- 
You're definitely on their list.  The question to ask next is what list it is.




More information about the KDevelop-devel mailing list