Bug 252737

Summary: direct capture bug 2 of 2
Product: [Applications] digikam Reporter: david powell <achiestdragon>
Component: Import-Gphoto2Assignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED UPSTREAM    
Severity: crash CC: achiestdragon, andresbajotierra, caulier.gilles
Priority: NOR    
Version: 1.2.0   
Target Milestone: ---   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In: 1.6.0
Sentry Crash Report:

Description david powell 2010-09-29 12:23:57 UTC
Version:           1.2.0 (using KDE 4.4.4) 
OS:                Linux

after using direct capture of an image from the camera (cannon eos20d)
it tries to display the file captured  but fails to 
as in ;-
  it shows there's a new file there but one that has no name or valid data 

powering off the cam  and back on and restarting digikam  will show the captured  files 

happens  regardless of if set to jpg , raw  or raw+jpg   

from what i gather seems this is dew to a delay between the image being taken , the file appearing on cam's file system  
digikam tries to refresh the file list as soon as the preview is being shown on the cam's lcd , with no delay , 

seems there's no manual file refresh feature also 
that would cure this  and also the second part of this bug 

if you manualy take an image using the camera while connected via usb 
theres no update to the file display  without restarting digikam ,that rather defeats the point of having a capture button   

Reproducible: Always

Steps to Reproduce:
while camera attached to usb , took picture using cam's shutter button 
then took picture using capture button 
should add here that the pic taken using the cam's button did update on the file list ,after the capture , so tried again using cams button then capture  to see if it refreshed the file but it crashed 


Expected Results:  
ether auto refresh of the files or a manual refresh option so that new images taken while connected are found 


Application: digiKam (digikam), signal: Aborted
[Current thread is 1 (Thread 0xb2123740 (LWP 7076))]

Thread 18 (Thread 0xb098ab70 (LWP 7078)):
#0  0xffffe430 in __kernel_vsyscall ()
#1  0xb4646125 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#2  0xb4b4b24c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libc.so.6
#3  0xb4de9710 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4
#4  0x082f1d2a in ?? ()
#5  0xb4de904f in ?? () from /usr/lib/libQtCore.so.4
#6  0xb4641b25 in start_thread () from /lib/libpthread.so.0
#7  0xb4b3d46e in clone () from /lib/libc.so.6

Thread 17 (Thread 0xafef2b70 (LWP 7080)):
#0  0xb2d1222b in clock_gettime () from /lib/librt.so.1
#1  0xb4f0b75c in ?? () from /usr/lib/libQtCore.so.4
#2  0xb4f0fb16 in ?? () from /usr/lib/libQtCore.so.4
#3  0xb4f0e56b in ?? () from /usr/lib/libQtCore.so.4
#4  0xb4f0e60d in ?? () from /usr/lib/libQtCore.so.4
#5  0xb2ede0c0 in g_main_context_prepare () from /usr/lib/libglib-2.0.so.0
#6  0xb2edef22 in ?? () from /usr/lib/libglib-2.0.so.0
#7  0xb2edf60e in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#8  0xb4f0ed97 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#9  0xb4ee211d in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#10 0xb4ee2319 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#11 0xb4de6403 in QThread::exec() () from /usr/lib/libQtCore.so.4
#12 0xb66b7e8b in ?? () from /usr/lib/libdigikamdatabase.so.1
#13 0xb4de904f in ?? () from /usr/lib/libQtCore.so.4
#14 0xb4641b25 in start_thread () from /lib/libpthread.so.0
#15 0xb4b3d46e in clone () from /lib/libc.so.6

Thread 16 (Thread 0xae6d4b70 (LWP 7081)):
#0  0xffffe430 in __kernel_vsyscall ()
#1  0xb4b3275e in poll () from /lib/libc.so.6
#2  0xb2eef1db in g_poll () from /usr/lib/libglib-2.0.so.0
#3  0xb2edf286 in ?? () from /usr/lib/libglib-2.0.so.0
#4  0xb2edf60e in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#5  0xb4f0ed97 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#6  0xb4ee211d in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#7  0xb4ee2319 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#8  0xb4de6403 in QThread::exec() () from /usr/lib/libQtCore.so.4
#9  0xb66b7e8b in ?? () from /usr/lib/libdigikamdatabase.so.1
#10 0xb4de904f in ?? () from /usr/lib/libQtCore.so.4
#11 0xb4641b25 in start_thread () from /lib/libpthread.so.0
#12 0xb4b3d46e in clone () from /lib/libc.so.6

Thread 15 (Thread 0xadea0b70 (LWP 7082)):
#0  0xffffe430 in __kernel_vsyscall ()
#1  0xb4646125 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#2  0xb4b4b24c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libc.so.6
#3  0xb4de9710 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4
#4  0xb695b7b4 in Digikam::LoadSaveThread::run() () from /usr/lib/libdigikamcore.so.1
#5  0xb4de904f in ?? () from /usr/lib/libQtCore.so.4
#6  0xb4641b25 in start_thread () from /lib/libpthread.so.0
#7  0xb4b3d46e in clone () from /lib/libc.so.6

Thread 14 (Thread 0xad69fb70 (LWP 7083)):
#0  0xffffe430 in __kernel_vsyscall ()
#1  0xb4b3275e in poll () from /lib/libc.so.6
#2  0xb2eef1db in g_poll () from /usr/lib/libglib-2.0.so.0
#3  0xb2edf286 in ?? () from /usr/lib/libglib-2.0.so.0
#4  0xb2edf60e in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#5  0xb4f0ed97 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#6  0xb4ee211d in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#7  0xb4ee2319 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#8  0xb4de6403 in QThread::exec() () from /usr/lib/libQtCore.so.4
#9  0xb4de904f in ?? () from /usr/lib/libQtCore.so.4
#10 0xb4641b25 in start_thread () from /lib/libpthread.so.0
#11 0xb4b3d46e in clone () from /lib/libc.so.6

Thread 13 (Thread 0xace9eb70 (LWP 7084)):
#0  0xffffe430 in __kernel_vsyscall ()
#1  0xb4b3275e in poll () from /lib/libc.so.6
#2  0xb2eef1db in g_poll () from /usr/lib/libglib-2.0.so.0
#3  0xb2edf286 in ?? () from /usr/lib/libglib-2.0.so.0
#4  0xb2edf60e in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#5  0xb4f0ed97 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#6  0xb4ee211d in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#7  0xb4ee2319 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#8  0xb4de6403 in QThread::exec() () from /usr/lib/libQtCore.so.4
#9  0xb4de904f in ?? () from /usr/lib/libQtCore.so.4
#10 0xb4641b25 in start_thread () from /lib/libpthread.so.0
#11 0xb4b3d46e in clone () from /lib/libc.so.6

Thread 12 (Thread 0xa9dfdb70 (LWP 7088)):
#0  0xffffe430 in __kernel_vsyscall ()
#1  0xb4646452 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#2  0xb4b4b2a4 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libc.so.6
#3  0xaf4291d7 in metronom_sync_loop () from /usr/lib/libxine.so.1
#4  0xb4641b25 in start_thread () from /lib/libpthread.so.0
#5  0xb4b3d46e in clone () from /lib/libc.so.6

Thread 11 (Thread 0xa91bcb70 (LWP 7089)):
#0  0xffffe430 in __kernel_vsyscall ()
#1  0xb4646452 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#2  0xb4b4b2a4 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libc.so.6
#3  0xaf437c41 in video_out_loop () from /usr/lib/libxine.so.1
#4  0xb4641b25 in start_thread () from /lib/libpthread.so.0
#5  0xb4b3d46e in clone () from /lib/libc.so.6

Thread 10 (Thread 0xa89bbb70 (LWP 7090)):
#0  0xb4643fed in pthread_mutex_lock () from /lib/libpthread.so.0
#1  0xb4b4b464 in pthread_mutex_lock () from /lib/libc.so.6
#2  0xb2ede0ef in g_main_context_prepare () from /usr/lib/libglib-2.0.so.0
#3  0xb2edef22 in ?? () from /usr/lib/libglib-2.0.so.0
#4  0xb2edf60e in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#5  0xb4f0ed97 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#6  0xb4ee211d in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#7  0xb4ee2319 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#8  0xb4de6403 in QThread::exec() () from /usr/lib/libQtCore.so.4
#9  0xaf63edc8 in ?? () from /usr/lib/kde4/plugins/phonon_backend/phonon_xine.so
#10 0xb4de904f in ?? () from /usr/lib/libQtCore.so.4
#11 0xb4641b25 in start_thread () from /lib/libpthread.so.0
#12 0xb4b3d46e in clone () from /lib/libc.so.6

Thread 9 (Thread 0xa81bab70 (LWP 7093)):
#0  0xb4b3276b in poll () from /lib/libc.so.6
#1  0xa95ea04c in ao_alsa_handle_event_thread () from /usr/lib/xine/plugins/1.29/xineplug_ao_out_alsa.so
#2  0xb4641b25 in start_thread () from /lib/libpthread.so.0
#3  0xb4b3d46e in clone () from /lib/libc.so.6

Thread 8 (Thread 0xa77ffb70 (LWP 7094)):
#0  0xffffe430 in __kernel_vsyscall ()
#1  0xb4646125 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#2  0xb4b4b24c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libc.so.6
#3  0xaf43c180 in ao_loop () from /usr/lib/libxine.so.1
#4  0xb4641b25 in start_thread () from /lib/libpthread.so.0
#5  0xb4b3d46e in clone () from /lib/libc.so.6

Thread 7 (Thread 0xa6dffb70 (LWP 7095)):
#0  0xffffe430 in __kernel_vsyscall ()
#1  0xb4646125 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#2  0xb4b4b24c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libc.so.6
#3  0xb4de9710 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4
#4  0xb695b7b4 in Digikam::LoadSaveThread::run() () from /usr/lib/libdigikamcore.so.1
#5  0xb4de904f in ?? () from /usr/lib/libQtCore.so.4
#6  0xb4641b25 in start_thread () from /lib/libpthread.so.0
#7  0xb4b3d46e in clone () from /lib/libc.so.6

Thread 6 (Thread 0xa65feb70 (LWP 7102)):
#0  0xffffe430 in __kernel_vsyscall ()
#1  0xb4646125 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#2  0xb4b4b24c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libc.so.6
#3  0xb4de9710 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4
#4  0xb695b7b4 in Digikam::LoadSaveThread::run() () from /usr/lib/libdigikamcore.so.1
#5  0xb4de904f in ?? () from /usr/lib/libQtCore.so.4
#6  0xb4641b25 in start_thread () from /lib/libpthread.so.0
#7  0xb4b3d46e in clone () from /lib/libc.so.6

Thread 5 (Thread 0xa3bfeb70 (LWP 7103)):
#0  0xffffe430 in __kernel_vsyscall ()
#1  0xb4646125 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#2  0xb4b4b24c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libc.so.6
#3  0xb4de9710 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4
#4  0xb695b7b4 in Digikam::LoadSaveThread::run() () from /usr/lib/libdigikamcore.so.1
#5  0xb4de904f in ?? () from /usr/lib/libQtCore.so.4
#6  0xb4641b25 in start_thread () from /lib/libpthread.so.0
#7  0xb4b3d46e in clone () from /lib/libc.so.6

Thread 4 (Thread 0xa43ffb70 (LWP 7115)):
#0  0xffffe430 in __kernel_vsyscall ()
#1  0xb4646125 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#2  0xb4b4b24c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libc.so.6
#3  0xb4de9710 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4
#4  0xb695b7b4 in Digikam::LoadSaveThread::run() () from /usr/lib/libdigikamcore.so.1
#5  0xb4de904f in ?? () from /usr/lib/libQtCore.so.4
#6  0xb4641b25 in start_thread () from /lib/libpthread.so.0
#7  0xb4b3d46e in clone () from /lib/libc.so.6

Thread 3 (Thread 0x9ecbcb70 (LWP 7122)):
[KCrash Handler]
#6  0xffffe430 in __kernel_vsyscall ()
#7  0xb4a957ff in raise () from /lib/libc.so.6
#8  0xb4a97140 in abort () from /lib/libc.so.6
#9  0xb4ad1fd7 in __libc_message () from /lib/libc.so.6
#10 0xb4ad7ffb in malloc_printerr () from /lib/libc.so.6
#11 0xb4ad8d7b in _int_free () from /lib/libc.so.6
#12 0xb4adcadd in free () from /lib/libc.so.6
#13 0xb6b81adf in gp_file_clean () from /usr/lib/libgphoto2.so.2
#14 0xb6b81e9b in gp_file_free () from /usr/lib/libgphoto2.so.2
#15 0xb6b81f09 in gp_file_unref () from /usr/lib/libgphoto2.so.2
#16 0x0813e9c8 in _start ()

Thread 2 (Thread 0xa55fcb70 (LWP 7155)):
#0  0xffffe430 in __kernel_vsyscall ()
#1  0xb4646125 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#2  0xb4b4b24c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libc.so.6
#3  0xb4de9710 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4
#4  0x0810f41d in _start ()

Thread 1 (Thread 0xb2123740 (LWP 7076)):
#0  0xffffe430 in __kernel_vsyscall ()
#1  0xb4b4b5b3 in __lll_lock_wait_private () from /lib/libc.so.6
#2  0xb4ade35f in _L_lock_10260 () from /lib/libc.so.6
#3  0xb4adcad6 in free () from /lib/libc.so.6
#4  0xb47cf218 in ?? () from /usr/lib/libX11.so.6
#5  0xb47cf70c in _XEventsQueued () from /usr/lib/libX11.so.6
#6  0xb47b82e8 in XEventsQueued () from /usr/lib/libX11.so.6
#7  0xb5446fd5 in ?? () from /usr/lib/libQtGui.so.4
#8  0xb2ede7d0 in g_main_context_check () from /usr/lib/libglib-2.0.so.0
#9  0xb2edf108 in ?? () from /usr/lib/libglib-2.0.so.0
#10 0xb2edf60e in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#11 0xb4f0ed4b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#12 0xb544719a in ?? () from /usr/lib/libQtGui.so.4
#13 0xb4ee211d in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#14 0xb4ee2319 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#15 0xb4ee6c70 in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
#16 0xb5394164 in QApplication::exec() () from /usr/lib/libQtGui.so.4
#17 0x08370f45 in ?? ()
#18 0xb4a80c0e in __libc_start_main () from /lib/libc.so.6
#19 0x080a6ec1 in _start ()
Comment 1 caulier.gilles 2010-09-29 12:33:11 UTC
Crash come from libGphoto2... Install gphoto2 debug symbol to get more information.

Gilles Caulier
Comment 2 david powell 2010-09-29 13:39:08 UTC
ha yes ok 
appears this bug is covered in the libgphoto2  page   as the driver is (experimental) 
and actualy seems to be more of a problem when using gtkam that also uses libgphoto2 that fails to even read any files from the cam 

although  found a sort of workaround to it in digikam that makes it usable 

after using eather capture button or manualy activating the shutter on the camera
you need to close the  device window and reopen (without totaly exiting digikam ) it  then it refreshes the file list correctly and seems to work without crashing that way
Comment 3 Dario Andres 2010-11-18 19:17:28 UTC
[Comment from a bug triager]
Closing as UPSTREAM as it was confirmed to be a libgphoto2 bug