Bug 234307 - segfault trying to delete an image
Summary: segfault trying to delete an image
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Database-Scan (show other bugs)
Version: 1.1.0
Platform: Unlisted Binaries Linux
: NOR crash
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-04-14 03:38 UTC by igor
Modified: 2016-07-09 14:16 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: 5.1.0


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description igor 2010-04-14 03:38:07 UTC
Application that crashed: digikam
Version of the application: 1.1.0
KDE Version: 4.3.2 (KDE 4.3.2)
Qt Version: 4.5.2
Operating System: Linux 2.6.31-02063104-generic x86_64
Distribution: Ubuntu 9.10

What I was doing when the application crashed:
i was in the image preview, where there's a row of images across the top and the current image is displayed in the bottom. tag info was open in the right sidebar, and albums view was open in the left sidebar. i had just pushed spacebar to get to the next image, and then i pushed delete to delete that image. this caused a segfault.

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

Thread 13 (Thread 0x7fe660207910 (LWP 17033)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007fe670c754fb in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x2459230, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x2459230, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00000000006dcb7b in ?? ()
#4  0x00007fe670c74445 in QThreadPrivate::start (arg=0x2458760) at thread/qthread_unix.cpp:188
#5  0x00007fe66ef75a04 in start_thread (arg=<value optimized out>) at pthread_create.c:300
#6  0x00007fe6701db80d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 12 (Thread 0x7fe65c925910 (LWP 17035)):
#0  0x00007fe6701cf3c3 in *__GI___poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007fe66a65737c in ?? () from /lib/libglib-2.0.so.0
#2  0x00007fe66a6576c0 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#3  0x00007fe670d831fe in QEventDispatcherGlib::processEvents (this=0x24bde10, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:329
#4  0x00007fe670d59532 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#5  0x00007fe670d59904 in QEventLoop::exec (this=0x7fe65c925050, flags=) at kernel/qeventloop.cpp:201
#6  0x00007fe670c716cb in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:487
#7  0x00007fe670c74445 in QThreadPrivate::start (arg=0x24b59e0) at thread/qthread_unix.cpp:188
#8  0x00007fe66ef75a04 in start_thread (arg=<value optimized out>) at pthread_create.c:300
#9  0x00007fe6701db80d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#10 0x0000000000000000 in ?? ()
The current source language is "auto; currently asm".

Thread 11 (Thread 0x7fe657fff910 (LWP 17036)):
#0  0xffffffffff60017b in ?? ()
#1  0x00007fe657ffed80 in ?? ()
#2  0x00007fff899ff69f in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
The current source language is "auto; currently c".

Thread 10 (Thread 0x7fe6577fe910 (LWP 17037)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007fe670c754fb in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x27f7078, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x27f7078, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00007fe6745fb8f2 in Digikam::LoadSaveThread::run() () from /usr/lib/libdigikamcore.so.1
#4  0x00007fe670c74445 in QThreadPrivate::start (arg=0x27f7060) at thread/qthread_unix.cpp:188
#5  0x00007fe66ef75a04 in start_thread (arg=<value optimized out>) at pthread_create.c:300
#6  0x00007fe6701db80d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 9 (Thread 0x7fe656ffd910 (LWP 17038)):
#0  0x00007fe6701cf3c3 in *__GI___poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007fe66a65737c in ?? () from /lib/libglib-2.0.so.0
#2  0x00007fe66a6576c0 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#3  0x00007fe670d831fe in QEventDispatcherGlib::processEvents (this=0x27890f0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:329
#4  0x00007fe670d59532 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#5  0x00007fe670d59904 in QEventLoop::exec (this=0x7fe656ffd050, flags=) at kernel/qeventloop.cpp:201
#6  0x00007fe670c716cb in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:487
#7  0x00007fe670c74445 in QThreadPrivate::start (arg=0x277e2a0) at thread/qthread_unix.cpp:188
#8  0x00007fe66ef75a04 in start_thread (arg=<value optimized out>) at pthread_create.c:300
#9  0x00007fe6701db80d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#10 0x0000000000000000 in ?? ()
The current source language is "auto; currently asm".

Thread 8 (Thread 0x7fe6567fc910 (LWP 17039)):
#0  0xffffffffff60017b in ?? ()
#1  0x00007fe6567fbd80 in ?? ()
#2  0x00007fff899ff69f in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
The current source language is "auto; currently c".

Thread 7 (Thread 0x7fe655ffb910 (LWP 17040)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007fe670c754fb in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x28380f8, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x28380f8, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00007fe6745fb8f2 in Digikam::LoadSaveThread::run() () from /usr/lib/libdigikamcore.so.1
#4  0x00007fe670c74445 in QThreadPrivate::start (arg=0x28380e0) at thread/qthread_unix.cpp:188
#5  0x00007fe66ef75a04 in start_thread (arg=<value optimized out>) at pthread_create.c:300
#6  0x00007fe6701db80d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 6 (Thread 0x7fe64b33a910 (LWP 17059)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007fe670c754fb in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x37a8958, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x37a8958, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00007fe6745fb8f2 in Digikam::LoadSaveThread::run() () from /usr/lib/libdigikamcore.so.1
#4  0x00007fe670c74445 in QThreadPrivate::start (arg=0x37a8940) at thread/qthread_unix.cpp:188
#5  0x00007fe66ef75a04 in start_thread (arg=<value optimized out>) at pthread_create.c:300
#6  0x00007fe6701db80d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()
The current source language is "auto; currently asm".

Thread 5 (Thread 0x7fe64e473910 (LWP 17066)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007fe670c754fb in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x3c7fb98, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x3c7fb98, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00007fe6745fb8f2 in Digikam::LoadSaveThread::run() () from /usr/lib/libdigikamcore.so.1
#4  0x00007fe670c74445 in QThreadPrivate::start (arg=0x3c7fb80) at thread/qthread_unix.cpp:188
#5  0x00007fe66ef75a04 in start_thread (arg=<value optimized out>) at pthread_create.c:300
#6  0x00007fe6701db80d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7fe650a33910 (LWP 17067)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007fe670c754fb in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x4040618, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x4040618, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00007fe6745fb8f2 in Digikam::LoadSaveThread::run() () from /usr/lib/libdigikamcore.so.1
#4  0x00007fe670c74445 in QThreadPrivate::start (arg=0x4040600) at thread/qthread_unix.cpp:188
#5  0x00007fe66ef75a04 in start_thread (arg=<value optimized out>) at pthread_create.c:300
#6  0x00007fe6701db80d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7fe64dc72910 (LWP 17147)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007fe670c754fb in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x5cba178, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x5cba178, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00007fe6745fb8f2 in Digikam::LoadSaveThread::run() () from /usr/lib/libdigikamcore.so.1
#4  0x00007fe670c74445 in QThreadPrivate::start (arg=0x5cba160) at thread/qthread_unix.cpp:188
#5  0x00007fe66ef75a04 in start_thread (arg=<value optimized out>) at pthread_create.c:300
#6  0x00007fe6701db80d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7fe62ffbc910 (LWP 17148)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007fe670c754fb in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x6307748, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x6307748, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00007fe6745fb8f2 in Digikam::LoadSaveThread::run() () from /usr/lib/libdigikamcore.so.1
#4  0x00007fe670c74445 in QThreadPrivate::start (arg=0x6307730) at thread/qthread_unix.cpp:188
#5  0x00007fe66ef75a04 in start_thread (arg=<value optimized out>) at pthread_create.c:300
#6  0x00007fe6701db80d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7fe677556750 (LWP 17032)):
[KCrash Handler]
#5  QHashNode<QWidget*, QHashDummyValue>::same_key (this=0x22b3c20, akey=<value optimized out>, ahp=0x7fff899b979c) at ../../include/QtCore/../../src/corelib/tools/qhash.h:215
#6  QHash<QWidget*, QHashDummyValue>::findNode (this=0x22b3c20, akey=<value optimized out>, ahp=0x7fff899b979c) at ../../include/QtCore/../../src/corelib/tools/qhash.h:860
#7  0x00007fe67193df83 in QHash<QWidget*, QHashDummyValue>::insert (this=0x63b8760, parentWidget=0x0, f=) at ../../include/QtCore/../../src/corelib/tools/qhash.h:736
#8  QSet<QWidget*>::insert (this=0x63b8760, parentWidget=0x0, f=) at ../../include/QtCore/../../src/corelib/tools/qset.h:174
#9  QWidgetPrivate::init (this=0x63b8760, parentWidget=0x0, f=) at kernel/qwidget.cpp:1050
#10 0x00007fe67193e581 in QWidget (this=0x283ca70, dd=<value optimized out>, parent=0x0, f=...) at kernel/qwidget.cpp:974
#11 0x00007fe671c4f64a in QAbstractButton (this=0x22b3c20, dd=..., parent=0x10d) at widgets/qabstractbutton.cpp:607
#12 0x00007fe671ce8749 in QPushButton (this=0x283ca70, parent=0x0) at widgets/qpushbutton.cpp:242
#13 0x00007fe672dbb5f1 in KPushButton (this=0x22b3c20, item=..., parent=0x10d) at ../../kdeui/widgets/kpushbutton.cpp:123
#14 0x00007fe672c4fd09 in KDialogPrivate::appendButton (this=0x63b76b0, key=KDialog::Cancel, item=...) at ../../kdeui/dialogs/kdialog.cpp:152
#15 0x00007fe672c51e60 in KDialog::setButtons (this=0x7fff899b9c00, buttonMask=) at ../../kdeui/dialogs/kdialog.cpp:245
#16 0x00007fe672c521fe in KDialogPrivate::init (this=0x63b76b0, q=0x7fff899b9c00) at ../../kdeui/dialogs/kdialog.cpp:169
#17 0x00007fe672c52561 in KDialog (this=0x7fff899b9c00, parent=<value optimized out>, flags=<value optimized out>) at ../../kdeui/dialogs/kdialog.cpp:185
#18 0x000000000047e546 in _start ()
The current source language is "auto; currently c".

Reported using DrKonqi
Comment 1 caulier.gilles 2010-04-14 09:03:10 UTC
Igor, 

please install digikam-debug package to get a full backtrace and post there a new trace.

Alos, use digiKam 1.2.0, the last stable version. Perhaps it fix your problem.

Andi, 

if crash comme from digiKam, sound like a missing QPointer protection for a dialog, somewhere. Right ?

Gilles Caulier
Comment 2 Marcel Wiesweg 2010-04-17 13:52:03 UTC
Strange backtrace, I have no idea what dialog is started here.
No digikam code visible in thread 1.
Comment 3 caulier.gilles 2010-10-06 09:54:55 UTC
Igor,

We need more info to hack your problem. Please read comment #1 and #2

Gilles Caulier
Comment 4 caulier.gilles 2010-11-24 09:07:50 UTC
digiKam 1.6.0 is out:

http://www.digikam.org/drupal/node/550

Please update and check if this entry still valid.

Thanks in advance

Gilles Caulier
Comment 5 Marcel Wiesweg 2011-01-18 14:28:55 UTC
I assume an upstream problem.
Is it still reproducable with a recent version?
Comment 6 caulier.gilles 2011-07-06 10:49:32 UTC
We need feedback here...

Gilles Caulier
Comment 7 caulier.gilles 2015-07-03 06:01:07 UTC
New digiKam 4.11.0 is available.

https://www.digikam.org/node/740

Can you reproduce the problem with this release ?

Gilles Caulier
Comment 8 caulier.gilles 2016-07-09 14:16:44 UTC
This problem is not reproducible with last 5.0.0.
I close this file now. Don't hesitate to re-open it if necessary.
Gilles Caulier