Bug 326542

Summary: Tagging some face then go to tag manager and test tag manager UI...
Product: [Applications] digikam Reporter: e.longuemare
Component: Tags-ManagerAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: caulier.gilles, e.longuemare, veaceslav.munteanu90
Priority: NOR Keywords: drkonqi
Version: 4.0.0   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In: 4.0.0
Sentry Crash Report:
Attachments: New crash information added by DrKonqi
Screen capture - left digikam 3.5.0 - right digikam 4.0.0 beta1 that crash

Description e.longuemare 2013-10-24 02:43:06 UTC
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
Comment 1 e.longuemare 2013-10-24 02:58:39 UTC
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)
Comment 2 caulier.gilles 2013-10-24 05:25:02 UTC
Yes, it's a crash in tags manager.

Gilles Caulier
Comment 3 Veaceslav Munteanu 2013-10-24 06:11:58 UTC
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...
Comment 4 e.longuemare 2013-10-24 09:13:33 UTC
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...
>
Comment 5 caulier.gilles 2013-10-24 09:51:35 UTC
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
Comment 6 e.longuemare 2013-10-24 15:13:55 UTC
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
Comment 7 e.longuemare 2013-10-24 15:41:46 UTC
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) -
Comment 8 Veaceslav Munteanu 2013-10-24 19:49:12 UTC
> 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?
Comment 9 caulier.gilles 2013-10-30 17:54:22 UTC
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
Comment 10 caulier.gilles 2013-10-30 18:05:04 UTC
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
Comment 11 Veaceslav Munteanu 2013-10-30 18:20:16 UTC
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...
Comment 12 caulier.gilles 2013-10-31 17:14:10 UTC
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
Comment 13 Veaceslav Munteanu 2013-11-06 19:01:47 UTC
Ok, then I will delete that message and close this bug.