The summary pretty much says it all: When you delete the .cache/kdevduchain directory while KDevelop is running, KDevelop will eventually die with one of a variety of assertions, see a sample below. This happens most of the time, but not always. When I deleted the directory rather soon after launch, KDevelop was able to continue. Obviously this bug is easy to avoid, but hey - it's called a cache, so I should be able to delete it ;) Reproducible: Sometimes Here are the last few lines of debug output and one associated backtrace: kdevplatform.language: starting cleanup cannot re-open repository file for storing Program received signal SIGABRT, Aborted. [Switching to Thread 0x7fffc89f6700 (LWP 26446)] 0x00007ffff4032d27 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 56 ../nptl/sysdeps/unix/sysv/linux/raise.c: Datei oder Verzeichnis nicht gefunden. (gdb) bt #0 0x00007ffff4032d27 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 #1 0x00007ffff4034418 in __GI_abort () at abort.c:89 #2 0x00007ffff475bd38 in qt_message_fatal (context=..., message=...) at global/qlogging.cpp:1340 #3 QMessageLogger::fatal (this=<optimized out>, msg=<optimized out>) at global/qlogging.cpp:669 #4 0x00007fffef55f8b0 in KDevelop::ItemRepository<KDevelop::IdentifierPrivate<false>, KDevelop::IdentifierItemRequest, true, true, 0u, 1048576u>::store (this=0x27ad430) at /home/haehnle/software/kdevelop/kdevplatform/serialization/itemrepository.h:1885 #5 0x00007fffeefce9be in KDevelop::ItemRepositoryRegistry::store (this=0x2754780) at /home/haehnle/software/kdevelop/kdevplatform/serialization/itemrepositoryregistry.cpp:325 #6 0x00007fffef4d7433 in KDevelop::DUChainPrivate::doMoreCleanup (this=0x7fffefd3f380 <KDevelop::(anonymous namespace)::Q_QGS_sdDUChainPrivate::innerFunction()::holder>, retries=1, needLockRepository=true) at /home/haehnle/software/kdevelop/kdevplatform/language/duchain/duchain.cpp:849 #7 0x00007fffef4d3ef1 in KDevelop::DUChainPrivate::CleanupThread::run (this=0x35d71b0) at /home/haehnle/software/kdevelop/kdevplatform/language/duchain/duchain.cpp:288 #8 0x00007ffff476d2ee in QThreadPrivate::start (arg=0x35d71b0) at thread/qthread_unix.cpp:345 #9 0x00007fffed5590a5 in start_thread (arg=0x7fffc89f6700) at pthread_create.c:309 #10 0x00007ffff40f677d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 Here's another backtrace: #0 0x00007ffff4032d27 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 #1 0x00007ffff4034418 in __GI_abort () at abort.c:89 #2 0x00007ffff475bd38 in qt_message_fatal (context=..., message=...) at global/qlogging.cpp:1340 #3 QMessageLogger::fatal (this=this@entry=0x7fffacd99550, msg=msg@entry=0x7ffff4a56fe8 "ASSERT: \"%s\" in file %s, line %d") at global/qlogging.cpp:669 #4 0x00007ffff47569a4 in qt_assert (assertion=<optimized out>, file=<optimized out>, line=<optimized out>) at global/qglobal.cpp:2124 #5 0x00007fffef5245eb in KDevelop::TopDUContextDynamicData::loadData (this=0x7fffa848cdd0) at /home/haehnle/software/kdevelop/kdevplatform/language/duchain/topducontextdynamicdata.cpp:541 #6 0x00007fffef527f5d in KDevelop::TopDUContextDynamicData::DUChainItemStorage<QExplicitlySharedDataPointer<KDevelop::Problem> >::allocateItemIndex (this=0x7fffa848ce20, item=..., temporary=false) at /home/haehnle/software/kdevelop/kdevplatform/language/duchain/topducontextdynamicdata.cpp:325 #7 0x00007fffef525c70 in KDevelop::TopDUContextDynamicData::allocateProblemIndex (this=0x7fffa848cdd0, problem=...) at /home/haehnle/software/kdevelop/kdevplatform/language/duchain/topducontextdynamicdata.cpp:779 #8 0x00007fffef5b4200 in KDevelop::LocalIndexedProblem::LocalIndexedProblem (this=0x7fffacd99720, problem=..., top=0x7fffa8a195a0) at /home/haehnle/software/kdevelop/kdevplatform/language/duchain/problem.cpp:56 #9 0x00007fffef5154a1 in KDevelop::TopDUContext::addProblem (this=0x7fffa8a195a0, problem=...) at /home/haehnle/software/kdevelop/kdevplatform/language/duchain/topducontext.cpp:953 #10 0x00007fffd05cb7d2 in CPPInternalParseJob::run (this=0x7fff9d0d2740, pointer=..., thread=0x0) at /home/haehnle/software/kdevelop/kdevelop/languages/cpp/cppparsejob.cpp:825
I think this is a WONTFIX. "it's called a cache, so I should be able to delete it ;)" -- Indeed, but only when the application is *not* running.
*** Bug 344348 has been marked as a duplicate of this bug. ***
Well, don't do that. I'll close this as WONTFIX.