Application: digikam (4.0.0-beta1) KDE Platform Version: 4.11.2 Qt Version: 4.8.2 Operating System: Linux 3.2.0-55-generic i686 Distribution: Ubuntu 12.04.3 LTS -- Information about the crash: Tagging some face then go to tag manager and test tag manager UI... -- Backtrace: Application: digiKam (digikam), signal: Segmentation fault Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1". [Current thread is 1 (Thread 0xb5198780 (LWP 22480))] Thread 7 (Thread 0xb2de1b40 (LWP 22481)): #0 0x00cd5416 in __kernel_vsyscall () #1 0x0062796b in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:169 #2 0x031316ec in __pthread_cond_wait (cond=0x8f23c80, mutex=0x8f23c68) at forward.c:139 #3 0x025d6420 in wait (time=4294967295, this=0x8f23c68) at thread/qwaitcondition_unix.cpp:86 #4 QWaitCondition::wait (this=0x8f23bdc, mutex=0x8f23bd8, time=4294967295) at thread/qwaitcondition_unix.cpp:158 #5 0x0820b29a in Digikam::ScanController::run (this=0x8eeaba8) at /home/eric/digikamgit2/dk2/digikam/database/scancontroller.cpp:725 #6 0x025d5eb0 in QThreadPrivate::start (arg=0x8eeaba8) at thread/qthread_unix.cpp:307 #7 0x00623d4c in start_thread (arg=0xb2de1b40) at pthread_create.c:308 #8 0x03123dde in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130 Thread 6 (Thread 0xb23ffb40 (LWP 22482)): #0 0x00625e13 in __pthread_mutex_lock (mutex=0xb1a00550) at pthread_mutex_lock.c:113 #1 0x03131904 in pthread_mutex_lock (mutex=0xb1a00550) at forward.c:182 #2 0x0760e3f0 in g_mutex_lock () from /lib/i386-linux-gnu/libglib-2.0.so.0 #3 0x075cf04c in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0 #4 0x075cf1c1 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0 #5 0x0271dde7 in QEventDispatcherGlib::processEvents (this=0xb1a00468, flags=...) at kernel/qeventdispatcher_glib.cpp:426 #6 0x026e96ad in QEventLoop::processEvents (this=0xb23ff200, flags=...) at kernel/qeventloop.cpp:149 #7 0x026e9949 in QEventLoop::exec (this=0xb23ff200, flags=...) at kernel/qeventloop.cpp:204 #8 0x025d2a1c in QThread::exec (this=0x8f26228) at thread/qthread.cpp:501 #9 0x026c6cfd in QInotifyFileSystemWatcherEngine::run (this=0x8f26228) at io/qfilesystemwatcher_inotify.cpp:248 #10 0x025d5eb0 in QThreadPrivate::start (arg=0x8f26228) at thread/qthread_unix.cpp:307 #11 0x00623d4c in start_thread (arg=0xb23ffb40) at pthread_create.c:308 #12 0x03123dde in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130 Thread 5 (Thread 0xb19ffb40 (LWP 22689)): #0 0x00cd5416 in __kernel_vsyscall () #1 0x0062796b in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:169 #2 0x031316ec in __pthread_cond_wait (cond=0x9062250, mutex=0x9062238) at forward.c:139 #3 0x025d6420 in wait (time=4294967295, this=0x9062238) at thread/qwaitcondition_unix.cpp:86 #4 QWaitCondition::wait (this=0x90768c8, mutex=0x90768c4, time=4294967295) at thread/qwaitcondition_unix.cpp:158 #5 0x059dd748 in Digikam::ParkingThread::run (this=0x90768b8) at /home/eric/digikamgit2/dk2/libs/threads/threadmanager.cpp:119 #6 0x025d5eb0 in QThreadPrivate::start (arg=0x90768b8) at thread/qthread_unix.cpp:307 #7 0x00623d4c in start_thread (arg=0xb19ffb40) at pthread_create.c:308 #8 0x03123dde in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130 Thread 4 (Thread 0xa9c50b40 (LWP 28826)): #0 __libc_enable_asynccancel () at ../nptl/cancellation.c:44 #1 0x03115678 in __GI___poll (fds=0xb2435008, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:85 #2 0x075dca3b in g_poll () from /lib/i386-linux-gnu/libglib-2.0.so.0 #3 0x075cf06e in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0 #4 0x075cf1c1 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0 #5 0x0271dde7 in QEventDispatcherGlib::processEvents (this=0xb247b0a8, flags=...) at kernel/qeventdispatcher_glib.cpp:426 #6 0x026e96ad in QEventLoop::processEvents (this=0xa9c50210, flags=...) at kernel/qeventloop.cpp:149 #7 0x026e9949 in QEventLoop::exec (this=0xa9c50210, flags=...) at kernel/qeventloop.cpp:204 #8 0x059dccb4 in Digikam::WorkerObjectRunnable::run (this=0xc627000) at /home/eric/digikamgit2/dk2/libs/threads/threadmanager.cpp:196 #9 0x025c846b in QThreadPoolThread::run (this=0xa034ce0) at concurrent/qthreadpool.cpp:107 #10 0x025d5eb0 in QThreadPrivate::start (arg=0xa034ce0) at thread/qthread_unix.cpp:307 #11 0x00623d4c in start_thread (arg=0xa9c50b40) at pthread_create.c:308 #12 0x03123dde in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130 Thread 3 (Thread 0xa944fb40 (LWP 28907)): #0 0x0735164d in std::deque<char, std::allocator<char> >::push_back (this=0xb24e04a0, __x=@0x86af6fb9: 10 '\n') at /usr/include/c++/4.6/bits/stl_deque.h:1367 #1 0x07351469 in std::back_insert_iterator<std::deque<char, std::allocator<char> > >::operator= (this=0xa944d8cc, __value=@0x86af6fb9: 10 '\n') at /usr/include/c++/4.6/bits/stl_iterator.h:425 #2 0x0735103f in std::__copy_move<false, false, std::random_access_iterator_tag>::__copy_m<char const*, std::back_insert_iterator<std::deque<char, std::allocator<char> > > > (__first=0x86af6fb9 "\n", __last=0x86af6fba "", __result=...) at /usr/include/c++/4.6/bits/stl_algobase.h:329 #3 0x0735092c in std::__copy_move_a<false, char const*, std::back_insert_iterator<std::deque<char, std::allocator<char> > > > (__first=0x86af6f70 " 2.08116556e-03, 7.28407968e-03, 1.04058278e-03, 3.12174833e-03,\n", __last=0x86af6fba "", __result=...) at /usr/include/c++/4.6/bits/stl_algobase.h:384 #4 0x0734fec3 in std::__copy_move_a2<false, char const*, std::back_insert_iterator<std::deque<char, std::allocator<char> > > > (__first=0x86af6f70 " 2.08116556e-03, 7.28407968e-03, 1.04058278e-03, 3.12174833e-03,\n", __last=0x86af6fba "", __result=...) at /usr/include/c++/4.6/bits/stl_algobase.h:422 #5 0x0734f511 in std::copy<char const*, std::back_insert_iterator<std::deque<char, std::allocator<char> > > > (__first=0x86af6f70 " 2.08116556e-03, 7.28407968e-03, 1.04058278e-03, 3.12174833e-03,\n", __last=0x86af6fba "", __result=...) at /usr/include/c++/4.6/bits/stl_algobase.h:454 #6 0x0732e6cc in icvPuts (fs=0xb240f410, str=0x86af6f70 " 2.08116556e-03, 7.28407968e-03, 1.04058278e-03, 3.12174833e-03,\n") at /home/eric/opencv-2-4-5-SH/OpenCV/opencv-2.4.5/modules/core/src/persistence.cpp:279 #7 0x0732f363 in icvFSFlush (fs=0xb240f410) at /home/eric/opencv-2-4-5-SH/OpenCV/opencv-2.4.5/modules/core/src/persistence.cpp:529 #8 0x07333248 in icvYMLWrite (fs=0xb240f410, key=0x0, data=0xa944e00c "0.") at /home/eric/opencv-2-4-5-SH/OpenCV/opencv-2.4.5/modules/core/src/persistence.cpp:1498 #9 0x0733da05 in cvWriteRawData (fs=0xb240f410, _data=0x8e800020, len=0, dt=0xa944e18c "1f") at /home/eric/opencv-2-4-5-SH/OpenCV/opencv-2.4.5/modules/core/src/persistence.cpp:3200 #10 0x0734011b in icvWriteMat (fs=0xb240f410, name=0x0, struct_ptr=0xa944e3f4) at /home/eric/opencv-2-4-5-SH/OpenCV/opencv-2.4.5/modules/core/src/persistence.cpp:3547 #11 0x0734b64c in cvWrite (fs=0xb240f410, name=0x0, ptr=0xa944e3f4, attributes=...) at /home/eric/opencv-2-4-5-SH/OpenCV/opencv-2.4.5/modules/core/src/persistence.cpp:5026 #12 0x0734e9d4 in cv::write (fs=..., name=..., value=...) at /home/eric/opencv-2-4-5-SH/OpenCV/opencv-2.4.5/modules/core/src/persistence.cpp:5493 #13 0x003c3e14 in KFaceIface::LBPHFaceModel::setHistograms(QList<KFaceIface::OpenCVMatData> const&, QList<KFaceIface::LBPHistogramMetadata> const&) () from /usr/lib/libkface.so.2 #14 0x003fa81a in KFaceIface::TrainingDB::lbphFaceModel() () from /usr/lib/libkface.so.2 #15 0x003c734e in KFaceIface::OpenCVLBPHFaceRecognizer::train(std::vector<cv::Mat, std::allocator<cv::Mat> > const&, std::vector<int, std::allocator<int> > const&, QString const&) () from /usr/lib/libkface.so.2 #16 0x003e0a5c in KFaceIface::RecognitionDatabase::Private::train(KFaceIface::OpenCVLBPHFaceRecognizer*, QList<KFaceIface::Identity> const&, KFaceIface::TrainingDataProvider*, QString const&) () from /usr/lib/libkface.so.2 #17 0x003e0e44 in KFaceIface::RecognitionDatabase::train(QList<KFaceIface::Identity> const&, KFaceIface::TrainingDataProvider*, QString const&) () from /usr/lib/libkface.so.2 #18 0x082fa8fe in Digikam::Trainer::process (this=0x922e800, package=...) at /home/eric/digikamgit2/dk2/utilities/facemanagement/facepipeline.cpp:974 #19 0x082f5037 in Digikam::Trainer::qt_static_metacall (_o=0x922e800, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0x9febb448) at /home/eric/digikamgit2/build/digikam/facepipeline_p.moc:580 #20 0x026fd101 in QMetaCallEvent::placeMetaCall (this=0x9c5f05d0, object=0x922e800) at kernel/qobject.cpp:525 #21 0x0270617b in QObject::event (this=0x922e800, e=0x9c5f05d0) at kernel/qobject.cpp:1195 #22 0x059de985 in Digikam::WorkerObject::event (this=0x922e800, e=0x9c5f05d0) at /home/eric/digikamgit2/dk2/libs/threads/workerobject.cpp:160 #23 0x0178adf4 in notify_helper (e=0x9c5f05d0, receiver=0x922e800, this=0x8d34790) at kernel/qapplication.cpp:4556 #24 QApplicationPrivate::notify_helper (this=0x8d34790, receiver=0x922e800, e=0x9c5f05d0) at kernel/qapplication.cpp:4528 #25 0x0179015d in QApplication::notify (this=0x9c5f05d0, receiver=0x922e800, e=0x9c5f05d0) at kernel/qapplication.cpp:4285 #26 0x03eaded1 in KApplication::notify (this=0xbfcdb4a8, receiver=0x922e800, event=0x9c5f05d0) at ../../kdeui/kernel/kapplication.cpp:311 #27 0x026eae0e in QCoreApplication::notifyInternal (this=0xbfcdb4a8, receiver=0x922e800, event=0x9c5f05d0) at kernel/qcoreapplication.cpp:915 #28 0x026eef68 in sendEvent (event=<optimized out>, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231 #29 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0xa033c00) at kernel/qcoreapplication.cpp:1539 #30 0x026ef29c in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1432 #31 0x0271d994 in sendPostedEvents () at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:236 #32 postEventSourceDispatch (s=0xb244c588) at kernel/qeventdispatcher_glib.cpp:279 #33 0x075ced46 in g_main_context_dispatch () from /lib/i386-linux-gnu/libglib-2.0.so.0 #34 0x075cf0e5 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0 #35 0x075cf1c1 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0 #36 0x0271dd87 in QEventDispatcherGlib::processEvents (this=0xa791ca30, flags=...) at kernel/qeventdispatcher_glib.cpp:424 #37 0x026e96ad in QEventLoop::processEvents (this=0xa944f210, flags=...) at kernel/qeventloop.cpp:149 #38 0x026e9949 in QEventLoop::exec (this=0xa944f210, flags=...) at kernel/qeventloop.cpp:204 #39 0x059dccb4 in Digikam::WorkerObjectRunnable::run (this=0xc606c28) at /home/eric/digikamgit2/dk2/libs/threads/threadmanager.cpp:196 #40 0x025c846b in QThreadPoolThread::run (this=0xa033af0) at concurrent/qthreadpool.cpp:107 #41 0x025d5eb0 in QThreadPrivate::start (arg=0xa033af0) at thread/qthread_unix.cpp:307 #42 0x00623d4c in start_thread (arg=0xa944fb40) at pthread_create.c:308 #43 0x03123dde in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130 Thread 2 (Thread 0xa5811b40 (LWP 28943)): #0 __pthread_mutex_unlock_usercnt (mutex=0xb246c2c0, decr=1) at pthread_mutex_unlock.c:66 #1 0x03131944 in pthread_mutex_unlock (mutex=0xb246c2c0) at forward.c:184 #2 0x0760e430 in g_mutex_unlock () from /lib/i386-linux-gnu/libglib-2.0.so.0 #3 0x075ceaeb in g_main_context_check () from /lib/i386-linux-gnu/libglib-2.0.so.0 #4 0x075cf002 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0 #5 0x075cf1c1 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0 #6 0x0271dde7 in QEventDispatcherGlib::processEvents (this=0xb2411c70, flags=...) at kernel/qeventdispatcher_glib.cpp:426 #7 0x026e96ad in QEventLoop::processEvents (this=0xa5811210, flags=...) at kernel/qeventloop.cpp:149 #8 0x026e9949 in QEventLoop::exec (this=0xa5811210, flags=...) at kernel/qeventloop.cpp:204 #9 0x059dccb4 in Digikam::WorkerObjectRunnable::run (this=0xb24621b8) at /home/eric/digikamgit2/dk2/libs/threads/threadmanager.cpp:196 #10 0x025c846b in QThreadPoolThread::run (this=0xa033d80) at concurrent/qthreadpool.cpp:107 #11 0x025d5eb0 in QThreadPrivate::start (arg=0xa033d80) at thread/qthread_unix.cpp:307 #12 0x00623d4c in start_thread (arg=0xa5811b40) at pthread_create.c:308 #13 0x03123dde in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130 Thread 1 (Thread 0xb5198780 (LWP 22480)): [KCrash Handler] #7 0x0827f923 in Digikam::ListItem::row (this=0x4) at /home/eric/digikamgit2/dk2/digikam/tags/tagsmanager/models/tagmngrlistitem.cpp:187 #8 0x0827f0d5 in Digikam::TagMngrListModel::parent (this=0xad9d190, index=...) at /home/eric/digikamgit2/dk2/digikam/tags/tagsmanager/models/tagmngrlistmodel.cpp:298 #9 0x026dd5fd in parent (this=<optimized out>) at kernel/qabstractitemmodel.h:393 #10 QPersistentModelIndex::parent (this=0xaa05a58) at kernel/qabstractitemmodel.cpp:347 #11 0x01d9adef in parent (this=0xaa05a58) at itemviews/qitemselectionmodel.h:78 #12 contains (index=..., this=0xaa05a58) at itemviews/qitemselectionmodel.h:83 #13 contains (index=..., this=0x943cf5c) at itemviews/qitemselectionmodel.cpp:424 #14 QItemSelection::contains (this=0x943cf5c, index=...) at itemviews/qitemselectionmodel.cpp:419 #15 0x01d9b382 in QItemSelectionModel::isSelected (this=0x97f22a0, index=...) at itemviews/qitemselectionmodel.cpp:1219 #16 0x01d65bef in QListView::paintEvent (this=0x9252958, e=0x97f22a0) at itemviews/qlistview.cpp:987 #17 0x017e4fa2 in QWidget::event (this=0x9252958, event=0xbfcda794) at kernel/qwidget.cpp:8517 #18 0x01c03385 in QFrame::event (this=0x9252958, e=0xbfcda794) at widgets/qframe.cpp:557 #19 0x01c96041 in QAbstractScrollArea::viewportEvent (this=0x9252958, e=0xbfcda794) at widgets/qabstractscrollarea.cpp:1043 #20 0x01d3c1ec in QAbstractItemView::viewportEvent (this=0x9252958, event=0xbfcda794) at itemviews/qabstractitemview.cpp:1644 #21 0x01c98766 in viewportEvent (this=<optimized out>, event=0xbfcda794) at widgets/qabstractscrollarea_p.h:100 #22 eventFilter (e=0xbfcda794, this=<optimized out>, o=<optimized out>) at widgets/qabstractscrollarea_p.h:116 #23 QAbstractScrollAreaFilter::eventFilter (this=0x9e7aa58, o=0xae506d0, e=0xbfcda794) at widgets/qabstractscrollarea_p.h:115 #24 0x026eafa6 in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=0x8d34790, receiver=0xae506d0, event=0xbfcda794) at kernel/qcoreapplication.cpp:1025 #25 0x0178adc2 in notify_helper (e=0xbfcda794, receiver=0xae506d0, this=0x8d34790) at kernel/qapplication.cpp:4552 #26 QApplicationPrivate::notify_helper (this=0x8d34790, receiver=0xae506d0, e=0xbfcda794) at kernel/qapplication.cpp:4528 #27 0x017901f2 in QApplication::notify (this=0x8d34790, receiver=0xae506d0, e=0xbfcda794) at kernel/qapplication.cpp:4521 #28 0x03eaded1 in KApplication::notify (this=0xbfcdb4a8, receiver=0xae506d0, event=0xbfcda794) at ../../kdeui/kernel/kapplication.cpp:311 #29 0x026eae0e in QCoreApplication::notifyInternal (this=0xbfcdb4a8, receiver=0xae506d0, event=0xbfcda794) at kernel/qcoreapplication.cpp:915 #30 0x017e092a in sendSpontaneousEvent (event=<optimized out>, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:234 #31 QWidgetPrivate::drawWidget (this=0xbf2e3d0, pdev=0xaf3b090, rgn=..., offset=..., flags=68, sharedPainter=0x0, backingStore=0xa586070) at kernel/qwidget.cpp:5594 #32 0x019da1db in QWidgetBackingStore::sync (this=0xa586070) at painting/qbackingstore.cpp:1365 #33 0x017d682b in QWidgetPrivate::syncBackingStore (this=0xbd4e930) at kernel/qwidget.cpp:1892 #34 0x017e5937 in QWidget::event (this=0xad18828, event=0x9414888) at kernel/qwidget.cpp:8664 #35 0x01c2085c in QMainWindow::event (this=0xad18828, event=0x9414888) at widgets/qmainwindow.cpp:1478 #36 0x03f89a94 in KMainWindow::event (this=0xad18828, ev=0x9414888) at ../../kdeui/widgets/kmainwindow.cpp:1084 #37 0x0178adf4 in notify_helper (e=0x9414888, receiver=0xad18828, this=0x8d34790) at kernel/qapplication.cpp:4556 #38 QApplicationPrivate::notify_helper (this=0x8d34790, receiver=0xad18828, e=0x9414888) at kernel/qapplication.cpp:4528 #39 0x017901f2 in QApplication::notify (this=0x8d34790, receiver=0xad18828, e=0x9414888) at kernel/qapplication.cpp:4521 #40 0x03eaded1 in KApplication::notify (this=0xbfcdb4a8, receiver=0xad18828, event=0x9414888) at ../../kdeui/kernel/kapplication.cpp:311 #41 0x026eae0e in QCoreApplication::notifyInternal (this=0xbfcdb4a8, receiver=0xad18828, event=0x9414888) at kernel/qcoreapplication.cpp:915 #42 0x026eef68 in sendEvent (event=<optimized out>, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231 #43 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x8cd8050) at kernel/qcoreapplication.cpp:1539 #44 0x026ef29c in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1432 #45 0x0271d994 in sendPostedEvents () at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:236 #46 postEventSourceDispatch (s=0x8d34398) at kernel/qeventdispatcher_glib.cpp:279 #47 0x075ced46 in g_main_context_dispatch () from /lib/i386-linux-gnu/libglib-2.0.so.0 #48 0x075cf0e5 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0 #49 0x075cf1c1 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0 #50 0x0271dd87 in QEventDispatcherGlib::processEvents (this=0x8cd8bb0, flags=...) at kernel/qeventdispatcher_glib.cpp:424 #51 0x01843a1a in QGuiEventDispatcherGlib::processEvents (this=0x8cd8bb0, flags=...) at kernel/qguieventdispatcher_glib.cpp:204 #52 0x026e96ad in QEventLoop::processEvents (this=0xbfcdb374, flags=...) at kernel/qeventloop.cpp:149 #53 0x026e9949 in QEventLoop::exec (this=0xbfcdb374, flags=...) at kernel/qeventloop.cpp:204 #54 0x026ef34a in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1187 #55 0x017889c4 in QApplication::exec () at kernel/qapplication.cpp:3817 #56 0x0830ddfb in main (argc=1, argv=0xbfcdb704) at /home/eric/digikamgit2/dk2/digikam/main/main.cpp:235 Reported using DrKonqi
recognition.db was 19.1mo after run a "facetraining" with an empty db (13.3ko). Now the db is about 38.2mo. Two face have been tagged since training. Memory load jump, I was able to go in tag manager, and digikam crash with a segfault. I think it's related to this : https://bugs.kde.org/show_bug.cgi?id=323888 (posts on database grow)
Yes, it's a crash in tags manager. Gilles Caulier
Can you tell me more, about what you did exaclty, because I can't reproduce crash locally, and backtrace doesn't tell me too much, code is ok, I can't even add additional guards...
I try to reproduce it today, and give you more backtrace and detail. Thank you, Eric Le jeudi 24 octobre 2013 à 06:11 +0000, Veaceslav Munteanu a écrit : > https://bugs.kde.org/show_bug.cgi?id=326542 > > --- Comment #3 from Veaceslav Munteanu <slavuttici@gmail.com> --- > Can you tell me more, about what you did exaclty, because I can't reproduce > crash locally, and backtrace doesn't tell me too much, code is ok, I can't even > add additional guards... >
Veaceslav, Accordingly with BT; crash is in this code : int ListItem::row() const { if (d->parentItem) return d->parentItem->d->childItems.indexOf(const_cast<ListItem*>(this)); return 0; } I recommend to check the cast of "const_cast<ListItem*>(this)" using dynamic_cast and to check returned value to see if it's null, before to use it with indexOf(). Something like this : ListItem* const item = dynamic_cast<ListItem*>(this); if (item) { ... } Gilles
Created attachment 83082 [details] New crash information added by DrKonqi digikam (4.0.0-beta1) on KDE Platform 4.11.2 using Qt 4.8.2 - What I was doing when the application crashed: 1 - goto tag manager 2 - click on button add (up to category) 3 - select added category 4 - right clic on category and delete I have done anythyng else, Digikam crash as soon as delete is clicked -- Backtrace (Reduced): #7 0x0827f923 in Digikam::ListItem::row (this=0x5) at /home/eric/digikamgit2/dk2/digikam/tags/tagsmanager/models/tagmngrlistitem.cpp:187 #8 0x0827f0d5 in Digikam::TagMngrListModel::parent (this=0xb938568, index=...) at /home/eric/digikamgit2/dk2/digikam/tags/tagsmanager/models/tagmngrlistmodel.cpp:298 #9 0x02ff05fd in parent (this=<optimized out>) at kernel/qabstractitemmodel.h:393 #10 QPersistentModelIndex::parent (this=0xb81cee0) at kernel/qabstractitemmodel.cpp:347 #11 0x02af8def in parent (this=0xb81cee0) at itemviews/qitemselectionmodel.h:78
Created attachment 83083 [details] Screen capture - left digikam 3.5.0 - right digikam 4.0.0 beta1 that crash 1 - add a tag to quick access list 2 - delete it (right clic on tag and delete) 3 - digikam crash PS - i use the two in the same time for tag control (same content of databases but different databases for the two digikam version) -
> Git commit 4ecd5abeb3673519e6de7f155e1cc4ac37f5f1b6 by Veaceslav Munteanu. > Committed on 24/10/2013 at 22:45. > Pushed by munteanu into branch 'master'. > > M +3 -1 digikam/tags/tagsmanager/models/tagmngrlistitem.cpp > M +3 -1 digikam/tags/tagsmanager/models/tagmngrlistitem.h > M +14 -1 digikam/tags/tagsmanager/models/tagmngrlistmodel.cpp > > http://commits.kde.org/digikam/4ecd5abeb3673519e6de7f155e1cc4ac37f5f1b6 This one was really hard to debug... after all deleting a item wasn't a good idea since it was still in use... but now it's a memory leak that I don't know how to fix (look for comment in diffs) Any ideas?
From your comment : /** NOTE: trying to delete the item here will cause a crash since * somehow, View still use the old item * Even deleteLater() doesn't help ... */ //item->deleteLater(); Do you identified where item still used and by what ? Gilles Caulier
Are you sure that you have a memory leak. item is QObject based and must be cleaned by Qt and end of digiKam session. Use valgrind to check, following these intructions: https://projects.kde.org/projects/extragear/graphics/digikam/repository/revisions/master/entry/HACKING#L281 Gilles Caulier
It was a memory leak before my fix, I added QObject later, It may leak while digikam is active, but I think user won't delete 1 million entries to make a serious leak...
Veaceslav, I checked with valgrind to see if memory leak exists in TagsManager implementation, and i cannot see any report about. So for me, this file can be closed as solved, if crash has disappear... Gilles Caulier
Ok, then I will delete that message and close this bug.