Bug 185109

Summary: Digikam crash on exit
Product: [Applications] digikam Reporter: René Krell <renda.krell>
Component: Albums-IconViewAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: caulier.gilles, marcel.wiesweg, romain.pub
Priority: NOR    
Version: 0.10.0   
Target Milestone: ---   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed In: 0.10.0
Sentry Crash Report:

Description René Krell 2009-02-21 11:40:22 UTC
Version:           0.10.0-rc2 (using 4.2.00 (KDE 4.2.0) "release 102", KDE:KDE4:Factory:Desktop / openSUSE_11.1)
Compiler:          gcc
OS:                Linux (x86_64) release 2.6.27.7-9-default

Using Digikam with Qt 4.5  if this plays a role.
I quitted Digikam over the menu by mouse and it crashed.

Backtrace:

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

Thread 13 (Thread 0x7f156e642950 (LWP 4833)):
#0  0x00007f157916fd59 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f15793e0f29 in QWaitCondition::wait (this=0xaa6e78, mutex=0xaa6e70, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:82
#2  0x0000000000640923 in Digikam::ScanController::run (this=0xaa6a40) at /usr/src/debug/digikam-0.10.0-rc2/digikam/scancontroller.cpp:412
#3  0x00007f15793dff72 in QThreadPrivate::start (arg=0xaa6a40) at thread/qthread_unix.cpp:184
#4  0x00007f157916c070 in start_thread () from /lib64/libpthread.so.0
#5  0x00007f157876510d in clone () from /lib64/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 12 (Thread 0x7f156a0c6950 (LWP 4836)):
#0  0x00007f157916fd59 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f15793e0f29 in QWaitCondition::wait (this=0xb7bcc0, mutex=0xb7bcb8, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:82
#2  0x00007f157cbddc8c in Digikam::LoadSaveThread::run (this=0xb7bca0) at /usr/src/debug/digikam-0.10.0-rc2/libs/threadimageio/loadsavethread.cpp:131
#3  0x00007f15793dff72 in QThreadPrivate::start (arg=0xb7bca0) at thread/qthread_unix.cpp:184
#4  0x00007f157916c070 in start_thread () from /lib64/libpthread.so.0
#5  0x00007f157876510d in clone () from /lib64/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 11 (Thread 0x7f156a8c7950 (LWP 4837)):
#0  0x00007f157916fd59 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f15793e0f29 in QWaitCondition::wait (this=0xcd1380, mutex=0xcd1378, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:82
#2  0x00007f157cbddc8c in Digikam::LoadSaveThread::run (this=0xcd1360) at /usr/src/debug/digikam-0.10.0-rc2/libs/threadimageio/loadsavethread.cpp:131
#3  0x00007f15793dff72 in QThreadPrivate::start (arg=0xcd1360) at thread/qthread_unix.cpp:184
#4  0x00007f157916c070 in start_thread () from /lib64/libpthread.so.0
#5  0x00007f157876510d in clone () from /lib64/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 10 (Thread 0x7f1562d9c950 (LWP 4838)):
#0  0x00007f157916ffdd in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f1567966611 in ?? () from /usr/lib64/libxine.so.1
#2  0x00007f157916c070 in start_thread () from /lib64/libpthread.so.0
#3  0x00007f157876510d in clone () from /lib64/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 9 (Thread 0x7f1560cbe950 (LWP 4839)):
#0  0x00007f157916ffdd in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f1567974685 in ?? () from /usr/lib64/libxine.so.1
#2  0x00007f157916c070 in start_thread () from /lib64/libpthread.so.0
#3  0x00007f157876510d in clone () from /lib64/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 8 (Thread 0x7f15604bd950 (LWP 4840)):
#0  0x00007f157875c386 in poll () from /lib64/libc.so.6
#1  0x00007f1575b5c748 in g_main_context_iterate (context=0xa36d60, block=1, dispatch=1, self=<value optimized out>) at gmain.c:3091
#2  0x00007f1575b5ca6b in IA__g_main_context_iteration (context=0xa36d60, may_block=1) at gmain.c:2841
#3  0x00007f15794f25be in QEventDispatcherGlib::processEvents (this=0xb367c0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:320
#4  0x00007f15794c7722 in QEventLoop::processEvents (this=<value optimized out>, flags={i = 1615581168}) at kernel/qeventloop.cpp:144
#5  0x00007f15794c7aed in QEventLoop::exec (this=0x7f15604bd030, flags={i = 1615581248}) at kernel/qeventloop.cpp:195
#6  0x00007f15793dcfd8 in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:476
#7  0x00007f1567bc1b12 in ?? () from /usr/lib64/kde4/plugins/phonon_backend/phonon_xine.so
#8  0x00007f15793dff72 in QThreadPrivate::start (arg=0x9c5b90) at thread/qthread_unix.cpp:184
#9  0x00007f157916c070 in start_thread () from /lib64/libpthread.so.0
#10 0x00007f157876510d in clone () from /lib64/libc.so.6
#11 0x0000000000000000 in ?? ()

Thread 7 (Thread 0x7f155fa7d950 (LWP 4843)):
#0  0x00007f1578761d69 in syscall () from /lib64/libc.so.6
#1  0x00007f157848c2e6 in v4l2_read () from /usr/lib64/libv4l2.so.0
#2  0x00007f1567fe5fa5 in snd_ctl_hw_read () from /usr/lib64/libasound.so.2
#3  0x00007f1567fe0d38 in snd_hctl_handle_events () from /usr/lib64/libasound.so.2
#4  0x00007f1567fea935 in snd_mixer_handle_events () from /usr/lib64/libasound.so.2
#5  0x00007f155fab7a00 in ?? () from /usr/lib64/xine/plugins/1.25/xineplug_ao_out_alsa.so
#6  0x00007f157916c070 in start_thread () from /lib64/libpthread.so.0
#7  0x00007f157876510d in clone () from /lib64/libc.so.6
#8  0x0000000000000000 in ?? ()

Thread 6 (Thread 0x7f155f27c950 (LWP 4844)):
#0  0x00007f157916fd59 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f1567977b63 in ?? () from /usr/lib64/libxine.so.1
#2  0x00007f157916c070 in start_thread () from /lib64/libpthread.so.0
#3  0x00007f157876510d in clone () from /lib64/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 5 (Thread 0x7f155d386950 (LWP 4859)):
#0  0x00007f157916fd59 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f15793e0f29 in QWaitCondition::wait (this=0x29ea390, mutex=0x29ea388, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:82
#2  0x00007f157cbddc8c in Digikam::LoadSaveThread::run (this=0x29ea370) at /usr/src/debug/digikam-0.10.0-rc2/libs/threadimageio/loadsavethread.cpp:131
#3  0x00007f15793dff72 in QThreadPrivate::start (arg=0x29ea370) at thread/qthread_unix.cpp:184
#4  0x00007f157916c070 in start_thread () from /lib64/libpthread.so.0
#5  0x00007f157876510d in clone () from /lib64/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7f155b309950 (LWP 4879)):
#0  0x00007f157916fd59 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f156796a17b in ?? () from /usr/lib64/libxine.so.1
#2  0x00007f15679700be in ?? () from /usr/lib64/libxine.so.1
#3  0x00007f157916c070 in start_thread () from /lib64/libpthread.so.0
#4  0x00007f157876510d in clone () from /lib64/libc.so.6
#5  0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7f155cb36950 (LWP 4880)):
#0  0x00007f157916fd59 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f156796a17b in ?? () from /usr/lib64/libxine.so.1
#2  0x00007f156797115e in ?? () from /usr/lib64/libxine.so.1
#3  0x00007f157916c070 in start_thread () from /lib64/libpthread.so.0
#4  0x00007f157876510d in clone () from /lib64/libc.so.6
#5  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7f15599f5950 (LWP 4881)):
#0  0x00007f157916fd59 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f156797a7bb in ?? () from /usr/lib64/libxine.so.1
#2  0x00007f157916c070 in start_thread () from /lib64/libpthread.so.0
#3  0x00007f157876510d in clone () from /lib64/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f157fa5d750 (LWP 4832)):
[KCrash Handler]
#5  Digikam::IconItem::setEditRating (this=0x0, val=false) at /usr/src/debug/digikam-0.10.0-rc2/digikam/iconitem.cpp:197
#6  0x000000000061e55d in Digikam::IconView::contentsWheelEvent (this=0xacf6b0, e=0x7fff87aac460) at /usr/src/debug/digikam-0.10.0-rc2/digikam/iconview.cpp:1361
#7  0x00007f157d7a1f98 in Q3ScrollView::viewportWheelEvent(QWheelEvent*) () from /usr/lib64/libQt3Support.so.4
#8  0x00007f157d7a2069 in Q3ScrollView::wheelEvent(QWheelEvent*) () from /usr/lib64/libQt3Support.so.4
#9  0x00007f157a0739b7 in QWidget::event (this=0xacf6b0, event=0x7fff87aac8b0) at kernel/qwidget.cpp:7519
#10 0x00007f157a02303d in QApplicationPrivate::notify_helper (this=0x95b130, receiver=0xacf6b0, e=0x7fff87aac8b0) at kernel/qapplication.cpp:4051
#11 0x00007f157a02c06c in QApplication::notify (this=<value optimized out>, receiver=0xace9a0, e=0x7fff87aacb50) at kernel/qapplication.cpp:3816
#12 0x00007f157b415c6b in KApplication::notify (this=0x7fff87aadc10, receiver=0xace9a0, event=0x7fff87aacb50) at /usr/src/debug/kdelibs-4.2.0/kdeui/kernel/kapplication.cpp:307
#13 0x00007f15794c8e8c in QCoreApplication::notifyInternal (this=0x7fff87aadc10, receiver=0xace9a0, event=0x7fff87aacb50) at kernel/qcoreapplication.cpp:594
#14 0x00007f157a080e22 in QETWidget::translateWheelEvent (this=<value optimized out>, global_x=<value optimized out>, global_y=<value optimized out>, delta=-120, buttons={i = -2018849312}, modifiers=
      {i = -2018849328}, orient=Qt::Vertical) at ../../src/corelib/kernel/qcoreapplication.h:211
#15 0x00007f157a0947ed in QETWidget::translateMouseEvent (this=0xacf6b0, event=0x7fff87aad820) at kernel/qapplication_x11.cpp:4227
#16 0x00007f157a093108 in QApplication::x11ProcessEvent (this=0x7fff87aadc10, event=0x7fff87aad820) at kernel/qapplication_x11.cpp:3530
#17 0x00007f157a0ba4d4 in x11EventSourceDispatch (s=0x966f60, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:141
#18 0x00007f1575b590db in IA__g_main_context_dispatch (context=0x966120) at gmain.c:2144
#19 0x00007f1575b5c8ad in g_main_context_iterate (context=0x966120, block=1, dispatch=1, self=<value optimized out>) at gmain.c:2778
#20 0x00007f1575b5ca6b in IA__g_main_context_iteration (context=0x966120, may_block=1) at gmain.c:2841
#21 0x00007f15794f259f in QEventDispatcherGlib::processEvents (this=0x94bf50, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:318
#22 0x00007f157a0b9c5f in QGuiEventDispatcherGlib::processEvents (this=0x0, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:197
#23 0x00007f15794c7722 in QEventLoop::processEvents (this=<value optimized out>, flags={i = -2018845936}) at kernel/qeventloop.cpp:144
#24 0x00007f15794c7aed in QEventLoop::exec (this=0x7fff87aadb50, flags={i = -2018845856}) at kernel/qeventloop.cpp:195
#25 0x00007f15794c9dd4 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:872
#26 0x0000000000664587 in main (argc=5, argv=0x7fff87aae878) at /usr/src/debug/digikam-0.10.0-rc2/digikam/main.cpp:190
Comment 1 caulier.gilles 2009-02-21 11:55:06 UTC
Renée,

Marcel has patched current implementation from svn with a similar crash.

Can you try again using current code ? 

Thanks in advance

Gilles Caulier
Comment 2 René Krell 2009-02-21 11:59:33 UTC
I would like to to so, but I cannot reproduce it. I'm sure that I saw this crash a second time. But whenever I try to repeat the crash it doesn't happen.
Can you give me a hint?
Comment 3 caulier.gilles 2009-02-21 12:29:43 UTC
Look here :

https://bugs.kde.org/show_bug.cgi?id

Gilles
Comment 4 caulier.gilles 2009-02-21 12:30:49 UTC
oups...

https://bugs.kde.org/show_bug.cgi?id=184473

Gilles
Comment 5 Marcel Wiesweg 2009-02-21 15:46:33 UTC
I think it's not the same location as Ian's bug, but the same problem. I will reorder the statements in IconView so that d->ratingBox->hide(), which is apparenly not atomic, is not called between the check that d->ratingItem==0 and accessing d->ratingItem.
I will close this bug then, I you can, with SVN including the expected commit, reproduce the crash, please reopen. (If you can't reproduce we will never close it ;-) )
Comment 6 Marcel Wiesweg 2009-02-21 17:42:29 UTC
SVN commit 929569 by mwiesweg:

Reorder statements so the d->ratingBox->hide() which may reenter somewhere cannot set d->ratingItem to 0.

CCBUG: 185109

 M  +12 -12    iconview.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=929569
Comment 7 Marcel Wiesweg 2009-02-21 18:11:15 UTC
SVN commit 929589 by mwiesweg:

Backport:
Reorder statements so the d->ratingBox->hide() which may reenter somewhere cannot set d->ratingItem to 0.

BUG: 185109

 M  +12 -12    iconview.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=929589
Comment 8 René Krell 2009-02-24 08:39:55 UTC
Unfortunately I can't check out the latest svn head, because I'm behind a proxy.
I will check it for RC3 or whatever the next prebuilt upstream package will be that I get on my computer.
Thank you very much.
Comment 9 caulier.gilles 2009-02-24 08:58:19 UTC
René,

No RC3 release is planed. next one will be final release. This is why it's important to kill all bugs when it's possible (:=)))...

Gilles Caulier
Comment 10 René Krell 2009-03-01 21:01:14 UTC
I see, let's go final :-)
I'm currently checking out and compiling r933866, hopefully You did a find job - as all the time :-)
BTW, I found that there are many more possible dependencies already at compile time than are offered by the default OpenSUSE package, for instance liblensfun. I installed and enabled them all.
Comment 11 Romain Henriet 2009-06-24 19:38:59 UTC
Application : digiKam (digikam), signal SIGABRT

Thread 1 (Thread 0xb47be920 (LWP 5202)):
[KCrash Handler]
#6  0xb80c4430 in __kernel_vsyscall ()
#7  0xb554e6d0 in raise () from /lib/tls/i686/cmov/libc.so.6
#8  0xb5550098 in abort () from /lib/tls/i686/cmov/libc.so.6
#9  0xb57f9595 in qt_message_output (msgType=QtFatalMsg, 
    buf=0xb5358c0 "Fatal Error: Accessed global static 'SchedulerPrivate *schedulerPrivate()' after destruction. Defined at /build/buildd/kde4libs-4.2.4/kio/kio/scheduler.cpp:196")
    at global/qglobal.cpp:2006
#10 0xb57f9681 in qFatal (msg=0xb6dd4164 "Fatal Error: Accessed global static '%s *%s()' after destruction. Defined at %s:%d") at global/qglobal.cpp:2201
#11 0xb6cfc97c in operator-> (this=0xb6e07160) at /build/buildd/kde4libs-4.2.4/kio/kio/scheduler.cpp:196
#12 0xb6cffb40 in KIO::Scheduler::cancelJob (job=0xbaa6170) at /build/buildd/kde4libs-4.2.4/kio/kio/scheduler.cpp:260
#13 0xb6c4edd8 in KIO::SimpleJob::doKill (this=0xbaa6170) at /build/buildd/kde4libs-4.2.4/kio/kio/job.cpp:324
#14 0xb5b30082 in KJob::kill (this=0xbaa6170, verbosity=KJob::Quietly) at /build/buildd/kde4libs-4.2.4/kdecore/jobs/kjob.cpp:106
#15 0x08209604 in Digikam::AlbumManager::cleanUp (this=0x93415b0) at /build/buildd/digikam-0.10.0/digikam/albummanager.cpp:319
#16 0x0820f12a in ~AlbumManager (this=0x93415b0) at /build/buildd/digikam-0.10.0/digikam/albummanager.cpp:302
#17 0x0820f36a in destroy () at /build/buildd/digikam-0.10.0/digikam/albummanager.cpp:244
#18 0xb5551bb9 in exit () from /lib/tls/i686/cmov/libc.so.6
#19 0xb553977d in __libc_start_main () from /lib/tls/i686/cmov/libc.so.6
#20 0x0808ddc1 in _start () at ../sysdeps/i386/elf/start.S:119
Comment 12 Marcel Wiesweg 2009-06-25 19:26:02 UTC
Romain: What digikam version was used for creating this backtrace?
Comment 13 Romain Henriet 2009-06-25 19:31:48 UTC
It is Digikam 0.10.0, kde 4.2.4