Bug 256660 - KDevelop crashed when trying to rename folder under cmake project manager
Summary: KDevelop crashed when trying to rename folder under cmake project manager
Status: RESOLVED FIXED
Alias: None
Product: kdevelop
Classification: Applications
Component: Build tools: CMake (show other bugs)
Version: 4.1.60
Platform: Ubuntu Linux
: VHI crash
Target Milestone: 4.2.0
Assignee: kdevelop-bugs-null
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-11-12 09:38 UTC by Chaos A.D.
Modified: 2010-12-20 20:14 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
New crash information added by DrKonqi (23.92 KB, text/plain)
2010-11-17 23:36 UTC, Valentin Rusu
Details
New crash information added by DrKonqi (29.94 KB, text/plain)
2010-12-07 10:54 UTC, Chaos A.D.
Details
New crash when renaming folder (17.05 KB, application/octet-stream)
2010-12-15 21:42 UTC, Valentin Rusu
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Chaos A.D. 2010-11-12 09:38:20 UTC
Application: kdevelop (4.1.60)
KDE Platform Version: 4.5.1 (KDE 4.5.1)
Qt Version: 4.7.0
Operating System: Linux 2.6.35-22-generic-pae i686
Distribution: Ubuntu 10.10

-- Information about the crash:
Subj from ProjectManagerViewPlugin::renameItemFromContextMenu

-- Backtrace:
Application: KDevelop (kdevelop), signal: Segmentation fault
[Current thread is 1 (Thread 0xb2e4b710 (LWP 28845))]

Thread 14 (Thread 0xafa80b70 (LWP 28846)):
#0  0xb7710424 in __kernel_vsyscall ()
#1  0xb6053884 in pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_timedwait.S:236
#2  0xb60c594f in wait (this=0x9d38a64, mutex=0x9d38a68, time=1000) at thread/qwaitcondition_unix.cpp:86
#3  QWaitCondition::wait (this=0x9d38a64, mutex=0x9d38a68, time=1000) at thread/qwaitcondition_unix.cpp:160
#4  0xb4d2fd9d in KDevelop::DUChainPrivate::CleanupThread::run() () from /usr/local/lib/libkdevplatformlanguage.so.3
#5  0xb60c4df9 in QThreadPrivate::start (arg=0x9d38a58) at thread/qthread_unix.cpp:266
#6  0xb604ecc9 in start_thread (arg=0xafa80b70) at pthread_create.c:304
#7  0xb536c6ae in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 13 (Thread 0xad8ffb70 (LWP 28849)):
#0  0xb7710424 in __kernel_vsyscall ()
#1  0xb5365381 in select () at ../sysdeps/unix/syscall-template.S:82
#2  0xb61a1bb8 in QProcessManager::run (this=0xb62fa888) at io/qprocess_unix.cpp:245
#3  0xb60c4df9 in QThreadPrivate::start (arg=0xb62fa888) at thread/qthread_unix.cpp:266
#4  0xb604ecc9 in start_thread (arg=0xad8ffb70) at pthread_create.c:304
#5  0xb536c6ae in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 12 (Thread 0xae23cb70 (LWP 28855)):
#0  0xb7710424 in __kernel_vsyscall ()
#1  0xb535dde6 in __poll (fds=0xb53f5ff4, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#2  0xb47c5a1b in g_poll () from /lib/libglib-2.0.so.0
#3  0xb47b843c in ?? () from /lib/libglib-2.0.so.0
#4  0xb47b8848 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#5  0xb61f559f in QEventDispatcherGlib::processEvents (this=0x9f76fc0, flags=...) at kernel/qeventdispatcher_glib.cpp:417
#6  0xb61c5609 in QEventLoop::processEvents (this=0xae23c290, flags=) at kernel/qeventloop.cpp:149
#7  0xb61c5a8a in QEventLoop::exec (this=0xae23c290, flags=...) at kernel/qeventloop.cpp:201
#8  0xb60c1b7e in QThread::exec (this=0x9b883a8) at thread/qthread.cpp:490
#9  0xb61a435b in QInotifyFileSystemWatcherEngine::run (this=0x9b883a8) at io/qfilesystemwatcher_inotify.cpp:248
#10 0xb60c4df9 in QThreadPrivate::start (arg=0x9b883a8) at thread/qthread_unix.cpp:266
#11 0xb604ecc9 in start_thread (arg=0xae23cb70) at pthread_create.c:304
#12 0xb536c6ae in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 11 (Thread 0xab4fcb70 (LWP 28875)):
#0  0xb7710424 in __kernel_vsyscall ()
#1  0xb60534dc in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:169
#2  0xb60c59c7 in wait (this=0xa4bb7c8, mutex=0xa2a52a0, time=4294967295) at thread/qwaitcondition_unix.cpp:88
#3  QWaitCondition::wait (this=0xa4bb7c8, mutex=0xa2a52a0, time=4294967295) at thread/qwaitcondition_unix.cpp:160
#4  0xb702b030 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0xa4bb7b0, th=0xa44f098) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#5  0xb702e7dc in ThreadWeaver::WorkingHardState::waitForAvailableJob (this=0xa1f6eb8, th=0xa44f098) at ../../../threadweaver/Weaver/WorkingHardState.cpp:80
#6  0xb702a55b in ThreadWeaver::WeaverImpl::waitForAvailableJob (this=0xa4bb7b0, th=0xa44f098) at ../../../threadweaver/Weaver/WeaverImpl.cpp:356
#7  0xb702e8d2 in ThreadWeaver::WorkingHardState::applyForWork (this=0xa1f6eb8, th=0xa44f098) at ../../../threadweaver/Weaver/WorkingHardState.cpp:71
#8  0xb702b533 in ThreadWeaver::WeaverImpl::applyForWork (this=0xa4bb7b0, th=0xa44f098, previous=0x0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351
#9  0xb702e8f1 in ThreadWeaver::WorkingHardState::applyForWork (this=0xa1f6eb8, th=0xa44f098) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#10 0xb702b533 in ThreadWeaver::WeaverImpl::applyForWork (this=0xa4bb7b0, th=0xa44f098, previous=0x0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351
#11 0xb702e8f1 in ThreadWeaver::WorkingHardState::applyForWork (this=0xa1f6eb8, th=0xa44f098) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#12 0xb702b533 in ThreadWeaver::WeaverImpl::applyForWork (this=0xa4bb7b0, th=0xa44f098, previous=0xb138200) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351
#13 0xb702c95e in ThreadWeaver::ThreadRunHelper::run (this=0xab4fc2f4, parent=0xa4bb7b0, th=0xa44f098) at ../../../threadweaver/Weaver/Thread.cpp:87
#14 0xb702d07b in ThreadWeaver::Thread::run (this=0xa44f098) at ../../../threadweaver/Weaver/Thread.cpp:142
#15 0xb60c4df9 in QThreadPrivate::start (arg=0xa44f098) at thread/qthread_unix.cpp:266
#16 0xb604ecc9 in start_thread (arg=0xab4fcb70) at pthread_create.c:304
#17 0xb536c6ae in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 10 (Thread 0xa90f4b70 (LWP 28950)):
#0  0xb47b63c6 in g_main_context_release () from /lib/libglib-2.0.so.0
#1  0xb47b8473 in ?? () from /lib/libglib-2.0.so.0
#2  0xb47b8848 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#3  0xb61f559f in QEventDispatcherGlib::processEvents (this=0x9fecc90, flags=...) at kernel/qeventdispatcher_glib.cpp:417
#4  0xb61c5609 in QEventLoop::processEvents (this=0xa90f42c0, flags=) at kernel/qeventloop.cpp:149
#5  0xb61c5a8a in QEventLoop::exec (this=0xa90f42c0, flags=...) at kernel/qeventloop.cpp:201
#6  0xb60c1b7e in QThread::exec (this=0xa460e08) at thread/qthread.cpp:490
#7  0xb4e3aaa8 in KDevelop::CompletionWorkerThread::run() () from /usr/local/lib/libkdevplatformlanguage.so.3
#8  0xb60c4df9 in QThreadPrivate::start (arg=0xa460e08) at thread/qthread_unix.cpp:266
#9  0xb604ecc9 in start_thread (arg=0xa90f4b70) at pthread_create.c:304
#10 0xb536c6ae in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 9 (Thread 0xa88f3b70 (LWP 28951)):
#0  0xb60527d4 in __pthread_mutex_unlock_usercnt (mutex=0xa4334b4, decr=<value optimized out>) at pthread_mutex_unlock.c:52
#1  0xb47b64fb in g_main_context_release () from /lib/libglib-2.0.so.0
#2  0xb47b8473 in ?? () from /lib/libglib-2.0.so.0
#3  0xb47b8848 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#4  0xb61f559f in QEventDispatcherGlib::processEvents (this=0xa017d68, flags=...) at kernel/qeventdispatcher_glib.cpp:417
#5  0xb61c5609 in QEventLoop::processEvents (this=0xa88f32c0, flags=) at kernel/qeventloop.cpp:149
#6  0xb61c5a8a in QEventLoop::exec (this=0xa88f32c0, flags=...) at kernel/qeventloop.cpp:201
#7  0xb60c1b7e in QThread::exec (this=0xa94998a8) at thread/qthread.cpp:490
#8  0xb4e3aaa8 in KDevelop::CompletionWorkerThread::run() () from /usr/local/lib/libkdevplatformlanguage.so.3
#9  0xb60c4df9 in QThreadPrivate::start (arg=0xa94998a8) at thread/qthread_unix.cpp:266
#10 0xb604ecc9 in start_thread (arg=0xa88f3b70) at pthread_create.c:304
#11 0xb536c6ae in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 8 (Thread 0xa7006b70 (LWP 28952)):
#0  0xb7710424 in __kernel_vsyscall ()
#1  0xb60534dc in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:169
#2  0xb60c59c7 in wait (this=0x9b89fb8, mutex=0x9cbb330, time=4294967295) at thread/qwaitcondition_unix.cpp:88
#3  QWaitCondition::wait (this=0x9b89fb8, mutex=0x9cbb330, time=4294967295) at thread/qwaitcondition_unix.cpp:160
#4  0xb702b030 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x9b89fa0, th=0xa06bb60) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#5  0xb702e7dc in ThreadWeaver::WorkingHardState::waitForAvailableJob (this=0x9c87920, th=0xa06bb60) at ../../../threadweaver/Weaver/WorkingHardState.cpp:80
#6  0xb702a55b in ThreadWeaver::WeaverImpl::waitForAvailableJob (this=0x9b89fa0, th=0xa06bb60) at ../../../threadweaver/Weaver/WeaverImpl.cpp:356
#7  0xb702e8d2 in ThreadWeaver::WorkingHardState::applyForWork (this=0x9c87920, th=0xa06bb60) at ../../../threadweaver/Weaver/WorkingHardState.cpp:71
#8  0xb702b533 in ThreadWeaver::WeaverImpl::applyForWork (this=0x9b89fa0, th=0xa06bb60, previous=0xa3d6480) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351
#9  0xb702c95e in ThreadWeaver::ThreadRunHelper::run (this=0xa70062f4, parent=0x9b89fa0, th=0xa06bb60) at ../../../threadweaver/Weaver/Thread.cpp:87
#10 0xb702d07b in ThreadWeaver::Thread::run (this=0xa06bb60) at ../../../threadweaver/Weaver/Thread.cpp:142
#11 0xb60c4df9 in QThreadPrivate::start (arg=0xa06bb60) at thread/qthread_unix.cpp:266
#12 0xb604ecc9 in start_thread (arg=0xa7006b70) at pthread_create.c:304
#13 0xb536c6ae in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 7 (Thread 0xa6805b70 (LWP 28953)):
#0  0xb7710424 in __kernel_vsyscall ()
#1  0xb60534dc in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:169
#2  0xb60c59c7 in wait (this=0x9b89fb8, mutex=0x9cbb330, time=4294967295) at thread/qwaitcondition_unix.cpp:88
#3  QWaitCondition::wait (this=0x9b89fb8, mutex=0x9cbb330, time=4294967295) at thread/qwaitcondition_unix.cpp:160
#4  0xb702b030 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x9b89fa0, th=0x9f83c20) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#5  0xb702e7dc in ThreadWeaver::WorkingHardState::waitForAvailableJob (this=0x9c87920, th=0x9f83c20) at ../../../threadweaver/Weaver/WorkingHardState.cpp:80
#6  0xb702a55b in ThreadWeaver::WeaverImpl::waitForAvailableJob (this=0x9b89fa0, th=0x9f83c20) at ../../../threadweaver/Weaver/WeaverImpl.cpp:356
#7  0xb702e8d2 in ThreadWeaver::WorkingHardState::applyForWork (this=0x9c87920, th=0x9f83c20) at ../../../threadweaver/Weaver/WorkingHardState.cpp:71
#8  0xb702b533 in ThreadWeaver::WeaverImpl::applyForWork (this=0x9b89fa0, th=0x9f83c20, previous=0x0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351
#9  0xb702e8f1 in ThreadWeaver::WorkingHardState::applyForWork (this=0x9c87920, th=0x9f83c20) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#10 0xb702b533 in ThreadWeaver::WeaverImpl::applyForWork (this=0x9b89fa0, th=0x9f83c20, previous=0xa443688) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351
#11 0xb702c95e in ThreadWeaver::ThreadRunHelper::run (this=0xa68052f4, parent=0x9b89fa0, th=0x9f83c20) at ../../../threadweaver/Weaver/Thread.cpp:87
#12 0xb702d07b in ThreadWeaver::Thread::run (this=0x9f83c20) at ../../../threadweaver/Weaver/Thread.cpp:142
#13 0xb60c4df9 in QThreadPrivate::start (arg=0x9f83c20) at thread/qthread_unix.cpp:266
#14 0xb604ecc9 in start_thread (arg=0xa6805b70) at pthread_create.c:304
#15 0xb536c6ae in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 6 (Thread 0xa5cffb70 (LWP 28958)):
#0  0xb7710424 in __kernel_vsyscall ()
#1  0xb60534dc in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:169
#2  0xb5119877 in QTWTF::TCMalloc_PageHeap::scavengerThread (this=0xb52181a0) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:2359
#3  0xb51198c1 in QTWTF::TCMalloc_PageHeap::runScavengerThread (context=0xb52181a0) at ../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:1464
#4  0xb604ecc9 in start_thread (arg=0xa5cffb70) at pthread_create.c:304
#5  0xb536c6ae in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 5 (Thread 0xaacfbb70 (LWP 28959)):
#0  0xb7710424 in __kernel_vsyscall ()
#1  0xb60534dc in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:169
#2  0xb60c59c7 in wait (this=0xa4bb7c8, mutex=0xa2a52a0, time=4294967295) at thread/qwaitcondition_unix.cpp:88
#3  QWaitCondition::wait (this=0xa4bb7c8, mutex=0xa2a52a0, time=4294967295) at thread/qwaitcondition_unix.cpp:160
#4  0xb702b030 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0xa4bb7b0, th=0xa46a740) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#5  0xb702e7dc in ThreadWeaver::WorkingHardState::waitForAvailableJob (this=0xa1f6eb8, th=0xa46a740) at ../../../threadweaver/Weaver/WorkingHardState.cpp:80
#6  0xb702a55b in ThreadWeaver::WeaverImpl::waitForAvailableJob (this=0xa4bb7b0, th=0xa46a740) at ../../../threadweaver/Weaver/WeaverImpl.cpp:356
#7  0xb702e8d2 in ThreadWeaver::WorkingHardState::applyForWork (this=0xa1f6eb8, th=0xa46a740) at ../../../threadweaver/Weaver/WorkingHardState.cpp:71
#8  0xb702b533 in ThreadWeaver::WeaverImpl::applyForWork (this=0xa4bb7b0, th=0xa46a740, previous=0x0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351
#9  0xb702e8f1 in ThreadWeaver::WorkingHardState::applyForWork (this=0xa1f6eb8, th=0xa46a740) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#10 0xb702b533 in ThreadWeaver::WeaverImpl::applyForWork (this=0xa4bb7b0, th=0xa46a740, previous=0xb1320e0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351
#11 0xb702c95e in ThreadWeaver::ThreadRunHelper::run (this=0xaacfb2f4, parent=0xa4bb7b0, th=0xa46a740) at ../../../threadweaver/Weaver/Thread.cpp:87
#12 0xb702d07b in ThreadWeaver::Thread::run (this=0xa46a740) at ../../../threadweaver/Weaver/Thread.cpp:142
#13 0xb60c4df9 in QThreadPrivate::start (arg=0xa46a740) at thread/qthread_unix.cpp:266
#14 0xb604ecc9 in start_thread (arg=0xaacfbb70) at pthread_create.c:304
#15 0xb536c6ae in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 4 (Thread 0xa3534b70 (LWP 28960)):
#0  0xb7710424 in __kernel_vsyscall ()
#1  0xb60534dc in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:169
#2  0xb60c59c7 in wait (this=0xa4bb7c8, mutex=0xa2a52a0, time=4294967295) at thread/qwaitcondition_unix.cpp:88
#3  QWaitCondition::wait (this=0xa4bb7c8, mutex=0xa2a52a0, time=4294967295) at thread/qwaitcondition_unix.cpp:160
#4  0xb702b030 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0xa4bb7b0, th=0xa7f7ba8) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#5  0xb702e7dc in ThreadWeaver::WorkingHardState::waitForAvailableJob (this=0xa1f6eb8, th=0xa7f7ba8) at ../../../threadweaver/Weaver/WorkingHardState.cpp:80
#6  0xb702a55b in ThreadWeaver::WeaverImpl::waitForAvailableJob (this=0xa4bb7b0, th=0xa7f7ba8) at ../../../threadweaver/Weaver/WeaverImpl.cpp:356
#7  0xb702e8d2 in ThreadWeaver::WorkingHardState::applyForWork (this=0xa1f6eb8, th=0xa7f7ba8) at ../../../threadweaver/Weaver/WorkingHardState.cpp:71
#8  0xb702b533 in ThreadWeaver::WeaverImpl::applyForWork (this=0xa4bb7b0, th=0xa7f7ba8, previous=0x0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351
#9  0xb702e8f1 in ThreadWeaver::WorkingHardState::applyForWork (this=0xa1f6eb8, th=0xa7f7ba8) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#10 0xb702b533 in ThreadWeaver::WeaverImpl::applyForWork (this=0xa4bb7b0, th=0xa7f7ba8, previous=0x0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351
#11 0xb702e8f1 in ThreadWeaver::WorkingHardState::applyForWork (this=0xa1f6eb8, th=0xa7f7ba8) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#12 0xb702b533 in ThreadWeaver::WeaverImpl::applyForWork (this=0xa4bb7b0, th=0xa7f7ba8, previous=0x0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351
#13 0xb702e8f1 in ThreadWeaver::WorkingHardState::applyForWork (this=0xa1f6eb8, th=0xa7f7ba8) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#14 0xb702b533 in ThreadWeaver::WeaverImpl::applyForWork (this=0xa4bb7b0, th=0xa7f7ba8, previous=0x0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351
#15 0xb702e8f1 in ThreadWeaver::WorkingHardState::applyForWork (this=0xa1f6eb8, th=0xa7f7ba8) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#16 0xb702b533 in ThreadWeaver::WeaverImpl::applyForWork (this=0xa4bb7b0, th=0xa7f7ba8, previous=0x0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351
#17 0xb702e8f1 in ThreadWeaver::WorkingHardState::applyForWork (this=0xa1f6eb8, th=0xa7f7ba8) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#18 0xb702b533 in ThreadWeaver::WeaverImpl::applyForWork (this=0xa4bb7b0, th=0xa7f7ba8, previous=0x0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351
#19 0xb702e8f1 in ThreadWeaver::WorkingHardState::applyForWork (this=0xa1f6eb8, th=0xa7f7ba8) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#20 0xb702b533 in ThreadWeaver::WeaverImpl::applyForWork (this=0xa4bb7b0, th=0xa7f7ba8, previous=0x0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351
#21 0xb702e8f1 in ThreadWeaver::WorkingHardState::applyForWork (this=0xa1f6eb8, th=0xa7f7ba8) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#22 0xb702b533 in ThreadWeaver::WeaverImpl::applyForWork (this=0xa4bb7b0, th=0xa7f7ba8, previous=0xb099350) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351
#23 0xb702c95e in ThreadWeaver::ThreadRunHelper::run (this=0xa35342f4, parent=0xa4bb7b0, th=0xa7f7ba8) at ../../../threadweaver/Weaver/Thread.cpp:87
#24 0xb702d07b in ThreadWeaver::Thread::run (this=0xa7f7ba8) at ../../../threadweaver/Weaver/Thread.cpp:142
#25 0xb60c4df9 in QThreadPrivate::start (arg=0xa7f7ba8) at thread/qthread_unix.cpp:266
#26 0xb604ecc9 in start_thread (arg=0xa3534b70) at pthread_create.c:304
#27 0xb536c6ae in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 3 (Thread 0xa2532b70 (LWP 29035)):
#0  0xb7710424 in __kernel_vsyscall ()
#1  0xb60534dc in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:169
#2  0xb60c59c7 in wait (this=0xa4bb7c8, mutex=0xa2a52a0, time=4294967295) at thread/qwaitcondition_unix.cpp:88
#3  QWaitCondition::wait (this=0xa4bb7c8, mutex=0xa2a52a0, time=4294967295) at thread/qwaitcondition_unix.cpp:160
#4  0xb702b030 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0xa4bb7b0, th=0xa4721d0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#5  0xb702e7dc in ThreadWeaver::WorkingHardState::waitForAvailableJob (this=0xa1f6eb8, th=0xa4721d0) at ../../../threadweaver/Weaver/WorkingHardState.cpp:80
#6  0xb702a55b in ThreadWeaver::WeaverImpl::waitForAvailableJob (this=0xa4bb7b0, th=0xa4721d0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:356
#7  0xb702e8d2 in ThreadWeaver::WorkingHardState::applyForWork (this=0xa1f6eb8, th=0xa4721d0) at ../../../threadweaver/Weaver/WorkingHardState.cpp:71
#8  0xb702b533 in ThreadWeaver::WeaverImpl::applyForWork (this=0xa4bb7b0, th=0xa4721d0, previous=0xa7f675b0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351
#9  0xb702c95e in ThreadWeaver::ThreadRunHelper::run (this=0xa25322f4, parent=0xa4bb7b0, th=0xa4721d0) at ../../../threadweaver/Weaver/Thread.cpp:87
#10 0xb702d07b in ThreadWeaver::Thread::run (this=0xa4721d0) at ../../../threadweaver/Weaver/Thread.cpp:142
#11 0xb60c4df9 in QThreadPrivate::start (arg=0xa4721d0) at thread/qthread_unix.cpp:266
#12 0xb604ecc9 in start_thread (arg=0xa2532b70) at pthread_create.c:304
#13 0xb536c6ae in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 2 (Thread 0xa2d33b70 (LWP 29042)):
#0  0xb7710424 in __kernel_vsyscall ()
#1  0xb6053884 in pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_timedwait.S:236
#2  0xb60c594f in wait (this=0xa3f121c, mutex=0xa3f1218, time=30000) at thread/qwaitcondition_unix.cpp:86
#3  QWaitCondition::wait (this=0xa3f121c, mutex=0xa3f1218, time=30000) at thread/qwaitcondition_unix.cpp:160
#4  0xb60b95b3 in QThreadPoolThread::run (this=0xa3e06f8) at concurrent/qthreadpool.cpp:140
#5  0xb60c4df9 in QThreadPrivate::start (arg=0xa3e06f8) at thread/qthread_unix.cpp:266
#6  0xb604ecc9 in start_thread (arg=0xa2d33b70) at pthread_create.c:304
#7  0xb536c6ae in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 1 (Thread 0xb2e4b710 (LWP 28845)):
[KCrash Handler]
#7  0x00720069 in ?? ()
#8  0xb4ee38a1 in KDevelop::ProjectFolderItem::rename(QString const&) () from /usr/local/lib/libkdevplatformproject.so.3
#9  0xad008acf in ProjectManagerViewPlugin::renameItemFromContextMenu() () from /usr/local/lib/kde4/kdevprojectmanagerview.so
#10 0xad00afe3 in ProjectManagerViewPlugin::qt_metacall(QMetaObject::Call, int, void**) () from /usr/local/lib/kde4/kdevprojectmanagerview.so
#11 0xb61cc8ca in QMetaObject::metacall (object=0x9e00cb0, cl=184410792, idx=0, argv=0x9e00cb0) at kernel/qmetaobject.cpp:237
#12 0xb61df6ad in QMetaObject::activate (sender=0xae93168, m=0xb6029370, local_signal_index=1, argv=0xa3b6f140) at kernel/qobject.cpp:3280
#13 0xb56a2f99 in QAction::triggered (this=0xae93168, _t1=false) at .moc/release-shared/moc_qaction.cpp:263
#14 0xb56a48dc in QAction::activate (this=0xae93168, event=QAction::Trigger) at kernel/qaction.cpp:1256
#15 0xb5b707ef in QMenuPrivate::activateCausedStack (this=0xb141ab0, causedStack=..., action=0xae93168, action_e=QAction::Trigger, self=true) at widgets/qmenu.cpp:993
#16 0xb5b76a4b in QMenuPrivate::activateAction (this=0xb141ab0, action=0xae93168, action_e=QAction::Trigger, self=<value optimized out>) at widgets/qmenu.cpp:1085
#17 0xb5b775e0 in QMenu::mouseReleaseEvent (this=0xbf93f768, e=0xbf93eee0) at widgets/qmenu.cpp:2301
#18 0xb6648fe5 in KMenu::mouseReleaseEvent (this=0xbf93f768, e=0xbf93eee0) at ../../kdeui/widgets/kmenu.cpp:471
#19 0xb5708e08 in QWidget::event (this=0xbf93f768, event=0xbf93eee0) at kernel/qwidget.cpp:8187
#20 0xb5b7902f in QMenu::event (this=0xbf93f768, e=0xbf93eee0) at widgets/qmenu.cpp:2410
#21 0xb56aafdc in QApplicationPrivate::notify_helper (this=0x99aac20, receiver=0xbf93f768, e=0xbf93eee0) at kernel/qapplication.cpp:4396
#22 0xb56b1c2e in QApplication::notify (this=0xbf940cb8, receiver=0xbf93f768, e=0xbf93eee0) at kernel/qapplication.cpp:3959
#23 0xb654e68a in KApplication::notify (this=0xbf940cb8, receiver=0xbf93f768, event=0xbf93eee0) at ../../kdeui/kernel/kapplication.cpp:310
#24 0x0804bbcc in KDevelopApplication::notify(QObject*, QEvent*) ()
#25 0xb61c6b3b in QCoreApplication::notifyInternal (this=0xbf940cb8, receiver=0xbf93f768, event=0xbf93eee0) at kernel/qcoreapplication.cpp:732
#26 0xb56b0094 in sendEvent (receiver=0xbf93f768, event=0xbf93eee0, alienWidget=0x0, nativeWidget=0xbf93f768, buttonDown=0xb60453c0, lastMouseReceiver=..., spontaneous=true) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#27 QApplicationPrivate::sendMouseEvent (receiver=0xbf93f768, event=0xbf93eee0, alienWidget=0x0, nativeWidget=0xbf93f768, buttonDown=0xb60453c0, lastMouseReceiver=..., spontaneous=true) at kernel/qapplication.cpp:3058
#28 0xb573f261 in QETWidget::translateMouseEvent (this=0xbf93f768, event=0xbf93f3fc) at kernel/qapplication_x11.cpp:4337
#29 0xb573e151 in QApplication::x11ProcessEvent (this=0xbf940cb8, event=0xbf93f3fc) at kernel/qapplication_x11.cpp:3414
#30 0xb576d36a in x11EventSourceDispatch (s=0x99adde8, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#31 0xb47b4855 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#32 0xb47b8668 in ?? () from /lib/libglib-2.0.so.0
#33 0xb47b8848 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#34 0xb61f5565 in QEventDispatcherGlib::processEvents (this=0x998e9e0, flags=...) at kernel/qeventdispatcher_glib.cpp:415
#35 0xb576cbe5 in QGuiEventDispatcherGlib::processEvents (this=0x998e9e0, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#36 0xb61c5609 in QEventLoop::processEvents (this=0xbf93f6f0, flags=) at kernel/qeventloop.cpp:149
#37 0xb61c5a8a in QEventLoop::exec (this=0xbf93f6f0, flags=...) at kernel/qeventloop.cpp:201
#38 0xb5b73efe in QMenu::exec (this=0xbf93f768, p=..., action=0x0) at widgets/qmenu.cpp:2054
#39 0xad00f169 in ProjectTreeView::popupContextMenu(QPoint const&) () from /usr/local/lib/kde4/kdevprojectmanagerview.so
#40 0xad00f56d in ProjectTreeView::qt_metacall(QMetaObject::Call, int, void**) () from /usr/local/lib/kde4/kdevprojectmanagerview.so
#41 0xb61cc8ca in QMetaObject::metacall (object=0xa0650e8, cl=184410792, idx=0, argv=0xa0650e8) at kernel/qmetaobject.cpp:237
#42 0xb61df6ad in QMetaObject::activate (sender=0xa0650e8, m=0xb602a308, local_signal_index=0, argv=0xa3b6f140) at kernel/qobject.cpp:3280
#43 0xb56fbb83 in QWidget::customContextMenuRequested (this=0xa0650e8, _t1=...) at .moc/release-shared/moc_qwidget.cpp:360
#44 0xb5709797 in QWidget::event (this=0xa0650e8, event=0xbf940268) at kernel/qwidget.cpp:8357
#45 0xb5b2a763 in QFrame::event (this=0xa0650e8, e=0xbf940268) at widgets/qframe.cpp:557
#46 0xb5bc7a82 in QAbstractScrollArea::viewportEvent (this=0xafde2a8, e=0x2) at widgets/qabstractscrollarea.cpp:1043
#47 0xb5c840f7 in QAbstractItemView::viewportEvent (this=0xa0650e8, event=0xbf940268) at itemviews/qabstractitemview.cpp:1619
#48 0xb5cc6883 in QTreeView::viewportEvent (this=0xa0650e8, event=0xbf940268) at itemviews/qtreeview.cpp:1256
#49 0xb5bca4d5 in viewportEvent (this=0xa064ff8, o=0xa064fb0, e=0xbf940268) at widgets/qabstractscrollarea_p.h:100
#50 QAbstractScrollAreaFilter::eventFilter (this=0xa064ff8, o=0xa064fb0, e=0xbf940268) at widgets/qabstractscrollarea_p.h:116
#51 0xb61c629a in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=0x99aac20, receiver=0xa064fb0, event=0xbf940268) at kernel/qcoreapplication.cpp:847
#52 0xb56aafb9 in QApplicationPrivate::notify_helper (this=0x99aac20, receiver=0xa064fb0, e=0xbf940268) at kernel/qapplication.cpp:4392
#53 0xb56b1458 in QApplication::notify (this=0xbf940cb8, receiver=0xa064fb0, e=0xbf940268) at kernel/qapplication.cpp:4038
#54 0xb654e68a in KApplication::notify (this=0xbf940cb8, receiver=0xa064fb0, event=0xbf940268) at ../../kdeui/kernel/kapplication.cpp:310
#55 0x0804bbcc in KDevelopApplication::notify(QObject*, QEvent*) ()
#56 0xb61c6b3b in QCoreApplication::notifyInternal (this=0xbf940cb8, receiver=0xa064fb0, event=0xbf940268) at kernel/qcoreapplication.cpp:732
#57 0xb574362e in QCoreApplication::sendSpontaneousEvent (receiver=0xa064fb0, event=0x2) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:218
#58 0xb573ed7c in QETWidget::translateMouseEvent (this=0x9fa6b88, event=0xbf94075c) at kernel/qapplication_x11.cpp:4408
#59 0xb573e151 in QApplication::x11ProcessEvent (this=0xbf940cb8, event=0xbf94075c) at kernel/qapplication_x11.cpp:3414
#60 0xb576d36a in x11EventSourceDispatch (s=0x99adde8, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#61 0xb47b4855 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#62 0xb47b8668 in ?? () from /lib/libglib-2.0.so.0
#63 0xb47b8848 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#64 0xb61f5565 in QEventDispatcherGlib::processEvents (this=0x998e9e0, flags=...) at kernel/qeventdispatcher_glib.cpp:415
#65 0xb576cbe5 in QGuiEventDispatcherGlib::processEvents (this=0x998e9e0, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#66 0xb61c5609 in QEventLoop::processEvents (this=0xbf940a54, flags=) at kernel/qeventloop.cpp:149
#67 0xb61c5a8a in QEventLoop::exec (this=0xbf940a54, flags=...) at kernel/qeventloop.cpp:201
#68 0xb61ca00f in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1009
#69 0xb56a9e07 in QApplication::exec () at kernel/qapplication.cpp:3672
#70 0x08053215 in main ()

Reported using DrKonqi
Comment 1 Chaos A.D. 2010-11-12 09:47:22 UTC
I use CMake project manager.
It crashes after displaying diff in CMakeLists.txt, and I press OK.
Comment 2 Milian Wolff 2010-11-12 13:35:37 UTC
is this the most recent kdevelop master? can someone reproduce?
Comment 3 Chaos A.D. 2010-11-13 12:16:01 UTC
Yes, i'm currently on the top of master.
It is 100% reproducible for me, but I haven't much time to debug it myself.

Though, i noticed that when we returning from 
project()->projectFileManager()->renameFolder(this, dest) [projectmodel.cpp:526],
subsequent call to setUrl(dest) is crashed. Perhaps, due to deleted this pointer, since CMakeManager receives notifications from directory watcher from inise of  ApplyChangesWidget::exec() [cmakemanager.cpp:1459], and, probably, rebuild the project item tree in void CMakeManager::dirtyFile(const QString & dirty) [cmakemanager.cpp:766].

Please, check this out :)
Comment 4 Milian Wolff 2010-11-13 12:32:20 UTC
now I had the time to try it out and could confirm it.

Aleix, can you please fix this and write unit tests? This is broken far too often imo...
Comment 5 Milian Wolff 2010-11-13 12:53:03 UTC
part of the valgrind log:

==14805== Invalid read of size 8
==14805==    at 0x84ABB0D: QString::operator=(QString const&) (in /usr/lib/libQtCore.so.4.7.1)
==14805==    by 0xB46F04A: KDevelop::ProjectBaseItem::setText(QString const&) (projectmodel.cpp:275)
==14805==    by 0xB46FCC5: KDevelop::ProjectBaseItem::setUrl(KUrl const&) (projectmodel.cpp:363)
==14805==    by 0xB470675: KDevelop::ProjectFolderItem::rename(QString const&) (projectmodel.cpp:528)
==14805==    by 0x3542C320: ProjectManagerViewPlugin::renameItemFromContextMenu() (projectmanagerviewplugin.cpp:522)
==14805==    by 0x3542CC4C: ProjectManagerViewPlugin::qt_metacall(QMetaObject::Call, int, void**) (projectmanagerviewplugin.moc:126)
==14805==    by 0x856433E: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (in /usr/lib/libQtCore.so.4.7.1)
==14805==    by 0x8C4FC41: QAction::triggered(bool) (in /usr/lib/libQtGui.so.4.7.1)
==14805==    by 0x8C4FE39: QAction::activate(QAction::ActionEvent) (in /usr/lib/libQtGui.so.4.7.1)
==14805==    by 0x908C2B2: ??? (in /usr/lib/libQtGui.so.4.7.1)
==14805==    by 0x9092249: ??? (in /usr/lib/libQtGui.so.4.7.1)
==14805==    by 0x7E38E9C: KMenu::mouseReleaseEvent(QMouseEvent*) (in /usr/lib/libkdeui.so.5.5.0)
==14805==    by 0x8CA7977: QWidget::event(QEvent*) (in /usr/lib/libQtGui.so.4.7.1)
==14805==    by 0x909344A: QMenu::event(QEvent*) (in /usr/lib/libQtGui.so.4.7.1)
==14805==    by 0x8C562B3: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib/libQtGui.so.4.7.1)
==14805==    by 0x8C5B649: QApplication::notify(QObject*, QEvent*) (in /usr/lib/libQtGui.so.4.7.1)
==14805==    by 0x7D69225: KApplication::notify(QObject*, QEvent*) (in /usr/lib/libkdeui.so.5.5.0)
==14805==    by 0x40528B: KDevelopApplication::notify(QObject*, QEvent*) (main.cpp:90)
==14805==    by 0x854EEBB: QCoreApplication::notifyInternal(QObject*, QEvent*) (in /usr/lib/libQtCore.so.4.7.1)
==14805==    by 0x8C572B4: QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) (in /usr/lib/libQtGui.so.4.7.1)
==14805==    by 0x8CD5BC3: ??? (in /usr/lib/libQtGui.so.4.7.1)
==14805==    by 0x8CD4028: QApplication::x11ProcessEvent(_XEvent*) (in /usr/lib/libQtGui.so.4.7.1)
==14805==    by 0x8CFB591: ??? (in /usr/lib/libQtGui.so.4.7.1)
==14805==    by 0xF4B8BF2: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.2600.0)
==14805==    by 0xF4B93CF: ??? (in /usr/lib/libglib-2.0.so.0.2600.0)
==14805==  Address 0x158be900 is 32 bytes inside a block of size 72 free'd
==14805==    at 0x4C23F8E: operator delete(void*) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==14805==    by 0xB46E48E: KDevelop::ProjectBaseItem::~ProjectBaseItem() (projectmodel.cpp:152)
==14805==    by 0xB470255: KDevelop::ProjectFolderItem::~ProjectFolderItem() (projectmodel.cpp:475)
==14805==    by 0x2073B873: KDevelop::ProjectBuildFolderItem::~ProjectBuildFolderItem() (in /home/development/projects/compiled/kde4/lib/kde4/kdevcmakemanager.so)
==14805==    by 0x2073D767: CMakeFolderItem::~CMakeFolderItem() (in /home/development/projects/compiled/kde4/lib/kde4/kdevcmakemanager.so)
==14805==    by 0x2073D799: CMakeFolderItem::~CMakeFolderItem() (cmakemodelitems.h:66)
==14805==    by 0x207558DD: void qDeleteAll<QList<KDevelop::ProjectBaseItem*>::const_iterator>(QList<KDevelop::ProjectBaseItem*>::const_iterator, QList<KDevelop::ProjectBaseItem*>::const_iterator) (qalgorithms.h:322)
==14805==    by 0x2075013C: void qDeleteAll<QList<KDevelop::ProjectBaseItem*> >(QList<KDevelop::ProjectBaseItem*> const&) (qalgorithms.h:330)
==14805==    by 0x20743F7E: CMakeManager::deletedWatched(QString const&) (cmakemanager.cpp:760)
==14805==    by 0x2074A402: CMakeManager::qt_metacall(QMetaObject::Call, int, void**) (cmakemanager.moc:100)
==14805==    by 0x856433E: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (in /usr/lib/libQtCore.so.4.7.1)
==14805==    by 0x4F330E4: KDirWatch::deleted(QString const&) (in /usr/lib/libkdecore.so.5.5.0)
==14805==    by 0x4F3312F: KDirWatch::setDeleted(QString const&) (in /usr/lib/libkdecore.so.5.5.0)
==14805==    by 0x4F33220: KDirWatch::qt_metacall(QMetaObject::Call, int, void**) (in /usr/lib/libkdecore.so.5.5.0)
==14805==    by 0x8563199: QObject::event(QEvent*) (in /usr/lib/libQtCore.so.4.7.1)
==14805==    by 0x8C562B3: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib/libQtGui.so.4.7.1)
==14805==    by 0x8C5ADC9: QApplication::notify(QObject*, QEvent*) (in /usr/lib/libQtGui.so.4.7.1)
==14805==    by 0x7D69225: KApplication::notify(QObject*, QEvent*) (in /usr/lib/libkdeui.so.5.5.0)
==14805==    by 0x40528B: KDevelopApplication::notify(QObject*, QEvent*) (main.cpp:90)
==14805==    by 0x854EEBB: QCoreApplication::notifyInternal(QObject*, QEvent*) (in /usr/lib/libQtCore.so.4.7.1)
==14805==    by 0x85526E4: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (in /usr/lib/libQtCore.so.4.7.1)
==14805==    by 0x8579DB2: ??? (in /usr/lib/libQtCore.so.4.7.1)
==14805==    by 0xF4B8BF2: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.2600.0)
==14805==    by 0xF4B93CF: ??? (in /usr/lib/libglib-2.0.so.0.2600.0)
==14805==    by 0xF4B966C: g_main_context_iteration (in /usr/lib/libglib-2.0.so.0.2600.0)
Comment 6 Valentin Rusu 2010-11-17 23:36:33 UTC
Created attachment 53508 [details]
New crash information added by DrKonqi

kdevelop (4.1.0) on KDE Platform 4.5.3 (KDE 4.5.3) using Qt 4.7.0

This crash occured just after clikcing the OK button of the rename folder dialog, inside an existing project.

-- Backtrace (Reduced):
#8  0xb5b20889 in KDevelop::ProjectFolderItem::rename(QString const&) () from /usr/lib/libkdevplatformproject.so.2
[...]
[...]
[...]
[...]
#13 0xb649b0ad in QAction::triggered (this=0xa026508, _t1=false) at .moc/release-shared/moc_qaction.cpp:263
#14 0xb649b34b in QAction::activate (this=0xa026508, event=QAction::Trigger) at kernel/qaction.cpp:1256
#15 0xb694a1f5 in QMenuPrivate::activateCausedStack (this=0x9ffaa40, causedStack=..., action=0xa026508, action_e=QAction::Trigger, self=true) at widgets/qmenu.cpp:993
#16 0xb6950df7 in QMenuPrivate::activateAction (this=0x9ffaa40, action=0xa026508, action_e=QAction::Trigger, self=true) at widgets/qmenu.cpp:1085
Comment 7 Aleix Pol 2010-11-25 02:35:01 UTC
commit 9453575c70b5337984c792a2477971874c84dd3f
branch master
Author: Aleix Pol <aleixpol@kde.org>
Date:   Thu Nov 25 02:31:28 2010 +0100

    Make the build tool responsible for renaming the items when rename is triggered (it was already being done, but twice in abstractfilemanagerplugin).
    
    BUG: 256660

diff --git a/project/projectmodel.cpp b/project/projectmodel.cpp
index d609406..1bc5189 100644
--- a/project/projectmodel.cpp
+++ b/project/projectmodel.cpp
@@ -481,6 +481,8 @@ void ProjectFolderItem::setUrl( const KUrl& url )
     KUrl copy(url);
     copy.adjustPath(KUrl::AddTrailingSlash);
     ProjectBaseItem::setUrl(copy);
+    
+    propagateRename(url);
 }
 
 ProjectFolderItem *ProjectFolderItem::folder() const
@@ -498,16 +500,18 @@ QString ProjectFolderItem::folderName() const
     return url().fileName();
 }
 
-void propagateRename( const KDevelop::ProjectFolderItem* item, const KUrl& newBase)
+void ProjectFolderItem::propagateRename(const KUrl& newBase) const
 {
     KUrl url = newBase;
     url.addPath("dummy");
-    foreach( KDevelop::ProjectBaseItem* child, item->children() )
+    foreach( KDevelop::ProjectBaseItem* child, children() )
     {
         url.setFileName( child->text() );
         child->setUrl( url );
-        if ( child->folder() ) {
-            propagateRename( child->folder(), url );
+        
+        const ProjectFolderItem* folder = child->folder();
+        if ( folder ) {
+            folder->propagateRename( url );
         }
     }
 }
@@ -525,10 +529,9 @@ ProjectBaseItem::RenameStatus ProjectFolderItem::rename(const QString& newname)
         {
             if( !project() || project()->projectFileManager()->renameFolder(this, dest) )
             {
-                setUrl( dest );
-                propagateRename(this, dest);
                 return ProjectBaseItem::RenameOk;
-            } else
+            }
+            else
             {
                 return ProjectBaseItem::ProjectManagerRenameFailed;
             }
@@ -613,9 +616,9 @@ ProjectBaseItem::RenameStatus ProjectFileItem::rename(const QString& newname)
         {
             if( !project() || project()->projectFileManager()->renameFile(this, dest) )
             {
-                setUrl( dest );
                 return ProjectBaseItem::RenameOk;
-            } else
+            }
+            else
             {
                 return ProjectBaseItem::ProjectManagerRenameFailed;
             }
diff --git a/project/projectmodel.h b/project/projectmodel.h
index f247b1a..4ae32fb 100644
--- a/project/projectmodel.h
+++ b/project/projectmodel.h
@@ -232,6 +232,8 @@ public:
     
     virtual QString iconName() const;
     virtual RenameStatus rename(const QString& newname);
+    
+    void propagateRename( const KUrl& newBase ) const;
 };
Comment 8 Aleix Pol 2010-11-25 02:37:48 UTC
commit bfbab5b8d5fff508986715b10ba4cdfd0e85cca1
branch 1.1
Author: Aleix Pol <aleixpol@kde.org>
Date:   Thu Nov 25 02:31:28 2010 +0100

    Make the build tool responsible for renaming the items when rename is triggered (it was already being done, but twice in abstractfilemanagerplugin).
    
    BUG: 256660

diff --git a/project/projectmodel.cpp b/project/projectmodel.cpp
index 3002fb0..5e3f6e4 100644
--- a/project/projectmodel.cpp
+++ b/project/projectmodel.cpp
@@ -479,6 +479,8 @@ void ProjectFolderItem::setUrl( const KUrl& url )
     KUrl copy(url);
     copy.adjustPath(KUrl::AddTrailingSlash);
     ProjectBaseItem::setUrl(copy);
+    
+    propagateRename(url);
 }
 
 ProjectFolderItem *ProjectFolderItem::folder() const
@@ -496,16 +498,18 @@ QString ProjectFolderItem::folderName() const
     return url().fileName();
 }
 
-void propagateRename( const KDevelop::ProjectFolderItem* item, const KUrl& newBase)
+void ProjectFolderItem::propagateRename(const KUrl& newBase) const
 {
     KUrl url = newBase;
     url.addPath("dummy");
-    foreach( KDevelop::ProjectBaseItem* child, item->children() )
+    foreach( KDevelop::ProjectBaseItem* child, children() )
     {
         url.setFileName( child->text() );
         child->setUrl( url );
-        if ( child->folder() ) {
-            propagateRename( child->folder(), url );
+        
+        const ProjectFolderItem* folder = child->folder();
+        if ( folder ) {
+            folder->propagateRename( url );
         }
     }
 }
@@ -523,10 +527,9 @@ ProjectBaseItem::RenameStatus ProjectFolderItem::rename(const QString& newname)
         {
             if( !project() || project()->projectFileManager()->renameFolder(this, dest) )
             {
-                setUrl( dest );
-                propagateRename(this, dest);
                 return ProjectBaseItem::RenameOk;
-            } else
+            }
+            else
             {
                 return ProjectBaseItem::ProjectManagerRenameFailed;
             }
@@ -611,9 +614,9 @@ ProjectBaseItem::RenameStatus ProjectFileItem::rename(const QString& newname)
         {
             if( !project() || project()->projectFileManager()->renameFile(this, dest) )
             {
-                setUrl( dest );
                 return ProjectBaseItem::RenameOk;
-            } else
+            }
+            else
             {
                 return ProjectBaseItem::ProjectManagerRenameFailed;
             }
diff --git a/project/projectmodel.h b/project/projectmodel.h
index f247b1a..4ae32fb 100644
--- a/project/projectmodel.h
+++ b/project/projectmodel.h
@@ -232,6 +232,8 @@ public:
     
     virtual QString iconName() const;
     virtual RenameStatus rename(const QString& newname);
+    
+    void propagateRename( const KUrl& newBase ) const;
 };
Comment 9 Chaos A.D. 2010-12-07 10:54:26 UTC
Created attachment 54234 [details]
New crash information added by DrKonqi

kdevelop (4.1.60) on KDE Platform 4.5.1 (KDE 4.5.1) using Qt 4.7.0

After creating new folder, it doesn't appear in the project tree, even after several refreshes of parent folder or whole tree. Then, when I tried to close and open project again, KDevelop crashes with attached backtrace.

-- Backtrace (Reduced):
#10 0xb500aabd in KDevelop::ProjectFolderItem::setUrl(KUrl const&) () from /usr/local/lib/libkdevplatformproject.so.3
#12 0xb500aabd in KDevelop::ProjectFolderItem::setUrl(KUrl const&) () from /usr/local/lib/libkdevplatformproject.so.3
#14 0xb500aabd in KDevelop::ProjectFolderItem::setUrl(KUrl const&) () from /usr/local/lib/libkdevplatformproject.so.3
#15 0xaa266122 in CMakeManager::reloadFiles(KDevelop::ProjectFolderItem*) () from /usr/local/lib/kde4/kdevcmakemanager.so
#16 0xaa2665a3 in CMakeManager::parse(KDevelop::ProjectFolderItem*) () from /usr/local/lib/kde4/kdevcmakemanager.so
Comment 10 Milian Wolff 2010-12-07 12:57:45 UTC
Chaos: if you can reproduce this, please run kdevelop through valgrind:

valgrind --track-origins=yes --num-callers=25 kdevelop

and attach the output that produces.
Comment 11 Aleix Pol 2010-12-15 02:56:02 UTC
Is this still happening? 
Your problem description sounds more like there's some binary incompatibility than an actual bug.

Please reopen if you think it's still wrong.
Comment 12 Valentin Rusu 2010-12-15 21:42:53 UTC
Created attachment 54600 [details]
New crash when renaming folder

How to reproduce this crash in KDevelop 4.1.60 :
- in an existing project managed by CMake plugin, create a folder named test
- confirm changes in the wizard that appears,
- open the CMakeLists.txt and add en empty line (not shure that this step is important, though)
- go to the project explorer and choose "rename" from the "test" folder contextual menu,
- enter name "test1" then click ok to get the crash.
Comment 13 Valentin Rusu 2010-12-15 21:46:45 UTC
On Wednesday, December 15, 2010 02:56:10 AM Aleix Pol wrote:
> https://bugs.kde.org/show_bug.cgi?id=256660
> 
> 
> Aleix Pol <aleixpol@gmail.com> changed:
> 
>            What    |Removed                     |Added
> ----------------------------------------------------------------------------
> Status|REOPENED                    |RESOLVED
>                  CC|                            |aleixpol@gmail.com
>          Resolution|                            |FIXED
> 
> 

I'm trying to reopen this bug, but that seems impossible for me.

> 
> 
> --- Comment #11 from Aleix Pol <aleixpol gmail com>  2010-12-15 02:56:02 ---
> Is this still happening?
> Your problem description sounds more like there's some binary
> incompatibility than an actual bug.
> 
> Please reopen if you think it's still wrong.

Please see the report I attached. The bug is still reproducing on my box.
Comment 14 Milian Wolff 2010-12-20 20:14:53 UTC
cannot reproduce - are you sure you got the latest code (did you update to the git.kde.org location - gitorious was abandoned!).

anyhow, if you can reproduce with current code please open a new report so we can track this properly. Also add a valgrind log for the crash then:

valgrind --track-origins=yes --num-callers=50 kdevelop

closing this one for now.