Bug 229672 - KDevelop: segmentation fault in createMenu
Summary: KDevelop: segmentation fault in createMenu
Status: RESOLVED FIXED
Alias: None
Product: kdevelop
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Unlisted Binaries Linux
: NOR crash
Target Milestone: ---
Assignee: kdevelop-bugs-null
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-03-06 12:26 UTC by Eugene Hermann
Modified: 2010-03-06 14:03 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Eugene Hermann 2010-03-06 12:26:27 UTC
Application that crashed: kdevelop.bin
Version of the application: 3.9.98 (using KDevPlatform 0.9.98)
KDE Version: 4.3.5 (KDE 4.3.5)
Qt Version: 4.5.2
Operating System: Linux 2.6.31-18-generic i686
Distribution: Ubuntu 9.10

What I was doing when the application crashed:
- start kdevelop
- open session
- right click on editor window

Look how the KDevelop::VcsPluginHelper::VcsPluginHelperPrivate::createMenu has falled.

kdevelop revision 1099916

 -- Backtrace:
Application: KDevelop (kdevelop.bin), signal: Segmentation fault
[Current thread is 1 (Thread 0xb7830700 (LWP 11307))]

Thread 10 (Thread 0xb4e95b70 (LWP 11308)):
#0  0x0081c422 in __kernel_vsyscall ()
#1  0x009b4142 in pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_timedwait.S:179
#2  0x057638d4 in __pthread_cond_timedwait (cond=0xa0e9f08, mutex=0xa0e9ef0, abstime=0xb4e952c0) at forward.c:152
#3  0x00c54def in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4
#4  0x06d35675 in KDevelop::DUChainPrivate::CleanupThread::run (this=0xa0eb2b8) at /home/eug/proj/kdevplatform/language/duchain/duchain.cpp:286
#5  0x00c53e32 in ?? () from /usr/lib/libQtCore.so.4
#6  0x009af80e in start_thread (arg=0xb4e95b70) at pthread_create.c:300
#7  0x057568de in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 9 (Thread 0xb44ffb70 (LWP 11310)):
#0  __pthread_mutex_unlock_usercnt (mutex=0xa18c284, decr=1) at pthread_mutex_unlock.c:37
#1  0x05763a86 in pthread_mutex_unlock (mutex=0xa18c284) at forward.c:184
#2  0x04b7a5df in ?? () from /lib/libglib-2.0.so.0
#3  0x04b7a863 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#4  0x00d6f067 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#5  0x00d42c79 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#6  0x00d430ca in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#7  0x00c50b73 in QThread::exec() () from /usr/lib/libQtCore.so.4
#8  0x00d256ab in ?? () from /usr/lib/libQtCore.so.4
#9  0x00c53e32 in ?? () from /usr/lib/libQtCore.so.4
#10 0x009af80e in start_thread (arg=0xb44ffb70) at pthread_create.c:300
#11 0x057568de in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 8 (Thread 0xb3cfeb70 (LWP 11311)):
#0  0x0081c422 in __kernel_vsyscall ()
#1  0x009b4142 in pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_timedwait.S:179
#2  0x057638d4 in __pthread_cond_timedwait (cond=0xa18b650, mutex=0xa18b638, abstime=0xb3cfe2a0) at forward.c:152
#3  0x00c54def in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4
#4  0x00c499ae in ?? () from /usr/lib/libQtCore.so.4
#5  0x00c53e32 in ?? () from /usr/lib/libQtCore.so.4
#6  0x009af80e in start_thread (arg=0xb3cfeb70) at pthread_create.c:300
#7  0x057568de in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130
The current source language is "auto; currently c".

Thread 7 (Thread 0xb0f64b70 (LWP 11345)):
#0  0x00e3be06 in *__GI_clock_gettime (clock_id=14942196, tp=0xb0f63ff8) at ../sysdeps/unix/clock_gettime.c:100
#1  0x00d70bf3 in ?? () from /usr/lib/libQtCore.so.4
#2  0x00d70de1 in ?? () from /usr/lib/libQtCore.so.4
#3  0x00d7188c in ?? () from /usr/lib/libQtCore.so.4
#4  0x00d6f210 in ?? () from /usr/lib/libQtCore.so.4
#5  0x04b79f90 in g_main_context_prepare () from /lib/libglib-2.0.so.0
#6  0x04b7a351 in ?? () from /lib/libglib-2.0.so.0
#7  0x04b7a863 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#8  0x00d6f067 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#9  0x00d42c79 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#10 0x00d430ca in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#11 0x00c50b73 in QThread::exec() () from /usr/lib/libQtCore.so.4
#12 0x06e1d51a in KDevelop::CompletionWorkerThread::run (this=0xa4c9a30) at /home/eug/proj/kdevplatform/language/codecompletion/codecompletionmodel.cpp:82
#13 0x00c53e32 in ?? () from /usr/lib/libQtCore.so.4
#14 0x009af80e in start_thread (arg=0xb0f64b70) at pthread_create.c:300
#15 0x057568de in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 6 (Thread 0xb0763b70 (LWP 11346)):
#0  0x04b79a8a in g_main_context_check () from /lib/libglib-2.0.so.0
#1  0x04b7a47c in ?? () from /lib/libglib-2.0.so.0
#2  0x04b7a863 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#3  0x00d6f067 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#4  0x00d42c79 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#5  0x00d430ca in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#6  0x00c50b73 in QThread::exec() () from /usr/lib/libQtCore.so.4
#7  0x06e1d51a in KDevelop::CompletionWorkerThread::run (this=0xb4502560) at /home/eug/proj/kdevplatform/language/codecompletion/codecompletionmodel.cpp:82
#8  0x00c53e32 in ?? () from /usr/lib/libQtCore.so.4
#9  0x009af80e in start_thread (arg=0xb0763b70) at pthread_create.c:300
#10 0x057568de in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 5 (Thread 0xaff62b70 (LWP 11347)):
#0  0x0081c422 in __kernel_vsyscall ()
#1  0x009b4142 in pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_timedwait.S:179
#2  0x057638d4 in __pthread_cond_timedwait (cond=0xaff62234, mutex=0xaff62264, abstime=0xaff622b0) at forward.c:152
#3  0x00c5381e in ?? () from /usr/lib/libQtCore.so.4
#4  0x00c53973 in QThread::msleep(unsigned long) () from /usr/lib/libQtCore.so.4
#5  0x0346aa36 in UIBlockTester::UIBlockTesterThread::run (this=0xa53d358) at /home/eug/proj/kdevelop/languages/cpp/cpplanguagesupport.cpp:672
#6  0x00c53e32 in ?? () from /usr/lib/libQtCore.so.4
#7  0x009af80e in start_thread (arg=0xaff62b70) at pthread_create.c:300
#8  0x057568de in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 4 (Thread 0xaf35eb70 (LWP 11354)):
#0  0x0081c422 in __kernel_vsyscall ()
#1  0x009b3e15 in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:122
#2  0x0576387d in __pthread_cond_wait (cond=0xa05ff20, mutex=0xa05ff08) at forward.c:139
#3  0x00c54e67 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4
#4  0x00ae4b30 in ?? () from /usr/lib/libthreadweaver.so.4
#5  0x00ae719c in ?? () from /usr/lib/libthreadweaver.so.4
#6  0x00ae31fb in ?? () from /usr/lib/libthreadweaver.so.4
#7  0x00ae7292 in ?? () from /usr/lib/libthreadweaver.so.4
#8  0x00ae4db3 in ?? () from /usr/lib/libthreadweaver.so.4
#9  0x00ae53be in ?? () from /usr/lib/libthreadweaver.so.4
#10 0x00ae59db in ThreadWeaver::Thread::run() () from /usr/lib/libthreadweaver.so.4
#11 0x00c53e32 in ?? () from /usr/lib/libQtCore.so.4
#12 0x009af80e in start_thread (arg=0xaf35eb70) at pthread_create.c:300
#13 0x057568de in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 3 (Thread 0xaeb5db70 (LWP 11355)):
#0  0x0081c422 in __kernel_vsyscall ()
#1  0x009b3e15 in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:122
#2  0x0576387d in __pthread_cond_wait (cond=0xa05ff20, mutex=0xa05ff08) at forward.c:139
#3  0x00c54e67 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4
#4  0x00ae4b30 in ?? () from /usr/lib/libthreadweaver.so.4
#5  0x00ae719c in ?? () from /usr/lib/libthreadweaver.so.4
#6  0x00ae31fb in ?? () from /usr/lib/libthreadweaver.so.4
#7  0x00ae7292 in ?? () from /usr/lib/libthreadweaver.so.4
#8  0x00ae4db3 in ?? () from /usr/lib/libthreadweaver.so.4
#9  0x00ae72b1 in ?? () from /usr/lib/libthreadweaver.so.4
#10 0x00ae4db3 in ?? () from /usr/lib/libthreadweaver.so.4
#11 0x00ae53be in ?? () from /usr/lib/libthreadweaver.so.4
#12 0x00ae59db in ThreadWeaver::Thread::run() () from /usr/lib/libthreadweaver.so.4
#13 0x00c53e32 in ?? () from /usr/lib/libQtCore.so.4
#14 0x009af80e in start_thread (arg=0xaeb5db70) at pthread_create.c:300
#15 0x057568de in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 2 (Thread 0xad6ffb70 (LWP 11369)):
#0  0x0081c422 in __kernel_vsyscall ()
#1  0x009b3e15 in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:122
#2  0x0576387d in __pthread_cond_wait (cond=0xa2bd5a8, mutex=0xa2bd590) at forward.c:139
#3  0x00c54e67 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4
#4  0x00ae4b30 in ?? () from /usr/lib/libthreadweaver.so.4
#5  0x00ae719c in ?? () from /usr/lib/libthreadweaver.so.4
#6  0x00ae31fb in ?? () from /usr/lib/libthreadweaver.so.4
#7  0x00ae7292 in ?? () from /usr/lib/libthreadweaver.so.4
#8  0x00ae4db3 in ?? () from /usr/lib/libthreadweaver.so.4
#9  0x00ae53be in ?? () from /usr/lib/libthreadweaver.so.4
#10 0x00ae59db in ThreadWeaver::Thread::run() () from /usr/lib/libthreadweaver.so.4
#11 0x00c53e32 in ?? () from /usr/lib/libQtCore.so.4
#12 0x009af80e in start_thread (arg=0xad6ffb70) at pthread_create.c:300
#13 0x057568de in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 1 (Thread 0xb7830700 (LWP 11307)):
[KCrash Handler]
#6  0x01875f7d in KDevelop::VcsPluginHelper::VcsPluginHelperPrivate::createMenu (this=0xa6be760) at /home/eug/proj/kdevplatform/vcs/vcspluginhelper.cpp:124
#7  0x09be9171 in KDevSvnPlugin::contextMenuExtension (this=0xa147330, context=0xa37b920) at /home/eug/proj/kdevplatform/plugins/subversion/kdevsvnplugin.cpp:336
#8  0x004061bf in KDevelop::PluginController::queryPluginsForContextMenuExtensions (this=0x9f6a820, context=0xa37b920) at /home/eug/proj/kdevplatform/shell/plugincontroller.cpp:606
#9  0x004291df in KDevelop::TextDocumentPrivate::populateContextMenu (this=0xa4c6e88, v=0xa6a46e0, menu=0xa6f9760) at /home/eug/proj/kdevplatform/shell/textdocument.cpp:108
#10 0x0042660b in KDevelop::TextDocument::qt_metacall (this=0xa4c4160, _c=QMetaObject::InvokeMetaMethod, _id=11, _a=0xbfa9c444) at /home/eug/proj/kdevplatform/build/shell/textdocument.moc:84
#11 0x00d5a263 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQtCore.so.4
#12 0x00d5aec2 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#13 0x00943899 in KTextEditor::View::contextMenuAboutToShow(KTextEditor::View*, QMenu*) () from /usr/lib/libktexteditor.so.4
#14 0x04409008 in ?? () from /usr/lib/kde4/katepart.so
#15 0x04413fe6 in ?? () from /usr/lib/kde4/katepart.so
#16 0x00d5a263 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQtCore.so.4
#17 0x00d5aec2 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#18 0x027b0347 in QMenu::aboutToShow() () from /usr/lib/libQtGui.so.4
#19 0x027b515c in QMenu::popup(QPoint const&, QAction*) () from /usr/lib/libQtGui.so.4
#20 0x04430a11 in ?? () from /usr/lib/kde4/katepart.so
#21 0x023be69f in QWidget::event(QEvent*) () from /usr/lib/libQtGui.so.4
#22 0x02368f54 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#23 0x02370ae3 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#24 0x0144925a in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#25 0x00d446cb in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#26 0x023e466e in QCoreApplication::sendSpontaneousEvent(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#27 0x023dee64 in ?? () from /usr/lib/libQtGui.so.4
#28 0x023ddc4b in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/libQtGui.so.4
#29 0x0240a502 in ?? () from /usr/lib/libQtGui.so.4
#30 0x04b76e88 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#31 0x04b7a730 in ?? () from /lib/libglib-2.0.so.0
#32 0x04b7a863 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#33 0x00d6f02c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#34 0x02409be5 in ?? () from /usr/lib/libQtGui.so.4
#35 0x00d42c79 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#36 0x00d430ca in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#37 0x00d4553f in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
#38 0x02368dd7 in QApplication::exec() () from /usr/lib/libQtGui.so.4
#39 0x0804f338 in main (argc=1, argv=0xbfa9ebe4) at /home/eug/proj/kdevelop/app/main_internal.cpp:222

Reported using DrKonqi
Comment 1 Eugene Hermann 2010-03-06 13:26:16 UTC
Program received signal SIGSEGV, Segmentation fault.
0x006b7f7d in KDevelop::VcsPluginHelper::VcsPluginHelperPrivate::createMenu (this=0x9abff98) at /home/eug/proj/kdevplatform/vcs/vcspluginhelper.cpp:124
124             QMenu* menu=new QMenu(vcs->name());
(gdb) print vcs
$1 = (class KDevelop::IBasicVersionControl *) 0x0

I don't have 'subversion support', but this plugin is switched on by default. And no check for plugin instance, as you can see.
Comment 2 Andreas Pakulat 2010-03-06 14:03:52 UTC
This is fixed in trunk as far as I can see. In particular current trunk code (Beta9 is to be released on monday) only creates a helper if the svn-plugin is created. That in turn is only done when you compile in svn support. And the relevant code is only executed if a file is version controlled.