Bug 272586 - crash when playing with databasebackend
Summary: crash when playing with databasebackend
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Database-Albums (show other bugs)
Version: 2.0.0
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-05-06 01:23 UTC by Francesco Riosa
Modified: 2017-07-26 16:38 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: 2.0.0


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Francesco Riosa 2011-05-06 01:23:41 UTC
Application: digikam (2.0.0-beta5)
KDE Platform Version: 4.6.2 (4.6.2) "release 3" (Compiled from sources)
Qt Version: 4.7.2
Operating System: Linux 2.6.37.6-0.5-desktop x86_64
Distribution: "openSUSE 11.4 (x86_64)"

-- Information about the crash:
1) switch from sqlite database to mysql (external)
2) switch back to previous sqlite database

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

Thread 8 (Thread 0x7f60b016a700 (LWP 16906)):
#0  0x00007f60cce8338c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f60cd10f77b in wait (this=<value optimized out>, mutex=0xb7fbe8, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:88
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0xb7fbe8, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:160
#3  0x000000000058a091 in Digikam::ScanController::run (this=0xb7d0a0) at /srv/git/digikam-sc/core/digikam/database/scancontroller.cpp:602
#4  0x00007f60cd10f095 in QThreadPrivate::start (arg=0xb7d0a0) at thread/qthread_unix.cpp:320
#5  0x00007f60cce7ea3f in start_thread () from /lib64/libpthread.so.0
#6  0x00007f60cb2f767d in clone () from /lib64/libc.so.6
#7  0x0000000000000000 in ?? ()

Thread 7 (Thread 0x7f60af969700 (LWP 16907)):
#0  0xffffffffff600177 in ?? ()
#1  0x00007fff02d547a1 in ?? ()
#2  0x00007f60c25492b3 in clock_gettime () from /lib64/librt.so.1
#3  0x00007f60cd1608d2 in do_gettime () at tools/qelapsedtimer_unix.cpp:123
#4  qt_gettime () at tools/qelapsedtimer_unix.cpp:140
#5  0x00007f60cd223c4d in QTimerInfoList::updateCurrentTime (this=0xc4a770) at kernel/qeventdispatcher_unix.cpp:339
#6  0x00007f60cd223fc5 in QTimerInfoList::timerWait (this=0xc4a770, tm=...) at kernel/qeventdispatcher_unix.cpp:442
#7  0x00007f60cd222a8c in timerSourcePrepareHelper (src=<value optimized out>, timeout=0x7f60af968b4c) at kernel/qeventdispatcher_glib.cpp:136
#8  0x00007f60cd222b35 in timerSourcePrepare (source=<value optimized out>, timeout=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:169
#9  0x00007f60c546a087 in g_main_context_prepare () from /lib64/libglib-2.0.so.0
#10 0x00007f60c546afa9 in ?? () from /lib64/libglib-2.0.so.0
#11 0x00007f60c546b650 in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#12 0x00007f60cd223286 in QEventDispatcherGlib::processEvents (this=0xc6ff90, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:424
#13 0x00007f60cd1f78d2 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149
#14 0x00007f60cd1f7ae5 in QEventLoop::exec (this=0x7f60af968ce0, flags=...) at kernel/qeventloop.cpp:201
#15 0x00007f60cd10c7a4 in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:492
#16 0x00007f60cd1d9008 in QInotifyFileSystemWatcherEngine::run (this=0xbe2ad0) at io/qfilesystemwatcher_inotify.cpp:248
#17 0x00007f60cd10f095 in QThreadPrivate::start (arg=0xbe2ad0) at thread/qthread_unix.cpp:320
#18 0x00007f60cce7ea3f in start_thread () from /lib64/libpthread.so.0
#19 0x00007f60cb2f767d in clone () from /lib64/libc.so.6
#20 0x0000000000000000 in ?? ()

Thread 6 (Thread 0x7f60af168700 (LWP 16909)):
#0  0x00007f60cce8338c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f60cd10f77b in wait (this=<value optimized out>, mutex=0xd8e668, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:88
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0xd8e668, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:160
#3  0x00007f60d094a966 in Digikam::ParkingThread::run (this=0xd8e650) at /srv/git/digikam-sc/core/libs/threads/threadmanager.cpp:119
#4  0x00007f60cd10f095 in QThreadPrivate::start (arg=0xd8e650) at thread/qthread_unix.cpp:320
#5  0x00007f60cce7ea3f in start_thread () from /lib64/libpthread.so.0
#6  0x00007f60cb2f767d in clone () from /lib64/libc.so.6
#7  0x0000000000000000 in ?? ()

Thread 5 (Thread 0x7f606adc0700 (LWP 16913)):
#0  0x00007f60cce8338c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f609fcc9e02 in ?? () from /usr/lib64/libvlccore.so.4
#2  0x00007f60cce7ea3f in start_thread () from /lib64/libpthread.so.0
#3  0x00007f60cb2f767d in clone () from /lib64/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7f605d3c2700 (LWP 17596)):
#0  0x00007f60cce836f9 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f60cd10f6e2 in wait (this=<value optimized out>, mutex=0xd6e840, time=30000) at thread/qwaitcondition_unix.cpp:86
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0xd6e840, time=30000) at thread/qwaitcondition_unix.cpp:160
#3  0x00007f60cd103f38 in QThreadPoolThread::run (this=0x5111f50) at concurrent/qthreadpool.cpp:140
#4  0x00007f60cd10f095 in QThreadPrivate::start (arg=0x5111f50) at thread/qthread_unix.cpp:320
#5  0x00007f60cce7ea3f in start_thread () from /lib64/libpthread.so.0
#6  0x00007f60cb2f767d in clone () from /lib64/libc.so.6
#7  0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7f605e3c4700 (LWP 17623)):
#0  0x00007f60cce836f9 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f60cd10f6e2 in wait (this=<value optimized out>, mutex=0xd6e840, time=30000) at thread/qwaitcondition_unix.cpp:86
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0xd6e840, time=30000) at thread/qwaitcondition_unix.cpp:160
#3  0x00007f60cd103f38 in QThreadPoolThread::run (this=0x505f810) at concurrent/qthreadpool.cpp:140
#4  0x00007f60cd10f095 in QThreadPrivate::start (arg=0x505f810) at thread/qthread_unix.cpp:320
#5  0x00007f60cce7ea3f in start_thread () from /lib64/libpthread.so.0
#6  0x00007f60cb2f767d in clone () from /lib64/libc.so.6
#7  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7f605dbc3700 (LWP 17624)):
#0  0x00007f60cce836f9 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f60cd10f6e2 in wait (this=<value optimized out>, mutex=0xd6e840, time=30000) at thread/qwaitcondition_unix.cpp:86
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0xd6e840, time=30000) at thread/qwaitcondition_unix.cpp:160
#3  0x00007f60cd103f38 in QThreadPoolThread::run (this=0x4a38710) at concurrent/qthreadpool.cpp:140
#4  0x00007f60cd10f095 in QThreadPrivate::start (arg=0x4a38710) at thread/qthread_unix.cpp:320
#5  0x00007f60cce7ea3f in start_thread () from /lib64/libpthread.so.0
#6  0x00007f60cb2f767d in clone () from /lib64/libc.so.6
#7  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f60d3e1f860 (LWP 16905)):
[KCrash Handler]
#6  QBasicAtomicInt::ref (this=0x0) at /usr/include/QtCore/qatomic_x86_64.h:121
#7  0x000000000055a26d in Digikam::Album::title (this=<value optimized out>) at /srv/git/digikam-sc/core/digikam/album/album.cpp:271
#8  0x000000000055d15a in Digikam::AlbumHistory::getBackwardHistory (this=0x3e2e140, list=...) at /srv/git/digikam-sc/core/digikam/album/albumhistory.cpp:309
#9  0x00000000005eef92 in Digikam::DigikamView::getBackwardHistory (this=0xd16780, titles=...) at /srv/git/digikam-sc/core/digikam/views/digikamview.cpp:867
#10 0x00000000005485d9 in Digikam::DigikamApp::slotAboutToShowBackwardMenu (this=0xc67a30) at /srv/git/digikam-sc/core/digikam/main/digikamapp.cpp:1349
#11 0x000000000054ecc2 in Digikam::DigikamApp::qt_metacall (this=0xc67a30, _c=QMetaObject::InvokeMetaMethod, _id=24, _a=0x7fff02ccfde0) at /srv/git/digikam-sc/build/core/digikam/digikamapp.moc:221
#12 0x00007f60cd20ca5f in QMetaObject::activate (sender=0x3e31d00, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x0) at kernel/qobject.cpp:3278
#13 0x00007f60cc55eec2 in QMenu::popup(QPoint const&, QAction*) () from /usr/lib64/libQtGui.so.4
#14 0x00007f60cc561576 in QMenu::internalDelayedPopup() () from /usr/lib64/libQtGui.so.4
#15 0x00007f60cc561a34 in QMenu::timerEvent(QTimerEvent*) () from /usr/lib64/libQtGui.so.4
#16 0x00007f60cd20c0a9 in QObject::event (this=0x40f0ac0, e=<value optimized out>) at kernel/qobject.cpp:1181
#17 0x00007f60cc17c60d in QWidget::event(QEvent*) () from /usr/lib64/libQtGui.so.4
#18 0x00007f60cc56322b in QMenu::event(QEvent*) () from /usr/lib64/libQtGui.so.4
#19 0x00007f60cc12b144 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/libQtGui.so.4
#20 0x00007f60cc1336fa in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/libQtGui.so.4
#21 0x00007f60cdb5ad46 in KApplication::notify(QObject*, QEvent*) () from /usr/lib64/libkdeui.so.5
#22 0x00007f60cd1f847c in QCoreApplication::notifyInternal (this=0x7fff02cd0f90, receiver=0x40f0ac0, event=0x7fff02cd0ac0) at kernel/qcoreapplication.cpp:731
#23 0x00007f60cd225df8 in sendEvent (this=0xaef210) at kernel/qcoreapplication.h:215
#24 QTimerInfoList::activateTimers (this=0xaef210) at kernel/qeventdispatcher_unix.cpp:619
#25 0x00007f60cd222b78 in timerSourceDispatch (source=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:184
#26 idleTimerSourceDispatch (source=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:231
#27 0x00007f60c546abd3 in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#28 0x00007f60c546b3b0 in ?? () from /lib64/libglib-2.0.so.0
#29 0x00007f60c546b650 in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#30 0x00007f60cd22322f in QEventDispatcherGlib::processEvents (this=0xab53e0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:422
#31 0x00007f60cc1d0bae in ?? () from /usr/lib64/libQtGui.so.4
#32 0x00007f60cd1f78d2 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149
#33 0x00007f60cd1f7ae5 in QEventLoop::exec (this=0x7fff02cd0dd0, flags=...) at kernel/qeventloop.cpp:201
#34 0x00007f60cd1fbf2b in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1008
#35 0x000000000062c16f in main (argc=7710720, argv=0x7fff02cd1638) at /srv/git/digikam-sc/core/digikam/main/main.cpp:232

Possible duplicates by query: bug 202886.

Reported using DrKonqi
Comment 1 Marcel Wiesweg 2011-05-13 22:32:30 UTC
AlbumHistory (old code) stores Album Pointers. It must handle the signalAlbumsCleared().
Comment 2 Marcel Wiesweg 2011-05-21 15:31:58 UTC
Git commit 71a96a9f048f3abb069300edb6e7c007b503b0dc by Marcel Wiesweg.
Committed on 21/05/2011 at 15:26.
Pushed by mwiesweg into branch 'master'.

Listen to signalAlbumsCleared in AlbumHistory

BUG: 272586

M  +2    -1    NEWS     
M  +6    -0    digikam/album/albumhistory.cpp     
M  +1    -0    digikam/album/albumhistory.h     
M  +4    -0    digikam/views/digikamview.cpp     

http://commits.kde.org/digikam/71a96a9f048f3abb069300edb6e7c007b503b0dc