Bug 242668

Summary: KDevelop crash on exit - heap corruption?
Product: [Applications] kdevelop Reporter: Paul Fee <paul.f.fee>
Component: generalAssignee: kdevelop-bugs-null
Status: RESOLVED DUPLICATE    
Severity: crash    
Priority: NOR    
Version: unspecified   
Target Milestone: 4.0.1   
Platform: Fedora RPMs   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Paul Fee 2010-06-24 10:44:57 UTC
Application: kdevelop (4.0.0 (using KDevPlatform 1.0.0))
KDE Platform Version: 4.4.4 (KDE 4.4.4)
Qt Version: 4.6.2
Operating System: Linux 2.6.33.5-112.fc13.x86_64 x86_64
Distribution: "Fedora release 13 (Goddard)"

-- Information about the crash:
After using KDevelop for a while, I selected Session/Quit.  KDevelop crashed.

There are a bunch of similar bugs where glibc detects malloc/free problems.  Here the last call before entering glibc is QString::free().  The other bugs (I've noted a few possible duplicates) have different stack traces, but perhaps they have the same root cause.

 -- Backtrace:
Application: KDevelop (kdevelop.bin), signal: Aborted
82	T_PSEUDO (SYSCALL_SYMBOL, SYSCALL_NAME, SYSCALL_NARGS)
[Current thread is 1 (Thread 0x7f7c0db18820 (LWP 22779))]

Thread 8 (Thread 0x7f7c01cf9710 (LWP 22782)):
#0  __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136
#1  0x0000003fe980b47c in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:259
#2  0x0000003004670183 in QMutexPrivate::wait (this=0x7f7bfc0020c0, timeout=-1) at thread/qmutex_unix.cpp:84
#3  0x000000300466cb25 in QMutex::lock (this=0x300080b3f0) at thread/qmutex.cpp:167
#4  0x00000030004b169f in relock (this=0x132f0c0, retries=1, needLockRepository=true) at /usr/include/QtCore/qmutex.h:120
#5  QMutexLocker (this=0x132f0c0, retries=1, needLockRepository=true) at /usr/include/QtCore/qmutex.h:102
#6  KDevelop::DUChainPrivate::doMoreCleanup (this=0x132f0c0, retries=1, needLockRepository=true) at /usr/src/debug/kdevplatform-1.0.0/language/duchain/duchain.cpp:699
#7  0x00000030004b2f24 in KDevelop::DUChainPrivate::CleanupThread::run (this=0x1327070) at /usr/src/debug/kdevplatform-1.0.0/language/duchain/duchain.cpp:294
#8  0x0000003004670995 in QThreadPrivate::start (arg=0x1327070) at thread/qthread_unix.cpp:248
#9  0x0000003fe9807761 in start_thread (arg=0x7f7c01cf9710) at pthread_create.c:301
#10 0x0000003fe90e14dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 7 (Thread 0x7f7bf3fff710 (LWP 22786)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x000000300467188b in wait (this=<value optimized out>, mutex=0x1c0c5d0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x1c0c5d0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x000000300ba09f96 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x1c08a30, th=0x1bfdc50) at /usr/src/debug/kdelibs-4.4.4/threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x000000300ba0c4bb in ThreadWeaver::WorkingHardState::applyForWork (this=0x12c3b50, th=0x1bfdc50) at /usr/src/debug/kdelibs-4.4.4/threadweaver/Weaver/WorkingHardState.cpp:71
#5  0x000000300ba0c4d4 in ThreadWeaver::WorkingHardState::applyForWork (this=0x12c3b50, th=0x1bfdc50) at /usr/src/debug/kdelibs-4.4.4/threadweaver/Weaver/WorkingHardState.cpp:74
#6  0x000000300ba0ae7f in ThreadWeaver::ThreadRunHelper::run (this=0x7f7bf3ffed40, parent=0x1c08a30, th=0x1bfdc50) at /usr/src/debug/kdelibs-4.4.4/threadweaver/Weaver/Thread.cpp:87
#7  0x000000300ba0b368 in ThreadWeaver::Thread::run (this=0x1bfdc50) at /usr/src/debug/kdelibs-4.4.4/threadweaver/Weaver/Thread.cpp:142
#8  0x0000003004670995 in QThreadPrivate::start (arg=0x1bfdc50) at thread/qthread_unix.cpp:248
#9  0x0000003fe9807761 in start_thread (arg=0x7f7bf3fff710) at pthread_create.c:301
#10 0x0000003fe90e14dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 6 (Thread 0x7f7be9846710 (LWP 22793)):
#0  __lll_lock_wait_private () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:97
#1  0x0000003fe907c014 in _L_lock_4983 () at malloc.c:3503
#2  0x0000003fe9077dc2 in _int_free (av=0x7f7bc0000020, p=0x7f7bc0001bf0, have_lock=0) at malloc.c:4918
#3  0x0000003feb059f9b in magazine_cache_trim (ix=<value optimized out>, magazine_chunks=<value optimized out>, count=<value optimized out>) at gslice.c:626
#4  magazine_cache_push_magazine (ix=<value optimized out>, magazine_chunks=<value optimized out>, count=<value optimized out>) at gslice.c:657
#5  0x0000003feb05a173 in private_thread_memory_cleanup (data=0x7f7be0000a90) at gslice.c:724
#6  0x0000003fe98077f9 in __nptl_deallocate_tsd (arg=0x7f7be9846710) at pthread_create.c:154
#7  start_thread (arg=0x7f7be9846710) at pthread_create.c:308
#8  0x0000003fe90e14dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 5 (Thread 0x7f7bf35fe710 (LWP 22998)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x000000300b52a096 in QTWTF::TCMalloc_PageHeap::scavengerThread (this=0x300b803f60) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:2304
#2  0x000000300b52a0d9 in QTWTF::TCMalloc_PageHeap::runScavengerThread (context=0x300b81202c) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:1438
#3  0x0000003fe9807761 in start_thread (arg=0x7f7bf35fe710) at pthread_create.c:301
#4  0x0000003fe90e14dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 4 (Thread 0x7f7bcf1ee710 (LWP 23014)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x000000300467188b in wait (this=<value optimized out>, mutex=0x1c0c5d0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x1c0c5d0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x000000300ba09f96 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x1c08a30, th=0x26f52f0) at /usr/src/debug/kdelibs-4.4.4/threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x000000300ba0c4bb in ThreadWeaver::WorkingHardState::applyForWork (this=0x12c3b50, th=0x26f52f0) at /usr/src/debug/kdelibs-4.4.4/threadweaver/Weaver/WorkingHardState.cpp:71
#5  0x000000300ba0c4d4 in ThreadWeaver::WorkingHardState::applyForWork (this=0x12c3b50, th=0x26f52f0) at /usr/src/debug/kdelibs-4.4.4/threadweaver/Weaver/WorkingHardState.cpp:74
#6  0x000000300ba0c4d4 in ThreadWeaver::WorkingHardState::applyForWork (this=0x12c3b50, th=0x26f52f0) at /usr/src/debug/kdelibs-4.4.4/threadweaver/Weaver/WorkingHardState.cpp:74
#7  0x000000300ba0c4d4 in ThreadWeaver::WorkingHardState::applyForWork (this=0x12c3b50, th=0x26f52f0) at /usr/src/debug/kdelibs-4.4.4/threadweaver/Weaver/WorkingHardState.cpp:74
#8  0x000000300ba0c4d4 in ThreadWeaver::WorkingHardState::applyForWork (this=0x12c3b50, th=0x26f52f0) at /usr/src/debug/kdelibs-4.4.4/threadweaver/Weaver/WorkingHardState.cpp:74
#9  0x000000300ba0c4d4 in ThreadWeaver::WorkingHardState::applyForWork (this=0x12c3b50, th=0x26f52f0) at /usr/src/debug/kdelibs-4.4.4/threadweaver/Weaver/WorkingHardState.cpp:74
#10 0x000000300ba0c4d4 in ThreadWeaver::WorkingHardState::applyForWork (this=0x12c3b50, th=0x26f52f0) at /usr/src/debug/kdelibs-4.4.4/threadweaver/Weaver/WorkingHardState.cpp:74
#11 0x000000300ba0ae7f in ThreadWeaver::ThreadRunHelper::run (this=0x7f7bcf1edd40, parent=0x1c08a30, th=0x26f52f0) at /usr/src/debug/kdelibs-4.4.4/threadweaver/Weaver/Thread.cpp:87
#12 0x000000300ba0b368 in ThreadWeaver::Thread::run (this=0x26f52f0) at /usr/src/debug/kdelibs-4.4.4/threadweaver/Weaver/Thread.cpp:142
#13 0x0000003004670995 in QThreadPrivate::start (arg=0x26f52f0) at thread/qthread_unix.cpp:248
#14 0x0000003fe9807761 in start_thread (arg=0x7f7bcf1ee710) at pthread_create.c:301
#15 0x0000003fe90e14dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 3 (Thread 0x7f7bce7ed710 (LWP 23015)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x000000300467188b in wait (this=<value optimized out>, mutex=0x1c0c5d0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x1c0c5d0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x000000300ba09f96 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x1c08a30, th=0x25898a0) at /usr/src/debug/kdelibs-4.4.4/threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x000000300ba0c4bb in ThreadWeaver::WorkingHardState::applyForWork (this=0x12c3b50, th=0x25898a0) at /usr/src/debug/kdelibs-4.4.4/threadweaver/Weaver/WorkingHardState.cpp:71
#5  0x000000300ba0c4d4 in ThreadWeaver::WorkingHardState::applyForWork (this=0x12c3b50, th=0x25898a0) at /usr/src/debug/kdelibs-4.4.4/threadweaver/Weaver/WorkingHardState.cpp:74
#6  0x000000300ba0c4d4 in ThreadWeaver::WorkingHardState::applyForWork (this=0x12c3b50, th=0x25898a0) at /usr/src/debug/kdelibs-4.4.4/threadweaver/Weaver/WorkingHardState.cpp:74
#7  0x000000300ba0c4d4 in ThreadWeaver::WorkingHardState::applyForWork (this=0x12c3b50, th=0x25898a0) at /usr/src/debug/kdelibs-4.4.4/threadweaver/Weaver/WorkingHardState.cpp:74
#8  0x000000300ba0ae7f in ThreadWeaver::ThreadRunHelper::run (this=0x7f7bce7ecd40, parent=0x1c08a30, th=0x25898a0) at /usr/src/debug/kdelibs-4.4.4/threadweaver/Weaver/Thread.cpp:87
#9  0x000000300ba0b368 in ThreadWeaver::Thread::run (this=0x25898a0) at /usr/src/debug/kdelibs-4.4.4/threadweaver/Weaver/Thread.cpp:142
#10 0x0000003004670995 in QThreadPrivate::start (arg=0x25898a0) at thread/qthread_unix.cpp:248
#11 0x0000003fe9807761 in start_thread (arg=0x7f7bce7ed710) at pthread_create.c:301
#12 0x0000003fe90e14dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 2 (Thread 0x7f7bcddec710 (LWP 23159)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x000000300467188b in wait (this=<value optimized out>, mutex=0x1c0c5d0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x1c0c5d0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x000000300ba09f96 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x1c08a30, th=0x432e330) at /usr/src/debug/kdelibs-4.4.4/threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x000000300ba0c4bb in ThreadWeaver::WorkingHardState::applyForWork (this=0x12c3b50, th=0x432e330) at /usr/src/debug/kdelibs-4.4.4/threadweaver/Weaver/WorkingHardState.cpp:71
#5  0x000000300ba0ae7f in ThreadWeaver::ThreadRunHelper::run (this=0x7f7bcddebd40, parent=0x1c08a30, th=0x432e330) at /usr/src/debug/kdelibs-4.4.4/threadweaver/Weaver/Thread.cpp:87
#6  0x000000300ba0b368 in ThreadWeaver::Thread::run (this=0x432e330) at /usr/src/debug/kdelibs-4.4.4/threadweaver/Weaver/Thread.cpp:142
#7  0x0000003004670995 in QThreadPrivate::start (arg=0x432e330) at thread/qthread_unix.cpp:248
#8  0x0000003fe9807761 in start_thread (arg=0x7f7bcddec710) at pthread_create.c:301
#9  0x0000003fe90e14dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 1 (Thread 0x7f7c0db18820 (LWP 22779)):
[KCrash Handler]
#5  0x0000003fe90329a5 in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#6  0x0000003fe9034185 in abort () at abort.c:92
#7  0x0000003fe906fe0b in __libc_message (do_abort=2, fmt=0x3fe9143ab8 "*** glibc detected *** %s: %s: 0x%s ***\n") at ../sysdeps/unix/sysv/linux/libc_fatal.c:186
#8  0x0000003fe9075726 in malloc_printerr (action=3, str=0x3fe9141aa2 "corrupted double-linked list", ptr=<value optimized out>) at malloc.c:6283
#9  0x0000003fe907820a in _int_free (av=0x7f7bc0000020, p=0x7f7bc0004120, have_lock=0) at malloc.c:4964
#10 0x00000030046b2b1c in QString::free (d=0x7f7bc00041f0) at tools/qstring.cpp:1108
#11 0x00007f7bdf72e4e6 in ~QString (this=<value optimized out>, x=0x7f7bc8005b00) at /usr/include/QtCore/qstring.h:869
#12 QMap<QString, CppTools::IncludePathResolver::CacheEntry>::freeData (this=<value optimized out>, x=0x7f7bc8005b00) at /usr/include/QtCore/qmap.h:625
#13 0x0000003fe9035fd2 in __run_exit_handlers (status=0) at exit.c:78
#14 exit (status=0) at exit.c:100
#15 0x0000003fe901ec64 in __libc_start_main (main=0x4040b0 <main(int, char**)>, argc=1, ubp_av=0x7fff962291c8, init=<value optimized out>, fini=<value optimized out>, 
    rtld_fini=<value optimized out>, stack_end=0x7fff962291b8) at libc-start.c:258
#16 0x0000000000403fb9 in _start ()

This bug may be a duplicate of or related to bug 232942, bug 238155, bug 227116.

Possible duplicates by query: bug 241272, bug 240316, bug 238155, bug 238117, bug 236011.

Reported using DrKonqi
Comment 1 Milian Wolff 2010-09-06 16:46:11 UTC
most probably a glibc bug, make sure you have a up2date version.

*** This bug has been marked as a duplicate of bug 206775 ***