Application that crashed: kdevelop Version of the application: 4.0.80 KDE Version: 4.5.1 (KDE 4.5.1) Qt Version: 4.6.3 Operating System: Linux 2.6.34-gentoo-r2 x86_64 What I was doing when the application crashed: git kdevplatform 5c2e69ddebded9a8c6b68d9b8e587cc408142b22 (1.1 Branch) git kdevelop f39bca00c73fd6757384acde5ec50d1fcaed9ad2 (4.1 Branch) -- Backtrace: Application: KDevelop (/usr/bin/kdevelop), signal: Segmentation fault __lll_lock_wait_private () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:97 in ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S [Current thread is 1 (Thread 0x7f58f6dce760 (LWP 5270))] Thread 29 (Thread 0x7f58e5465710 (LWP 5276)): #0 0x00007f58f423ec8d in read () at ../sysdeps/unix/syscall-template.S:82 #1 0x00007f58f55f3b7a in read (this=0x7f58f592ef20) at /usr/include/bits/unistd.h:45 #2 qt_safe_read (this=0x7f58f592ef20) at ../../include/QtCore/private/../../../src/corelib/kernel/qcore_unix_p.h:253 #3 QProcessManager::run (this=0x7f58f592ef20) at io/qprocess_unix.cpp:256 #4 0x00007f58f55290b5 in QThreadPrivate::start (arg=0x7f58f592ef20) at thread/qthread_unix.cpp:248 #5 0x00007f58f3f63dba in start_thread (arg=<value optimized out>) at pthread_create.c:301 #6 0x00007f58f424b90d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 28 (Thread 0x7f58df99f710 (LWP 5290)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:212 #1 0x00007f58f552a03d in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x12801c0, time=200000) at thread/qwaitcondition_unix.cpp:85 #2 QWaitCondition::wait (this=<value optimized out>, mutex=0x12801c0, time=200000) at thread/qwaitcondition_unix.cpp:159 #3 0x00007f58f1efff1e in KDevelop::DUChainPrivate::CleanupThread::run() () from /usr/lib/libkdevplatformlanguage.so.2 #4 0x00007f58f55290b5 in QThreadPrivate::start (arg=0x12801a0) at thread/qthread_unix.cpp:248 #5 0x00007f58f3f63dba in start_thread (arg=<value optimized out>) at pthread_create.c:301 #6 0x00007f58f424b90d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 27 (Thread 0x7f58de48d710 (LWP 5292)): #0 0x00007f58f4242b93 in *__GI___poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87 #1 0x00007f58ef5dfe9d in g_main_context_poll (context=0x7f58e0001650, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at gmain.c:2904 #2 g_main_context_iterate (context=0x7f58e0001650, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at gmain.c:2586 #3 0x00007f58ef5e02e2 in IA__g_main_context_iteration (context=0x7f58e0001650, may_block=1) at gmain.c:2654 #4 0x00007f58f564032e in QEventDispatcherGlib::processEvents (this=0x7f58e0000a40, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:414 #5 0x00007f58f56156b2 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149 #6 0x00007f58f5615a7d in QEventLoop::exec (this=0x7f58de48cde0, flags=) at kernel/qeventloop.cpp:201 #7 0x00007f58f55269db in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:487 #8 0x00007f58f55f6160 in QInotifyFileSystemWatcherEngine::run (this=0x1b2c570) at io/qfilesystemwatcher_inotify.cpp:248 #9 0x00007f58f55290b5 in QThreadPrivate::start (arg=0x1b2c570) at thread/qthread_unix.cpp:248 #10 0x00007f58f3f63dba in start_thread (arg=<value optimized out>) at pthread_create.c:301 #11 0x00007f58f424b90d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 26 (Thread 0x7f58dda66710 (LWP 5294)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:212 #1 0x00007f58f552a03d in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x1b1cb20, time=30000) at thread/qwaitcondition_unix.cpp:85 #2 QWaitCondition::wait (this=<value optimized out>, mutex=0x1b1cb20, time=30000) at thread/qwaitcondition_unix.cpp:159 #3 0x00007f58f551f0a8 in QThreadPoolThread::run (this=0x1b1ba70) at concurrent/qthreadpool.cpp:140 #4 0x00007f58f55290b5 in QThreadPrivate::start (arg=0x1b1ba70) at thread/qthread_unix.cpp:248 #5 0x00007f58f3f63dba in start_thread (arg=<value optimized out>) at pthread_create.c:301 #6 0x00007f58f424b90d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 25 (Thread 0x7f58dd265710 (LWP 5295)): #0 0x00007f58f4242b93 in *__GI___poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87 #1 0x00007f58ef5dfe9d in g_main_context_poll (context=0x7f58e0243090, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at gmain.c:2904 #2 g_main_context_iterate (context=0x7f58e0243090, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at gmain.c:2586 #3 0x00007f58ef5e02e2 in IA__g_main_context_iteration (context=0x7f58e0243090, may_block=1) at gmain.c:2654 #4 0x00007f58f564032e in QEventDispatcherGlib::processEvents (this=0x7f58e001d790, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:414 #5 0x00007f58f56156b2 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149 #6 0x00007f58f5615a7d in QEventLoop::exec (this=0x7f58dd264de0, flags=) at kernel/qeventloop.cpp:201 #7 0x00007f58f55269db in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:487 #8 0x00007f58f55f6160 in QInotifyFileSystemWatcherEngine::run (this=0xeb27b0) at io/qfilesystemwatcher_inotify.cpp:248 #9 0x00007f58f55290b5 in QThreadPrivate::start (arg=0xeb27b0) at thread/qthread_unix.cpp:248 #10 0x00007f58f3f63dba in start_thread (arg=<value optimized out>) at pthread_create.c:301 #11 0x00007f58f424b90d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 24 (Thread 0x7f58dca64710 (LWP 5296)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:212 #1 0x00007f58f552a03d in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x1b1cb20, time=30000) at thread/qwaitcondition_unix.cpp:85 #2 QWaitCondition::wait (this=<value optimized out>, mutex=0x1b1cb20, time=30000) at thread/qwaitcondition_unix.cpp:159 #3 0x00007f58f551f0a8 in QThreadPoolThread::run (this=0xea2a80) at concurrent/qthreadpool.cpp:140 #4 0x00007f58f55290b5 in QThreadPrivate::start (arg=0xea2a80) at thread/qthread_unix.cpp:248 #5 0x00007f58f3f63dba in start_thread (arg=<value optimized out>) at pthread_create.c:301 #6 0x00007f58f424b90d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 23 (Thread 0x7f58dc263710 (LWP 5297)): #0 0x00007f58f4242b93 in *__GI___poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87 #1 0x00007f58ef5dfe9d in g_main_context_poll (context=0x1b1d440, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at gmain.c:2904 #2 g_main_context_iterate (context=0x1b1d440, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at gmain.c:2586 #3 0x00007f58ef5e02e2 in IA__g_main_context_iteration (context=0x1b1d440, may_block=1) at gmain.c:2654 #4 0x00007f58f564032e in QEventDispatcherGlib::processEvents (this=0xea0390, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:414 #5 0x00007f58f56156b2 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149 #6 0x00007f58f5615a7d in QEventLoop::exec (this=0x7f58dc262de0, flags=) at kernel/qeventloop.cpp:201 #7 0x00007f58f55269db in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:487 #8 0x00007f58f55f6160 in QInotifyFileSystemWatcherEngine::run (this=0xeb7490) at io/qfilesystemwatcher_inotify.cpp:248 #9 0x00007f58f55290b5 in QThreadPrivate::start (arg=0xeb7490) at thread/qthread_unix.cpp:248 #10 0x00007f58f3f63dba in start_thread (arg=<value optimized out>) at pthread_create.c:301 #11 0x00007f58f424b90d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 22 (Thread 0x7f58dba62710 (LWP 5298)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:212 #1 0x00007f58f552a03d in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x1b1cb20, time=30000) at thread/qwaitcondition_unix.cpp:85 #2 QWaitCondition::wait (this=<value optimized out>, mutex=0x1b1cb20, time=30000) at thread/qwaitcondition_unix.cpp:159 #3 0x00007f58f551f0a8 in QThreadPoolThread::run (this=0xebb050) at concurrent/qthreadpool.cpp:140 #4 0x00007f58f55290b5 in QThreadPrivate::start (arg=0xebb050) at thread/qthread_unix.cpp:248 #5 0x00007f58f3f63dba in start_thread (arg=<value optimized out>) at pthread_create.c:301 #6 0x00007f58f424b90d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 21 (Thread 0x7f58da9c6710 (LWP 5299)): #0 0x00007f58f4242b93 in *__GI___poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87 #1 0x00007f58ef5dfe9d in g_main_context_poll (context=0x7f58e024f5d0, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at gmain.c:2904 #2 g_main_context_iterate (context=0x7f58e024f5d0, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at gmain.c:2586 #3 0x00007f58ef5e02e2 in IA__g_main_context_iteration (context=0x7f58e024f5d0, may_block=1) at gmain.c:2654 #4 0x00007f58f564032e in QEventDispatcherGlib::processEvents (this=0x7f58e002d890, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:414 #5 0x00007f58f56156b2 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149 #6 0x00007f58f5615a7d in QEventLoop::exec (this=0x7f58da9c5de0, flags=) at kernel/qeventloop.cpp:201 #7 0x00007f58f55269db in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:487 #8 0x00007f58f55f6160 in QInotifyFileSystemWatcherEngine::run (this=0x1b3d0a0) at io/qfilesystemwatcher_inotify.cpp:248 #9 0x00007f58f55290b5 in QThreadPrivate::start (arg=0x1b3d0a0) at thread/qthread_unix.cpp:248 #10 0x00007f58f3f63dba in start_thread (arg=<value optimized out>) at pthread_create.c:301 #11 0x00007f58f424b90d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 20 (Thread 0x7f58da1c5710 (LWP 5300)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:212 #1 0x00007f58f552a03d in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x1b1cb20, time=30000) at thread/qwaitcondition_unix.cpp:85 #2 QWaitCondition::wait (this=<value optimized out>, mutex=0x1b1cb20, time=30000) at thread/qwaitcondition_unix.cpp:159 #3 0x00007f58f551f0a8 in QThreadPoolThread::run (this=0xebfc30) at concurrent/qthreadpool.cpp:140 #4 0x00007f58f55290b5 in QThreadPrivate::start (arg=0xebfc30) at thread/qthread_unix.cpp:248 #5 0x00007f58f3f63dba in start_thread (arg=<value optimized out>) at pthread_create.c:301 #6 0x00007f58f424b90d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 19 (Thread 0x7f58d99c4710 (LWP 5301)): #0 0x00007f58f4242b93 in *__GI___poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87 #1 0x00007f58ef5dfe9d in g_main_context_poll (context=0x1b5c990, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at gmain.c:2904 #2 g_main_context_iterate (context=0x1b5c990, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at gmain.c:2586 #3 0x00007f58ef5e02e2 in IA__g_main_context_iteration (context=0x1b5c990, may_block=1) at gmain.c:2654 #4 0x00007f58f564032e in QEventDispatcherGlib::processEvents (this=0x123f590, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:414 #5 0x00007f58f56156b2 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149 #6 0x00007f58f5615a7d in QEventLoop::exec (this=0x7f58d99c3de0, flags=) at kernel/qeventloop.cpp:201 #7 0x00007f58f55269db in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:487 #8 0x00007f58f55f6160 in QInotifyFileSystemWatcherEngine::run (this=0x7f58e0068ea0) at io/qfilesystemwatcher_inotify.cpp:248 #9 0x00007f58f55290b5 in QThreadPrivate::start (arg=0x7f58e0068ea0) at thread/qthread_unix.cpp:248 #10 0x00007f58f3f63dba in start_thread (arg=<value optimized out>) at pthread_create.c:301 #11 0x00007f58f424b90d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 18 (Thread 0x7f58d91c3710 (LWP 5302)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:212 #1 0x00007f58f552a03d in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x1b1cb20, time=30000) at thread/qwaitcondition_unix.cpp:85 #2 QWaitCondition::wait (this=<value optimized out>, mutex=0x1b1cb20, time=30000) at thread/qwaitcondition_unix.cpp:159 #3 0x00007f58f551f0a8 in QThreadPoolThread::run (this=0x7f58cc000dd0) at concurrent/qthreadpool.cpp:140 #4 0x00007f58f55290b5 in QThreadPrivate::start (arg=0x7f58cc000dd0) at thread/qthread_unix.cpp:248 #5 0x00007f58f3f63dba in start_thread (arg=<value optimized out>) at pthread_create.c:301 #6 0x00007f58f424b90d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 17 (Thread 0x7f58d89c2710 (LWP 5303)): #0 0x00007f58f4242b93 in *__GI___poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87 #1 0x00007f58ef5dfe9d in g_main_context_poll (context=0x1b55bc0, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at gmain.c:2904 #2 g_main_context_iterate (context=0x1b55bc0, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at gmain.c:2586 #3 0x00007f58ef5e02e2 in IA__g_main_context_iteration (context=0x1b55bc0, may_block=1) at gmain.c:2654 #4 0x00007f58f564032e in QEventDispatcherGlib::processEvents (this=0x1b39480, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:414 #5 0x00007f58f56156b2 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149 #6 0x00007f58f5615a7d in QEventLoop::exec (this=0x7f58d89c1de0, flags=) at kernel/qeventloop.cpp:201 #7 0x00007f58f55269db in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:487 #8 0x00007f58f55f6160 in QInotifyFileSystemWatcherEngine::run (this=0x7f58d403d5c0) at io/qfilesystemwatcher_inotify.cpp:248 #9 0x00007f58f55290b5 in QThreadPrivate::start (arg=0x7f58d403d5c0) at thread/qthread_unix.cpp:248 #10 0x00007f58f3f63dba in start_thread (arg=<value optimized out>) at pthread_create.c:301 #11 0x00007f58f424b90d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 16 (Thread 0x7f58cbfff710 (LWP 5304)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:212 #1 0x00007f58f552a03d in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x1b1cb20, time=30000) at thread/qwaitcondition_unix.cpp:85 #2 QWaitCondition::wait (this=<value optimized out>, mutex=0x1b1cb20, time=30000) at thread/qwaitcondition_unix.cpp:159 #3 0x00007f58f551f0a8 in QThreadPoolThread::run (this=0x1b040d0) at concurrent/qthreadpool.cpp:140 #4 0x00007f58f55290b5 in QThreadPrivate::start (arg=0x1b040d0) at thread/qthread_unix.cpp:248 #5 0x00007f58f3f63dba in start_thread (arg=<value optimized out>) at pthread_create.c:301 #6 0x00007f58f424b90d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 15 (Thread 0x7f58cb7fe710 (LWP 5305)): #0 0x00007f58f4242b93 in *__GI___poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87 #1 0x00007f58ef5dfe9d in g_main_context_poll (context=0x1b41e50, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at gmain.c:2904 #2 g_main_context_iterate (context=0x1b41e50, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at gmain.c:2586 #3 0x00007f58ef5e02e2 in IA__g_main_context_iteration (context=0x1b41e50, may_block=1) at gmain.c:2654 #4 0x00007f58f564032e in QEventDispatcherGlib::processEvents (this=0x1b3bf60, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:414 #5 0x00007f58f56156b2 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149 #6 0x00007f58f5615a7d in QEventLoop::exec (this=0x7f58cb7fdde0, flags=) at kernel/qeventloop.cpp:201 #7 0x00007f58f55269db in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:487 #8 0x00007f58f55f6160 in QInotifyFileSystemWatcherEngine::run (this=0x7f58d4039e60) at io/qfilesystemwatcher_inotify.cpp:248 #9 0x00007f58f55290b5 in QThreadPrivate::start (arg=0x7f58d4039e60) at thread/qthread_unix.cpp:248 #10 0x00007f58f3f63dba in start_thread (arg=<value optimized out>) at pthread_create.c:301 #11 0x00007f58f424b90d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 14 (Thread 0x7f58caffd710 (LWP 5306)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:212 #1 0x00007f58f552a03d in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x1b1cb20, time=30000) at thread/qwaitcondition_unix.cpp:85 #2 QWaitCondition::wait (this=<value optimized out>, mutex=0x1b1cb20, time=30000) at thread/qwaitcondition_unix.cpp:159 #3 0x00007f58f551f0a8 in QThreadPoolThread::run (this=0x7f58d0009cb0) at concurrent/qthreadpool.cpp:140 #4 0x00007f58f55290b5 in QThreadPrivate::start (arg=0x7f58d0009cb0) at thread/qthread_unix.cpp:248 #5 0x00007f58f3f63dba in start_thread (arg=<value optimized out>) at pthread_create.c:301 #6 0x00007f58f424b90d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 13 (Thread 0x7f58ca7fc710 (LWP 5307)): #0 0x00007f58f4242b93 in *__GI___poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87 #1 0x00007f58ef5dfe9d in g_main_context_poll (context=0x1b49070, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at gmain.c:2904 #2 g_main_context_iterate (context=0x1b49070, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at gmain.c:2586 #3 0x00007f58ef5e02e2 in IA__g_main_context_iteration (context=0x1b49070, may_block=1) at gmain.c:2654 #4 0x00007f58f564032e in QEventDispatcherGlib::processEvents (this=0x1b48990, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:414 #5 0x00007f58f56156b2 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149 #6 0x00007f58f5615a7d in QEventLoop::exec (this=0x7f58ca7fbde0, flags=) at kernel/qeventloop.cpp:201 #7 0x00007f58f55269db in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:487 #8 0x00007f58f55f6160 in QInotifyFileSystemWatcherEngine::run (this=0x7f58d404bbf0) at io/qfilesystemwatcher_inotify.cpp:248 #9 0x00007f58f55290b5 in QThreadPrivate::start (arg=0x7f58d404bbf0) at thread/qthread_unix.cpp:248 #10 0x00007f58f3f63dba in start_thread (arg=<value optimized out>) at pthread_create.c:301 #11 0x00007f58f424b90d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 12 (Thread 0x7f58c9ffb710 (LWP 5308)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:212 #1 0x00007f58f552a03d in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x1b1cb20, time=30000) at thread/qwaitcondition_unix.cpp:85 #2 QWaitCondition::wait (this=<value optimized out>, mutex=0x1b1cb20, time=30000) at thread/qwaitcondition_unix.cpp:159 #3 0x00007f58f551f0a8 in QThreadPoolThread::run (this=0x7f58d0006150) at concurrent/qthreadpool.cpp:140 #4 0x00007f58f55290b5 in QThreadPrivate::start (arg=0x7f58d0006150) at thread/qthread_unix.cpp:248 #5 0x00007f58f3f63dba in start_thread (arg=<value optimized out>) at pthread_create.c:301 #6 0x00007f58f424b90d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 11 (Thread 0x7f58c97fa710 (LWP 5309)): #0 0x00007f58f4242b93 in *__GI___poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87 #1 0x00007f58ef5dfe9d in g_main_context_poll (context=0x1b51330, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at gmain.c:2904 #2 g_main_context_iterate (context=0x1b51330, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at gmain.c:2586 #3 0x00007f58ef5e02e2 in IA__g_main_context_iteration (context=0x1b51330, may_block=1) at gmain.c:2654 #4 0x00007f58f564032e in QEventDispatcherGlib::processEvents (this=0x12557a0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:414 #5 0x00007f58f56156b2 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149 #6 0x00007f58f5615a7d in QEventLoop::exec (this=0x7f58c97f9de0, flags=) at kernel/qeventloop.cpp:201 #7 0x00007f58f55269db in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:487 #8 0x00007f58f55f6160 in QInotifyFileSystemWatcherEngine::run (this=0x7f58d4058950) at io/qfilesystemwatcher_inotify.cpp:248 #9 0x00007f58f55290b5 in QThreadPrivate::start (arg=0x7f58d4058950) at thread/qthread_unix.cpp:248 #10 0x00007f58f3f63dba in start_thread (arg=<value optimized out>) at pthread_create.c:301 #11 0x00007f58f424b90d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 10 (Thread 0x7f58c8ff9710 (LWP 5310)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:212 #1 0x00007f58f552a03d in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x1b1cb20, time=30000) at thread/qwaitcondition_unix.cpp:85 #2 QWaitCondition::wait (this=<value optimized out>, mutex=0x1b1cb20, time=30000) at thread/qwaitcondition_unix.cpp:159 #3 0x00007f58f551f0a8 in QThreadPoolThread::run (this=0x7f58d004adb0) at concurrent/qthreadpool.cpp:140 #4 0x00007f58f55290b5 in QThreadPrivate::start (arg=0x7f58d004adb0) at thread/qthread_unix.cpp:248 #5 0x00007f58f3f63dba in start_thread (arg=<value optimized out>) at pthread_create.c:301 #6 0x00007f58f424b90d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 9 (Thread 0x7f58b6772710 (LWP 5647)): #0 0x00007f58f4242b93 in *__GI___poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87 #1 0x00007f58ef5dfe9d in g_main_context_poll (context=0x7f58b8329590, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at gmain.c:2904 #2 g_main_context_iterate (context=0x7f58b8329590, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at gmain.c:2586 #3 0x00007f58ef5e02e2 in IA__g_main_context_iteration (context=0x7f58b8329590, may_block=1) at gmain.c:2654 #4 0x00007f58f564032e in QEventDispatcherGlib::processEvents (this=0x7f58b8035ed0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:414 #5 0x00007f58f56156b2 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149 #6 0x00007f58f5615a7d in QEventLoop::exec (this=0x7f58b6771e20, flags=) at kernel/qeventloop.cpp:201 #7 0x00007f58f55269db in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:487 #8 0x00007f58f55290b5 in QThreadPrivate::start (arg=0x3f5c1f0) at thread/qthread_unix.cpp:248 #9 0x00007f58f3f63dba in start_thread (arg=<value optimized out>) at pthread_create.c:301 #10 0x00007f58f424b90d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 8 (Thread 0x7f58b6f73710 (LWP 5648)): #0 0x00007f58f4242b93 in *__GI___poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87 #1 0x00007f58ef5dfe9d in g_main_context_poll (context=0x462df10, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at gmain.c:2904 #2 g_main_context_iterate (context=0x462df10, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at gmain.c:2586 #3 0x00007f58ef5e02e2 in IA__g_main_context_iteration (context=0x462df10, may_block=1) at gmain.c:2654 #4 0x00007f58f564032e in QEventDispatcherGlib::processEvents (this=0x348aab0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:414 #5 0x00007f58f56156b2 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149 #6 0x00007f58f5615a7d in QEventLoop::exec (this=0x7f58b6f72e20, flags=) at kernel/qeventloop.cpp:201 #7 0x00007f58f55269db in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:487 #8 0x00007f58f55290b5 in QThreadPrivate::start (arg=0x3ea6b40) at thread/qthread_unix.cpp:248 #9 0x00007f58f3f63dba in start_thread (arg=<value optimized out>) at pthread_create.c:301 #10 0x00007f58f424b90d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 7 (Thread 0x7f58b32ab710 (LWP 5649)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:212 #1 0x00007f58f5528a3a in thread_sleep (ti=0x7f58b32aade0) at thread/qthread_unix.cpp:398 #2 0x00007f58f5528b90 in QThread::msleep (msecs=<value optimized out>) at thread/qthread_unix.cpp:424 #3 0x00007f58b4be3261 in UIBlockTester::UIBlockTesterThread::run (this=0x27bbfc0) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/cpplanguagesupport.cpp:678 #4 0x00007f58f55290b5 in QThreadPrivate::start (arg=0x27bbfc0) at thread/qthread_unix.cpp:248 #5 0x00007f58f3f63dba in start_thread (arg=<value optimized out>) at pthread_create.c:301 #6 0x00007f58f424b90d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 6 (Thread 0x7f58b2553710 (LWP 5650)): #0 pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162 #1 0x00007f58f55287b3 in QMutexPrivate::wait (this=0x1218ca0, timeout=-1) at thread/qmutex_unix.cpp:84 #2 0x00007f58f5524125 in QMutex::lock (this=0x1214850) at thread/qmutex.cpp:167 #3 0x00007f58f1eb606d in QMutexLocker::relock (this=0x7f58b2550470) at /usr/include/qt4/QtCore/qmutex.h:120 #4 0x00007f58f1fa3e83 in KDevelop::ItemRepositoryRegistry::registerRepository (this=0x1214830, repository=0x7f58f2290790, manager=0x7) at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/duchain/repositories/itemrepository.cpp:143 #5 0x00007f58f1ff1d92 in KDevelop::ItemRepository<Utils::SetNodeData, Utils::SetNodeDataRequest, false, false, 20u, 1048576u>::ItemRepository(QString, KDevelop::ItemRepositoryRegistry*, unsigned int, KDevelop::AbstractRepositoryManager*) () from /usr/lib/libkdevplatformlanguage.so.2 #6 0x00007f58f1ff1df4 in Utils::SetDataRepository::SetDataRepository(Utils::BasicSetRepository*, QString, KDevelop::ItemRepositoryRegistry*) () from /usr/lib/libkdevplatformlanguage.so.2 #7 0x00007f58f1feacb9 in BasicSetRepository (this=0x7f58f2290780, name=<value optimized out>, registry=0x1214830, delayedDeletion=false) at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/util/setrepository.cpp:908 #8 0x00007f58f1f1a55a in KDevelop::RecursiveImportRepository::repository () at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/duchain/topducontext.cpp:63 #9 0x00007f58f1f23737 in Utils::StorableSet<KDevelop::IndexedTopDUContext, KDevelop::IndexedTopDUContextIndexConversion, KDevelop::RecursiveImportRepository, true, Utils::DummyLocker>::insertIndex(unsigned int) () from /usr/lib/libkdevplatformlanguage.so.2 #10 0x00007f58f1f248f5 in KDevelop::TopDUContextLocalPrivate::TopDUContextLocalPrivate(KDevelop::TopDUContext*, KDevelop::TopDUContext*, unsigned int) () from /usr/lib/libkdevplatformlanguage.so.2 #11 0x00007f58f1f1b05c in TopDUContext (this=0x7f58b82ea680, data=...) at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/duchain/topducontext.cpp:745 #12 0x00007f58b47178c9 in Cpp::CppDUContext<KDevelop::TopDUContext>::CppDUContext<KDevelop::TopDUContextData>(KDevelop::TopDUContextData&) () from /usr/lib/libkdev4cppduchain.so #13 0x00007f58b4717925 in KDevelop::DUChainItemFactory<Cpp::CppDUContext<KDevelop::TopDUContext>, KDevelop::TopDUContextData>::create(KDevelop::DUChainBaseData*) const () from /usr/lib/libkdev4cppduchain.so #14 0x00007f58f1f2567f in KDevelop::TopDUContextDynamicData::load (topContextIndex=<value optimized out>) at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/duchain/topducontextdynamicdata.cpp:333 #15 0x00007f58f1efeaac in KDevelop::DUChainPrivate::loadChain(unsigned int, QSet<unsigned int>&) () from /usr/lib/libkdevplatformlanguage.so.2 #16 0x00007f58f1ee4252 in KDevelop::DUChain::loadChain (this=<value optimized out>, index=1449) at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/duchain/duchain.cpp:1279 #17 0x00007f58f1efed72 in KDevelop::DUChain::chainForIndex (this=0x126b170, index=1449) at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/duchain/duchain.h:181 #18 0x00007f58f1f51912 in KDevelop::ParsingEnvironmentFile::topContext (this=0x7f58b822ff30) at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/duchain/parsingenvironment.cpp:140 #19 0x00007f58f1ee5b2c in KDevelop::DUChain::chainForDocument (this=0x126b170, document=..., proxyContext=false) at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/duchain/duchain.cpp:1325 #20 0x00007f58f1ee5c7c in KDevelop::DUChain::chainForDocument (this=0x126b170, document=<value optimized out>, proxyContext=7) at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/duchain/duchain.cpp:1259 #21 0x00007f58b4bec7c1 in IncludePathComputer::computeBackground (this=0x7f58d037e1d0) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/includepathcomputer.cpp:251 #22 0x00007f58b4bf4e76 in CPPParseJob::includePaths (this=0x527e240) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/cppparsejob.cpp:256 #23 0x00007f58b4bf4f24 in CPPParseJob::mergeDefines (this=0x527e240, env=...) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/cppparsejob.cpp:210 #24 0x00007f58b4bfd42f in PreprocessJob::run (this=0x1b043e0) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/preprocessjob.cpp:158 #25 0x00007f58ecda40c7 in ThreadWeaver::JobRunHelper::runTheJob (this=0x7f58b2552d80, th=0x2f2c5c0, job=0x1b043e0) at /var/tmp/portage/kde-base/kdelibs-4.5.1/work/kdelibs-4.5.1/threadweaver/Weaver/Job.cpp:106 #26 0x00007f58ecda4390 in ThreadWeaver::Job::execute (this=0x1b043e0, th=0x2f2c5c0) at /var/tmp/portage/kde-base/kdelibs-4.5.1/work/kdelibs-4.5.1/threadweaver/Weaver/Job.cpp:135 #27 0x00007f58ecda5a5b in ThreadWeaver::JobCollectionJobRunner::execute (this=0x52805b0, t=0x2f2c5c0) at /var/tmp/portage/kde-base/kdelibs-4.5.1/work/kdelibs-4.5.1/threadweaver/Weaver/JobCollection.cpp:82 #28 0x00007f58ecda3397 in ThreadWeaver::ThreadRunHelper::run (this=0x7f58b2552e30, parent=0x11d9ca0, th=0x2f2c5c0) at /var/tmp/portage/kde-base/kdelibs-4.5.1/work/kdelibs-4.5.1/threadweaver/Weaver/Thread.cpp:95 #29 0x00007f58ecda3918 in ThreadWeaver::Thread::run (this=0x2f2c5c0) at /var/tmp/portage/kde-base/kdelibs-4.5.1/work/kdelibs-4.5.1/threadweaver/Weaver/Thread.cpp:142 #30 0x00007f58f55290b5 in QThreadPrivate::start (arg=0x2f2c5c0) at thread/qthread_unix.cpp:248 #31 0x00007f58f3f63dba in start_thread (arg=<value optimized out>) at pthread_create.c:301 #32 0x00007f58f424b90d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 5 (Thread 0x7f58b1d52710 (LWP 5651)): [KCrash Handler] #6 QIODevice::d_func (this=0x0, data=0x7f58b1d4f2d8 "", maxSize=4) at ../../include/QtCore/../../src/corelib/io/qiodevice.h:168 #7 QIODevice::read (this=0x0, data=0x7f58b1d4f2d8 "", maxSize=4) at io/qiodevice.cpp:757 #8 0x00007f58f1ff1715 in KDevelop::ItemRepository<Utils::SetNodeData, Utils::SetNodeDataRequest, false, false, 20u, 1048576u>::open(QString const&) () from /usr/lib/libkdevplatformlanguage.so.2 #9 0x00007f58f1fa3eae in KDevelop::ItemRepositoryRegistry::registerRepository (this=0x1214830, repository=0x7f58f2290790, manager=0x0) at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/duchain/repositories/itemrepository.cpp:146 #10 0x00007f58f1ff1d92 in KDevelop::ItemRepository<Utils::SetNodeData, Utils::SetNodeDataRequest, false, false, 20u, 1048576u>::ItemRepository(QString, KDevelop::ItemRepositoryRegistry*, unsigned int, KDevelop::AbstractRepositoryManager*) () from /usr/lib/libkdevplatformlanguage.so.2 #11 0x00007f58f1ff1df4 in Utils::SetDataRepository::SetDataRepository(Utils::BasicSetRepository*, QString, KDevelop::ItemRepositoryRegistry*) () from /usr/lib/libkdevplatformlanguage.so.2 #12 0x00007f58f1feacb9 in BasicSetRepository (this=0x7f58f2290780, name=<value optimized out>, registry=0x1214830, delayedDeletion=false) at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/util/setrepository.cpp:908 #13 0x00007f58f1f1a55a in KDevelop::RecursiveImportRepository::repository () at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/duchain/topducontext.cpp:63 #14 0x00007f58f1f23737 in Utils::StorableSet<KDevelop::IndexedTopDUContext, KDevelop::IndexedTopDUContextIndexConversion, KDevelop::RecursiveImportRepository, true, Utils::DummyLocker>::insertIndex(unsigned int) () from /usr/lib/libkdevplatformlanguage.so.2 #15 0x00007f58f1f248f5 in KDevelop::TopDUContextLocalPrivate::TopDUContextLocalPrivate(KDevelop::TopDUContext*, KDevelop::TopDUContext*, unsigned int) () from /usr/lib/libkdevplatformlanguage.so.2 #16 0x00007f58f1f1b05c in TopDUContext (this=0x7f58c45417d0, data=...) at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/duchain/topducontext.cpp:745 #17 0x00007f58b47178c9 in Cpp::CppDUContext<KDevelop::TopDUContext>::CppDUContext<KDevelop::TopDUContextData>(KDevelop::TopDUContextData&) () from /usr/lib/libkdev4cppduchain.so #18 0x00007f58b4717925 in KDevelop::DUChainItemFactory<Cpp::CppDUContext<KDevelop::TopDUContext>, KDevelop::TopDUContextData>::create(KDevelop::DUChainBaseData*) const () from /usr/lib/libkdev4cppduchain.so #19 0x00007f58f1f2567f in KDevelop::TopDUContextDynamicData::load (topContextIndex=<value optimized out>) at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/duchain/topducontextdynamicdata.cpp:333 #20 0x00007f58f1efeaac in KDevelop::DUChainPrivate::loadChain(unsigned int, QSet<unsigned int>&) () from /usr/lib/libkdevplatformlanguage.so.2 #21 0x00007f58f1ee4252 in KDevelop::DUChain::loadChain (this=<value optimized out>, index=1719) at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/duchain/duchain.cpp:1279 #22 0x00007f58f1efed72 in KDevelop::DUChain::chainForIndex (this=0x126b170, index=1719) at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/duchain/duchain.h:181 #23 0x00007f58f1f51912 in KDevelop::ParsingEnvironmentFile::topContext (this=0x7f58c4563730) at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/duchain/parsingenvironment.cpp:140 #24 0x00007f58f1ee576c in KDevelop::DUChain::chainForDocument (this=0x126b170, document=..., environment=0x7f58c4541e88, proxyContext=true) at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/duchain/duchain.cpp:1404 #25 0x00007f58f1ee57b4 in KDevelop::DUChain::chainForDocument (this=0x126b170, document=<value optimized out>, environment=<value optimized out>, proxyContext=true) at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/duchain/duchain.cpp:1364 #26 0x00007f58b4be52e0 in CppLanguageSupport::standardContext (this=<value optimized out>, url=..., proxyContext=false) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/cpplanguagesupport.cpp:415 #27 0x00007f58f1f5e99d in KDevelop::DUChainUtils::standardContextForUrl (url=...) at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/duchain/duchainutils.cpp:248 #28 0x00007f58b4bebe1c in IncludePathComputer::computeBackground (this=<value optimized out>) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/includepathcomputer.cpp:139 #29 0x00007f58b4bf4e76 in CPPParseJob::includePaths (this=0x460f990) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/cppparsejob.cpp:256 #30 0x00007f58b4bf4f24 in CPPParseJob::mergeDefines (this=0x460f990, env=...) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/cppparsejob.cpp:210 #31 0x00007f58b4bfd42f in PreprocessJob::run (this=0x4568760) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/preprocessjob.cpp:158 #32 0x00007f58ecda40c7 in ThreadWeaver::JobRunHelper::runTheJob (this=0x7f58b1d51d80, th=0x7f58b8303f00, job=0x4568760) at /var/tmp/portage/kde-base/kdelibs-4.5.1/work/kdelibs-4.5.1/threadweaver/Weaver/Job.cpp:106 #33 0x00007f58ecda4390 in ThreadWeaver::Job::execute (this=0x4568760, th=0x7f58b8303f00) at /var/tmp/portage/kde-base/kdelibs-4.5.1/work/kdelibs-4.5.1/threadweaver/Weaver/Job.cpp:135 #34 0x00007f58ecda5a5b in ThreadWeaver::JobCollectionJobRunner::execute (this=0x43de830, t=0x7f58b8303f00) at /var/tmp/portage/kde-base/kdelibs-4.5.1/work/kdelibs-4.5.1/threadweaver/Weaver/JobCollection.cpp:82 #35 0x00007f58ecda3397 in ThreadWeaver::ThreadRunHelper::run (this=0x7f58b1d51e30, parent=0x11d9ca0, th=0x7f58b8303f00) at /var/tmp/portage/kde-base/kdelibs-4.5.1/work/kdelibs-4.5.1/threadweaver/Weaver/Thread.cpp:95 #36 0x00007f58ecda3918 in ThreadWeaver::Thread::run (this=0x7f58b8303f00) at /var/tmp/portage/kde-base/kdelibs-4.5.1/work/kdelibs-4.5.1/threadweaver/Weaver/Thread.cpp:142 #37 0x00007f58f55290b5 in QThreadPrivate::start (arg=0x7f58b8303f00) at thread/qthread_unix.cpp:248 #38 0x00007f58f3f63dba in start_thread (arg=<value optimized out>) at pthread_create.c:301 #39 0x00007f58f424b90d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 4 (Thread 0x7f58b1551710 (LWP 5652)): #0 pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162 #1 0x00007f58f55287b3 in QMutexPrivate::wait (this=0x1218ca0, timeout=-1) at thread/qmutex_unix.cpp:84 #2 0x00007f58f5524125 in QMutex::lock (this=0x1214850) at thread/qmutex.cpp:167 #3 0x00007f58f1eb606d in QMutexLocker::relock (this=0x7f58b154e370) at /usr/include/qt4/QtCore/qmutex.h:120 #4 0x00007f58f1fa3e83 in KDevelop::ItemRepositoryRegistry::registerRepository (this=0x1214830, repository=0x7f58f2290790, manager=0x7) at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/duchain/repositories/itemrepository.cpp:143 #5 0x00007f58f1ff1d92 in KDevelop::ItemRepository<Utils::SetNodeData, Utils::SetNodeDataRequest, false, false, 20u, 1048576u>::ItemRepository(QString, KDevelop::ItemRepositoryRegistry*, unsigned int, KDevelop::AbstractRepositoryManager*) () from /usr/lib/libkdevplatformlanguage.so.2 #6 0x00007f58f1ff1df4 in Utils::SetDataRepository::SetDataRepository(Utils::BasicSetRepository*, QString, KDevelop::ItemRepositoryRegistry*) () from /usr/lib/libkdevplatformlanguage.so.2 #7 0x00007f58f1feacb9 in BasicSetRepository (this=0x7f58f2290780, name=<value optimized out>, registry=0x1214830, delayedDeletion=false) at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/util/setrepository.cpp:908 #8 0x00007f58f1f1a55a in KDevelop::RecursiveImportRepository::repository () at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/duchain/topducontext.cpp:63 #9 0x00007f58f1f23737 in Utils::StorableSet<KDevelop::IndexedTopDUContext, KDevelop::IndexedTopDUContextIndexConversion, KDevelop::RecursiveImportRepository, true, Utils::DummyLocker>::insertIndex(unsigned int) () from /usr/lib/libkdevplatformlanguage.so.2 #10 0x00007f58f1f248f5 in KDevelop::TopDUContextLocalPrivate::TopDUContextLocalPrivate(KDevelop::TopDUContext*, KDevelop::TopDUContext*, unsigned int) () from /usr/lib/libkdevplatformlanguage.so.2 #11 0x00007f58f1f1b05c in TopDUContext (this=0x7f58d471e610, data=...) at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/duchain/topducontext.cpp:745 #12 0x00007f58b47178c9 in Cpp::CppDUContext<KDevelop::TopDUContext>::CppDUContext<KDevelop::TopDUContextData>(KDevelop::TopDUContextData&) () from /usr/lib/libkdev4cppduchain.so #13 0x00007f58b4717925 in KDevelop::DUChainItemFactory<Cpp::CppDUContext<KDevelop::TopDUContext>, KDevelop::TopDUContextData>::create(KDevelop::DUChainBaseData*) const () from /usr/lib/libkdev4cppduchain.so #14 0x00007f58f1f2567f in KDevelop::TopDUContextDynamicData::load (topContextIndex=<value optimized out>) at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/duchain/topducontextdynamicdata.cpp:333 #15 0x00007f58f1efeaac in KDevelop::DUChainPrivate::loadChain(unsigned int, QSet<unsigned int>&) () from /usr/lib/libkdevplatformlanguage.so.2 #16 0x00007f58f1ee4252 in KDevelop::DUChain::loadChain (this=<value optimized out>, index=19888) at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/duchain/duchain.cpp:1279 #17 0x00007f58f1efed72 in KDevelop::DUChain::chainForIndex (this=0x126b170, index=19888) at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/duchain/duchain.h:181 #18 0x00007f58f1f51912 in KDevelop::ParsingEnvironmentFile::topContext (this=0x7f58d46a5180) at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/duchain/parsingenvironment.cpp:140 #19 0x00007f58f1ee576c in KDevelop::DUChain::chainForDocument (this=0x126b170, document=..., environment=0x7f58c4541e88, proxyContext=true) at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/duchain/duchain.cpp:1404 #20 0x00007f58f1ee57b4 in KDevelop::DUChain::chainForDocument (this=0x126b170, document=<value optimized out>, environment=<value optimized out>, proxyContext=255) at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/duchain/duchain.cpp:1364 #21 0x00007f58b4be52e0 in CppLanguageSupport::standardContext (this=<value optimized out>, url=..., proxyContext=false) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/cpplanguagesupport.cpp:415 #22 0x00007f58f1f5e99d in KDevelop::DUChainUtils::standardContextForUrl (url=...) at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/duchain/duchainutils.cpp:248 #23 0x00007f58b4bebe1c in IncludePathComputer::computeBackground (this=<value optimized out>) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/includepathcomputer.cpp:139 #24 0x00007f58b4bf4e76 in CPPParseJob::includePaths (this=0x527bca0) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/cppparsejob.cpp:256 #25 0x00007f58b4bf4f24 in CPPParseJob::mergeDefines (this=0x527bca0, env=...) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/cppparsejob.cpp:210 #26 0x00007f58b4bfd42f in PreprocessJob::run (this=0x527e520) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/preprocessjob.cpp:158 #27 0x00007f58ecda40c7 in ThreadWeaver::JobRunHelper::runTheJob (this=0x7f58b1550d80, th=0x7f58b82f2d50, job=0x527e520) at /var/tmp/portage/kde-base/kdelibs-4.5.1/work/kdelibs-4.5.1/threadweaver/Weaver/Job.cpp:106 #28 0x00007f58ecda4390 in ThreadWeaver::Job::execute (this=0x527e520, th=0x7f58b82f2d50) at /var/tmp/portage/kde-base/kdelibs-4.5.1/work/kdelibs-4.5.1/threadweaver/Weaver/Job.cpp:135 #29 0x00007f58ecda5a5b in ThreadWeaver::JobCollectionJobRunner::execute (this=0x3d65be0, t=0x7f58b82f2d50) at /var/tmp/portage/kde-base/kdelibs-4.5.1/work/kdelibs-4.5.1/threadweaver/Weaver/JobCollection.cpp:82 #30 0x00007f58ecda3397 in ThreadWeaver::ThreadRunHelper::run (this=0x7f58b1550e30, parent=0x11d9ca0, th=0x7f58b82f2d50) at /var/tmp/portage/kde-base/kdelibs-4.5.1/work/kdelibs-4.5.1/threadweaver/Weaver/Thread.cpp:95 #31 0x00007f58ecda3918 in ThreadWeaver::Thread::run (this=0x7f58b82f2d50) at /var/tmp/portage/kde-base/kdelibs-4.5.1/work/kdelibs-4.5.1/threadweaver/Weaver/Thread.cpp:142 #32 0x00007f58f55290b5 in QThreadPrivate::start (arg=0x7f58b82f2d50) at thread/qthread_unix.cpp:248 #33 0x00007f58f3f63dba in start_thread (arg=<value optimized out>) at pthread_create.c:301 #34 0x00007f58f424b90d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 3 (Thread 0x7f58b0d50710 (LWP 5653)): #0 pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162 #1 0x00007f58f55287b3 in QMutexPrivate::wait (this=0x1218ca0, timeout=-1) at thread/qmutex_unix.cpp:84 #2 0x00007f58f5524125 in QMutex::lock (this=0x1214850) at thread/qmutex.cpp:167 #3 0x00007f58f1eb606d in QMutexLocker::relock (this=0x7f58b0d4d370) at /usr/include/qt4/QtCore/qmutex.h:120 #4 0x00007f58f1fa3e83 in KDevelop::ItemRepositoryRegistry::registerRepository (this=0x1214830, repository=0x7f58f2290790, manager=0x7) at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/duchain/repositories/itemrepository.cpp:143 #5 0x00007f58f1ff1d92 in KDevelop::ItemRepository<Utils::SetNodeData, Utils::SetNodeDataRequest, false, false, 20u, 1048576u>::ItemRepository(QString, KDevelop::ItemRepositoryRegistry*, unsigned int, KDevelop::AbstractRepositoryManager*) () from /usr/lib/libkdevplatformlanguage.so.2 #6 0x00007f58f1ff1df4 in Utils::SetDataRepository::SetDataRepository(Utils::BasicSetRepository*, QString, KDevelop::ItemRepositoryRegistry*) () from /usr/lib/libkdevplatformlanguage.so.2 #7 0x00007f58f1feacb9 in BasicSetRepository (this=0x7f58f2290780, name=<value optimized out>, registry=0x1214830, delayedDeletion=false) at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/util/setrepository.cpp:908 #8 0x00007f58f1f1a55a in KDevelop::RecursiveImportRepository::repository () at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/duchain/topducontext.cpp:63 #9 0x00007f58f1f23737 in Utils::StorableSet<KDevelop::IndexedTopDUContext, KDevelop::IndexedTopDUContextIndexConversion, KDevelop::RecursiveImportRepository, true, Utils::DummyLocker>::insertIndex(unsigned int) () from /usr/lib/libkdevplatformlanguage.so.2 #10 0x00007f58f1f248f5 in KDevelop::TopDUContextLocalPrivate::TopDUContextLocalPrivate(KDevelop::TopDUContext*, KDevelop::TopDUContext*, unsigned int) () from /usr/lib/libkdevplatformlanguage.so.2 #11 0x00007f58f1f1b05c in TopDUContext (this=0x7f58bc1d87b0, data=...) at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/duchain/topducontext.cpp:745 #12 0x00007f58b47178c9 in Cpp::CppDUContext<KDevelop::TopDUContext>::CppDUContext<KDevelop::TopDUContextData>(KDevelop::TopDUContextData&) () from /usr/lib/libkdev4cppduchain.so #13 0x00007f58b4717925 in KDevelop::DUChainItemFactory<Cpp::CppDUContext<KDevelop::TopDUContext>, KDevelop::TopDUContextData>::create(KDevelop::DUChainBaseData*) const () from /usr/lib/libkdev4cppduchain.so #14 0x00007f58f1f2567f in KDevelop::TopDUContextDynamicData::load (topContextIndex=<value optimized out>) at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/duchain/topducontextdynamicdata.cpp:333 #15 0x00007f58f1efeaac in KDevelop::DUChainPrivate::loadChain(unsigned int, QSet<unsigned int>&) () from /usr/lib/libkdevplatformlanguage.so.2 #16 0x00007f58f1ee4252 in KDevelop::DUChain::loadChain (this=<value optimized out>, index=21892) at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/duchain/duchain.cpp:1279 #17 0x00007f58f1efed72 in KDevelop::DUChain::chainForIndex (this=0x126b170, index=21892) at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/duchain/duchain.h:181 #18 0x00007f58f1f51912 in KDevelop::ParsingEnvironmentFile::topContext (this=0x7f58bc1e7de0) at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/duchain/parsingenvironment.cpp:140 #19 0x00007f58f1ee576c in KDevelop::DUChain::chainForDocument (this=0x126b170, document=..., environment=0x7f58c4541e88, proxyContext=true) at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/duchain/duchain.cpp:1404 #20 0x00007f58f1ee57b4 in KDevelop::DUChain::chainForDocument (this=0x126b170, document=<value optimized out>, environment=<value optimized out>, proxyContext=255) at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/duchain/duchain.cpp:1364 #21 0x00007f58b4be52e0 in CppLanguageSupport::standardContext (this=<value optimized out>, url=..., proxyContext=false) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/cpplanguagesupport.cpp:415 #22 0x00007f58f1f5e99d in KDevelop::DUChainUtils::standardContextForUrl (url=...) at /var/tmp/portage/dev-util/kdevplatform-9999/work/kdevplatform-9999/language/duchain/duchainutils.cpp:248 #23 0x00007f58b4bebe1c in IncludePathComputer::computeBackground (this=<value optimized out>) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/includepathcomputer.cpp:139 #24 0x00007f58b4bf4e76 in CPPParseJob::includePaths (this=0x4377b60) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/cppparsejob.cpp:256 #25 0x00007f58b4bf4f24 in CPPParseJob::mergeDefines (this=0x4377b60, env=...) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/cppparsejob.cpp:210 #26 0x00007f58b4bfd42f in PreprocessJob::run (this=0x44da070) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/languages/cpp/preprocessjob.cpp:158 #27 0x00007f58ecda40c7 in ThreadWeaver::JobRunHelper::runTheJob (this=0x7f58b0d4fd80, th=0x7f58b82f2a30, job=0x44da070) at /var/tmp/portage/kde-base/kdelibs-4.5.1/work/kdelibs-4.5.1/threadweaver/Weaver/Job.cpp:106 #28 0x00007f58ecda4390 in ThreadWeaver::Job::execute (this=0x44da070, th=0x7f58b82f2a30) at /var/tmp/portage/kde-base/kdelibs-4.5.1/work/kdelibs-4.5.1/threadweaver/Weaver/Job.cpp:135 #29 0x00007f58ecda5a5b in ThreadWeaver::JobCollectionJobRunner::execute (this=0x413f5a0, t=0x7f58b82f2a30) at /var/tmp/portage/kde-base/kdelibs-4.5.1/work/kdelibs-4.5.1/threadweaver/Weaver/JobCollection.cpp:82 #30 0x00007f58ecda3397 in ThreadWeaver::ThreadRunHelper::run (this=0x7f58b0d4fe30, parent=0x11d9ca0, th=0x7f58b82f2a30) at /var/tmp/portage/kde-base/kdelibs-4.5.1/work/kdelibs-4.5.1/threadweaver/Weaver/Thread.cpp:95 #31 0x00007f58ecda3918 in ThreadWeaver::Thread::run (this=0x7f58b82f2a30) at /var/tmp/portage/kde-base/kdelibs-4.5.1/work/kdelibs-4.5.1/threadweaver/Weaver/Thread.cpp:142 #32 0x00007f58f55290b5 in QThreadPrivate::start (arg=0x7f58b82f2a30) at thread/qthread_unix.cpp:248 #33 0x00007f58f3f63dba in start_thread (arg=<value optimized out>) at pthread_create.c:301 #34 0x00007f58f424b90d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 2 (Thread 0x7f58b054f710 (LWP 5654)): #0 pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162 #1 0x00007f58f552a0ab in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x117f780, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87 #2 QWaitCondition::wait (this=<value optimized out>, mutex=0x117f780, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159 #3 0x00007f58ecda25fe in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x11d9ca0, th=0x7f58bc1d6b50) at /var/tmp/portage/kde-base/kdelibs-4.5.1/work/kdelibs-4.5.1/threadweaver/Weaver/WeaverImpl.cpp:365 #4 0x00007f58ecda4f2b in ThreadWeaver::WorkingHardState::applyForWork (this=0x117de40, th=0x7f58bc1d6b50) at /var/tmp/portage/kde-base/kdelibs-4.5.1/work/kdelibs-4.5.1/threadweaver/Weaver/WorkingHardState.cpp:71 #5 0x00007f58ecda33c7 in ThreadWeaver::ThreadRunHelper::run (this=0x7f58b054ee30, parent=0x11d9ca0, th=0x7f58bc1d6b50) at /var/tmp/portage/kde-base/kdelibs-4.5.1/work/kdelibs-4.5.1/threadweaver/Weaver/Thread.cpp:87 #6 0x00007f58ecda3918 in ThreadWeaver::Thread::run (this=0x7f58bc1d6b50) at /var/tmp/portage/kde-base/kdelibs-4.5.1/work/kdelibs-4.5.1/threadweaver/Weaver/Thread.cpp:142 #7 0x00007f58f55290b5 in QThreadPrivate::start (arg=0x7f58bc1d6b50) at thread/qthread_unix.cpp:248 #8 0x00007f58f3f63dba in start_thread (arg=<value optimized out>) at pthread_create.c:301 #9 0x00007f58f424b90d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115 Thread 1 (Thread 0x7f58f6dce760 (LWP 5270)): #0 __lll_lock_wait_private () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:97 #1 0x00007f58f3f686ba in _L_lock_21 () from /lib/libpthread.so.0 #2 0x00007f58f3f6854a in __pthread_cond_destroy (cond=0x7f58d002c458) at pthread_cond_destroy.c:33 #3 0x00007f58f55287cd in ~QMutexPrivate (this=0x7f58d002c410, __in_chrg=<value optimized out>) at thread/qmutex_unix.cpp:74 #4 0x00007f58f5524171 in ~QMutex (this=<value optimized out>, __in_chrg=<value optimized out>) at thread/qmutex.cpp:132 #5 0x00007f58f41af2d5 in __run_exit_handlers (status=1, listp=0x7f58f44db4a8, run_list_atexit=true) at exit.c:78 #6 0x00007f58f41af335 in *__GI_exit (status=-805125032) at exit.c:100 #7 0x00007f58f4a2dd48 in qt_xio_errhandler () at kernel/qapplication_x11.cpp:744 #8 0x00007f58f5b6f960 in KApplication::xioErrhandler (this=0x7fff6f9c9970, dpy=0xe84fa0) at /var/tmp/portage/kde-base/kdelibs-4.5.1/work/kdelibs-4.5.1/kdeui/kernel/kapplication.cpp:416 #9 0x00007f58f0734fee in _XIOError (dpy=0xe84fa0) at XlibInt.c:3140 #10 0x00007f58f073d67d in _XEventsQueued (dpy=0xe84fa0, mode=<value optimized out>) at xcb_io.c:306 #11 0x00007f58f0725dcf in XEventsQueued (dpy=0xe84fa0, mode=2) at Pending.c:43 #12 0x00007f58f4a660c7 in x11EventSourcePrepare (s=0xe72a30, timeout=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:79 #13 0x00007f58ef5df8bd in IA__g_main_context_prepare (context=0xe71840, priority=<value optimized out>) at gmain.c:2280 #14 0x00007f58ef5dfd12 in g_main_context_iterate (context=0xe71840, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at gmain.c:2571 #15 0x00007f58ef5e02e2 in IA__g_main_context_iteration (context=0xe71840, may_block=1) at gmain.c:2654 #16 0x00007f58f56402de in QEventDispatcherGlib::processEvents (this=0xe6eda0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:412 #17 0x00007f58f4a65ea6 in QGuiEventDispatcherGlib::processEvents (this=0x7f58d002c458, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204 #18 0x00007f58f56156b2 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149 #19 0x00007f58f5615a7d in QEventLoop::exec (this=0x7fff6f9c96c0, flags=) at kernel/qeventloop.cpp:201 #20 0x00007f58f561a6bb in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1003 #21 0x0000000000407012 in main (argc=<value optimized out>, argv=<value optimized out>) at /var/tmp/portage/dev-util/kdevelop-9999/work/kdevelop-9999/app/main.cpp:379 Reported using DrKonqi
David: Are ItemRepositories supposed to be threadsafe? If you call close and open at the same time, the value of m_file is undefined, since close might set it to 0 just after open set it to some new QFile. Otherwise I cannot explain this bug... @reporter: if it's reproducible, please provide us with a valgrind log.
*** Bug 243174 has been marked as a duplicate of this bug. ***
two people have that, seems to be a real issue... david?
Since this seems to happen during initialization, I guess the problem is that the same repository is initalized twice at the same time. There is some precautions for this not to happen in some repositories (in form of RepositoryManager and the likes), but maybe that is not used for KDevelop::RecursiveImportRepository. A very simple workaround would be to initialize the repository in the constructor of CppLanguageSupport, since it's part of the cpp plugin.
Created attachment 53659 [details] New crash information added by DrKonqi I had a similar crash. blub blub blub
Created attachment 54228 [details] New crash information added by DrKonqi Crashes here every second time I open a specific project using the custom-buildsystem plugin. Pretty reliably reproduceable, so I'm open to try out patches :)
commit 8da0d7362588a4404bd08ed08838fc63de1d8bb8 branch 1.1 Author: Andreas Pakulat <apaku@gmx.de> Date: Tue Dec 7 01:17:12 2010 +0100 Fix a crash when loading a project, by initializing static data This prevents a crash I can reproduce pretty reliably with a closed project and the custom-buildsystem plugin. Every second startup KDevelop crashed due to two threads trying to access the recursiveimportrepository, which caused one thread to get a null-pointer in its QFile member. Initializing the repository during startup fixes that for me. BUG: 250779 diff --git a/shell/core.cpp b/shell/core.cpp index 6309522..988e780 100644 --- a/shell/core.cpp +++ b/shell/core.cpp @@ -32,6 +32,7 @@ #include <sublime/area.h> #include <sublime/tooldocument.h> +#include <language/duchain/topducontext.h> #include <language/editor/editorintegrator.h> #include <language/backgroundparser/backgroundparser.h> @@ -202,6 +203,12 @@ bool CorePrivate::initialize(Core::Setup mode, const QString& session ) // the controller construct globalItemRepositoryRegistry(); + // This needs to be initialized here too as the function is not threadsafe, but can + // sometimes be called from different threads. This results in the underlying QFile + // being 0 and hence crashes at some point later when accessing the contents via + // read. See https://bugs.kde.org/show_bug.cgi?id=250779 + RecursiveImportRepository::repository(); + if(!(mode & Core::NoUi)) uiController->initialize(); languageController->initialize(); projectController->initialize();
commit 94cde12dd769038d030cb646b29189f6387ec910 branch 1.1 Author: Milian Wolff <mail@milianw.de> Date: Wed Dec 8 23:47:39 2010 +0100 move initialization of static DUChain data to DUChain::initialize() also init comment repo to prevent multithreading issues BUG: 255323 CCBUG: 250779 diff --git a/language/duchain/declaration.cpp b/language/duchain/declaration.cpp index 31b3fea..f9b0dd7 100644 --- a/language/duchain/declaration.cpp +++ b/language/duchain/declaration.cpp @@ -39,7 +39,6 @@ #include "indexedstring.h" #include "duchainregister.h" #include "persistentsymboltable.h" -#include "repositories/stringrepository.h" #include "types/identifiedtype.h" #include "types/structuretype.h" #include "functiondefinition.h" @@ -54,12 +53,6 @@ using namespace KTextEditor; namespace KDevelop { -///@todo Use reference counting -static Repositories::StringRepository& commentRepository() { - static Repositories::StringRepository commentRepositoryObject("Comment Repository"); - return commentRepositoryObject; -} - REGISTER_DUCHAIN_ITEM(Declaration); DeclarationData::DeclarationData() @@ -84,6 +77,12 @@ m_isFinal(rhs.m_isFinal) { } +///@todo Use reference counting +Repositories::StringRepository& DeclarationData::commentRepository() { + static Repositories::StringRepository commentRepositoryObject("Comment Repository"); + return commentRepositoryObject; +} + Declaration::Kind Declaration::kind() const { DUCHAIN_D(Declaration); return d->m_kind; @@ -197,7 +196,7 @@ QByteArray Declaration::comment() const { if(!d->m_comment) return 0; else - return Repositories::arrayFromItem(commentRepository().itemFromIndex(d->m_comment)); + return Repositories::arrayFromItem(d->commentRepository().itemFromIndex(d->m_comment)); } void Declaration::setComment(const QByteArray& str) { @@ -205,7 +204,7 @@ void Declaration::setComment(const QByteArray& str) { if(str.isEmpty()) d->m_comment = 0; else - d->m_comment = commentRepository().index(Repositories::StringRepositoryItemRequest(str, IndexedString::hashString(str, str.length()), str.length())); + d->m_comment = d->commentRepository().index(Repositories::StringRepositoryItemRequest(str, IndexedString::hashString(str, str.length()), str.length())); } void Declaration::setComment(const QString& str) { diff --git a/language/duchain/declarationdata.h b/language/duchain/declarationdata.h index 0fda5c3..93393d4 100644 --- a/language/duchain/declarationdata.h +++ b/language/duchain/declarationdata.h @@ -30,6 +30,7 @@ #include "duchain.h" #include "../languageexport.h" #include "types/indexedtype.h" +#include "repositories/stringrepository.h" namespace KDevelop { @@ -52,6 +53,7 @@ public: //Index in the comment repository uint m_comment; + /// @see commentRepository() Declaration::Kind m_kind; bool m_isDefinition : 1; @@ -59,8 +61,12 @@ public: bool m_isTypeAlias : 1; bool m_anonymousInContext : 1; //Whether the declaration was added into the parent-context anonymously bool m_isFinal : 1; -}; + /** + * Repository containing the comment string representations. + */ + static Repositories::StringRepository& commentRepository(); +}; } #endif diff --git a/language/duchain/duchain.cpp b/language/duchain/duchain.cpp index bc31f14..e299675 100644 --- a/language/duchain/duchain.cpp +++ b/language/duchain/duchain.cpp @@ -64,6 +64,7 @@ #include <unistd.h> #include "waitforupdate.h" #include "referencecounting.h" +#include "declarationdata.h" Q_DECLARE_METATYPE(KDevelop::IndexedString) Q_DECLARE_METATYPE(KDevelop::IndexedTopDUContext) @@ -1127,6 +1128,21 @@ DUChain* DUChain::self() return sdDUChainPrivate->instance; } +void DUChain::initialize() +{ + // Initialize the global item repository as first thing after loading the session + globalItemRepositoryRegistry(); + + // This needs to be initialized here too as the function is not threadsafe, but can + // sometimes be called from different threads. This results in the underlying QFile + // being 0 and hence crashes at some point later when accessing the contents via + // read. See https://bugs.kde.org/show_bug.cgi?id=250779 + RecursiveImportRepository::repository(); + + // similar to above, see https://bugs.kde.org/show_bug.cgi?id=255323 + DeclarationData::commentRepository(); +} + DUChainLock* DUChain::lock() { return &sdDUChainPrivate->lock; diff --git a/language/duchain/duchain.h b/language/duchain/duchain.h index 74f92c9..8c0a5d7 100644 --- a/language/duchain/duchain.h +++ b/language/duchain/duchain.h @@ -58,6 +58,12 @@ class KDEVPLATFORMLANGUAGE_EXPORT DUChain : public QObject public: /** + * Initializes common static item repositories. + * Must be called once for multi threaded applications to work reliably. + */ + static void initialize(); + + /** * Return a list of all chains available */ Q_SCRIPTABLE QList<TopDUContext*> allChains() const; diff --git a/shell/core.cpp b/shell/core.cpp index 9116fe6..47e8484 100644 --- a/shell/core.cpp +++ b/shell/core.cpp @@ -58,6 +58,7 @@ #include <KMessageBox> #include <KTextEditor/Document> #include <KTextEditor/SmartInterface> +#include <language/duchain/duchain.h> namespace KDevelop { @@ -94,18 +95,6 @@ CorePrivate::CorePrivate(Core *core): { } -void CorePrivate::initializeDUChainRepositories() -{ - // Initialize the global item repository as first thing after loading the session - globalItemRepositoryRegistry(); - - // This needs to be initialized here too as the function is not threadsafe, but can - // sometimes be called from different threads. This results in the underlying QFile - // being 0 and hence crashes at some point later when accessing the contents via - // read. See https://bugs.kde.org/show_bug.cgi?id=250779 - RecursiveImportRepository::repository(); -} - bool CorePrivate::initialize(Core::Setup mode, const QString& session ) { m_mode=mode; @@ -213,7 +202,7 @@ bool CorePrivate::initialize(Core::Setup mode, const QString& session ) // TODO: Is this early enough, or should we put the loading of the session into // the controller construct - initializeDUChainRepositories(); + DUChain::initialize(); if(!(mode & Core::NoUi)) uiController->initialize(); languageController->initialize(); diff --git a/shell/core_p.h b/shell/core_p.h index 9ea5067..5ae164c 100644 --- a/shell/core_p.h +++ b/shell/core_p.h @@ -48,7 +48,6 @@ public: CorePrivate(Core *core); ~CorePrivate(); bool initialize( Core::Setup mode, const QString& session ); - void initializeDUChainRepositories(); QPointer<PluginController> pluginController; QPointer<UiController> uiController; QPointer<ProjectController> projectController;
*** Bug 256693 has been marked as a duplicate of this bug. ***