Bug 263321 - Digikam crash when looking through photos
Summary: Digikam crash when looking through photos
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Unclassified
Component: Preview-Image (show other bugs)
Version: 2.0.0
Platform: Compiled Sources Linux
: NOR crash (vote)
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-01-16 15:17 UTC by Andrew Coles
Modified: 2017-07-20 12:45 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In: 2.0.0


Attachments
New crash information added by DrKonqi (20.52 KB, text/plain)
2011-01-16 17:26 UTC, Andrew Coles
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Andrew Coles 2011-01-16 15:17:04 UTC
Application: digikam (2.0.0-beta2 (rev.: 1214666))
KDE Platform Version: 4.5.95 (4.6 RC2) (Compiled from sources)
Qt Version: 4.7.0
Operating System: Linux 2.6.35-25-generic-pae i686
Distribution: Ubuntu 10.10

-- Information about the crash:
- What I was doing when the application crashed:

Looking at one photo (number 200 in a sequence of 300 or so with a given tag), hit the 'next' arrow, led to a crash.

-- Backtrace:
Application: digiKam (digikam), signal: Segmentation fault
[Current thread is 1 (Thread 0xaef68ac0 (LWP 4765))]

Thread 11 (Thread 0xacab2b70 (LWP 4766)):
#0  0xb77ab424 in __kernel_vsyscall ()
#1  0xb32074dc in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:169
#2  0xb41c2d9d in __pthread_cond_wait (cond=0xa2e8ea0, mutex=0xa2e8e88) at forward.c:139
#3  0xb45449c7 in wait (this=0xa2ece44, mutex=0xa2ece40, time=4294967295) at thread/qwaitcondition_unix.cpp:88
#4  QWaitCondition::wait (this=0xa2ece44, mutex=0xa2ece40, time=4294967295) at thread/qwaitcondition_unix.cpp:160
#5  0x082a9539 in Digikam::ScanController::run (this=0xa306898) at /home/amanda/kde/tools/src/digikam/core/digikam/scancontroller.cpp:599
#6  0xb4543df9 in QThreadPrivate::start (arg=0xa306898) at thread/qthread_unix.cpp:266
#7  0xb3202cc9 in start_thread (arg=0xacab2b70) at pthread_create.c:304
#8  0xb41b569e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 10 (Thread 0xac2b1b70 (LWP 4767)):
#0  0xb32053eb in __pthread_mutex_lock (mutex=0xa31fd9c) at pthread_mutex_lock.c:61
#1  0xb41c2f66 in pthread_mutex_lock (mutex=0xa31fd9c) at forward.c:182
#2  0xb3064521 in ?? () from /lib/libglib-2.0.so.0
#3  0xb3064848 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#4  0xb467459f in QEventDispatcherGlib::processEvents (this=0xa33bea8, flags=...) at kernel/qeventdispatcher_glib.cpp:417
#5  0xb4644609 in QEventLoop::processEvents (this=0xac2b1110, flags=) at kernel/qeventloop.cpp:149
#6  0xb4644a8a in QEventLoop::exec (this=0xac2b1110, flags=...) at kernel/qeventloop.cpp:201
#7  0xb4540b7e in QThread::exec (this=0xa325308) at thread/qthread.cpp:490
#8  0xb462335b in QInotifyFileSystemWatcherEngine::run (this=0xa325308) at io/qfilesystemwatcher_inotify.cpp:248
#9  0xb4543df9 in QThreadPrivate::start (arg=0xa325308) at thread/qthread_unix.cpp:266
#10 0xb3202cc9 in start_thread (arg=0xac2b1b70) at pthread_create.c:304
#11 0xb41b569e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 9 (Thread 0xabaa6b70 (LWP 4768)):
#0  0xb4674241 in socketNotifierSourcePrepare (timeout=0xabaa5f5c) at kernel/qeventdispatcher_glib.cpp:72
#1  0xb3063e6a in g_main_context_prepare () from /lib/libglib-2.0.so.0
#2  0xb3064279 in ?? () from /lib/libglib-2.0.so.0
#3  0xb3064848 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#4  0xb467459f in QEventDispatcherGlib::processEvents (this=0xa322a60, flags=...) at kernel/qeventdispatcher_glib.cpp:417
#5  0xb4644609 in QEventLoop::processEvents (this=0xabaa6130, flags=) at kernel/qeventloop.cpp:149
#6  0xb4644a8a in QEventLoop::exec (this=0xabaa6130, flags=...) at kernel/qeventloop.cpp:201
#7  0xb4540b7e in QThread::exec (this=0xa331550) at thread/qthread.cpp:490
#8  0xb3e7e171 in Herqq::Upnp::HControlPointThread::run() () from /usr/lib/libHUpnp.so.0
#9  0xb4543df9 in QThreadPrivate::start (arg=0xa331550) at thread/qthread_unix.cpp:266
#10 0xb3202cc9 in start_thread (arg=0xabaa6b70) at pthread_create.c:304
#11 0xb41b569e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 8 (Thread 0xab2a5b70 (LWP 4778)):
#0  0xb77ab424 in __kernel_vsyscall ()
#1  0xb32074dc in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:169
#2  0xb41c2d9d in __pthread_cond_wait (cond=0xa3513d8, mutex=0xa3513c0) at forward.c:139
#3  0xb45449c7 in wait (this=0xa37d5e8, mutex=0xa37d5e4, time=4294967295) at thread/qwaitcondition_unix.cpp:88
#4  QWaitCondition::wait (this=0xa37d5e8, mutex=0xa37d5e4, time=4294967295) at thread/qwaitcondition_unix.cpp:160
#5  0xb6556bba in Digikam::ParkingThread::run (this=0xa37d5d8) at /home/amanda/kde/tools/src/digikam/core/libs/threads/threadmanager.cpp:119
#6  0xb4543df9 in QThreadPrivate::start (arg=0xa37d5d8) at thread/qthread_unix.cpp:266
#7  0xb3202cc9 in start_thread (arg=0xab2a5b70) at pthread_create.c:304
#8  0xb41b569e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 7 (Thread 0xa4ea5b70 (LWP 4779)):
#0  0xb2c6fe36 in clock_gettime (clock_id=-1295564812, tp=0xa4ea4e10) at ../sysdeps/unix/clock_gettime.c:100
#1  0xb459f50b in do_gettime () at tools/qelapsedtimer_unix.cpp:105
#2  qt_gettime () at tools/qelapsedtimer_unix.cpp:119
#3  0xb46766e5 in QTimerInfoList::updateCurrentTime (this=0xa943b4c) at kernel/qeventdispatcher_unix.cpp:339
#4  0xb467672a in QTimerInfoList::timerWait (this=0xa943b4c, tm=...) at kernel/qeventdispatcher_unix.cpp:442
#5  0xb46747a8 in timerSourcePrepareHelper (src=<value optimized out>, timeout=0xa4ea4f3c) at kernel/qeventdispatcher_glib.cpp:136
#6  0xb467483d in timerSourcePrepare (source=0x0, timeout=0xb2c73ff4) at kernel/qeventdispatcher_glib.cpp:169
#7  0xb3063e6a in g_main_context_prepare () from /lib/libglib-2.0.so.0
#8  0xb3064279 in ?? () from /lib/libglib-2.0.so.0
#9  0xb3064848 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#10 0xb467459f in QEventDispatcherGlib::processEvents (this=0xa556380, flags=...) at kernel/qeventdispatcher_glib.cpp:417
#11 0xb4644609 in QEventLoop::processEvents (this=0xa4ea5110, flags=) at kernel/qeventloop.cpp:149
#12 0xb4644a8a in QEventLoop::exec (this=0xa4ea5110, flags=...) at kernel/qeventloop.cpp:201
#13 0xb4540b7e in QThread::exec (this=0xa5d1500) at thread/qthread.cpp:490
#14 0xb462335b in QInotifyFileSystemWatcherEngine::run (this=0xa5d1500) at io/qfilesystemwatcher_inotify.cpp:248
#15 0xb4543df9 in QThreadPrivate::start (arg=0xa5d1500) at thread/qthread_unix.cpp:266
#16 0xb3202cc9 in start_thread (arg=0xa4ea5b70) at pthread_create.c:304
#17 0xb41b569e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 6 (Thread 0x9e395b70 (LWP 4783)):
#0  0xb77ab424 in __kernel_vsyscall ()
#1  0xb3207884 in pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_timedwait.S:236
#2  0xb41c2df4 in __pthread_cond_timedwait (cond=0xab020a8, mutex=0xab02090, abstime=0x9e3951a0) at forward.c:152
#3  0xa2570b3f in ?? () from /usr/lib/libxine.so.1
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Thread 5 (Thread 0x9d759b70 (LWP 4784)):
#0  0xb77ab424 in __kernel_vsyscall ()
#1  0xb41ae371 in select () at ../sysdeps/unix/syscall-template.S:82
#2  0xa259cf1c in xine_usec_sleep () from /usr/lib/libxine.so.1
#3  0x00000000 in ?? ()

Thread 4 (Thread 0x9cf58b70 (LWP 4785)):
#0  0xb2c6fe36 in clock_gettime (clock_id=-1295564812, tp=0x9cf57e00) at ../sysdeps/unix/clock_gettime.c:100
#1  0xb459f50b in do_gettime () at tools/qelapsedtimer_unix.cpp:105
#2  qt_gettime () at tools/qelapsedtimer_unix.cpp:119
#3  0xb46766e5 in QTimerInfoList::updateCurrentTime (this=0xaf18334) at kernel/qeventdispatcher_unix.cpp:339
#4  0xb467672a in QTimerInfoList::timerWait (this=0xaf18334, tm=...) at kernel/qeventdispatcher_unix.cpp:442
#5  0xb46747a8 in timerSourcePrepareHelper (src=<value optimized out>, timeout=0x9cf57f2c) at kernel/qeventdispatcher_glib.cpp:136
#6  0xb467483d in timerSourcePrepare (source=0x0, timeout=0xb2c73ff4) at kernel/qeventdispatcher_glib.cpp:169
#7  0xb3063e6a in g_main_context_prepare () from /lib/libglib-2.0.so.0
#8  0xb3064279 in ?? () from /lib/libglib-2.0.so.0
#9  0xb3064848 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#10 0xb467459f in QEventDispatcherGlib::processEvents (this=0xab095f0, flags=...) at kernel/qeventdispatcher_glib.cpp:417
#11 0xb4644609 in QEventLoop::processEvents (this=0x9cf58100, flags=) at kernel/qeventloop.cpp:149
#12 0xb4644a8a in QEventLoop::exec (this=0x9cf58100, flags=...) at kernel/qeventloop.cpp:201
#13 0xb4540b7e in QThread::exec (this=0xaf16968) at thread/qthread.cpp:490
#14 0xa25c0daa in ?? () from /usr/lib/qt4/plugins/phonon_backend/phonon_xine.so
#15 0xb4543df9 in QThreadPrivate::start (arg=0xaf16968) at thread/qthread_unix.cpp:266
#16 0xb3202cc9 in start_thread (arg=0x9cf58b70) at pthread_create.c:304
#17 0xb41b569e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 3 (Thread 0x9c757b70 (LWP 4786)):
#0  0xb77ab424 in __kernel_vsyscall ()
#1  0xb41a6df6 in __poll (fds=0xb423dff4, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#2  0xb40d3562 in ?? () from /usr/lib/libpulse.so.0
#3  0xb40bfab9 in pa_mainloop_poll () from /usr/lib/libpulse.so.0
#4  0xb40c1a73 in pa_mainloop_iterate () from /usr/lib/libpulse.so.0
#5  0xb40c1b44 in pa_mainloop_run () from /usr/lib/libpulse.so.0
#6  0xb40d3303 in ?? () from /usr/lib/libpulse.so.0
#7  0xb2c34bd5 in ?? () from /usr/lib/libpulsecommon-0.9.21.so
#8  0xb3202cc9 in start_thread (arg=0x9c757b70) at pthread_create.c:304
#9  0xb41b569e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 2 (Thread 0x97f13b70 (LWP 4787)):
#0  0xb77ab424 in __kernel_vsyscall ()
#1  0xb32074dc in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:169
#2  0xb41c2d9d in __pthread_cond_wait (cond=0xaf1e200, mutex=0xaf1e1e8) at forward.c:139
#3  0xa2582b54 in ?? () from /usr/lib/libxine.so.1
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Thread 1 (Thread 0xaef68ac0 (LWP 4765)):
[KCrash Handler]
#7  0xb5293f7c in QGraphicsSceneFindItemBspTreeVisitor::visit(QList<QGraphicsItem*>*) () from /usr/lib/libQtGui.so.4
#8  0xb5292387 in QGraphicsSceneBspTree::climbTree (this=0x7, visitor=0xa925258, rect=..., index=3) at graphicsview/qgraphicsscene_bsp.cpp:247
#9  0xb52923c0 in QGraphicsSceneBspTree::climbTree (this=0xa348818, visitor=0xa925258, rect=..., index=1) at graphicsview/qgraphicsscene_bsp.cpp:252
#10 0xb5292408 in QGraphicsSceneBspTree::climbTree (this=0xa348818, visitor=0xa925258, rect=..., index=0) at graphicsview/qgraphicsscene_bsp.cpp:261
#11 0xb5292826 in QGraphicsSceneBspTree::items (this=0xa348818, rect=..., onlyTopLevelItems=true) at graphicsview/qgraphicsscene_bsp.cpp:154
#12 0xb5296131 in QGraphicsSceneBspTreeIndexPrivate::estimateItems (this=0xa3487b8, rect=..., order=Qt::AscendingOrder, onlyTopLevelItems=true) at graphicsview/qgraphicsscenebsptreeindex.cpp:387
#13 0xb5296382 in QGraphicsSceneBspTreeIndex::estimateTopLevelItems (this=0xa57ec40, rect=..., order=Qt::AscendingOrder) at graphicsview/qgraphicsscenebsptreeindex.cpp:540
#14 0xb527dc77 in QGraphicsScenePrivate::drawItems (this=0xa93dc60, painter=0xbfb7e464, viewTransform=0xbfb7e24c, exposedRegion=0xa4e75c0, widget=0xa925408) at graphicsview/qgraphicsscene.cpp:4697
#15 0xb52a9bb9 in QGraphicsView::paintEvent (this=0xa2fe158, event=0xbfb7eb64) at graphicsview/qgraphicsview.cpp:3467
#16 0xb4c02cc6 in QWidget::event (this=0xa2fe158, event=0xbfb7eb64) at kernel/qwidget.cpp:8333
#17 0xb5024763 in QFrame::event (this=0xa2fe158, e=0xbfb7eb64) at widgets/qframe.cpp:557
#18 0xb50c1a82 in QAbstractScrollArea::viewportEvent (this=0x2, e=0x7) at widgets/qabstractscrollarea.cpp:1043
#19 0xb52a5ccb in QGraphicsView::viewportEvent (this=0xa2fe158, event=0xbfb7eb64) at graphicsview/qgraphicsview.cpp:2862
#20 0xb50c44d5 in viewportEvent (this=0xa91a758, o=0xa925408, e=0xbfb7eb64) at widgets/qabstractscrollarea_p.h:100
#21 QAbstractScrollAreaFilter::eventFilter (this=0xa91a758, o=0xa925408, e=0xbfb7eb64) at widgets/qabstractscrollarea_p.h:116
#22 0xb464529a in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=0xa268f20, receiver=0xa925408, event=0xbfb7eb64) at kernel/qcoreapplication.cpp:847
#23 0xb4ba4fb9 in QApplicationPrivate::notify_helper (this=0xa268f20, receiver=0xa925408, e=0xbfb7eb64) at kernel/qapplication.cpp:4392
#24 0xb4bab0e9 in QApplication::notify (this=0xbfb8177c, receiver=0xa925408, e=0xbfb7eb64) at kernel/qapplication.cpp:4361
#25 0xb574cf8a in KApplication::notify (this=0xbfb8177c, receiver=0xa925408, event=0xbfb7eb64) at ../../kdeui/kernel/kapplication.cpp:311
#26 0xb4645b3b in QCoreApplication::notifyInternal (this=0xbfb8177c, receiver=0xa925408, event=0xbfb7eb64) at kernel/qcoreapplication.cpp:732
#27 0xb4c09ee6 in sendSpontaneousEvent (this=0xa925428, pdev=0xa354d04, rgn=..., offset=..., flags=<value optimized out>, sharedPainter=0x0, backingStore=0xa34c5b0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:218
#28 QWidgetPrivate::drawWidget (this=0xa925428, pdev=0xa354d04, rgn=..., offset=..., flags=<value optimized out>, sharedPainter=0x0, backingStore=0xa34c5b0) at kernel/qwidget.cpp:5420
#29 0xb4c0acff in QWidgetPrivate::paintSiblingsRecursive (this=0xa4e7270, pdev=0xa354d04, siblings=..., index=12, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0xa34c5b0) at kernel/qwidget.cpp:5627
#30 0xb4c0ab38 in QWidgetPrivate::paintSiblingsRecursive (this=0xa4e7270, pdev=0xa354d04, siblings=..., index=15, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0xa34c5b0) at kernel/qwidget.cpp:5614
#31 0xb4c0ab38 in QWidgetPrivate::paintSiblingsRecursive (this=0xa4e7270, pdev=0xa354d04, siblings=..., index=16, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0xa34c5b0) at kernel/qwidget.cpp:5614
#32 0xb4c0ab38 in QWidgetPrivate::paintSiblingsRecursive (this=0xa4e7270, pdev=0xa354d04, siblings=..., index=19, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0xa34c5b0) at kernel/qwidget.cpp:5614
#33 0xb4c09c35 in QWidgetPrivate::drawWidget (this=0xa4e7270, pdev=0xa354d04, rgn=..., offset=..., flags=<value optimized out>, sharedPainter=0x0, backingStore=0xa34c5b0) at kernel/qwidget.cpp:5473
#34 0xb4c0acff in QWidgetPrivate::paintSiblingsRecursive (this=0xa58e490, pdev=0xa354d04, siblings=..., index=10, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0xa34c5b0) at kernel/qwidget.cpp:5627
#35 0xb4c09c35 in QWidgetPrivate::drawWidget (this=0xa58e490, pdev=0xa354d04, rgn=..., offset=..., flags=<value optimized out>, sharedPainter=0x0, backingStore=0xa34c5b0) at kernel/qwidget.cpp:5473
#36 0xb4c0acff in QWidgetPrivate::paintSiblingsRecursive (this=0xa3828d0, pdev=0xa354d04, siblings=..., index=3, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0xa34c5b0) at kernel/qwidget.cpp:5627
#37 0xb4c09c35 in QWidgetPrivate::drawWidget (this=0xa3828d0, pdev=0xa354d04, rgn=..., offset=..., flags=<value optimized out>, sharedPainter=0x0, backingStore=0xa34c5b0) at kernel/qwidget.cpp:5473
#38 0xb4c0acff in QWidgetPrivate::paintSiblingsRecursive (this=0xa3f54c8, pdev=0xa354d04, siblings=..., index=5, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0xa34c5b0) at kernel/qwidget.cpp:5627
#39 0xb4c09c35 in QWidgetPrivate::drawWidget (this=0xa3f54c8, pdev=0xa354d04, rgn=..., offset=..., flags=<value optimized out>, sharedPainter=0x0, backingStore=0xa34c5b0) at kernel/qwidget.cpp:5473
#40 0xb4c0acff in QWidgetPrivate::paintSiblingsRecursive (this=0xa3320c0, pdev=0xa354d04, siblings=..., index=10, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0xa34c5b0) at kernel/qwidget.cpp:5627
#41 0xb4c09c35 in QWidgetPrivate::drawWidget (this=0xa3320c0, pdev=0xa354d04, rgn=..., offset=..., flags=<value optimized out>, sharedPainter=0x0, backingStore=0xa34c5b0) at kernel/qwidget.cpp:5473
#42 0xb4c0acff in QWidgetPrivate::paintSiblingsRecursive (this=0xa344e00, pdev=0xa354d04, siblings=..., index=127, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0xa34c5b0) at kernel/qwidget.cpp:5627
#43 0xb4c0ab38 in QWidgetPrivate::paintSiblingsRecursive (this=0xa344e00, pdev=0xa354d04, siblings=..., index=197, rgn=..., offset=..., flags=4, sharedPainter=0x0, backingStore=0xa34c5b0) at kernel/qwidget.cpp:5614
#44 0xb4c09c35 in QWidgetPrivate::drawWidget (this=0xa344e00, pdev=0xa354d04, rgn=..., offset=..., flags=<value optimized out>, sharedPainter=0x0, backingStore=0xa34c5b0) at kernel/qwidget.cpp:5473
#45 0xb4dfac74 in QWidgetBackingStore::sync (this=0xa34c5b0) at painting/qbackingstore.cpp:1328
#46 0xb4bfc2b3 in QWidgetPrivate::syncBackingStore (this=0xa344e00) at kernel/qwidget.cpp:1805
#47 0xb4c03466 in QWidget::event (this=0xa303fa8, event=0xcd48210) at kernel/qwidget.cpp:8480
#48 0xb5043917 in QMainWindow::event (this=0xa303fa8, event=0xcd48210) at widgets/qmainwindow.cpp:1417
#49 0xb58399d4 in KMainWindow::event (this=0xa303fa8, ev=0xcd48210) at ../../kdeui/widgets/kmainwindow.cpp:1100
#50 0xb58855bf in KXmlGuiWindow::event (this=0xa303fa8, ev=0xcd48210) at ../../kdeui/xmlgui/kxmlguiwindow.cpp:126
#51 0xb4ba4fdc in QApplicationPrivate::notify_helper (this=0xa268f20, receiver=0xa303fa8, e=0xcd48210) at kernel/qapplication.cpp:4396
#52 0xb4bab0e9 in QApplication::notify (this=0xbfb8177c, receiver=0xa303fa8, e=0xcd48210) at kernel/qapplication.cpp:4361
#53 0xb574cf8a in KApplication::notify (this=0xbfb8177c, receiver=0xa303fa8, event=0xcd48210) at ../../kdeui/kernel/kapplication.cpp:311
#54 0xb4645b3b in QCoreApplication::notifyInternal (this=0xbfb8177c, receiver=0xa303fa8, event=0xcd48210) at kernel/qcoreapplication.cpp:732
#55 0xb4648d8b in sendEvent (receiver=0xa303fa8, event_type=77, data=0xa21f600) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#56 QCoreApplicationPrivate::sendPostedEvents (receiver=0xa303fa8, event_type=77, data=0xa21f600) at kernel/qcoreapplication.cpp:1373
#57 0xb4648f4d in QCoreApplication::sendPostedEvents (receiver=0xa303fa8, event_type=77) at kernel/qcoreapplication.cpp:1266
#58 0xb528dc3e in dispatchPendingUpdateRequests (this=0xa93dc60) at ../../include/QtGui/private/../../../src/gui/graphicsview/qgraphicsview_p.h:189
#59 QGraphicsScenePrivate::_q_processDirtyItems (this=0xa93dc60) at graphicsview/qgraphicsscene.cpp:510
#60 0xb528e116 in QGraphicsScene::qt_metacall (this=0xa5a1420, _c=QMetaObject::InvokeMetaMethod, _id=14, _a=0xd2a13f8) at .moc/release-shared/moc_qgraphicsscene.cpp:130
#61 0xb464b8ca in QMetaObject::metacall (object=0xa5a1420, cl=QMetaObject::WriteProperty, idx=18, argv=0xd2a13f8) at kernel/qmetaobject.cpp:237
#62 0xb4656df6 in QMetaCallEvent::placeMetaCall (this=0xdcd7f30, object=0xa5a1420) at kernel/qobject.cpp:534
#63 0xb46586a2 in QObject::event (this=0xa5a1420, e=0x7) at kernel/qobject.cpp:1219
#64 0xb528a374 in QGraphicsScene::event (this=0xa5a1420, event=0xdcd7f30) at graphicsview/qgraphicsscene.cpp:3548
#65 0xb4ba4fdc in QApplicationPrivate::notify_helper (this=0xa268f20, receiver=0xa5a1420, e=0xdcd7f30) at kernel/qapplication.cpp:4396
#66 0xb4bab04e in QApplication::notify (this=0xbfb8177c, receiver=0xa5a1420, e=0xdcd7f30) at kernel/qapplication.cpp:3798
#67 0xb574cf8a in KApplication::notify (this=0xbfb8177c, receiver=0xa5a1420, event=0xdcd7f30) at ../../kdeui/kernel/kapplication.cpp:311
#68 0xb4645b3b in QCoreApplication::notifyInternal (this=0xbfb8177c, receiver=0xa5a1420, event=0xdcd7f30) at kernel/qcoreapplication.cpp:732
#69 0xb4648d8b in sendEvent (receiver=0x0, event_type=0, data=0xa21f600) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#70 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0xa21f600) at kernel/qcoreapplication.cpp:1373
#71 0xb4648f4d in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1266
#72 0xb4674a74 in sendPostedEvents (s=0xa26b320) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220
#73 postEventSourceDispatch (s=0xa26b320) at kernel/qeventdispatcher_glib.cpp:277
#74 0xb3060855 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#75 0xb3064668 in ?? () from /lib/libglib-2.0.so.0
#76 0xb3064848 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#77 0xb4674565 in QEventDispatcherGlib::processEvents (this=0xa268e70, flags=...) at kernel/qeventdispatcher_glib.cpp:415
#78 0xb4c66be5 in QGuiEventDispatcherGlib::processEvents (this=0xa268e70, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#79 0xb4644609 in QEventLoop::processEvents (this=0xbfb81664, flags=) at kernel/qeventloop.cpp:149
#80 0xb4644a8a in QEventLoop::exec (this=0xbfb81664, flags=...) at kernel/qeventloop.cpp:201
#81 0xb464900f in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1009
#82 0xb4ba3e07 in QApplication::exec () at kernel/qapplication.cpp:3672
#83 0x0831bb6b in main (argc=1, argv=0xbfb81a14) at /home/amanda/kde/tools/src/digikam/core/digikam/main.cpp:232

Reported using DrKonqi
Comment 1 Andrew Coles 2011-01-16 17:26:40 UTC
Created attachment 56098 [details]
New crash information added by DrKonqi

digikam (2.0.0-beta2 (rev.: 1214825M)) on KDE Platform 4.5.95 (4.6 RC2) using Qt 4.7.0

- What I was doing when the application crashed:

This time, looking through a given album, rather than a given Tagged set of photos - crashed when clicking the arrow to show the next image.  Adding the backtrace in case it provides additional information beyond the last one.

-- Backtrace (Reduced):
#7  0xb531af7c in QGraphicsSceneFindItemBspTreeVisitor::visit(QList<QGraphicsItem*>*) () from /usr/lib/libQtGui.so.4
#8  0xb5319387 in QGraphicsSceneBspTree::climbTree (this=0x5, visitor=0x9dbd978, rect=..., index=19) at graphicsview/qgraphicsscene_bsp.cpp:247
#9  0xb53193c0 in QGraphicsSceneBspTree::climbTree (this=0x9ddc398, visitor=0x9dbd978, rect=..., index=9) at graphicsview/qgraphicsscene_bsp.cpp:252
#10 0xb5319408 in QGraphicsSceneBspTree::climbTree (this=0x9ddc398, visitor=0x9dbd978, rect=..., index=1) at graphicsview/qgraphicsscene_bsp.cpp:261
#11 0xb5319408 in QGraphicsSceneBspTree::climbTree (this=0x9ddc398, visitor=0x9dbd978, rect=..., index=0) at graphicsview/qgraphicsscene_bsp.cpp:261
Comment 2 caulier.gilles 2011-01-16 18:22:44 UTC
I cannot see digiKam code in this trace. Try to run digiKam directly into GDB and try again.

Gilles Caulier
Comment 3 Andrew Coles 2011-01-16 22:36:04 UTC
Okay I've found how to reproduce it:

1) Run face recognition on an album
2) Go through the photos in the album one by one, with 'Show Face Tags' enabled
3) When you come across an 'unknown' face rectangle, move it to someone else (or if it's on a tree, move it to an actual face), resize it, tag it
4) Hit next

About one time in three it crashes with the backtrace above.  Valgrind output is at the bottom of this comment.  As you say, there's no obvious digikam code causing the problem, so I suppose it might be a Qt bug?

==28857== Thread 1:
==28857== Invalid read of size 4
==28857==    at 0x6AACF79: QGraphicsSceneFindItemBspTreeVisitor::visit(QList<QGraphicsItem*>*) (qscopedpointer.h:113)
==28857==    by 0x6AAB386: QGraphicsSceneBspTree::climbTree(QGraphicsSceneBspTreeVisitor*, QRectF const&, int) const (qgraphicsscene_bsp.cpp:247)
==28857==    by 0x6AAB3BF: QGraphicsSceneBspTree::climbTree(QGraphicsSceneBspTreeVisitor*, QRectF const&, int) const (qgraphicsscene_bsp.cpp:252)
==28857==    by 0x6AAB407: QGraphicsSceneBspTree::climbTree(QGraphicsSceneBspTreeVisitor*, QRectF const&, int) const (qgraphicsscene_bsp.cpp:261)
==28857==    by 0x6AAB825: QGraphicsSceneBspTree::items(QRectF const&, bool) const (qgraphicsscene_bsp.cpp:154)
==28857==    by 0x6AAF130: QGraphicsSceneBspTreeIndexPrivate::estimateItems(QRectF const&, Qt::SortOrder, bool) (qgraphicsscenebsptreeindex.cpp:387)
==28857==    by 0x6AAF381: QGraphicsSceneBspTreeIndex::estimateTopLevelItems(QRectF const&, Qt::SortOrder) const (qgraphicsscenebsptreeindex.cpp:540)
==28857==    by 0x6A96C76: QGraphicsScenePrivate::drawItems(QPainter*, QTransform const*, QRegion*, QWidget*) (qgraphicsscene.cpp:4697)
==28857==    by 0x6AC2BB8: QGraphicsView::paintEvent(QPaintEvent*) (qgraphicsview.cpp:3467)
==28857==    by 0x641BCC5: QWidget::event(QEvent*) (qwidget.cpp:8333)
==28857==    by 0x683D762: QFrame::event(QEvent*) (qframe.cpp:557)
==28857==    by 0x68DAA81: QAbstractScrollArea::viewportEvent(QEvent*) (qabstractscrollarea.cpp:1043)
==28857==  Address 0x17ee2114 is not stack'd, malloc'd or (recently) free'd
==28857== 
==28857== Invalid read of size 4
==28857==    at 0x6AACF7C: QGraphicsSceneFindItemBspTreeVisitor::visit(QList<QGraphicsItem*>*) (qgraphicsscene_bsp.cpp:79)
==28857==    by 0x6AAB386: QGraphicsSceneBspTree::climbTree(QGraphicsSceneBspTreeVisitor*, QRectF const&, int) const (qgraphicsscene_bsp.cpp:247)
==28857==    by 0x6AAB3BF: QGraphicsSceneBspTree::climbTree(QGraphicsSceneBspTreeVisitor*, QRectF const&, int) const (qgraphicsscene_bsp.cpp:252)
==28857==    by 0x6AAB407: QGraphicsSceneBspTree::climbTree(QGraphicsSceneBspTreeVisitor*, QRectF const&, int) const (qgraphicsscene_bsp.cpp:261)
==28857==    by 0x6AAB825: QGraphicsSceneBspTree::items(QRectF const&, bool) const (qgraphicsscene_bsp.cpp:154)
==28857==    by 0x6AAF130: QGraphicsSceneBspTreeIndexPrivate::estimateItems(QRectF const&, Qt::SortOrder, bool) (qgraphicsscenebsptreeindex.cpp:387)
==28857==    by 0x6AAF381: QGraphicsSceneBspTreeIndex::estimateTopLevelItems(QRectF const&, Qt::SortOrder) const (qgraphicsscenebsptreeindex.cpp:540)
==28857==    by 0x6A96C76: QGraphicsScenePrivate::drawItems(QPainter*, QTransform const*, QRegion*, QWidget*) (qgraphicsscene.cpp:4697)
==28857==    by 0x6AC2BB8: QGraphicsView::paintEvent(QPaintEvent*) (qgraphicsview.cpp:3467)
==28857==    by 0x641BCC5: QWidget::event(QEvent*) (qwidget.cpp:8333)
==28857==    by 0x683D762: QFrame::event(QEvent*) (qframe.cpp:557)
==28857==    by 0x68DAA81: QAbstractScrollArea::viewportEvent(QEvent*) (qabstractscrollarea.cpp:1043)
==28857==  Address 0x70 is not stack'd, malloc'd or (recently) free'd
Comment 4 Marcel Wiesweg 2011-01-17 17:13:31 UTC
I dont get this crash atm.
We can disable the BSP indexing. If this patch leads to a different crash or valgrind error, it's our fault, if all is well, chances are there's a Qt problem or a problem with the way we use Qt.
Thanks a lot for your help!

Index: libs/widgets/graphicsview/graphicsdimgview.cpp
===================================================================
--- libs/widgets/graphicsview/graphicsdimgview.cpp      (Revision 1215076)
+++ libs/widgets/graphicsview/graphicsdimgview.cpp      (Arbeitskopie)
@@ -77,6 +77,7 @@
     : QGraphicsView(parent), d(new GraphicsDImgViewPriv)
 {
     d->scene  = new QGraphicsScene(this);
+    d->scene->setItemIndexMethod(QGraphicsScene::NoIndex);
 
     setScene(d->scene);
     d->layout = new SinglePhotoPreviewLayout(this);
Comment 5 Andrew Coles 2011-01-17 22:15:06 UTC
That patch fixes it - no crash, no valgrind warnings.
Comment 6 Marcel Wiesweg 2011-01-18 00:58:27 UTC
Discovered this one:
http://bugreports.qt.nokia.com/browse/QTBUG-5090

but over a year old, supposedly fixed, but no clear solution visible. Maybe it's really a Qt bug?

I assume we can disable indexing safely, with less than 100 items (often only one) present, though it's a workaround and not a fix.
Comment 7 Marcel Wiesweg 2011-01-18 01:15:22 UTC
SVN commit 1215197 by mwiesweg:

Switch off BSP indexing in the preview graphics view.
Workaround, presumably a Qt problem.

BUG: 263321


 M  +1 -0      graphicsdimgview.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1215197