Bug 322652

Summary: Crashes on camera import
Product: [Applications] digikam Reporter: SinClaus <tomsk_interface>
Component: Import-Gphoto2Assignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: crash CC: caulier.gilles, georg.lipps, tpr
Priority: NOR    
Version: 3.5.0   
Target Milestone: ---   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed In: 4.0.0
Attachments: here is backtrace from digicam 3.3.0, compiled on my box

Description SinClaus 2013-07-21 14:05:26 UTC
Immediate crashes on camera import (Canon EOS-40D on USB), no diags from command string.
Comment 1 caulier.gilles 2013-07-21 20:00:35 UTC
We need a GDB backtrace to hack. Please run digiKam in GDB like explained here :

http://www.digikam.org/contrib

Gilles Caulier
Comment 2 SinClaus 2013-07-22 03:01:53 UTC
There isn't debug symbols in the Arch's binaries.
Backtrace is very short:

(gdb) bt
#0  0x00000000007b9263 in ?? ()
#1  0x00000000007b97c2 in ?? ()
#2  0x00000000007ab05c in ?? ()
#3  0x00000000007ad6c6 in ?? ()
#4  0x00007ffff26e7d8f in ?? () from /usr/lib/libQtCore.so.4
#5  0x00007fffef652dd2 in start_thread () from /usr/lib/libpthread.so.0
#6  0x00007ffff1912cdd in clone () from /usr/lib/libc.so.6

If it can help you, I can attach catchsegv output - without debug symbols too.

Note: digiKam opens a camera with empty flash without crash, and with one picture - too. Crashed with three or more pictures in the camera.
Comment 3 caulier.gilles 2013-07-22 08:19:18 UTC
No it doesn't help. It miss debug symbol.

Please install digiKam debug package.

Gilles Caulier
Comment 4 SinClaus 2013-07-22 08:45:33 UTC
Unfortunately: 
"Arch

Arch currently doesn't offer debug packages with symbols. You therefore need to recompile all concerned packages with debugging symbols."
There is nothing to install, and I don't have any desire to recompile something.
Comment 5 SinClaus 2013-08-08 10:58:34 UTC
Created attachment 81605 [details]
here is backtrace from digicam 3.3.0, compiled on my box
Comment 6 SinClaus 2013-08-08 11:00:27 UTC
I'm compiled digiKam 3.3.0, and one crashed on import too. Backtrace attached.
Comment 7 georg.lipps 2013-10-08 17:11:18 UTC
I also observe a crash (segfault) upon trying to download picture from a Canon S95 camera. 

Does not appear to be a Gphoto2 problems as Camera is detected correctly by Gphoto2 from terminal commandline.

Import was tricky with 2.8. already but crash is new for 3.3.

Greetings,

Georg
Comment 8 SinClaus 2013-10-16 13:54:32 UTC
Version 3.5.0, Arch Linux x86-64 with all fresh updates.
STILL CRASHES on import window.
Comment 9 Jekyll Wu 2013-10-17 01:44:41 UTC
please do not change the bug status to something that nobody understand its meaning.
Comment 10 SinClaus 2013-11-04 06:21:54 UTC
note: If camera have only one photo, import always successful.
Comment 11 Teemu Rytilahti 2013-12-02 16:26:29 UTC
If you can still make it crash, could you please get the values of local variables by doing the following inside gdb:
> f 0
> info locals
Comment 12 SinClaus 2013-12-03 04:08:34 UTC
Here is result (ver 3.5 from KDE repo)

(gdb) f 0
#0  0x00000000007cfbe1 in Digikam::GPCamera::getItemInfoInternal (this=0x7866d10, folder=..., itemName=..., info=..., useMetadata=true)
    at /home/chawoosh/Util/photo/digikam/digikam-3.5.0/core/utilities/importui/backend/gpcamera.cpp:849
849                                 QFile::encodeName(info.name).constData(), &cfinfo, d->status->context);
(gdb) info locals
cfinfo = {preview = {fields = GP_FILE_INFO_NONE, status = GP_FILE_STATUS_NOT_DOWNLOADED, size = 0, type = '\000' <repeats 63 times>, 
    width = 0, height = 0}, file = {fields = 229, status = GP_FILE_STATUS_DOWNLOADED, size = 140736347504672, 
    type = "\000r\003\274\377\177\000\000\360q\003\274\377\177\000\000P\000\000\000\000\000\000\000@\000\000\000\000\000\000\000y\361\360\351\377\177\000\000\000\000\000\000\000\000\000\000\200\207\305\000\000\000\000\000n\000\000\000w\000\000", width = 1, height = 0, 
    permissions = 2948657104, mtime = 16}, audio = {fields = 12, status = GP_FILE_STATUS_NOT_DOWNLOADED, size = 24, 
    type = "\000\a\301\257\377\177\000\000(,\374\352\377\177\000\000T\000\000\000\000\000\000\000\320\357\300\257\377\177\000\000\f\000\000\000\000\000\000\000\030", '\000' <repeats 11 times>, "\377\177\000\000\f\000\000\000\000\000\000"}}
Comment 13 Teemu Rytilahti 2013-12-05 00:32:11 UTC
Hmm, doesn't give enough information. Can you try info args? And perhaps even "print info" or "print info.name" when inside the local. And same for d->status->context to see what really crashes it.

Btw, that size value looks quite big there, but I don't really know how it's being encoded or so...
Comment 14 SinClaus 2013-12-05 10:11:13 UTC
I'm not an active developer, so please say step by step what do you need from me.
Comment 15 Teemu Rytilahti 2013-12-05 11:29:47 UTC
Ah, not a problem. So the same thing as before, so first "f 0" and then the following commands:
> info args
> print info
> print info.name
> print d->status
> print d->status->context

Thanks in advance.
Comment 16 SinClaus 2013-12-05 11:49:46 UTC
OK.
1. There is four RAW images in a camera.
2. Digikam is running in the gdb.
3. Camera is ON.
4. Say to digikam to import images.
5. Camera window is open and program is segfault:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff68664700 (LWP 31043)]
0x00000000007cfbe1 in Digikam::GPCamera::getItemInfoInternal (this=0x10ec9f0, folder=..., itemName=..., info=..., useMetadata=true)
    at /home/chawoosh/Util/photo/digikam/digikam-3.5.0/core/utilities/importui/backend/gpcamera.cpp:849
849                                 QFile::encodeName(info.name).constData(), &cfinfo, d->status->context);
6.
(gdb) f 0
#0  0x00000000007cfbe1 in Digikam::GPCamera::getItemInfoInternal (this=0x10ec9f0, folder=..., itemName=..., info=..., useMetadata=true)
    at /home/chawoosh/Util/photo/digikam/digikam-3.5.0/core/utilities/importui/backend/gpcamera.cpp:849
849                                 QFile::encodeName(info.name).constData(), &cfinfo, d->status->context);

(gdb) info args
this = 0x10ec9f0
folder = @0x7fff686632e0: {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 114120}, alloc = 0, size = 0, 
    data = 0xc5879a <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, 
    array = {0}}, static shared_empty = {ref = {_q_value = 339}, alloc = 0, size = 0, data = 0x7fffeb3dd8fa <QString::shared_empty+26>, 
    clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x937dd10, 
  static codecForCStrings = 0x0}
itemName = @0x7fff68662fd0: {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 114120}, alloc = 0, size = 0, 
    data = 0xc5879a <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, 
    array = {0}}, static shared_empty = {ref = {_q_value = 339}, alloc = 0, size = 0, data = 0x7fffeb3dd8fa <QString::shared_empty+26>, 
    clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x9804720, 
  static codecForCStrings = 0x0}
info = @0x7fff68662e80: {size = -1, width = -1, height = -1, readPermissions = -1, writePermissions = -1, name = {
    static null = {<No data fields>}, static shared_null = {ref = {_q_value = 114120}, alloc = 0, size = 0, 
      data = 0xc5879a <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, 
      array = {0}}, static shared_empty = {ref = {_q_value = 339}, alloc = 0, size = 0, data = 0x7fffeb3dd8fa <QString::shared_empty+26>, 
      clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x9804720, 
    static codecForCStrings = 0x0}, folder = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 114120}, alloc = 0, 
      size = 0, data = 0xc5879a <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, 
      reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 339}, alloc = 0, size = 0, 
      data = 0x7fffeb3dd8fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, 
      reserved = 0, array = {0}}, d = 0x937dd10, static codecForCStrings = 0x0}, mime = {static null = {<No data fields>}, 
    static shared_null = {ref = {_q_value = 114120}, alloc = 0, size = 0, data = 0xc5879a <QString::shared_null+26>, clean = 0, 
      simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {
        _q_value = 339}, alloc = 0, size = 0, data = 0x7fffeb3dd8fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, 
      asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0xc58780 <QString::shared_null>, static codecForCStrings = 0x0}, ctime = {
    d = {d = 0x92f13b0}}, photoInfo = {make = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 114120}, alloc = 0, 
        size = 0, data = 0xc5879a <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, 
        reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 339}, alloc = 0, size = 0, 
        data = 0x7fffeb3dd8fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, 
        reserved = 0, array = {0}}, d = 0xc58780 <QString::shared_null>, static codecForCStrings = 0x0}, model = {
      static null = {<No data fields>}, static shared_null = {ref = {_q_value = 114120}, alloc = 0, size = 0, 
        data = 0xc5879a <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, 
        array = {0}}, static shared_empty = {ref = {_q_value = 339}, alloc = 0, size = 0, data = 0x7fffeb3dd8fa <QString::shared_empty+26>, 
        clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, 
      d = 0xc58780 <QString::shared_null>, static codecForCStrings = 0x0}, lens = {static null = {<No data fields>}, static shared_null = {
        ref = {_q_value = 114120}, alloc = 0, size = 0, data = 0xc5879a <QString::shared_null+26>, clean = 0, simpletext = 0, 
        righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 339}, alloc = 0, 
        size = 0, data = 0x7fffeb3dd8fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, 
        reserved = 0, array = {0}}, d = 0xc58780 <QString::shared_null>, static codecForCStrings = 0x0}, exposureTime = {
      static null = {<No data fields>}, static shared_null = {ref = {_q_value = 114120}, alloc = 0, size = 0, 
        data = 0xc5879a <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, 
        array = {0}}, static shared_empty = {ref = {_q_value = 339}, alloc = 0, size = 0, data = 0x7fffeb3dd8fa <QString::shared_empty+26>, 
        clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, 
      d = 0xc58780 <QString::shared_null>, static codecForCStrings = 0x0}, exposureMode = {static null = {<No data fields>}, 
      static shared_null = {ref = {_q_value = 114120}, alloc = 0, size = 0, data = 0xc5879a <QString::shared_null+26>, clean = 0, 
        simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {
          _q_value = 339}, alloc = 0, size = 0, data = 0x7fffeb3dd8fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, 
        asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0xc58780 <QString::shared_null>, static codecForCStrings = 0x0}, 
    exposureProgram = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 114120}, alloc = 0, size = 0, 
        data = 0xc5879a <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, 
        array = {0}}, static shared_empty = {ref = {_q_value = 339}, alloc = 0, size = 0, data = 0x7fffeb3dd8fa <QString::shared_empty+26>, 
        clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, 
      d = 0xc58780 <QString::shared_null>, static codecForCStrings = 0x0}, aperture = {static null = {<No data fields>}, 
      static shared_null = {ref = {_q_value = 114120}, alloc = 0, size = 0, data = 0xc5879a <QString::shared_null+26>, clean = 0, 
        simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {
          _q_value = 339}, alloc = 0, size = 0, data = 0x7fffeb3dd8fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, 
        asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0xc58780 <QString::shared_null>, static codecForCStrings = 0x0}, 
    focalLength = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 114120}, alloc = 0, size = 0, 
        data = 0xc5879a <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, 
        array = {0}}, static shared_empty = {ref = {_q_value = 339}, alloc = 0, size = 0, data = 0x7fffeb3dd8fa <QString::shared_empty+26>, 
        clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, 
      d = 0xc58780 <QString::shared_null>, static codecForCStrings = 0x0}, focalLength35mm = {static null = {<No data fields>}, 
      static shared_null = {ref = {_q_value = 114120}, alloc = 0, size = 0, data = 0xc5879a <QString::shared_null+26>, clean = 0, 
        simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {
          _q_value = 339}, alloc = 0, size = 0, data = 0x7fffeb3dd8fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, 
        asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0xc58780 <QString::shared_null>, static codecForCStrings = 0x0}, 
    sensitivity = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 114120}, alloc = 0, size = 0, 
        data = 0xc5879a <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, 
        array = {0}}, static shared_empty = {ref = {_q_value = 339}, alloc = 0, size = 0, data = 0x7fffeb3dd8fa <QString::shared_empty+26>, 
        clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, 
      d = 0xc58780 <QString::shared_null>, static codecForCStrings = 0x0}, flash = {static null = {<No data fields>}, static shared_null = {
        ref = {_q_value = 114120}, alloc = 0, size = 0, data = 0xc5879a <QString::shared_null+26>, clean = 0, simpletext = 0, 
        righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 339}, alloc = 0, 
        size = 0, data = 0x7fffeb3dd8fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, 
        reserved = 0, array = {0}}, d = 0xc58780 <QString::shared_null>, static codecForCStrings = 0x0}, whiteBalance = {
      static null = {<No data fields>}, static shared_null = {ref = {_q_value = 114120}, alloc = 0, size = 0, 
        data = 0xc5879a <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, 
        array = {0}}, static shared_empty = {ref = {_q_value = 339}, alloc = 0, size = 0, data = 0x7fffeb3dd8fa <QString::shared_empty+26>, 
        clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, 
      d = 0xc58780 <QString::shared_null>, static codecForCStrings = 0x0}, dateTime = {d = {d = 0x92c0680}}}, downloaded = -1, 
  downloadName = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 114120}, alloc = 0, size = 0, 
      data = 0xc5879a <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, 
      array = {0}}, static shared_empty = {ref = {_q_value = 339}, alloc = 0, size = 0, data = 0x7fffeb3dd8fa <QString::shared_empty+26>, 
      clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, 
    d = 0xc58780 <QString::shared_null>, static codecForCStrings = 0x0}, id = -1, rating = 0, pickLabel = 0, colorLabel = 0, tagIds = {{p = {
        static shared_null = {ref = {_q_value = 79920}, alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, 
        d = 0xc55420 <QListData::shared_null>}, d = 0xc55420 <QListData::shared_null>}}}
useMetadata = true

(gdb) print info
$1 = (Digikam::CamItemInfo &) @0x7fff68662e80: {size = -1, width = -1, height = -1, readPermissions = -1, writePermissions = -1, name = {
    static null = {<No data fields>}, static shared_null = {ref = {_q_value = 114120}, alloc = 0, size = 0, 
      data = 0xc5879a <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, 
      array = {0}}, static shared_empty = {ref = {_q_value = 339}, alloc = 0, size = 0, data = 0x7fffeb3dd8fa <QString::shared_empty+26>, 
      clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x9804720, 
    static codecForCStrings = 0x0}, folder = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 114120}, alloc = 0, 
      size = 0, data = 0xc5879a <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, 
      reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 339}, alloc = 0, size = 0, 
      data = 0x7fffeb3dd8fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, 
      reserved = 0, array = {0}}, d = 0x937dd10, static codecForCStrings = 0x0}, mime = {static null = {<No data fields>}, 
    static shared_null = {ref = {_q_value = 114120}, alloc = 0, size = 0, data = 0xc5879a <QString::shared_null+26>, clean = 0, 
      simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {
        _q_value = 339}, alloc = 0, size = 0, data = 0x7fffeb3dd8fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, 
      asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0xc58780 <QString::shared_null>, static codecForCStrings = 0x0}, ctime = {
    d = {d = 0x92f13b0}}, photoInfo = {make = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 114120}, alloc = 0, 
        size = 0, data = 0xc5879a <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, 
        reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 339}, alloc = 0, size = 0, 
        data = 0x7fffeb3dd8fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, 
        reserved = 0, array = {0}}, d = 0xc58780 <QString::shared_null>, static codecForCStrings = 0x0}, model = {
      static null = {<No data fields>}, static shared_null = {ref = {_q_value = 114120}, alloc = 0, size = 0, 
        data = 0xc5879a <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, 
        array = {0}}, static shared_empty = {ref = {_q_value = 339}, alloc = 0, size = 0, data = 0x7fffeb3dd8fa <QString::shared_empty+26>, 
        clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, 
      d = 0xc58780 <QString::shared_null>, static codecForCStrings = 0x0}, lens = {static null = {<No data fields>}, static shared_null = {
        ref = {_q_value = 114120}, alloc = 0, size = 0, data = 0xc5879a <QString::shared_null+26>, clean = 0, simpletext = 0, 
        righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 339}, alloc = 0, 
        size = 0, data = 0x7fffeb3dd8fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, 
        reserved = 0, array = {0}}, d = 0xc58780 <QString::shared_null>, static codecForCStrings = 0x0}, exposureTime = {
      static null = {<No data fields>}, static shared_null = {ref = {_q_value = 114120}, alloc = 0, size = 0, 
        data = 0xc5879a <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, 
        array = {0}}, static shared_empty = {ref = {_q_value = 339}, alloc = 0, size = 0, data = 0x7fffeb3dd8fa <QString::shared_empty+26>, 
        clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, 
      d = 0xc58780 <QString::shared_null>, static codecForCStrings = 0x0}, exposureMode = {static null = {<No data fields>}, 
      static shared_null = {ref = {_q_value = 114120}, alloc = 0, size = 0, data = 0xc5879a <QString::shared_null+26>, clean = 0, 
        simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {
          _q_value = 339}, alloc = 0, size = 0, data = 0x7fffeb3dd8fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, 
        asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0xc58780 <QString::shared_null>, static codecForCStrings = 0x0}, 
    exposureProgram = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 114120}, alloc = 0, size = 0, 
        data = 0xc5879a <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, 
        array = {0}}, static shared_empty = {ref = {_q_value = 339}, alloc = 0, size = 0, data = 0x7fffeb3dd8fa <QString::shared_empty+26>, 
        clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, 
      d = 0xc58780 <QString::shared_null>, static codecForCStrings = 0x0}, aperture = {static null = {<No data fields>}, 
      static shared_null = {ref = {_q_value = 114120}, alloc = 0, size = 0, data = 0xc5879a <QString::shared_null+26>, clean = 0, 
        simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {
          _q_value = 339}, alloc = 0, size = 0, data = 0x7fffeb3dd8fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, 
        asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0xc58780 <QString::shared_null>, static codecForCStrings = 0x0}, 
    focalLength = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 114120}, alloc = 0, size = 0, 
        data = 0xc5879a <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, 
        array = {0}}, static shared_empty = {ref = {_q_value = 339}, alloc = 0, size = 0, data = 0x7fffeb3dd8fa <QString::shared_empty+26>, 
        clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, 
      d = 0xc58780 <QString::shared_null>, static codecForCStrings = 0x0}, focalLength35mm = {static null = {<No data fields>}, 
      static shared_null = {ref = {_q_value = 114120}, alloc = 0, size = 0, data = 0xc5879a <QString::shared_null+26>, clean = 0, 
        simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {
          _q_value = 339}, alloc = 0, size = 0, data = 0x7fffeb3dd8fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, 
        asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0xc58780 <QString::shared_null>, static codecForCStrings = 0x0}, 
    sensitivity = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 114120}, alloc = 0, size = 0, 
        data = 0xc5879a <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, 
        array = {0}}, static shared_empty = {ref = {_q_value = 339}, alloc = 0, size = 0, data = 0x7fffeb3dd8fa <QString::shared_empty+26>, 
        clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, 
      d = 0xc58780 <QString::shared_null>, static codecForCStrings = 0x0}, flash = {static null = {<No data fields>}, static shared_null = {
        ref = {_q_value = 114120}, alloc = 0, size = 0, data = 0xc5879a <QString::shared_null+26>, clean = 0, simpletext = 0, 
        righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 339}, alloc = 0, 
        size = 0, data = 0x7fffeb3dd8fa <QString::shared_empty+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, 
        reserved = 0, array = {0}}, d = 0xc58780 <QString::shared_null>, static codecForCStrings = 0x0}, whiteBalance = {
      static null = {<No data fields>}, static shared_null = {ref = {_q_value = 114120}, alloc = 0, size = 0, 
        data = 0xc5879a <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, 
        array = {0}}, static shared_empty = {ref = {_q_value = 339}, alloc = 0, size = 0, data = 0x7fffeb3dd8fa <QString::shared_empty+26>, 
        clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, 
      d = 0xc58780 <QString::shared_null>, static codecForCStrings = 0x0}, dateTime = {d = {d = 0x92c0680}}}, downloaded = -1, 
  downloadName = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 114120}, alloc = 0, size = 0, 
      data = 0xc5879a <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, 
      array = {0}}, static shared_empty = {ref = {_q_value = 339}, alloc = 0, size = 0, data = 0x7fffeb3dd8fa <QString::shared_empty+26>, 
      clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, 
    d = 0xc58780 <QString::shared_null>, static codecForCStrings = 0x0}, id = -1, rating = 0, pickLabel = 0, colorLabel = 0, tagIds = {{p = {
        static shared_null = {ref = {_q_value = 79920}, alloc = 0, begin = 0, end = 0, sharable = 1, array = {0x0}}, 
        d = 0xc55420 <QListData::shared_null>}, d = 0xc55420 <QListData::shared_null>}}}

(gdb) print info.name
$2 = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 114120}, alloc = 0, size = 0, 
    data = 0xc5879a <QString::shared_null+26>, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, 
    array = {0}}, static shared_empty = {ref = {_q_value = 339}, alloc = 0, size = 0, data = 0x7fffeb3dd8fa <QString::shared_empty+26>, 
    clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, d = 0x9804720, 
  static codecForCStrings = 0x0}

(gdb) print d->status
$3 = (Digikam::GPStatus *) 0x0

(gdb) print d->status->context
Cannot access memory at address 0x0

quit
Comment 17 caulier.gilles 2013-12-05 12:11:25 UTC
The status handle given by Gphoto library is null. it's abnormal.

Sound like a test case about status is missing to prevent crash, but it sound like a gphoto2 problem... 

More investigation are needs...

Gilles Caulier
Comment 18 SinClaus 2013-12-05 12:15:28 UTC
"gphoto2 -P" successfully import all images from the camera.
Comment 19 Teemu Rytilahti 2013-12-19 21:05:19 UTC
Git commit 097f59ea4ba185c55c12c27203c868b006a611f3 by Teemu Rytilahti.
Committed on 07/12/2013 at 19:47.
Pushed by rytilahti into branch 'master'.

Simplify gphoto2 interface by using a shared gpcontext wherever it's possible, fixes hopefully #322652 as a side-effect.
FIXED-IN: 4.0.0

M  +24   -172  utilities/importui/backend/gpcamera.cpp

http://commits.kde.org/digikam/097f59ea4ba185c55c12c27203c868b006a611f3
Comment 20 Teemu Rytilahti 2013-12-19 21:16:01 UTC
SinClaus, please test and verify if this is now working for you.
Comment 21 SinClaus 2013-12-20 04:09:23 UTC
I'm busy now a bit, so I'll wait for v4.0.0 in our repo, OK?
Comment 22 caulier.gilles 2013-12-20 08:22:46 UTC
If you can test it for next 4.0.0-beta2 planed in January, it will be nice...

Gilles Caulier
Comment 23 SinClaus 2014-01-18 12:03:45 UTC
Hi!

I've tested digikam-4.0.0-beta2 on my Arch, import is successful, thanks!