[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