Bug 181000

Summary: Crash on closing Camera GUI after download+delete all
Product: [Applications] digikam Reporter: Will Stephenson <wstephenson>
Component: Database-SqliteAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: caulier.gilles
Priority: NOR    
Version: 0.10.0   
Target Milestone: ---   
Platform: openSUSE   
OS: Unspecified   
Latest Commit: Version Fixed In: 7.5.0
Sentry Crash Report:

Description Will Stephenson 2009-01-16 18:32:06 UTC
Version:            (using Devel)
Installed from:    Compiled sources

I got the following crash after downloading and deleting all pictures (and 3 movies) on my camera.  Check Thread #1, Line #5, - the pointer looks invalid.

Application: digiKam (digikam), signal SIGSEGV
 [?1034h[Thread debugging using libthread_db enabled]
0x00007f290a1d9221 in nanosleep () from /lib64/libc.so.6
[Current thread is 0 (LWP 4823)]

Thread 12 (Thread 0x41874950 (LWP 4825)):
#0  0x00007f290a1d9221 in nanosleep () from /lib64/libc.so.6
#1  0x00007f290a1d901c in sleep () from /lib64/libc.so.6
#2  0x00007f28ff0d54af in unixSleep (pVfs=<value optimized out>, microseconds=<value optimized out>) at sqlite3.c:20865
#3  0x00007f28ff0d2725 in sqliteDefaultBusyCallback (ptr=<value optimized out>, count=<value optimized out>) at sqlite3.c:10375
#4  0x00007f28ff0d0afd in sqlite3BtreeInvokeBusyHandler (pArg=<value optimized out>, n=<value optimized out>) at sqlite3.c:75113
#5  0x00007f28ff0d08ba in pager_wait_on_lock (pPager=0xaea738, locktype=1) at sqlite3.c:75113
#6  0x00007f28ff0eb8f6 in pagerAcquire (pPager=0xaea738, pgno=1, ppPage=<value optimized out>, noContent=-1) at sqlite3.c:26188
#7  0x00007f28ff0ec138 in sqlite3BtreeGetPage (pBt=0xbcf568, pgno=1099378128, ppPage=0x41872f30, noContent=-1) at sqlite3.c:26588
#8  0x00007f28ff0fcd6b in sqlite3BtreeBeginTrans (p=0xaf6f38, wrflag=0) at sqlite3.c:30635
#9  0x00007f28ff136394 in sqlite3VdbeExec (p=0xa6ef4f8) at sqlite3.c:42837
#10 0x00007f28ff1175d0 in sqlite3_step (pStmt=0xa6ef4f8) at sqlite3.c:39788
#11 0x00007f28ff39177a in QSQLiteResultPrivate::fetchNext (this=0x68ad830, values=@0x9ba5700, idx=0, initialFetch=255) at ../../../sql/drivers/sqlite/qsql_sqlite.cpp:190
#12 0x00007f28ff39230e in QSQLiteResult::exec (this=0xba5c70) at ../../../sql/drivers/sqlite/qsql_sqlite.cpp:398
#13 0x00007f2908d104a7 in QSqlQuery::exec (this=0x41873a00) at kernel/qsqlquery.cpp:931
#14 0x00007f290de1c5f9 in Digikam::DatabaseBackend::exec (this=0xa1f030, query=@0x41872dd0) at /usr/src/debug/digikam-0.10.0-beta8/libs/database/databasebackend.cpp:511
#15 0x00007f290de1e253 in Digikam::DatabaseBackend::execQuery (this=0xa1f030, sql=<value optimized out>, boundValue1=@0x41873ab0)
    at /usr/src/debug/digikam-0.10.0-beta8/libs/database/databasebackend.cpp:436
#16 0x00007f290de1e2bc in Digikam::DatabaseBackend::execSql (this=0xa1f030, sql=@0x0, boundValue1=@0xffffffffffffffff, values=0x41873b30, lastInsertId=0x0)
    at /usr/src/debug/digikam-0.10.0-beta8/libs/database/databasebackend.cpp:365
#17 0x00007f290ddec8cd in Digikam::AlbumDB::getItemScanInfos (this=0xa2c490, albumID=<value optimized out>) at /usr/src/debug/digikam-0.10.0-beta8/libs/database/albumdb.cpp:2562
#18 0x00007f290de01a5d in Digikam::CollectionScanner::scanAlbum (this=0x41874070, location=@0x41873ec0, album=@0x41874000)
    at /usr/src/debug/digikam-0.10.0-beta8/libs/database/collectionscanner.cpp:483
#19 0x00007f290de03956 in Digikam::CollectionScanner::partialScan (this=0x41874070, albumRoot=<value optimized out>, album=@0x41874000)
    at /usr/src/debug/digikam-0.10.0-beta8/libs/database/collectionscanner.cpp:263
#20 0x00007f290de03c45 in Digikam::CollectionScanner::partialScan (this=0x41874070, filePath=@0x418740c0) at /usr/src/debug/digikam-0.10.0-beta8/libs/database/collectionscanner.cpp:221
#21 0x00000000006341b4 in Digikam::ScanController::run (this=0xa8b040) at /usr/src/debug/digikam-0.10.0-beta8/digikam/scancontroller.cpp:441
#22 0x00007f290ae84022 in QThreadPrivate::start (arg=0xa8b040) at thread/qthread_unix.cpp:185
#23 0x00007f290ac10040 in start_thread () from /lib64/libpthread.so.0
#24 0x00007f290a20a08d in clone () from /lib64/libc.so.6
#25 0x0000000000000000 in ?? ()

Thread 11 (Thread 0x42f9a950 (LWP 4828)):
#0  0x00007f290ac13dd9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f290ae84fd9 in QWaitCondition::wait (this=0xb8e9f0, mutex=0xb8e9e8, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:82
#2  0x00007f290e1fafcc in Digikam::LoadSaveThread::run (this=0xb8e9d0) at /usr/src/debug/digikam-0.10.0-beta8/libs/threadimageio/loadsavethread.cpp:129
#3  0x00007f290ae84022 in QThreadPrivate::start (arg=0xb8e9d0) at thread/qthread_unix.cpp:185
#4  0x00007f290ac10040 in start_thread () from /lib64/libpthread.so.0
#5  0x00007f290a20a08d in clone () from /lib64/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 10 (Thread 0x42799950 (LWP 4829)):
#0  0x00007f290ac13dd9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f290ae84fd9 in QWaitCondition::wait (this=0xccd5a0, mutex=0xccd598, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:82
#2  0x00007f290e1fafcc in Digikam::LoadSaveThread::run (this=0xccd580) at /usr/src/debug/digikam-0.10.0-beta8/libs/threadimageio/loadsavethread.cpp:129
#3  0x00007f290ae84022 in QThreadPrivate::start (arg=0xccd580) at thread/qthread_unix.cpp:185
#4  0x00007f290ac10040 in start_thread () from /lib64/libpthread.so.0
#5  0x00007f290a20a08d in clone () from /lib64/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 9 (Thread 0x4379b950 (LWP 4830)):
#0  0x00007f290ac1405d in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f28f92a7261 in ?? () from /usr/lib64/libxine.so.1
#2  0x00007f290ac10040 in start_thread () from /lib64/libpthread.so.0
#3  0x00007f290a20a08d in clone () from /lib64/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 8 (Thread 0x40f2b950 (LWP 4831)):
#0  0x00007f290ac1405d in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f28f92b502d in ?? () from /usr/lib64/libxine.so.1
#2  0x00007f290ac10040 in start_thread () from /lib64/libpthread.so.0
#3  0x00007f290a20a08d in clone () from /lib64/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 7 (Thread 0x43f9c950 (LWP 4832)):
#0  0x00007f290ac115b1 in pthread_mutex_lock () from /lib64/libpthread.so.0
#1  0x00007f290333b2a2 in g_main_context_query () from /usr/lib64/libglib-2.0.so.0
#2  0x00007f290333fd87 in ?? () from /usr/lib64/libglib-2.0.so.0
#3  0x00007f29033401dc in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#4  0x00007f290af953ce in QEventDispatcherGlib::processEvents (this=0x12426c0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:321
#5  0x00007f290af6b782 in QEventLoop::processEvents (this=<value optimized out>, flags={i = 1140441152}) at kernel/qeventloop.cpp:143
#6  0x00007f290af6b90d in QEventLoop::exec (this=0x43f9c080, flags={i = 1140441232}) at kernel/qeventloop.cpp:194
#7  0x00007f290ae810c8 in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:458
#8  0x00007f28f9500b02 in ?? () from /usr/lib64/kde4/plugins/phonon_backend/phonon_xine.so
#9  0x00007f290ae84022 in QThreadPrivate::start (arg=0xaf1ed0) at thread/qthread_unix.cpp:185
#10 0x00007f290ac10040 in start_thread () from /lib64/libpthread.so.0
#11 0x00007f290a20a08d in clone () from /lib64/libc.so.6
#12 0x0000000000000000 in ?? ()

Thread 6 (Thread 0x4479d950 (LWP 4835)):
#0  0x00007f290ac1690b in read () from /lib64/libpthread.so.0
#1  0x00007f28f9b79435 in ?? () from /usr/lib64/libasound.so.2
#2  0x00007f28f9b74798 in snd_hctl_handle_events () from /usr/lib64/libasound.so.2
#3  0x00007f28f9b7e305 in snd_mixer_handle_events () from /usr/lib64/libasound.so.2
#4  0x00007f28f3125958 in ?? () from /usr/lib64/xine/plugins/1.24/xineplug_ao_out_alsa.so
#5  0x00007f290ac10040 in start_thread () from /lib64/libpthread.so.0
#6  0x00007f290a20a08d in clone () from /lib64/libc.so.6
#7  0x0000000000000000 in ?? ()

Thread 5 (Thread 0x44f9e950 (LWP 4836)):
#0  0x00007f290ac13dd9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f28f92b8593 in ?? () from /usr/lib64/libxine.so.1
#2  0x00007f290ac10040 in start_thread () from /lib64/libpthread.so.0
#3  0x00007f290a20a08d in clone () from /lib64/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 4 (Thread 0x467a1950 (LWP 4851)):
#0  0x00007f290ac13dd9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f290ae84fd9 in QWaitCondition::wait (this=0x37676d0, mutex=0x37676c8, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:82
#2  0x00007f290e1fafcc in Digikam::LoadSaveThread::run (this=0x37676b0) at /usr/src/debug/digikam-0.10.0-beta8/libs/threadimageio/loadsavethread.cpp:129
#3  0x00007f290ae84022 in QThreadPrivate::start (arg=0x37676b0) at thread/qthread_unix.cpp:185
#4  0x00007f290ac10040 in start_thread () from /lib64/libpthread.so.0
#5  0x00007f290a20a08d in clone () from /lib64/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 3 (Thread 0x4579f950 (LWP 4857)):
#0  0x00007f290ac13dd9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f290ae84fd9 in QWaitCondition::wait (this=0x4ea8520, mutex=0x4ea8518, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:82
#2  0x00007f290e1fafcc in Digikam::LoadSaveThread::run (this=0x4ea8500) at /usr/src/debug/digikam-0.10.0-beta8/libs/threadimageio/loadsavethread.cpp:129
#3  0x00007f290ae84022 in QThreadPrivate::start (arg=0x4ea8500) at thread/qthread_unix.cpp:185
#4  0x00007f290ac10040 in start_thread () from /lib64/libpthread.so.0
#5  0x00007f290a20a08d in clone () from /lib64/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x47fa4950 (LWP 5149)):
#0  0x00007f290ac13dd9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f290ae84fd9 in QWaitCondition::wait (this=0x889d650, mutex=0x889d648, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:82
#2  0x00007f290e1fafcc in Digikam::LoadSaveThread::run (this=0x889d630) at /usr/src/debug/digikam-0.10.0-beta8/libs/threadimageio/loadsavethread.cpp:129
#3  0x00007f290ae84022 in QThreadPrivate::start (arg=0x889d630) at thread/qthread_unix.cpp:185
#4  0x00007f290ac10040 in start_thread () from /lib64/libpthread.so.0
#5  0x00007f290a20a08d in clone () from /lib64/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f290fb57700 (LWP 4823)):
[KCrash Handler]
#5  QAbstractButton::isChecked (this=0x72006500760072) at widgets/qabstractbutton.cpp:761
#6  0x00000000004e322b in Digikam::CameraIconView::slotUpdateDownloadNames (this=0x3834f50, hasSelection=false) at /usr/src/debug/digikam-0.10.0-beta8/utilities/cameragui/cameraiconview.cpp:440
#7  0x00000000004e5829 in Digikam::CameraIconView::qt_metacall (this=0x3834f50, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff17bba970)
    at /usr/src/debug/digikam-0.10.0-beta8/build/digikam/cameraiconview.moc:124
#8  0x00007f290af81284 in QMetaObject::activate (sender=0x3834f50, from_signal_index=<value optimized out>, to_signal_index=70, argv=0x7fff17bba970) at kernel/qobject.cpp:3031
#9  0x00000000004e1560 in Digikam::CameraIconView::signalNewSelection (this=0x72006500760072, _t1=false) at /usr/src/debug/digikam-0.10.0-beta8/build/digikam/cameraiconview.moc:188
#10 0x00000000004e1812 in Digikam::CameraIconView::slotSelectionChanged (this=0x3834f50) at /usr/src/debug/digikam-0.10.0-beta8/utilities/cameragui/cameraiconview.cpp:575
#11 0x00000000004e58dd in Digikam::CameraIconView::qt_metacall (this=0x3834f50, _c=QMetaObject::InvokeMetaMethod, _id=104784576, _a=0x7fff17bbaa60)
    at /usr/src/debug/digikam-0.10.0-beta8/build/digikam/cameraiconview.moc:114
#12 0x00007f290af81284 in QMetaObject::activate (sender=0x3834f50, from_signal_index=<value optimized out>, to_signal_index=52, argv=0x7fff17bba970) at kernel/qobject.cpp:3031
#13 0x0000000000615c37 in Digikam::IconView::clear (this=0x3834f50, update=true) at /usr/src/debug/digikam-0.10.0-beta8/digikam/iconview.cpp:352
#14 0x00000000004e4910 in ~CameraIconView (this=0x72006500760072) at /usr/src/debug/digikam-0.10.0-beta8/utilities/cameragui/cameraiconview.cpp:276
#15 0x00007f290af7a761 in QObjectPrivate::deleteChildren (this=0x64b9f50) at kernel/qobject.cpp:1884
#16 0x00007f290bafc7ed in ~QWidget (this=0x5e0bff0) at kernel/qwidget.cpp:1338
#17 0x00007f290be58698 in ~QSplitter (this=0x5e0bff0) at widgets/qsplitter.cpp:971
#18 0x00007f290e234496 in ~SidebarSplitter (this=0x5e0bff0) at /usr/src/debug/digikam-0.10.0-beta8/libs/widgets/common/sidebar.cpp:419
#19 0x00007f290af7a761 in QObjectPrivate::deleteChildren (this=0x60fb980) at kernel/qobject.cpp:1884
#20 0x00007f290bafc7ed in ~QWidget (this=0x69f02f0) at kernel/qwidget.cpp:1338
#21 0x00007f290ce72d91 in ~KHBox (this=0x72006500760072) at /usr/src/debug/kdelibs-4.1.96/kdeui/widgets/khbox.cpp:51
#22 0x00007f290af7a761 in QObjectPrivate::deleteChildren (this=0x64d80f0) at kernel/qobject.cpp:1884
#23 0x00007f290bafc7ed in ~QWidget (this=0x6784340) at kernel/qwidget.cpp:1338
#24 0x00007f290ce89f96 in ~KMainWindow (this=0x6784340) at /usr/src/debug/kdelibs-4.1.96/kdeui/widgets/kmainwindow.cpp:463
#25 0x00000000004fac83 in ~CameraUI (this=0x6784340) at /usr/src/debug/digikam-0.10.0-beta8/utilities/cameragui/cameraui.cpp:170
#26 0x00007f290af7bf6d in QObject::event (this=0x6784340, e=0x0) at kernel/qobject.cpp:1139
#27 0x00007f290bafb036 in QWidget::event (this=0x72006500760072, event=0x45c18e0) at kernel/qwidget.cpp:7551
#28 0x00007f290be1423b in QMainWindow::event (this=0x6784340, event=0x45c18e0) at widgets/qmainwindow.cpp:1268
#29 0x00007f290cec49c8 in KXmlGuiWindow::event (this=0x72006500760072, ev=0x0) at /usr/src/debug/kdelibs-4.1.96/kdeui/xmlgui/kxmlguiwindow.cpp:131
#30 0x00007f290baa917d in QApplicationPrivate::notify_helper (this=0x94b5e0, receiver=0x6784340, e=0x45c18e0) at kernel/qapplication.cpp:3803
#31 0x00007f290bab0f2a in QApplication::notify (this=0x7fff17bbba70, receiver=0x6784340, e=0x45c18e0) at kernel/qapplication.cpp:3768
#32 0x00007f290cdc1d0b in KApplication::notify (this=0x7fff17bbba70, receiver=0x6784340, event=0x45c18e0) at /usr/src/debug/kdelibs-4.1.96/kdeui/kernel/kapplication.cpp:307
#33 0x00007f290af6ce81 in QCoreApplication::notifyInternal (this=0x7fff17bbba70, receiver=0x6784340, event=0x45c18e0) at kernel/qcoreapplication.cpp:587
#34 0x00007f290af6db3a in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x91b280) at kernel/qcoreapplication.h:209
#35 0x00007f290af95723 in postEventSourceDispatch (s=<value optimized out>) at kernel/qcoreapplication.h:214
#36 0x00007f290333c93a in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#37 0x00007f2903340040 in ?? () from /usr/lib64/libglib-2.0.so.0
#38 0x00007f29033401dc in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#39 0x00007f290af953af in QEventDispatcherGlib::processEvents (this=0x94b390, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:319
#40 0x00007f290bb39cff in QGuiEventDispatcherGlib::processEvents (this=0x72006500760072, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:198
#41 0x00007f290af6b782 in QEventLoop::processEvents (this=<value optimized out>, flags={i = 398178672}) at kernel/qeventloop.cpp:143
#42 0x00007f290af6b90d in QEventLoop::exec (this=0x7fff17bbb9b0, flags={i = 398178752}) at kernel/qeventloop.cpp:194
#43 0x00007f290af6ddfd in QCoreApplication::exec () at kernel/qcoreapplication.cpp:845
#44 0x00000000006574a1 in main (argc=3, argv=0x7fff17bbc6d8) at /usr/src/debug/digikam-0.10.0-beta8/digikam/main.cpp:188
Comment 1 Marcel Wiesweg 2009-01-17 13:34:46 UTC
SVN commit 912366 by mwiesweg:

Ensure from two places that the CameraIconView does not access a CameraUI
which has already executed its constructor (and deleted d etc.)

BUG: 181000

 M  +3 -0      cameraiconview.cpp  
 M  +1 -0      cameraui.cpp  


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