Bug 243497 - Digikam does not exit when "quit", stuck in select
Summary: Digikam does not exit when "quit", stuck in select
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Unclassified
Component: Portability-Runtime (show other bugs)
Version: 1.3.0
Platform: Ubuntu Packages Linux
: NOR crash (vote)
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-07-03 15:17 UTC by Chris Samuel
Modified: 2017-07-26 07:15 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In: 1.6.0


Attachments
Typescript of GDB session with digikam 1.4.0 from Ubuntu 10.10 (15.22 KB, text/plain)
2010-10-23 01:14 UTC, Chris Samuel
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Chris Samuel 2010-07-03 15:17:00 UTC
Application: digikam (1.3.0)
KDE Platform Version: 4.4.90 (KDE 4.4.90 (KDE 4.5 RC1))
Qt Version: 4.7.0
Operating System: Linux 2.6.32-23-generic x86_64
Distribution: Ubuntu 10.04 LTS

-- Information about the crash:
chris@quad:~$ apt-cache policy digikam
digikam:
  Installed: 2:1.3.0-0ubuntu1~lucid1~ppa2
  Candidate: 2:1.3.0-0ubuntu1~lucid1~ppa2
  Version table:
 *** 2:1.3.0-0ubuntu1~lucid1~ppa2 0
        500 http://ppa.launchpad.net/kubuntu-ppa/beta/ubuntu/ lucid/main Packages
        100 /var/lib/dpkg/status
     2:1.2.0-0ubuntu2 0
        500 http://mirror.linux.org.au/ubuntu/ lucid/main Packages
        500 http://mirrors.uwa.edu.au/ubuntu/ lucid/main Packages

Digikam 1.3.0 from the Kubuntu 4.5.0 RC1 PPA does not quit properly, it seems to be stuck in a select() loop and never exits.   Symptom is that when you login to KDE next time you get N digikams (where N is the number you ran during the session, I got 5 last time) start up as KDE has spotted them as running on logout.

Previously I've used strace to see that the process is stuck in a select loop which is constantly returning EAGAIN.    I'll comment on this report with more information on that using strace.

- What I was doing when the application crashed:

To generate the backtrace I manually did kill -11 $PID - it is not a real crash.

I had run it from the command line and after using the File->Quit option the interface closed but the prompt did not return on the command line.    Here is the full output from being run through to it dropping into the crash reporting assistant due to my sending it SIGSEGV by hand.

chris@quad:~$ digikam
QSqlDatabasePrivate::removeDatabase: connection 'ConnectionTest' is still in use, all queries will cease to work.
QStringList Solid::Backends::KUPnP::KUPnPManager::findDeviceByDeviceInterface(Solid::DeviceInterface::Type)  error:  "org.freedesktop.DBus.Error.ServiceUnknown" 

QStringList Solid::Backends::KUPnP::KUPnPManager::findDeviceByDeviceInterface(Solid::DeviceInterface::Type)  error:  "org.freedesktop.DBus.Error.ServiceUnknown" 

QStringList Solid::Backends::KUPnP::KUPnPManager::findDeviceByDeviceInterface(Solid::DeviceInterface::Type)  error:  "org.freedesktop.DBus.Error.ServiceUnknown" 

QStringList Solid::Backends::KUPnP::KUPnPManager::findDeviceByDeviceInterface(Solid::DeviceInterface::Type)  error:  "org.freedesktop.DBus.Error.ServiceUnknown" 

QStringList Solid::Backends::KUPnP::KUPnPManager::findDeviceByDeviceInterface(Solid::DeviceInterface::Type)  error:  "org.freedesktop.DBus.Error.ServiceUnknown" 

QStringList Solid::Backends::KUPnP::KUPnPManager::findDeviceByDeviceInterface(Solid::DeviceInterface::Type)  error:  "org.freedesktop.DBus.Error.ServiceUnknown" 

Time elapsed: 24 ms
Model: Time elapsed: 89 ms
TextureColorizer: Time elapsed: 25 ms
Time elapsed: 3 ms
Model: Time elapsed: 22 ms
QStringList Solid::Backends::KUPnP::KUPnPManager::findDeviceByDeviceInterface(Solid::DeviceInterface::Type)  error:  "org.freedesktop.DBus.Error.ServiceUnknown" 

QStringList Solid::Backends::KUPnP::KUPnPManager::findDeviceByDeviceInterface(Solid::DeviceInterface::Type)  error:  "org.freedesktop.DBus.Error.ServiceUnknown" 

QStringList Solid::Backends::KUPnP::KUPnPManager::findDeviceByDeviceInterface(Solid::DeviceInterface::Type)  error:  "org.freedesktop.DBus.Error.ServiceUnknown" 

QInotifyFileSystemWatcherEngine::addPaths: inotify_add_watch failed: No such file or directory
QFileSystemWatcher: failed to add paths: /home/chris/.config/ibus/bus
Bus::open: Can not get ibus-daemon's address. 
IBusInputContext::createInputContext: no connection to ibus-daemon 
KCrash: Application 'digikam' crashing...
KCrash: Attempting to start /usr/lib/kde4/libexec/drkonqi from kdeinit
sock_file=/home/chris/.kde/socket-quad/kdeinit4__0

[1]+  Stopped                 digikam

The crash can be reproduced every time.

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

Thread 9 (Thread 0x7f1e942dc710 (LWP 8003)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007f1ea7603d0b in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x345deb8, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x345deb8, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:159
#3  0x00007f1eab6402bc in Digikam::ParkingThread::run (this=0x345dea0) at /build/buildd/digikam-1.3.0/libs/threads/threadmanager.cpp:101
#4  0x00007f1ea760314e in QThreadPrivate::start (arg=0x345dea0) at thread/qthread_unix.cpp:266
#5  0x00007f1ea73719ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#6  0x00007f1ea5e1a6cd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 8 (Thread 0x7f1e93adb710 (LWP 8004)):
#0  0x00007f1ea5e12fb3 in select () at ../sysdeps/unix/syscall-template.S:82
#1  0x00007f1ea771f06e in qt_safe_select (nfds=22, fdread=0x3644640, fdwrite=0x36448d8, fdexcept=0x3644b70, orig_timeout=0x0) at kernel/qcore_unix.cpp:82
#2  0x00007f1ea772439b in QEventDispatcherUNIXPrivate::doSelect (this=0x3644480, flags=<value optimized out>, timeout=<value optimized out>) at kernel/qeventdispatcher_unix.cpp:219
#3  0x00007f1ea7724fcb in QEventDispatcherUNIX::processEvents (this=0x346a7e0, flags=) at kernel/qeventdispatcher_unix.cpp:919
#4  0x00007f1ea76f45b2 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#5  0x00007f1ea76f498c in QEventLoop::exec (this=0x7f1e93adad90, flags=) at kernel/qeventloop.cpp:201
#6  0x00007f1ea76001cd in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:490
#7  0x00007f1ea760314e in QThreadPrivate::start (arg=0x34e95e0) at thread/qthread_unix.cpp:266
#8  0x00007f1ea73719ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#9  0x00007f1ea5e1a6cd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#10 0x0000000000000000 in ?? ()

Thread 7 (Thread 0x7f1e932da710 (LWP 8005)):
#0  0x00007f1ea5e12fb3 in select () at ../sysdeps/unix/syscall-template.S:82
#1  0x00007f1ea771f06e in qt_safe_select (nfds=26, fdread=0x2fe4250, fdwrite=0x2fe44e8, fdexcept=0x2fe4780, orig_timeout=0x0) at kernel/qcore_unix.cpp:82
#2  0x00007f1ea772439b in QEventDispatcherUNIXPrivate::doSelect (this=0x2fe4090, flags=<value optimized out>, timeout=<value optimized out>) at kernel/qeventdispatcher_unix.cpp:219
#3  0x00007f1ea7724fcb in QEventDispatcherUNIX::processEvents (this=0x34eab80, flags=) at kernel/qeventdispatcher_unix.cpp:919
#4  0x00007f1ea76f45b2 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#5  0x00007f1ea76f498c in QEventLoop::exec (this=0x7f1e932d9d90, flags=) at kernel/qeventloop.cpp:201
#6  0x00007f1ea76001cd in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:490
#7  0x00007f1ea760314e in QThreadPrivate::start (arg=0x34946c0) at thread/qthread_unix.cpp:266
#8  0x00007f1ea73719ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#9  0x00007f1ea5e1a6cd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#10 0x0000000000000000 in ?? ()

Thread 6 (Thread 0x7f1e8b507710 (LWP 8006)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:211
#1  0x00007f1e8ffa4081 in ?? () from /usr/lib/libxine.so.1
#2  0x00007f1ea73719ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#3  0x00007f1ea5e1a6cd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#4  0x0000000000000000 in ?? ()

Thread 5 (Thread 0x7f1e89292710 (LWP 8008)):
#0  0x00007f1ea5e12fb3 in select () at ../sysdeps/unix/syscall-template.S:82
#1  0x00007f1ea771f06e in qt_safe_select (nfds=30, fdread=0x3ed6920, fdwrite=0x3ed6bb8, fdexcept=0x3ed6e50, orig_timeout=0x0) at kernel/qcore_unix.cpp:82
#2  0x00007f1ea772439b in QEventDispatcherUNIXPrivate::doSelect (this=0x3ed6760, flags=<value optimized out>, timeout=<value optimized out>) at kernel/qeventdispatcher_unix.cpp:219
#3  0x00007f1ea7724fcb in QEventDispatcherUNIX::processEvents (this=0x3ed6740, flags=) at kernel/qeventdispatcher_unix.cpp:919
#4  0x00007f1ea76f45b2 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#5  0x00007f1ea76f498c in QEventLoop::exec (this=0x7f1e89291d30, flags=) at kernel/qeventloop.cpp:201
#6  0x00007f1ea76001cd in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:490
#7  0x00007f1e902002b0 in ?? () from /usr/lib/qt4/plugins/phonon_backend/phonon_xine.so
#8  0x00007f1ea760314e in QThreadPrivate::start (arg=0x3ed60a0) at thread/qthread_unix.cpp:266
#9  0x00007f1ea73719ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#10 0x00007f1ea5e1a6cd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7f1e82145710 (LWP 8021)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:211
#1  0x00007f1ea7603c72 in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x5079460, time=30000) at thread/qwaitcondition_unix.cpp:85
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x5079460, time=30000) at thread/qwaitcondition_unix.cpp:159
#3  0x00007f1ea75f8bd2 in QThreadPoolThread::run (this=0x4bef680) at concurrent/qthreadpool.cpp:140
#4  0x00007f1ea760314e in QThreadPrivate::start (arg=0x4bef680) at thread/qthread_unix.cpp:266
#5  0x00007f1ea73719ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#6  0x00007f1ea5e1a6cd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7f1e83147710 (LWP 8023)):
#0  0x00007f1ea5e12fb3 in select () at ../sysdeps/unix/syscall-template.S:82
#1  0x00007f1ea771f06e in qt_safe_select (nfds=50, fdread=0x70c4e80, fdwrite=0x70c5118, fdexcept=0x70c53b0, orig_timeout=0x0) at kernel/qcore_unix.cpp:82
#2  0x00007f1ea772439b in QEventDispatcherUNIXPrivate::doSelect (this=0x70c4cc0, flags=<value optimized out>, timeout=<value optimized out>) at kernel/qeventdispatcher_unix.cpp:219
#3  0x00007f1ea7724fcb in QEventDispatcherUNIX::processEvents (this=0x499f430, flags=) at kernel/qeventdispatcher_unix.cpp:919
#4  0x00007f1ea76f45b2 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#5  0x00007f1ea76f498c in QEventLoop::exec (this=0x7f1e83146d50, flags=) at kernel/qeventloop.cpp:201
#6  0x00007f1ea76001cd in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:490
#7  0x00007f1ea76d44d8 in QInotifyFileSystemWatcherEngine::run (this=0x53e9000) at io/qfilesystemwatcher_inotify.cpp:248
#8  0x00007f1ea760314e in QThreadPrivate::start (arg=0x53e9000) at thread/qthread_unix.cpp:266
#9  0x00007f1ea73719ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#10 0x00007f1ea5e1a6cd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7f1e7fe98710 (LWP 8024)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:211
#1  0x00007f1ea7603c72 in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0x3550160, time=30000) at thread/qwaitcondition_unix.cpp:85
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x3550160, time=30000) at thread/qwaitcondition_unix.cpp:159
#3  0x00007f1ea75f8bd2 in QThreadPoolThread::run (this=0x52d9b70) at concurrent/qthreadpool.cpp:140
#4  0x00007f1ea760314e in QThreadPrivate::start (arg=0x52d9b70) at thread/qthread_unix.cpp:266
#5  0x00007f1ea73719ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#6  0x00007f1ea5e1a6cd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f1eae6257c0 (LWP 7997)):
[KCrash Handler]
#6  0x00007f1ea5e12fb3 in select () at ../sysdeps/unix/syscall-template.S:82
#7  0x00007f1ea771f01a in qt_safe_select (nfds=79, fdread=0x2727300, fdwrite=0x2727598, fdexcept=0x2727830, orig_timeout=0x7fff48be8ca0) at kernel/qcore_unix.cpp:92
#8  0x00007f1ea772439b in QEventDispatcherUNIXPrivate::doSelect (this=0x2727140, flags=<value optimized out>, timeout=<value optimized out>) at kernel/qeventdispatcher_unix.cpp:219
#9  0x00007f1ea7724fcb in QEventDispatcherUNIX::processEvents (this=0x26e5980, flags=) at kernel/qeventdispatcher_unix.cpp:919
#10 0x00007f1ea83cffaf in QEventDispatcherX11::processEvents (this=<value optimized out>, flags=) at kernel/qeventdispatcher_x11.cpp:152
#11 0x00007f1ea76f45b2 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#12 0x00007f1ea76f498c in QEventLoop::exec (this=0x7fff48be8f60, flags=) at kernel/qeventloop.cpp:201
#13 0x00007f1ea76f8a3b in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1009
#14 0x000000000077ba6d in main (argc=<value optimized out>, argv=<value optimized out>) at /build/buildd/digikam-1.3.0/digikam/main.cpp:195

Possible duplicates by query: bug 228326, bug 223547.

Reported using DrKonqi
Comment 1 Chris Samuel 2010-07-03 15:34:31 UTC
It appears to be trying to read from a UNIX domain socket, but getting no answer.

chris@quad:~$ strace -p 9914
Process 9914 attached - interrupt to quit                                                                                                                                                                                                    
select(76, [3 7 8 9 12 42 43 54 55 58 59 60 61 69 70 71 72 73 74 75], [], [], {0, 966567}) = 0 (Timeout)                                                                                                                                     
read(7, 0x2693ba4, 4096)                = -1 EAGAIN (Resource temporarily unavailable)                                                                                                                                                       
select(76, [3 7 8 9 12 42 43 54 55 58 59 60 61 69 70 71 72 73 74 75], [], [], {0, 998707}) = 0 (Timeout)                                                                                                                                     
read(7, 0x2693ba4, 4096)                = -1 EAGAIN (Resource temporarily unavailable)                                                                                                                                                       
select(76, [3 7 8 9 12 42 43 54 55 58 59 60 61 69 70 71 72 73 74 75], [], [], {0, 998794}) = 0 (Timeout)                                                                                                                                     
read(7, 0x2693ba4, 4096)                = -1 EAGAIN (Resource temporarily unavailable)                                                                                                                                                       
select(76, [3 7 8 9 12 42 43 54 55 58 59 60 61 69 70 71 72 73 74 75], [], [], {0, 998785}) = 0 (Timeout)                                                                                                                                     
read(7, 0x2693ba4, 4096)                = -1 EAGAIN (Resource temporarily unavailable)                                                                                                                                                       
select(76, [3 7 8 9 12 42 43 54 55 58 59 60 61 69 70 71 72 73 74 75], [], [], {0, 998792}) = 0 (Timeout)                                                                                                                                     
read(7, 0x2693ba4, 4096)                = -1 EAGAIN (Resource temporarily unavailable)                                                                                                                                                       
select(76, [3 7 8 9 12 42 43 54 55 58 59 60 61 69 70 71 72 73 74 75], [], [], {0, 998791}) = 0 (Timeout)                                                                                                                                     
read(7, 0x2693ba4, 4096)                = -1 EAGAIN (Resource temporarily unavailable)                                                                                                                                                       
select(76, [3 7 8 9 12 42 43 54 55 58 59 60 61 69 70 71 72 73 74 75], [], [], {0, 998782}) = 0 (Timeout)                                                                                                                                     
read(7, 0x2693ba4, 4096)                = -1 EAGAIN (Resource temporarily unavailable)                                                                                                                                                       
select(76, [3 7 8 9 12 42 43 54 55 58 59 60 61 69 70 71 72 73 74 75], [], [], {0, 998790}) = 0 (Timeout)                                                                                                                                     
read(7, 0x2693ba4, 4096)                = -1 EAGAIN (Resource temporarily unavailable)                                                                                                                                                       
select(76, [3 7 8 9 12 42 43 54 55 58 59 60 61 69 70 71 72 73 74 75], [], [], {0, 998790}) = 0 (Timeout)                                                                                                                                     
read(7, 0x2693ba4, 4096)                = -1 EAGAIN (Resource temporarily unavailable)                                                                                                                                                       
select(76, [3 7 8 9 12 42 43 54 55 58 59 60 61 69 70 71 72 73 74 75], [], [], {0, 998786}) = 0 (Timeout)                                                                                                                                     
read(7, 0x2693ba4, 4096)                = -1 EAGAIN (Resource temporarily unavailable)
select(76, [3 7 8 9 12 42 43 54 55 58 59 60 61 69 70 71 72 73 74 75], [], [], {0, 998996}) = 0 (Timeout)
read(7, 0x2693ba4, 4096)                = -1 EAGAIN (Resource temporarily unavailable)
select(76, [3 7 8 9 12 42 43 54 55 58 59 60 61 69 70 71 72 73 74 75], [], [], {0, 998783}) = 0 (Timeout)
read(7, 0x2693ba4, 4096)                = -1 EAGAIN (Resource temporarily unavailable)
select(76, [3 7 8 9 12 42 43 54 55 58 59 60 61 69 70 71 72 73 74 75], [], [], {0, 998799}^C <unfinished ...>

chris@quad:~$ ls -l /proc/9914/fd/7
lrwx------ 1 chris chris 64 2010-07-03 23:22 /proc/9914/fd/7 -> socket:[321098]

chris@quad:~$ sudo netstat -np | fgrep 321098
unix  3      [ ]         STREAM     CONNECTED     321098   9914/digikam

chris@quad:~$ sudo lsof | fgrep 321098
digikam    9914      chris    7u     unix 0xffff8801e18e8c00       0t0   321098 socket

Running an strace on digikam from the start for calls to connect(), socket(), open() and select() reveals that the socket for file descriptor 7 appears to be connected to the X server:

10212 socket(PF_FILE, SOCK_STREAM, 0)   = 7
10212 connect(7, {sa_family=AF_FILE, path=@"/tmp/.X11-unix/X0"}, 20) = 0

That's about my limit for ideas on digging into what's going on here - any ideas ?
Comment 2 Marcel Wiesweg 2010-07-04 16:14:58 UTC
No idea either. The backtrace may point to the standard X11 socket.
Additionally, there seems to be the one or other problem with your system, looking at the Solid and Inotify error messages.

Nothing related to digikam code what I can see.
Comment 3 Chris Samuel 2010-07-05 02:04:32 UTC
I take your point, though I'm seeing the same issue with Digikam 1.2.0 and KDE 4.4.5 on my work AMD64 laptop; I get all the same Inotify and iBus messages, though not the Solid related ones:

samuel@eris:~$ digikam
Time elapsed: 18 ms
Time elapsed: 3 ms
Model: Time elapsed: 51 ms
TextureColorizer: Time elapsed: 13 ms
Time elapsed: 3 ms
Time elapsed: 3 ms
Model: Time elapsed: 11 ms
No location could be retrieved for url  QUrl( "file:" )  
digikam(3734)/digikam (core) Digikam::ThumbnailCreator::load: Thumbnail is null for  "" 
QInotifyFileSystemWatcherEngine::addPaths: inotify_add_watch failed: No such file or directory
QFileSystemWatcher: failed to add paths: /home/samuel/.config/ibus/bus
Bus::open: Can not get ibus-daemon's address. 
IBusInputContext::createInputContext: no connection to ibus-daemon 
QFSFileEngine::open: No file name specified
QFSFileEngine::open: No file name specified
digikam(3734)/digikam (core): ThumbnailLoadThread::load: No thumbnail size specified. Refusing to load thumbnail. 
digikam(3734)/digikam (core): ThumbnailLoadThread::load: No thumbnail size specified. Refusing to load thumbnail. 
digikam(3734)/digikam (core): ThumbnailLoadThread::load: No thumbnail size specified. Refusing to load thumbnail. 
digikam(3734)/digikam (core): ThumbnailLoadThread::load: No thumbnail size specified. Refusing to load thumbnail. 
digikam(3734)/digikam (core): ThumbnailLoadThread::load: No thumbnail size specified. Refusing to load thumbnail. 
digikam(3734)/digikam (core): ThumbnailLoadThread::load: No thumbnail size specified. Refusing to load thumbnail. 

strace again says:

select(65, [3 7 8 9 12 38 39 42 46 47 48 51 52 57 58 59 60 61 64], [], [], {22, 916698}) = 1 (in [7], left {22, 913607})
read(7, "\34\0\300\300\f\1\0\0\235\1\0\0\n\257\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 4096) = 32
read(7, 0x1cde9f4, 4096)                = -1 EAGAIN (Resource temporarily unavailable)
read(7, 0x1cde9f4, 4096)                = -1 EAGAIN (Resource temporarily unavailable)

This time though it happens only occasionally, I've had it once out of four runs of it.  First time it was OK, second time it hung.  Third time I ran it with --sync and it was OK, then ran it without --sync and it was still OK.
Comment 4 Chris Samuel 2010-07-05 15:05:14 UTC
I have eliminated the inotify and ibus related messages by running ibus-setup, and the Solid messages seem to relate to the Ubuntu PPA builds not including the KUPNP Solid backend to permit discovery of UPNP network devices, but I suspect that is not related.  K3B reports the same KUPNP related issues with Solid but still works.
Comment 5 caulier.gilles 2010-10-06 10:30:49 UTC
Chris,

We need more debug info there. Install digiKam debug package and run it through GDB. get the trace using "bt" gdb command.

Thanks in advance

Gilles Caulier
Comment 6 Chris Samuel 2010-10-23 01:14:41 UTC
Created attachment 52786 [details]
Typescript of GDB session with digikam 1.4.0 from Ubuntu 10.10

Typescript of GDB session of digikam 1.4.0 from Ubuntu 10.10.

$ apt-cache policy digikam
digikam:
  Installed: 2:1.4.0-0ubuntu1
  Candidate: 2:1.4.0-0ubuntu1
  Version table:
 *** 2:1.4.0-0ubuntu1 0
        500 http://mirror.internode.on.net/pub/ubuntu/ubuntu/ maverick/main amd64 Packages
        100 /var/lib/dpkg/status
Comment 7 Chris Samuel 2010-10-23 01:16:09 UTC
Hi Gilles,

Sorry for the delay, work has been frantic recently.  I've attached the requested GDB session with a "bt full" to dump out (hopefully) everything that may be useful to you.

All the best,
Chris
Comment 8 Syam 2010-11-21 02:35:51 UTC
I can confirm this with DigiKam 1.5.0 on KDE 4.5.3 on Fedora 14 (i686).
I can confirm the observations, but do not know about the backtrace or gdb output.

When I quit digikam, in the 'System Activity', there's digikam, kio_digikamdate, and lots of kio_file instances (on mouse-over, the tool-tip says something about /tmp/ksocket-<username>/klauncher-xxxx.slave-socket and /tmp/ksocket-<username>/digikam-xxxx.slave-socket).

I too noticed this when I logged in to KDE today (yesterday I first used digikam on this F14 install) and I got several 'could not connect to database, attempting to reconnect' boxes for digikam (as mentioned in the original report). Everytime I cancel one of these boxes, one instance of digikam would start.
Comment 9 caulier.gilles 2010-11-22 09:54:15 UTC
Under my mac, using Qt 4.7 + KDE 4.5.3, i cannot reproduce the problem with current implementation

Gilles Caulier
Comment 10 caulier.gilles 2010-11-22 09:57:19 UTC
This problem have been fixed with commit #1193865 from Andi.

Look bugzilla #247175 entry for details.

Gilles Caulier