[Digikam-devel] [Bug 156420] Canon EOS 400D, no thumbnails displayed then digikam segfaults
Mark Ovens
parish at magichamster.com
Fri Jun 13 18:07:47 BST 2008
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
http://bugs.kde.org/show_bug.cgi?id=156420
------- Additional Comments From parish magichamster com 2008-06-13 19:07 -------
The problem has been found, and fixed. It was a problem in libusb on FreeBSD. Since the version of that library I was using was the same for 0.9.2 and 0.9.3 I can only assume that some changes in digikam exposed the bug in libusb.
Anyway, a huge thank you to Markus Brueffer who responded to a post I made on the FreeBSD mailing lists asking for help debugging this. He was having similar problems with his Nikon D60 and came up with the fix which I have tested and confirmed that it also fixes my problem:
I'll include two messages from Markus here for completeness in case anyone else looks at this bug:
> > Anyway, digikam has severe problems with the Nikon D60 as well (only
> > partly downloading images, camera not accessible after downloading and
> > failing on some images, etc). Although these are different than your
> > specific problem, the actual cause of the problem is probably the same as
> > digikam 0.9.2 works just fine.
> I finally found the cause of the problem (at least the one that happens here
> with the Nikon D60, but I'm confident that it's the cause of yours as well).
> What happens is the following:
>
> When downloading data form the camera, digikam invokes usb_bulk_read from
> libusb through the libgphoto2 functions. usb_bulk_read uses read(2) to get
> data from the camera. read(2) now gets interrupted by a signal (SIGCHLD) that
> gets delivered to digikam and returns with EINTR, which is the actual cause
> of the problem. The attached patch for libusb suspends signal delivery during
> bulk reads and writes for SIGCHLD which lets read(2) succeed and the signal
> gets delivered to digikam after the read(2) call.
More information about the Digikam-devel
mailing list