Summary: | Digikam does not exit when "quit", stuck in select | ||
---|---|---|---|
Product: | [Applications] digikam | Reporter: | Chris Samuel <kde> |
Component: | Portability-Runtime | Assignee: | Digikam Developers <digikam-bugs-null> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | caulier.gilles, get.sonic |
Priority: | NOR | ||
Version: | 1.3.0 | ||
Target Milestone: | --- | ||
Platform: | Ubuntu | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | 1.6.0 | |
Sentry Crash Report: | |||
Attachments: | Typescript of GDB session with digikam 1.4.0 from Ubuntu 10.10 |
Description
Chris Samuel
2010-07-03 15:17:00 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 ? 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. 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. 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. 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 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 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 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. Under my mac, using Qt 4.7 + KDE 4.5.3, i cannot reproduce the problem with current implementation Gilles Caulier This problem have been fixed with commit #1193865 from Andi. Look bugzilla #247175 entry for details. Gilles Caulier |