Bug 221298

Summary: Segfaults on Flickr export
Product: [Applications] digikam Reporter: Alexios Chouchoulas <alexios-kdebugs>
Component: Plugin-WebService-FlickrAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: caulier.gilles, eva, trisroger
Priority: NOR    
Version: 5.6.0   
Target Milestone: ---   
Platform: Unlisted Binaries   
OS: Linux   
Latest Commit: Version Fixed In: 1.2.0
Sentry Crash Report:

Description Alexios Chouchoulas 2010-01-04 23:04:47 UTC
Application that crashed: digikam
Version of the application: 1.0.0
KDE Version: 4.3.4 (KDE 4.3.4)
Qt Version: 4.5.3
Operating System: Linux 2.6.31-1-686-bigmem i686
Distribution: Debian GNU/Linux unstable (sid)

What I was doing when the application crashed:
This crash is reproducible on my system: exporting three JPEGs to Flickr. Reshuffled images in the upload window (moved an image to the bottom of the list). All three images are larger than the accepted size, so I'd expect them to be resampled/rescaled at this point. The crash happens as soon as the Start Uploading button is clicked.

As a control group experiment, I attempted to upload the three images separately (first opening the Flickr Export window, uploading the first photo, then dragging photos into the window and uploading once at a time). There was no issue in this case.

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

Thread 19 (Thread 0xb168bb70 (LWP 18800)):
#0  0xb77e6424 in __kernel_vsyscall ()
#1  0xb47b80a5 in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:122
#2  0xb4bc57ed in __pthread_cond_wait (cond=0x889ac30, mutex=0x889ac18) at forward.c:139
#3  0xb4dbc5c2 in QWaitConditionPrivate::wait (this=0x889a6a8, mutex=0x889a6a4, time=4294967295) at thread/qwaitcondition_unix.cpp:87
#4  QWaitCondition::wait (this=0x889a6a8, mutex=0x889a6a4, time=4294967295) at thread/qwaitcondition_unix.cpp:159
#5  0x08318559 in ?? ()
#6  0xb4dbb5e2 in QThreadPrivate::start (arg=0x8883300) at thread/qthread_unix.cpp:188
#7  0xb47b4585 in start_thread (arg=0xb168bb70) at pthread_create.c:300
#8  0xb4bb827e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 18 (Thread 0xb0affb70 (LWP 18830)):
#0  0xb4ed8df4 in QTimerInfoList::getTime (this=0x8c94a34, t=...) at kernel/qeventdispatcher_unix.cpp:334
#1  0xb4ed9061 in QTimerInfoList::updateCurrentTime (this=0x8c94a34) at kernel/qeventdispatcher_unix.cpp:297
#2  0xb4ed921a in QTimerInfoList::timerWait (this=0x8c94a34, tm=...) at kernel/qeventdispatcher_unix.cpp:420
#3  0xb4ed7220 in timerSourcePrepareHelper (src=0x8c94a00, timeout=0xb0aff16c) at kernel/qeventdispatcher_glib.cpp:136
#4  0xb4ed72a5 in timerSourcePrepare (source=0x8c94a58, timeout=0xb0aff16c) at kernel/qeventdispatcher_glib.cpp:169
#5  0xb342dc30 in g_main_context_prepare () from /lib/libglib-2.0.so.0
#6  0xb342dff1 in ?? () from /lib/libglib-2.0.so.0
#7  0xb342e503 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#8  0xb4ed705f in QEventDispatcherGlib::processEvents (this=0x88c8eb8, flags=...) at kernel/qeventdispatcher_glib.cpp:409
#9  0xb4eaa83a in QEventLoop::processEvents (this=0xb0aff310, flags=...) at kernel/qeventloop.cpp:149
#10 0xb4eaac82 in QEventLoop::exec (this=0xb0aff310, flags=...) at kernel/qeventloop.cpp:201
#11 0xb4db8309 in QThread::exec (this=0x87def78) at thread/qthread.cpp:487
#12 0xb6771efd in ?? () from /usr/lib/libdigikamdatabase.so.1
#13 0xb4dbb5e2 in QThreadPrivate::start (arg=0x87def78) at thread/qthread_unix.cpp:188
#14 0xb47b4585 in start_thread (arg=0xb0affb70) at pthread_create.c:300
#15 0xb4bb827e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 17 (Thread 0xb019ab70 (LWP 18831)):
#0  0xb3378e4c in *__GI_clock_gettime (clock_id=-1288187916, tp=0xb019a068) at ../sysdeps/unix/clock_gettime.c:100
#1  0xb4ed8e9b in QTimerInfoList::getTime (this=0xb0b118d4, t=...) at kernel/qeventdispatcher_unix.cpp:339
#2  0xb4ed9061 in QTimerInfoList::updateCurrentTime (this=0xb0b118d4) at kernel/qeventdispatcher_unix.cpp:297
#3  0xb4ed921a in QTimerInfoList::timerWait (this=0xb0b118d4, tm=...) at kernel/qeventdispatcher_unix.cpp:420
#4  0xb4ed7220 in timerSourcePrepareHelper (src=0xb019a068, timeout=0xb019a16c) at kernel/qeventdispatcher_glib.cpp:136
#5  0xb4ed72a5 in timerSourcePrepare (source=0x0, timeout=0xb337cff4) at kernel/qeventdispatcher_glib.cpp:169
#6  0xb342dc30 in g_main_context_prepare () from /lib/libglib-2.0.so.0
#7  0xb342dff1 in ?? () from /lib/libglib-2.0.so.0
#8  0xb342e503 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#9  0xb4ed705f in QEventDispatcherGlib::processEvents (this=0xb0b3c0b0, flags=...) at kernel/qeventdispatcher_glib.cpp:409
#10 0xb4eaa83a in QEventLoop::processEvents (this=0xb019a310, flags=...) at kernel/qeventloop.cpp:149
#11 0xb4eaac82 in QEventLoop::exec (this=0xb019a310, flags=...) at kernel/qeventloop.cpp:201
#12 0xb4db8309 in QThread::exec (this=0x8895d58) at thread/qthread.cpp:487
#13 0xb6771efd in ?? () from /usr/lib/libdigikamdatabase.so.1
#14 0xb4dbb5e2 in QThreadPrivate::start (arg=0x8895d58) at thread/qthread_unix.cpp:188
#15 0xb47b4585 in start_thread (arg=0xb019ab70) at pthread_create.c:300
#16 0xb4bb827e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130
The current source language is "auto; currently c++".

Thread 16 (Thread 0xaf973b70 (LWP 18832)):
#0  0xb77e6424 in __kernel_vsyscall ()
#1  0xb47b80a5 in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:122
#2  0xb4bc57ed in __pthread_cond_wait (cond=0x89c4438, mutex=0x89c4420) at forward.c:139
#3  0xb4dbc5c2 in QWaitConditionPrivate::wait (this=0x88c3aa0, mutex=0x88c3a9c, time=4294967295) at thread/qwaitcondition_unix.cpp:87
#4  QWaitCondition::wait (this=0x88c3aa0, mutex=0x88c3a9c, time=4294967295) at thread/qwaitcondition_unix.cpp:159
#5  0xb697ddfa in Digikam::LoadSaveThread::run() () from /usr/lib/libdigikamcore.so.1
#6  0xb4dbb5e2 in QThreadPrivate::start (arg=0x88c3a90) at thread/qthread_unix.cpp:188
#7  0xb47b4585 in start_thread (arg=0xaf973b70) at pthread_create.c:300
#8  0xb4bb827e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130
The current source language is "auto; currently c".

Thread 15 (Thread 0xaf172b70 (LWP 18833)):
#0  0xb77e6424 in __kernel_vsyscall ()
#1  0xb4baaaf7 in *__GI___poll (fds=0x89ceb68, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#2  0xb343b03b in g_poll () from /lib/libglib-2.0.so.0
#3  0xb342e20b in ?? () from /lib/libglib-2.0.so.0
#4  0xb342e503 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#5  0xb4ed705f in QEventDispatcherGlib::processEvents (this=0x89ff218, flags=...) at kernel/qeventdispatcher_glib.cpp:409
#6  0xb4eaa83a in QEventLoop::processEvents (this=0xaf172330, flags=...) at kernel/qeventloop.cpp:149
#7  0xb4eaac82 in QEventLoop::exec (this=0xaf172330, flags=...) at kernel/qeventloop.cpp:201
#8  0xb4db8309 in QThread::exec (this=0x8937670) at thread/qthread.cpp:487
#9  0xb4dbb5e2 in QThreadPrivate::start (arg=0x8937670) at thread/qthread_unix.cpp:188
#10 0xb47b4585 in start_thread (arg=0xaf172b70) at pthread_create.c:300
#11 0xb4bb827e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 14 (Thread 0xae971b70 (LWP 18834)):
#0  0xb3378e4c in *__GI_clock_gettime (clock_id=-1288187916, tp=0xae971088) at ../sysdeps/unix/clock_gettime.c:100
#1  0xb4ed8e9b in QTimerInfoList::getTime (this=0x8c0ab34, t=...) at kernel/qeventdispatcher_unix.cpp:339
#2  0xb4ed9061 in QTimerInfoList::updateCurrentTime (this=0x8c0ab34) at kernel/qeventdispatcher_unix.cpp:297
#3  0xb4ed921a in QTimerInfoList::timerWait (this=0x8c0ab34, tm=...) at kernel/qeventdispatcher_unix.cpp:420
#4  0xb4ed7220 in timerSourcePrepareHelper (src=0xae971088, timeout=0xae97118c) at kernel/qeventdispatcher_glib.cpp:136
#5  0xb4ed72a5 in timerSourcePrepare (source=0x0, timeout=0xb337cff4) at kernel/qeventdispatcher_glib.cpp:169
#6  0xb342dc30 in g_main_context_prepare () from /lib/libglib-2.0.so.0
#7  0xb342dff1 in ?? () from /lib/libglib-2.0.so.0
#8  0xb342e503 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#9  0xb4ed705f in QEventDispatcherGlib::processEvents (this=0x88faf98, flags=...) at kernel/qeventdispatcher_glib.cpp:409
#10 0xb4eaa83a in QEventLoop::processEvents (this=0xae971330, flags=...) at kernel/qeventloop.cpp:149
#11 0xb4eaac82 in QEventLoop::exec (this=0xae971330, flags=...) at kernel/qeventloop.cpp:201
#12 0xb4db8309 in QThread::exec (this=0x89f6240) at thread/qthread.cpp:487
#13 0xb4dbb5e2 in QThreadPrivate::start (arg=0x89f6240) at thread/qthread_unix.cpp:188
#14 0xb47b4585 in start_thread (arg=0xae971b70) at pthread_create.c:300
#15 0xb4bb827e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 13 (Thread 0xadfccb70 (LWP 18835)):
#0  0xb77e6424 in __kernel_vsyscall ()
#1  0xb47b80a5 in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:122
#2  0xb4bc57ed in __pthread_cond_wait (cond=0x88e0878, mutex=0x88e0860) at forward.c:139
#3  0xb4dbc5c2 in QWaitConditionPrivate::wait (this=0x88d25e0, mutex=0x88d25dc, time=4294967295) at thread/qwaitcondition_unix.cpp:87
#4  QWaitCondition::wait (this=0x88d25e0, mutex=0x88d25dc, time=4294967295) at thread/qwaitcondition_unix.cpp:159
#5  0xb697ddfa in Digikam::LoadSaveThread::run() () from /usr/lib/libdigikamcore.so.1
#6  0xb4dbb5e2 in QThreadPrivate::start (arg=0x88d25d0) at thread/qthread_unix.cpp:188
#7  0xb47b4585 in start_thread (arg=0xadfccb70) at pthread_create.c:300
#8  0xb4bb827e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 12 (Thread 0xab2e7b70 (LWP 18839)):
#0  0xb77e6424 in __kernel_vsyscall ()
#1  0xb47b83d2 in pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_timedwait.S:179
#2  0xb4bc5844 in __pthread_cond_timedwait (cond=0x8c49958, mutex=0x8c49940, abstime=0xab2e735c) at forward.c:152
#3  0xabfda9f7 in ?? () from /usr/lib/libxine.so.1

Thread 11 (Thread 0xaa568b70 (LWP 18840)):
#0  0xb77e6424 in __kernel_vsyscall ()
#1  0xb4bb1571 in select () from /lib/i686/cmov/libc.so.6
#2  0xac00456a in xine_usec_sleep () from /usr/lib/libxine.so.1
#3  0x00000000 in ?? ()

Thread 10 (Thread 0xa9d67b70 (LWP 18841)):
#0  0xb3378e4c in *__GI_clock_gettime (clock_id=-1288187916, tp=0xa9d67058) at ../sysdeps/unix/clock_gettime.c:100
#1  0xb4ed8e9b in QTimerInfoList::getTime (this=0x8a28744, t=...) at kernel/qeventdispatcher_unix.cpp:339
#2  0xb4ed9061 in QTimerInfoList::updateCurrentTime (this=0x8a28744) at kernel/qeventdispatcher_unix.cpp:297
#3  0xb4ed921a in QTimerInfoList::timerWait (this=0x8a28744, tm=...) at kernel/qeventdispatcher_unix.cpp:420
#4  0xb4ed7220 in timerSourcePrepareHelper (src=0xa9d67058, timeout=0xa9d6713c) at kernel/qeventdispatcher_glib.cpp:136
#5  0xb342dc30 in g_main_context_prepare () from /lib/libglib-2.0.so.0
#6  0xb342dff1 in ?? () from /lib/libglib-2.0.so.0
#7  0xb342e503 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#8  0xb4ed705f in QEventDispatcherGlib::processEvents (this=0x89c95e8, flags=...) at kernel/qeventdispatcher_glib.cpp:409
#9  0xb4eaa83a in QEventLoop::processEvents (this=0xa9d672e0, flags=...) at kernel/qeventloop.cpp:149
#10 0xb4eaac82 in QEventLoop::exec (this=0xa9d672e0, flags=...) at kernel/qeventloop.cpp:201
#11 0xb4db8309 in QThread::exec (this=0x89982c8) at thread/qthread.cpp:487
#12 0xac02848a in ?? () from /usr/lib/qt4/plugins/phonon_backend/phonon_xine.so
#13 0xb4dbb5e2 in QThreadPrivate::start (arg=0x89982c8) at thread/qthread_unix.cpp:188
#14 0xb47b4585 in start_thread (arg=0xa9d67b70) at pthread_create.c:300
#15 0xb4bb827e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 9 (Thread 0xa9566b70 (LWP 18845)):
#0  0xb77e6424 in __kernel_vsyscall ()
#1  0xb4baaaf7 in *__GI___poll (fds=0xa95662b8, nfds=1, timeout=333) at ../sysdeps/unix/sysv/linux/poll.c:87
#2  0xaaacea41 in ?? () from /usr/lib/xine/plugins/1.27/xineplug_ao_out_alsa.so
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Thread 8 (Thread 0xa8d65b70 (LWP 18846)):
#0  0xb77e6424 in __kernel_vsyscall ()
#1  0xb47b80a5 in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:122
#2  0xb4bc57ed in __pthread_cond_wait (cond=0x94fc3c0, mutex=0x94fc3a8) at forward.c:139
#3  0xabfebc66 in ?? () from /usr/lib/libxine.so.1
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Thread 7 (Thread 0xa54ffb70 (LWP 18856)):
#0  0xb3378e4c in *__GI_clock_gettime (clock_id=-1288187916, tp=0xa54ff028) at ../sysdeps/unix/clock_gettime.c:100
#1  0xb4ed8e9b in QTimerInfoList::getTime (this=0x9eb6c0c, t=...) at kernel/qeventdispatcher_unix.cpp:339
#2  0xb4ed9061 in QTimerInfoList::updateCurrentTime (this=0x9eb6c0c) at kernel/qeventdispatcher_unix.cpp:297
#3  0xb4ed921a in QTimerInfoList::timerWait (this=0x9eb6c0c, tm=...) at kernel/qeventdispatcher_unix.cpp:420
#4  0xb4ed7220 in timerSourcePrepareHelper (src=0xa54ff028, timeout=0xa54ff12c) at kernel/qeventdispatcher_glib.cpp:136
#5  0xb4ed72a5 in timerSourcePrepare (source=0x0, timeout=0xb337cff4) at kernel/qeventdispatcher_glib.cpp:169
#6  0xb342dc30 in g_main_context_prepare () from /lib/libglib-2.0.so.0
#7  0xb342dff1 in ?? () from /lib/libglib-2.0.so.0
#8  0xb342e503 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#9  0xb4ed705f in QEventDispatcherGlib::processEvents (this=0x9e86798, flags=...) at kernel/qeventdispatcher_glib.cpp:409
#10 0xb4eaa83a in QEventLoop::processEvents (this=0xa54ff2d0, flags=...) at kernel/qeventloop.cpp:149
#11 0xb4eaac82 in QEventLoop::exec (this=0xa54ff2d0, flags=...) at kernel/qeventloop.cpp:201
#12 0xb4db8309 in QThread::exec (this=0x9eb75f0) at thread/qthread.cpp:487
#13 0xa8556eec in ?? () from /usr/lib/kde4/plugins/marble/GpsdPositionProviderPlugin.so
#14 0xb4dbb5e2 in QThreadPrivate::start (arg=0x9eb75f0) at thread/qthread_unix.cpp:188
#15 0xb47b4585 in start_thread (arg=0xa54ffb70) at pthread_create.c:300
#16 0xb4bb827e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 6 (Thread 0xa84bfb70 (LWP 18857)):
#0  0xb77e6424 in __kernel_vsyscall ()
#1  0xb47b80a5 in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:122
#2  0xb4bc57ed in __pthread_cond_wait (cond=0x9faf400, mutex=0x9faf3e8) at forward.c:139
#3  0xb4dbc5c2 in QWaitConditionPrivate::wait (this=0x9fad640, mutex=0x9fad63c, time=4294967295) at thread/qwaitcondition_unix.cpp:87
#4  QWaitCondition::wait (this=0x9fad640, mutex=0x9fad63c, time=4294967295) at thread/qwaitcondition_unix.cpp:159
#5  0xb697ddfa in Digikam::LoadSaveThread::run() () from /usr/lib/libdigikamcore.so.1
#6  0xb4dbb5e2 in QThreadPrivate::start (arg=0x9fad630) at thread/qthread_unix.cpp:188
#7  0xb47b4585 in start_thread (arg=0xa84bfb70) at pthread_create.c:300
#8  0xb4bb827e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 5 (Thread 0xa7cbeb70 (LWP 18864)):
#0  0xb77e6424 in __kernel_vsyscall ()
#1  0xb47b80a5 in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:122
#2  0xb4bc57ed in __pthread_cond_wait (cond=0xa1af0f8, mutex=0xa1af0e0) at forward.c:139
#3  0xb4dbc5c2 in QWaitConditionPrivate::wait (this=0xa1aee60, mutex=0xa1aee5c, time=4294967295) at thread/qwaitcondition_unix.cpp:87
#4  QWaitCondition::wait (this=0xa1aee60, mutex=0xa1aee5c, time=4294967295) at thread/qwaitcondition_unix.cpp:159
#5  0xb697ddfa in Digikam::LoadSaveThread::run() () from /usr/lib/libdigikamcore.so.1
#6  0xb4dbb5e2 in QThreadPrivate::start (arg=0xa1aee50) at thread/qthread_unix.cpp:188
#7  0xb47b4585 in start_thread (arg=0xa7cbeb70) at pthread_create.c:300
#8  0xb4bb827e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 4 (Thread 0xa7417b70 (LWP 18866)):
#0  pthread_mutex_unlock (mutex=0xa392254) at forward.c:184
#1  0xb342e1f7 in ?? () from /lib/libglib-2.0.so.0
#2  0xb342e503 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#3  0xb4ed705f in QEventDispatcherGlib::processEvents (this=0xa374208, flags=...) at kernel/qeventdispatcher_glib.cpp:409
#4  0xb4eaa83a in QEventLoop::processEvents (this=0xa74172d0, flags=...) at kernel/qeventloop.cpp:149
#5  0xb4eaac82 in QEventLoop::exec (this=0xa74172d0, flags=...) at kernel/qeventloop.cpp:201
#6  0xb4db8309 in QThread::exec (this=0xa392190) at thread/qthread.cpp:487
#7  0xa8556eec in ?? () from /usr/lib/kde4/plugins/marble/GpsdPositionProviderPlugin.so
#8  0xb4dbb5e2 in QThreadPrivate::start (arg=0xa392190) at thread/qthread_unix.cpp:188
#9  0xb47b4585 in start_thread (arg=0xa7417b70) at pthread_create.c:300
#10 0xb4bb827e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 3 (Thread 0xa48ffb70 (LWP 18867)):
#0  0xb77e6424 in __kernel_vsyscall ()
#1  0xb47b80a5 in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:122
#2  0xb4bc57ed in __pthread_cond_wait (cond=0xa67c36f0, mutex=0xa67c36d8) at forward.c:139
#3  0xb4dbc5c2 in QWaitConditionPrivate::wait (this=0xa67c3458, mutex=0xa67c3454, time=4294967295) at thread/qwaitcondition_unix.cpp:87
#4  QWaitCondition::wait (this=0xa67c3458, mutex=0xa67c3454, time=4294967295) at thread/qwaitcondition_unix.cpp:159
#5  0xb697ddfa in Digikam::LoadSaveThread::run() () from /usr/lib/libdigikamcore.so.1
#6  0xb4dbb5e2 in QThreadPrivate::start (arg=0xa67c3448) at thread/qthread_unix.cpp:188
#7  0xb47b4585 in start_thread (arg=0xa48ffb70) at pthread_create.c:300
#8  0xb4bb827e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 2 (Thread 0xa60e8b70 (LWP 18879)):
#0  0xb77e6424 in __kernel_vsyscall ()
#1  0xb47b80a5 in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:122
#2  0xb4bc57ed in __pthread_cond_wait (cond=0xb57e940, mutex=0xb57e928) at forward.c:139
#3  0xb4dbc5c2 in QWaitConditionPrivate::wait (this=0xb57ed18, mutex=0xb57ed14, time=4294967295) at thread/qwaitcondition_unix.cpp:87
#4  QWaitCondition::wait (this=0xb57ed18, mutex=0xb57ed14, time=4294967295) at thread/qwaitcondition_unix.cpp:159
#5  0xb697ddfa in Digikam::LoadSaveThread::run() () from /usr/lib/libdigikamcore.so.1
#6  0xb4dbb5e2 in QThreadPrivate::start (arg=0xb57ed08) at thread/qthread_unix.cpp:188
#7  0xb47b4585 in start_thread (arg=0xa60e8b70) at pthread_create.c:300
#8  0xb4bb827e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 1 (Thread 0xb2f42700 (LWP 18799)):
[KCrash Handler]
#6  QBasicAtomicInt::ref (this=0xc054f00) at ../../include/QtCore/../../src/corelib/arch/qatomic_i386.h:120
#7  QString (this=0xc054f00) at ../../include/QtCore/../../src/corelib/tools/qstring.h:712
#8  QLineEdit::text (this=0xc054f00) at widgets/qlineedit.cpp:391
#9  0xa4c65f58 in ?? () from /usr/lib/kde4/kipiplugin_flickrexport.so
#10 0xa4c4a858 in ?? () from /usr/lib/kde4/kipiplugin_flickrexport.so
#11 0xa4c4b643 in ?? () from /usr/lib/kde4/kipiplugin_flickrexport.so
#12 0xb4ec1303 in QMetaObject::activate (sender=0xc0ae8e8, from_signal_index=42, to_signal_index=42, argv=0x0) at kernel/qobject.cpp:3112
#13 0xb4ec1f42 in QMetaObject::activate (sender=0xc0ae8e8, m=0x84bb54c, local_signal_index=6, argv=0x0) at kernel/qobject.cpp:3186
#14 0xb5efb147 in KDialog::user1Clicked (this=0xc0ae8e8) at ./kdialog.moc:234
#15 0xb5efd6be in KDialog::slotButtonClicked (this=0xc0ae8e8, button=4096) at ../../kdeui/dialogs/kdialog.cpp:869
#16 0xb5eff9f2 in KDialog::qt_metacall (this=0xc0ae8e8, _c=QMetaObject::InvokeMetaMethod, _id=33, _a=0xbfe38abc) at ./kdialog.moc:184
#17 0xa4c4b5fa in ?? () from /usr/lib/kde4/kipiplugin_flickrexport.so
#18 0xb4ec1303 in QMetaObject::activate (sender=0xbf68ed0, from_signal_index=4, to_signal_index=4, argv=0xbfe38abc) at kernel/qobject.cpp:3112
#19 0xb4ec1f42 in QMetaObject::activate (sender=0xbf68ed0, m=0xb4f9ccf8, local_signal_index=0, argv=0xbfe38abc) at kernel/qobject.cpp:3186
#20 0xb4ec4b63 in QSignalMapper::mapped (this=0xbf68ed0, _t1=4096) at .moc/release-shared/moc_qsignalmapper.cpp:95
#21 0xb4ec53ed in QSignalMapper::map (this=0xbf68ed0, sender=0xb3b8c58) at kernel/qsignalmapper.cpp:266
#22 0xb4ec55de in QSignalMapper::map (this=0xbf68ed0) at kernel/qsignalmapper.cpp:257
#23 0xb4ec5eab in QSignalMapper::qt_metacall (this=0xbf68ed0, _c=QMetaObject::InvokeMetaMethod, _id=4, _a=0xbfe38c3c) at .moc/release-shared/moc_qsignalmapper.cpp:81
#24 0xb4ec1303 in QMetaObject::activate (sender=0xb3b8c58, from_signal_index=29, to_signal_index=30, argv=0xbfe38c3c) at kernel/qobject.cpp:3112
#25 0xb4ec1720 in QMetaObject::activate (sender=0xb3b8c58, m=0xb5c04424, from_local_signal_index=2, to_local_signal_index=3, argv=0xbfe38c3c) at kernel/qobject.cpp:3206
#26 0xb5a1bb21 in QAbstractButton::clicked (this=0xb3b8c58, _t1=false) at .moc/release-shared/moc_qabstractbutton.cpp:200
#27 0xb5747959 in QAbstractButtonPrivate::emitClicked (this=0xc0b1728) at widgets/qabstractbutton.cpp:543
#28 0xb5749584 in QAbstractButtonPrivate::click (this=0xc0b1728) at widgets/qabstractbutton.cpp:536
#29 0xb5749816 in QAbstractButton::mouseReleaseEvent (this=0xb3b8c58, e=0xbfe392dc) at widgets/qabstractbutton.cpp:1115
#30 0xb53f09fb in QWidget::event (this=0xb3b8c58, event=0xbfe392dc) at kernel/qwidget.cpp:7554
#31 0xb57477fe in QAbstractButton::event (this=0xb3b8c58, e=0xbfe392dc) at widgets/qabstractbutton.cpp:1077
#32 0xb57f0f10 in QPushButton::event (this=0xb3b8c58, e=0xbfe392dc) at widgets/qpushbutton.cpp:662
#33 0xb539aa94 in QApplicationPrivate::notify_helper (this=0x8784380, receiver=0xb3b8c58, e=0xbfe392dc) at kernel/qapplication.cpp:4065
#34 0xb53a3551 in QApplication::notify (this=0xbfe3abd8, receiver=0xb3b8c58, e=0xbfe392dc) at kernel/qapplication.cpp:3767
#35 0xb5f9462d in KApplication::notify (this=0xbfe3abd8, receiver=0xb3b8c58, event=0xbfe392dc) at ../../kdeui/kernel/kapplication.cpp:302
#36 0xb4eac1eb in QCoreApplication::notifyInternal (this=0xbfe3abd8, receiver=0xb3b8c58, event=0xbfe392dc) at kernel/qcoreapplication.cpp:610
#37 0xb53a25de in QCoreApplication::sendSpontaneousEvent (receiver=0xb3b8c58, event=0xbfe392dc, alienWidget=0xb3b8c58, nativeWidget=0xc0ae8e8, buttonDown=0xb5c11580, lastMouseReceiver=...)
    at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:216
#38 QApplicationPrivate::sendMouseEvent (receiver=0xb3b8c58, event=0xbfe392dc, alienWidget=0xb3b8c58, nativeWidget=0xc0ae8e8, buttonDown=0xb5c11580, lastMouseReceiver=...)
    at kernel/qapplication.cpp:2924
#39 0xb5411175 in QETWidget::translateMouseEvent (this=0xc0ae8e8, event=0xbfe3a88c) at kernel/qapplication_x11.cpp:4411
#40 0xb5410646 in QApplication::x11ProcessEvent (this=0xbfe3abd8, event=0xbfe3a88c) at kernel/qapplication_x11.cpp:3430
#41 0xb543abc2 in x11EventSourceDispatch (s=0x8785f90, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#42 0xb342ab38 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#43 0xb342e3d0 in ?? () from /lib/libglib-2.0.so.0
#44 0xb342e503 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#45 0xb4ed7041 in QEventDispatcherGlib::processEvents (this=0x8784360, flags=...) at kernel/qeventdispatcher_glib.cpp:407
#46 0xb543a305 in QGuiEventDispatcherGlib::processEvents (this=0x8784360, flags=...) at kernel/qguieventdispatcher_glib.cpp:202
#47 0xb4eaa83a in QEventLoop::processEvents (this=0xbfe3ab40, flags=...) at kernel/qeventloop.cpp:149
#48 0xb4eaac82 in QEventLoop::exec (this=0xbfe3ab40, flags=...) at kernel/qeventloop.cpp:201
#49 0xb4ead0d9 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:888
#50 0xb539a917 in QApplication::exec () at kernel/qapplication.cpp:3525
#51 0x083bb3cb in ?? ()
#52 0xb4affb55 in __libc_start_main (main=0x83b8050, argc=1, ubp_av=0xbfe3b024, init=0x83bcfc0 <__libc_csu_init>, fini=0x83bcfb0 <__libc_csu_fini>, rtld_fini=0xb77f5980 <_dl_fini>, 
    stack_end=0xbfe3b01c) at libc-start.c:222
#53 0x080a23a1 in _start ()

Reported using DrKonqi
Comment 1 caulier.gilles 2010-01-05 07:56:44 UTC
Which kipi-plugins version you use ?

Gilles Caulier
Comment 2 Alexios Chouchoulas 2010-01-06 11:59:07 UTC
kipi-plugins is at 1.0.0-1, and libkipi6 is 4:4.3.4-1 (these are Debian versions, FYI). digikam is reported as 2:1.0.0-1, although this is clearly a kipi issue as you imply.

~Alexios
Comment 3 caulier.gilles 2010-01-06 12:56:30 UTC
#6  QBasicAtomicInt::ref (this=0xc054f00) at
../../include/QtCore/../../src/corelib/arch/qatomic_i386.h:120
#7  QString (this=0xc054f00) at
../../include/QtCore/../../src/corelib/tools/qstring.h:712
#8  QLineEdit::text (this=0xc054f00) at widgets/qlineedit.cpp:391
#9  0xa4c65f58 in ?? () from /usr/lib/kde4/kipiplugin_flickrexport.so

This is strange trace from Qt4 in Qstring. Why it crash here. 

which Qt4 you use ?

Gilles Caulier
Comment 4 Alexios Chouchoulas 2010-01-09 19:45:30 UTC
Debian lists this as 4:4.5.3-4, so it's Qt 4.5.3.
Comment 5 James Vega 2010-02-23 13:42:04 UTC
I was seeing this as well, but it seems to have stopped with kipi-plugins 1.1.0.
Comment 6 caulier.gilles 2010-02-23 13:57:57 UTC
Alexios, 

can you update to kipi-plugins 1.1.0 and try again ?

Gilles Caulier
Comment 7 Alexios Chouchoulas 2010-03-12 20:28:38 UTC
Giles,

apologies for the delay — I haven't been on a 32bit machine for a while, and I wanted to use the same computer I saw this on.

I can confirm the issue is FIXED in kipi-plugins 1.1.0.
Comment 8 Tristan 2010-05-16 15:08:54 UTC
*** Bug 237818 has been marked as a duplicate of this bug. ***
Comment 9 eva 2010-06-06 12:34:52 UTC
I still see this crash here (using trunk of Jun 5). I had it all the time since several months.

How to reproduce:
add 2 images for upload
move up the second image
upload
=> crash in FlickrListViewItem::extraTags()

it seems, something happens to m_tagLineEdit during the move (ImagesList::slotMoveUpItems)
Comment 10 eva 2010-06-06 12:40:50 UTC
one idea: I am using kde 4.4 libs here. Maybe something in kdelibs trunk was fixed for KLineEdit? Alexios: which kdelibs did you use?
Comment 11 eva 2010-06-06 16:33:36 UTC
commited a quickfix, see revision 1135123.
Not perfect, but at least it fixes the crash and makes moving items working for flickr at all.
Should be revisisted though (see commit message)
Comment 12 caulier.gilles 2010-06-06 23:20:37 UTC
SVN commit 1135123 by eva:

This is a quickfix for  Bug 221298 -  Digikam segfaults on Flickr export
** Analysis:
- ImagesList::slotMoveUpItems() uses takeTopLevelItem(aboveIndex.row() and
then reinserts the item at new position
- FlickrListViewItem constructor creates a KLineEdit as a special widget
 and sets it using view->setItemWidget(...)
- Issue: view takes ownership of itemwidget. Thus KLineEdit widget is
 broken after calling takeTopLevelItem on the item
- same issue for slotMoveDownItems()
** QuickFix:
- add new virtual function updateItemWidgets to ImagesListViewItem and
implement it in FlickrListViewItem. Create a new KlineEdit in there and
call setItemWidget
- call updateItemWidget after having used takeTopLevelItem
** Remaining Issue:
we can't preserve the content of KLineEdit (extra tags in case of
flickr)
However, this feature has to be actively activated by the user, so it is
not being used by default. And at least we don't get crashes now
** Real fix ideas:
- implement a QItemDelegate (changing the model...)
- there might be a solution based on QLineEdit (needs to be
 investigated)



 M  +12 -0     common/libkipiplugins/widgets/imageslist.cpp
 M  +8 -0      common/libkipiplugins/widgets/imageslist.h
 M  +12 -2     flickrexport/flickrlist.cpp
 M  +2 -0      flickrexport/flickrlist.h


--- trunk/extragear/graphics/kipi-plugins/common/libkipiplugins/widgets/imageslist.cpp #1135122:1135123
@@ -185,6 +185,12 @@
    setIcon(ImagesListView::Thumbnail, QIcon(m_thumb));
 }

+
+ImagesListView* ImagesListViewItem::view()
+{
+    return m_view;
+}
+
 // ---------------------------------------------------------------------------

 ImagesListView::ImagesListView(ImagesList *parent)
@@ -746,6 +752,7 @@

 void ImagesList::slotMoveUpItems()
 {
+    // move above item down, then we don't have to fix the focus
    QModelIndex curIndex = listView()->currentIndex();
    if (!curIndex.isValid())
        return;
@@ -756,12 +763,15 @@

    QTreeWidgetItem* temp = listView()->takeTopLevelItem(aboveIndex.row());
    listView()->insertTopLevelItem(curIndex.row(), temp);
+    // this is a quick fix. We loose the extra tags in flickr upload, but at list we don't get a crash
+    dynamic_cast<KIPIPlugins::ImagesListViewItem*>(temp)->updateItemWidgets();

    emit signalImageListChanged();
 }

 void ImagesList::slotMoveDownItems()
 {
+    // move below item up, then we don't have to fix the focus
    QModelIndex curIndex = listView()->currentIndex();
    if (!curIndex.isValid())
        return;
@@ -772,6 +782,8 @@

    QTreeWidgetItem* temp = listView()->takeTopLevelItem(belowIndex.row());
    listView()->insertTopLevelItem(curIndex.row(), temp);
+    // this is a quick fix. We loose the extra tags in flickr upload, but at list we don't get a crash
+    dynamic_cast<KIPIPlugins::ImagesListViewItem*>(temp)->updateItemWidgets();

    emit signalImageListChanged();
 }
--- trunk/extragear/graphics/kipi-plugins/common/libkipiplugins/widgets/imageslist.h #1135122:1135123
@@ -88,6 +88,14 @@

    void updateInformation();

+    // implement this, if you have special item widgets, e.g. an edit line
+    // they will be set automatically when adding items, changing order, etc.
+    virtual void updateItemWidgets() {};
+
+protected:
+
+    ImagesListView* view();
+
 private:

    int             m_rating;         // Image Rating from Kipi host.
--- trunk/extragear/graphics/kipi-plugins/flickrexport/flickrlist.cpp #1135122:1135123
@@ -421,12 +421,22 @@
               FlickrList::TAGS),
               i18n("Add extra tags per image or use Upload Options tab to "
                    "add tags for all images"));
-    m_tagLineEdit = new KLineEdit(view);
+    //m_tagLineEdit = new KLineEdit(view);
+    //m_tagLineEdit->setToolTip(i18n("Enter extra tags, separated by commas."));
+    //view->setItemWidget(this, static_cast<KIPIPlugins::ImagesListView::ColumnType>(
+    //                    FlickrList::TAGS), m_tagLineEdit);
+    updateItemWidgets();
+}
+
+void FlickrListViewItem::updateItemWidgets()
+{
+    m_tagLineEdit = new KLineEdit(view());
    m_tagLineEdit->setToolTip(i18n("Enter extra tags, separated by commas."));
-    view->setItemWidget(this, static_cast<KIPIPlugins::ImagesListView::ColumnType>(
+    view()->setItemWidget(this, static_cast<KIPIPlugins::ImagesListView::ColumnType>(
                        FlickrList::TAGS), m_tagLineEdit);
 }

+
 QStringList FlickrListViewItem::extraTags()
 {
    return m_tagLineEdit->text().split(',', QString::SkipEmptyParts);
--- trunk/extragear/graphics/kipi-plugins/flickrexport/flickrlist.h #1135122:1135123
@@ -151,6 +151,8 @@
    /* This method should be called when one of the checkboxes is clicked. */
    void toggled();

+    virtual void updateItemWidgets();
+
 private:

    bool                    m_is23;
Comment 13 caulier.gilles 2010-06-06 23:22:11 UTC
Thanks Eva to visiting digiKam/Kipi-plugins source code and fix. I see your commits. Great to see you in this area.

Don't forget to CCBUGS or BUGS in right bugzilla entry for AQ. Thanks in advance

All the best

Gilles Caulier