Bug 342010 - Digikam crash, apparently in xcb
Summary: Digikam crash, apparently in xcb
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Metadata-Engine (show other bugs)
Version: 4.5.0
Platform: openSUSE Linux
: NOR crash
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2014-12-18 20:30 UTC by Kenneth Ingham
Modified: 2015-01-25 09:39 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In: 5.0.0
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Kenneth Ingham 2014-12-18 20:30:44 UTC
Application: digikam (4.5.0)
KDE Platform Version: 4.14.3
Qt Version: 4.8.6
Operating System: Linux 3.17.4-1-desktop x86_64
Distribution: "openSUSE 20141216 (Tumbleweed) (x86_64)"

-- Information about the crash:
- What I was doing when the application crashed:

I removed all digikam config and database files so it was starting fresh:
rm -rf ~/.kde4/share/config/digikamrc ~/Photography/thumbnails-digikam.db ~/Photography/digikam4.db ~/.kde4/share/apps/digikam
I started digikam and selected a directory containing photos and a location for the databases.  It then crashed without showing any thumbnails.

When I ran this in gdb and got a backtrace, it said: xcb_xlib_threads_sequence_lost.

Specifically, here is the backtrace:
Program received signal SIGABRT, Aborted.
[Switching to Thread 0x7fffd1d6d700 (LWP 3227)]
0x00007ffff096d0f7 in __GI_raise (sig=sig@entry=6)
    at ../sysdeps/unix/sysv/linux/raise.c:55
55      ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0  0x00007ffff096d0f7 in __GI_raise (sig=sig@entry=6)
    at ../sysdeps/unix/sysv/linux/raise.c:55
#1  0x00007ffff096e4ca in __GI_abort () at abort.c:78
#2  0x00007ffff0966116 in __assert_fail_base (
    fmt=0x7ffff0a9bab0 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", 
    assertion=assertion@entry=0x7fffeef771b0 "!xcb_xlib_threads_sequence_lost", file=file@entry=0x7fffeef7700b "xcb_io.c", line=line@entry=635, 
    function=function@entry=0x7fffeef77477 <__PRETTY_FUNCTION__.14540> "_XReply") at assert.c:92
#3  0x00007ffff09661c2 in __GI___assert_fail (
    assertion=assertion@entry=0x7fffeef771b0 "!xcb_xlib_threads_sequence_lost", file=file@entry=0x7fffeef7700b "xcb_io.c", line=line@entry=635, 
    function=function@entry=0x7fffeef77477 <__PRETTY_FUNCTION__.14540> "_XReply") at assert.c:101
#4  0x00007fffeef0861c in _XReply (dpy=dpy@entry=0xcd7790, 
    rep=rep@entry=0x7fffd1d6bc60, extra=extra@entry=0, discard=discard@entry=0)
    at xcb_io.c:633
#5  0x00007fffeeeef056 in XGetWindowProperty (dpy=0xcd7790, w=73400597, 
    property=property@entry=35, offset=offset@entry=0, length=length@entry=9, 
    delete=delete@entry=0, req_type=req_type@entry=35, 
    actual_type=actual_type@entry=0x7fffd1d6bd28, 
    actual_format=actual_format@entry=0x7fffd1d6bd1c, 
    nitems=nitems@entry=0x7fffd1d6bd38, 
    bytesafter=bytesafter@entry=0x7fffd1d6bd30, prop=prop@entry=0x7fffd1d6bd20)
    at GetProp.c:69
#6  0x00007fffeeeedf3e in XGetWMHints (dpy=<optimized out>, w=<optimized out>)
    at GetHints.c:116
#7  0x00007ffff20938ec in QWidgetPrivate::setWindowIcon_sys (
    this=this@entry=0x7fffb80315b0, forceReset=forceReset@entry=false)
    at kernel/qwidget_x11.cpp:1557
#8  0x00007ffff2048b45 in QWidget::create (this=0x7fffcc117fc0, 
    window=window@entry=0, initializeWindow=initializeWindow@entry=true, 
    destroyOldWindow=destroyOldWindow@entry=true) at kernel/qwidget.cpp:1543
#9  0x00007ffff20491c4 in QWidgetPrivate::createWinId (this=<optimized out>, 
    winid=winid@entry=0) at kernel/qwidget.cpp:2576
#10 0x00007ffff204925b in QWidget::winId (this=0x7fffcc117fc0)
    at kernel/qwidget.cpp:2534
---Type <return> to continue, or q <return> to quit---
#11 0x00007ffff2c7f2ef in KDialog::setPlainCaption (
    this=this@entry=0x7fffcc117fc0, caption=...)
    at /usr/src/debug/kdelibs-4.14.3/kdeui/dialogs/kdialog.cpp:493
#12 0x00007ffff2c7e692 in KDialogPrivate::init (
    this=this@entry=0x7fffb802d3f0, q=q@entry=0x7fffcc117fc0)
    at /usr/src/debug/kdelibs-4.14.3/kdeui/dialogs/kdialog.cpp:181
#13 0x00007ffff2c7e7f2 in KDialog::KDialog (this=0x7fffcc117fc0, 
    parent=<optimized out>, flags=...)
    at /usr/src/debug/kdelibs-4.14.3/kdeui/dialogs/kdialog.cpp:192
#14 0x00007ffff2c92295 in KMessageBox::informationListWId (parent_id=0, 
    text=..., strlist=..., caption=..., dontShowAgainName=..., options=...)
    at /usr/src/debug/kdelibs-4.14.3/kdeui/dialogs/kmessagebox.cpp:987
#15 0x00007ffff2c92564 in KMessageBox::informationWId (
    parent_id=parent_id@entry=0, text=..., caption=..., dontShowAgainName=..., 
    options=...)
    at /usr/src/debug/kdelibs-4.14.3/kdeui/dialogs/kmessagebox.cpp:969
#16 0x00007ffff2c92851 in KMessageBox::messageBoxWId (
    parent_id=parent_id@entry=0, type=type@entry=KMessageBox::Information, 
    text=..., caption=..., buttonYes=..., buttonNo=..., buttonCancel=..., 
    dontShow=..., options=...)
    at /usr/src/debug/kdelibs-4.14.3/kdeui/dialogs/kmessagebox.cpp:1100
#17 0x00007ffff2c92ab5 in KMessageBox::queuedMessageBoxWId (parent_id=0, 
    type=KMessageBox::Information, text=..., caption=...)
    at /usr/src/debug/kdelibs-4.14.3/kdeui/dialogs/kmessagebox.cpp:1135
#18 0x00007ffff1a7024a in KMessage::message (
    messageType=messageType@entry=KMessage::Information, text=..., caption=...)
    at /usr/src/debug/kdelibs-4.14.3/kdecore/io/kmessage.cpp:97
#19 0x00007ffff1a63bdc in KMessageBoxDebugStream::writeData (
    this=0x7fffcc18ad40, data=<optimized out>, len=198)
    at /usr/src/debug/kdelibs-4.14.3/kdecore/io/kdebug.cpp:170
#20 0x00007ffff15825b0 in QIODevice::write (this=0x7fffcc18ad40, 
    data=0x7fffb8007a38 "digikam(3217)/KEXIV2: Cannot load metadata from file   (Error # 11 :  /home/ingham/Photos/Alicia-2014-12-10/CellPhone/20141210_112417-levels-100.xcf: The file contains data of an unknown image type ", 
    maxSize=<optimized out>) at io/qiodevice.cpp:1371
#21 0x00007ffff1591bdd in write (data=..., this=<optimized out>)
    at ../../src/corelib/io/qiodevice.h:127
---Type <return> to continue, or q <return> to quit---
#22 QTextStreamPrivate::flushWriteBuffer (this=this@entry=0x7fffcc1c7fb0)
    at io/qtextstream.cpp:681
#23 0x00007ffff159a7c1 in QTextStream::~QTextStream (this=0x7fffcc06e350, 
    __in_chrg=<optimized out>) at io/qtextstream.cpp:1149
#24 0x00007ffff636a866 in ~Stream (this=0x7fffcc06e350, 
    __in_chrg=<optimized out>) at /usr/include/QtCore/qdebug.h:64
#25 ~QDebug (this=0x7fffd1d6c410, __in_chrg=<optimized out>)
    at /usr/include/QtCore/qdebug.h:88
#26 KExiv2Iface::KExiv2::Private::printExiv2ExceptionError (msg=..., e=...)
    at /usr/src/debug/libkexiv2-4.14.3/libkexiv2/kexiv2_p.cpp:333
#27 0x00007ffff636827d in KExiv2Iface::KExiv2::load (
    this=this@entry=0x7fffb8029a50, filePath=...)
    at /usr/src/debug/libkexiv2-4.14.3/libkexiv2/kexiv2.cpp:334
#28 0x00007ffff5c84086 in Digikam::DMetadata::load (
    this=this@entry=0x7fffb8029a50, filePath=...)
    at /usr/src/debug/digikam-4.5.0/core/libs/dmetadata/dmetadata.cpp:110
#29 0x00007ffff56d75ef in Digikam::ImageScanner::loadFromDisk (
    this=this@entry=0x7fffd1d6c6d0)
    at /usr/src/debug/digikam-4.5.0/core/libs/database/imagescanner.cpp:1525
#30 0x00007ffff56d77e0 in Digikam::ImageScanner::newFile (
    this=this@entry=0x7fffd1d6c6d0, albumId=albumId@entry=3)
    at /usr/src/debug/digikam-4.5.0/core/libs/database/imagescanner.cpp:285
#31 0x00007ffff566f936 in Digikam::CollectionScanner::scanNewFile (
    this=this@entry=0x7fffd1d6cd20, info=..., albumId=3)
    at /usr/src/debug/digikam-4.5.0/core/libs/database/collectionscanner.cpp:1247
#32 0x00007ffff5672a9f in Digikam::CollectionScanner::scanAlbum (
    this=this@entry=0x7fffd1d6cd20, location=..., album=...)
    at /usr/src/debug/digikam-4.5.0/core/libs/database/collectionscanner.cpp:1089
#33 0x00007ffff5672957 in Digikam::CollectionScanner::scanAlbum (
    this=this@entry=0x7fffd1d6cd20, location=..., album=...)
    at /usr/src/debug/digikam-4.5.0/core/libs/database/collectionscanner.cpp:1112
#34 0x00007ffff5673363 in Digikam::CollectionScanner::scanAlbumRoot (
    this=this@entry=0x7fffd1d6cd20, location=...)
    at /usr/src/debug/digikam-4.5.0/core/libs/database/collectionscanner.cpp:828---Type <return> to continue, or q <return> to quit---

#35 0x00007ffff5673f3d in Digikam::CollectionScanner::completeScan (
    this=this@entry=0x7fffd1d6cd20)
    at /usr/src/debug/digikam-4.5.0/core/libs/database/collectionscanner.cpp:489
#36 0x00000000005e37cf in Digikam::ScanController::run (this=0xe30370)
    at /usr/src/debug/digikam-4.5.0/core/app/database/scancontroller.cpp:756
#37 0x00007ffff14f279f in QThreadPrivate::start (arg=0xe30370)
    at thread/qthread_unix.cpp:349
#38 0x00007fffee96c3a4 in start_thread (arg=0x7fffd1d6d700)
    at pthread_create.c:310
#39 0x00007ffff0a1ca4d in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
(gdb) quit
A debugging session is active.

        Inferior 1 [process 3217] will be killed.

Quit anyway? (y or n) y

The crash can be reproduced every time.

-- Backtrace:
Application: digiKam (digikam), signal: Aborted
Using host libthread_db library "/lib64/libthread_db.so.1".
_XReply (dpy=dpy@entry=0x18dc060, rep=rep@entry=0x7fff6059ba20, extra=extra@entry=0, discard=discard@entry=0) at xcb_io.c:596
[Current thread is 1 (Thread 0x7fcb934ac880 (LWP 3273))]

Thread 6 (Thread 0x7fcb6e6cf700 (LWP 3274)):
#0  0x00007fcb8bf884ad in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007fcb72e40268 in poll (__timeout=-1, __nfds=2, __fds=0x7fcb6e6cedb0) at /usr/include/bits/poll2.h:46
#2  linux_udev_event_thread_main (arg=<optimized out>) at os/linux_udev.c:176
#3  0x00007fcb89ee03a4 in start_thread (arg=0x7fcb6e6cf700) at pthread_create.c:310
#4  0x00007fcb8bf90a4d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 5 (Thread 0x7fcb6712e700 (LWP 3275)):
#0  0x00007fcb8bf884ad in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007fcb83fe9be4 in g_main_context_poll (priority=2147483647, n_fds=1, fds=0x7fcb60003410, timeout=-1, context=0x7fcb600009a0) at gmain.c:4076
#2  g_main_context_iterate (context=context@entry=0x7fcb600009a0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3776
#3  0x00007fcb83fe9cec in g_main_context_iteration (context=0x7fcb600009a0, may_block=1) at gmain.c:3842
#4  0x00007fcb8cb9510e in QEventDispatcherGlib::processEvents (this=0x7fcb600008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:452
#5  0x00007fcb8cb66e9f in QEventLoop::processEvents (this=this@entry=0x7fcb6712dd20, flags=...) at kernel/qeventloop.cpp:149
#6  0x00007fcb8cb67195 in QEventLoop::exec (this=this@entry=0x7fcb6712dd20, flags=...) at kernel/qeventloop.cpp:204
#7  0x00007fcb8ca640bf in QThread::exec (this=this@entry=0x1e1c900) at thread/qthread.cpp:538
#8  0x00007fcb8cb487b3 in QInotifyFileSystemWatcherEngine::run (this=0x1e1c900) at io/qfilesystemwatcher_inotify.cpp:265
#9  0x00007fcb8ca6679f in QThreadPrivate::start (arg=0x1e1c900) at thread/qthread_unix.cpp:349
#10 0x00007fcb89ee03a4 in start_thread (arg=0x7fcb6712e700) at pthread_create.c:310
#11 0x00007fcb8bf90a4d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 4 (Thread 0x7fcb6669e700 (LWP 3285)):
[KCrash Handler]
#6  0x00007fcb8bee10f7 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:55
#7  0x00007fcb8bee24ca in __GI_abort () at abort.c:78
#8  0x00007fcb8beda116 in __assert_fail_base (fmt=0x7fcb8c00fab0 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x7fcb8a4eb033 "!xcb_xlib_unknown_req_in_deq", file=file@entry=0x7fcb8a4eb00b "xcb_io.c", line=line@entry=179, function=function@entry=0x7fcb8a4eb4d0 <__PRETTY_FUNCTION__.14410> "dequeue_pending_request") at assert.c:92
#9  0x00007fcb8beda1c2 in __GI___assert_fail (assertion=assertion@entry=0x7fcb8a4eb033 "!xcb_xlib_unknown_req_in_deq", file=file@entry=0x7fcb8a4eb00b "xcb_io.c", line=line@entry=179, function=function@entry=0x7fcb8a4eb4d0 <__PRETTY_FUNCTION__.14410> "dequeue_pending_request") at assert.c:101
#10 0x00007fcb8a47b56c in dequeue_pending_request (dpy=dpy@entry=0x18dc060, req=req@entry=0x5ebcfa0) at xcb_io.c:177
#11 0x00007fcb8a47c393 in _XReply (dpy=dpy@entry=0x18dc060, rep=rep@entry=0x7fcb6669ce70, extra=extra@entry=0, discard=discard@entry=0) at xcb_io.c:639
#12 0x00007fcb8a463056 in XGetWindowProperty (dpy=0x18dc060, w=79692492, property=property@entry=35, offset=offset@entry=0, length=length@entry=9, delete=delete@entry=0, req_type=req_type@entry=35, actual_type=actual_type@entry=0x7fcb6669cf38, actual_format=actual_format@entry=0x7fcb6669cf2c, nitems=nitems@entry=0x7fcb6669cf48, bytesafter=bytesafter@entry=0x7fcb6669cf40, prop=prop@entry=0x7fcb6669cf30) at GetProp.c:69
#13 0x00007fcb8a461f3e in XGetWMHints (dpy=<optimized out>, w=<optimized out>) at GetHints.c:116
#14 0x00007fcb8d6078ec in QWidgetPrivate::setWindowIcon_sys (this=this@entry=0x7fcb580863f0, forceReset=forceReset@entry=false) at kernel/qwidget_x11.cpp:1557
#15 0x00007fcb8d5bcb45 in QWidget::create (this=0x7fcb5803bc60, window=window@entry=0, initializeWindow=initializeWindow@entry=true, destroyOldWindow=destroyOldWindow@entry=true) at kernel/qwidget.cpp:1543
#16 0x00007fcb8d5bd1c4 in QWidgetPrivate::createWinId (this=<optimized out>, winid=winid@entry=0) at kernel/qwidget.cpp:2576
#17 0x00007fcb8d5bd25b in QWidget::winId (this=0x7fcb5803bc60) at kernel/qwidget.cpp:2534
#18 0x00007fcb8e1f32ef in KDialog::setPlainCaption (this=this@entry=0x7fcb5803bc60, caption=...) at /usr/src/debug/kdelibs-4.14.3/kdeui/dialogs/kdialog.cpp:493
#19 0x00007fcb8e1f2692 in KDialogPrivate::init (this=this@entry=0x7fcb580bb9e0, q=q@entry=0x7fcb5803bc60) at /usr/src/debug/kdelibs-4.14.3/kdeui/dialogs/kdialog.cpp:181
#20 0x00007fcb8e1f27f2 in KDialog::KDialog (this=0x7fcb5803bc60, parent=<optimized out>, flags=...) at /usr/src/debug/kdelibs-4.14.3/kdeui/dialogs/kdialog.cpp:192
#21 0x00007fcb8e206295 in KMessageBox::informationListWId (parent_id=0, text=..., strlist=..., caption=..., dontShowAgainName=..., options=...) at /usr/src/debug/kdelibs-4.14.3/kdeui/dialogs/kmessagebox.cpp:987
#22 0x00007fcb8e206564 in KMessageBox::informationWId (parent_id=parent_id@entry=0, text=..., caption=..., dontShowAgainName=..., options=...) at /usr/src/debug/kdelibs-4.14.3/kdeui/dialogs/kmessagebox.cpp:969
#23 0x00007fcb8e206851 in KMessageBox::messageBoxWId (parent_id=parent_id@entry=0, type=type@entry=KMessageBox::Information, text=..., caption=..., buttonYes=..., buttonNo=..., buttonCancel=..., dontShow=..., options=...) at /usr/src/debug/kdelibs-4.14.3/kdeui/dialogs/kmessagebox.cpp:1100
#24 0x00007fcb8e206ab5 in KMessageBox::queuedMessageBoxWId (parent_id=0, type=KMessageBox::Information, text=..., caption=...) at /usr/src/debug/kdelibs-4.14.3/kdeui/dialogs/kmessagebox.cpp:1135
#25 0x00007fcb8cfe424a in KMessage::message (messageType=messageType@entry=KMessage::Information, text=..., caption=...) at /usr/src/debug/kdelibs-4.14.3/kdecore/io/kmessage.cpp:97
#26 0x00007fcb8cfd7bdc in KMessageBoxDebugStream::writeData (this=0x7fcb58042640, data=<optimized out>, len=198) at /usr/src/debug/kdelibs-4.14.3/kdecore/io/kdebug.cpp:170
#27 0x00007fcb8caf65b0 in QIODevice::write (this=0x7fcb58042640, data=0x7fcb58087648 "digikam(3273)/KEXIV2: Cannot load metadata from file   (Error # 11 :  /home/ingham/Photos/Alicia-2014-12-10/CellPhone/20141210_112417-levels-100.xcf: The file contains data of an unknown image type ", maxSize=<optimized out>) at io/qiodevice.cpp:1371
#28 0x00007fcb8cb05bdd in write (data=..., this=<optimized out>) at ../../src/corelib/io/qiodevice.h:127
#29 QTextStreamPrivate::flushWriteBuffer (this=this@entry=0x7fcb580309c0) at io/qtextstream.cpp:681
#30 0x00007fcb8cb0e7c1 in QTextStream::~QTextStream (this=0x7fcb58038b70, __in_chrg=<optimized out>) at io/qtextstream.cpp:1149
#31 0x00007fcb918de866 in ~Stream (this=0x7fcb58038b70, __in_chrg=<optimized out>) at /usr/include/QtCore/qdebug.h:64
#32 ~QDebug (this=0x7fcb6669d620, __in_chrg=<optimized out>) at /usr/include/QtCore/qdebug.h:88
#33 KExiv2Iface::KExiv2::Private::printExiv2ExceptionError (msg=..., e=...) at /usr/src/debug/libkexiv2-4.14.3/libkexiv2/kexiv2_p.cpp:333
#34 0x00007fcb918dc27d in KExiv2Iface::KExiv2::load (this=this@entry=0x7fcb58050120, filePath=...) at /usr/src/debug/libkexiv2-4.14.3/libkexiv2/kexiv2.cpp:334
#35 0x00007fcb911f8086 in Digikam::DMetadata::load (this=this@entry=0x7fcb58050120, filePath=...) at /usr/src/debug/digikam-4.5.0/core/libs/dmetadata/dmetadata.cpp:110
#36 0x00007fcb90c4b5ef in Digikam::ImageScanner::loadFromDisk (this=this@entry=0x7fcb6669d8e0) at /usr/src/debug/digikam-4.5.0/core/libs/database/imagescanner.cpp:1525
#37 0x00007fcb90c4b7e0 in Digikam::ImageScanner::newFile (this=this@entry=0x7fcb6669d8e0, albumId=albumId@entry=1) at /usr/src/debug/digikam-4.5.0/core/libs/database/imagescanner.cpp:285
#38 0x00007fcb90be3936 in Digikam::CollectionScanner::scanNewFile (this=this@entry=0x7fcb6669dd20, info=..., albumId=1) at /usr/src/debug/digikam-4.5.0/core/libs/database/collectionscanner.cpp:1247
#39 0x00007fcb90be6a9f in Digikam::CollectionScanner::scanAlbum (this=this@entry=0x7fcb6669dd20, location=..., album=...) at /usr/src/debug/digikam-4.5.0/core/libs/database/collectionscanner.cpp:1089
#40 0x00007fcb90be7363 in Digikam::CollectionScanner::scanAlbumRoot (this=this@entry=0x7fcb6669dd20, location=...) at /usr/src/debug/digikam-4.5.0/core/libs/database/collectionscanner.cpp:828
#41 0x00007fcb90be7f3d in Digikam::CollectionScanner::completeScan (this=this@entry=0x7fcb6669dd20) at /usr/src/debug/digikam-4.5.0/core/libs/database/collectionscanner.cpp:489
#42 0x00000000005e37cf in Digikam::ScanController::run (this=0x1b49300) at /usr/src/debug/digikam-4.5.0/core/app/database/scancontroller.cpp:756
#43 0x00007fcb8ca6679f in QThreadPrivate::start (arg=0x1b49300) at thread/qthread_unix.cpp:349
#44 0x00007fcb89ee03a4 in start_thread (arg=0x7fcb6669e700) at pthread_create.c:310
#45 0x00007fcb8bf90a4d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 3 (Thread 0x7fcb65e9d700 (LWP 3286)):
#0  0x00007fcb8bf884ad in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007fcb83fe9be4 in g_main_context_poll (priority=2147483647, n_fds=1, fds=0x7fcb5c002e10, timeout=-1, context=0x7fcb5c0009a0) at gmain.c:4076
#2  g_main_context_iterate (context=context@entry=0x7fcb5c0009a0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3776
#3  0x00007fcb83fe9cec in g_main_context_iteration (context=0x7fcb5c0009a0, may_block=1) at gmain.c:3842
#4  0x00007fcb8cb9510e in QEventDispatcherGlib::processEvents (this=0x7fcb5c0008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:452
#5  0x00007fcb8cb66e9f in QEventLoop::processEvents (this=this@entry=0x7fcb65e9cd20, flags=...) at kernel/qeventloop.cpp:149
#6  0x00007fcb8cb67195 in QEventLoop::exec (this=this@entry=0x7fcb65e9cd20, flags=...) at kernel/qeventloop.cpp:204
#7  0x00007fcb8ca640bf in QThread::exec (this=this@entry=0x1e1c360) at thread/qthread.cpp:538
#8  0x00007fcb8cb487b3 in QInotifyFileSystemWatcherEngine::run (this=0x1e1c360) at io/qfilesystemwatcher_inotify.cpp:265
#9  0x00007fcb8ca6679f in QThreadPrivate::start (arg=0x1e1c360) at thread/qthread_unix.cpp:349
#10 0x00007fcb89ee03a4 in start_thread (arg=0x7fcb65e9d700) at pthread_create.c:310
#11 0x00007fcb8bf90a4d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 2 (Thread 0x7fcb6569c700 (LWP 3294)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007fcb8ca66c86 in wait (time=18446744073709551615, this=0x1b1d230) at thread/qwaitcondition_unix.cpp:86
#2  QWaitCondition::wait (this=this@entry=0x1ad0f60, mutex=mutex@entry=0x1ad0f58, time=time@entry=18446744073709551615) at thread/qwaitcondition_unix.cpp:158
#3  0x00007fcb9126380a in Digikam::ParkingThread::run (this=0x1ad0f40) at /usr/src/debug/digikam-4.5.0/core/libs/threads/threadmanager.cpp:119
#4  0x00007fcb8ca6679f in QThreadPrivate::start (arg=0x1ad0f40) at thread/qthread_unix.cpp:349
#5  0x00007fcb89ee03a4 in start_thread (arg=0x7fcb6569c700) at pthread_create.c:310
#6  0x00007fcb8bf90a4d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 1 (Thread 0x7fcb934ac880 (LWP 3273)):
#0  _XReply (dpy=dpy@entry=0x18dc060, rep=rep@entry=0x7fff6059ba20, extra=extra@entry=0, discard=discard@entry=0) at xcb_io.c:596
#1  0x00007fcb8a463056 in XGetWindowProperty (dpy=0x18dc060, w=79692463, property=326, offset=0, length=1024, delete=0, req_type=4, actual_type=0x7fff6059baf0, actual_format=0x7fff6059baec, nitems=0x7fff6059bb00, bytesafter=0x7fff6059bb08, prop=0x7fff6059baf8) at GetProp.c:69
#2  0x00007fcb8d5eb3d2 in QETWidget::translatePropertyEvent (this=this@entry=0x4b533c0, event=event@entry=0x7fff6059bdb0) at kernel/qapplication_x11.cpp:5001
#3  0x00007fcb8d5ecd96 in QApplication::x11ProcessEvent (this=0x7fff6059cd20, event=event@entry=0x7fff6059bdb0) at kernel/qapplication_x11.cpp:3922
#4  0x00007fcb8d613612 in x11EventSourceDispatch (s=0x18d9e40, callback=0x0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#5  0x00007fcb83fe9a04 in g_main_dispatch (context=0x18d9d30) at gmain.c:3111
#6  g_main_context_dispatch (context=context@entry=0x18d9d30) at gmain.c:3710
#7  0x00007fcb83fe9c48 in g_main_context_iterate (context=context@entry=0x18d9d30, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3781
#8  0x00007fcb83fe9cec in g_main_context_iteration (context=0x18d9d30, may_block=1) at gmain.c:3842
#9  0x00007fcb8cb950ee in QEventDispatcherGlib::processEvents (this=0x17b8e00, flags=...) at kernel/qeventdispatcher_glib.cpp:450
#10 0x00007fcb8d6136c6 in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#11 0x00007fcb8cb66e9f in QEventLoop::processEvents (this=this@entry=0x1ccbe90, flags=...) at kernel/qeventloop.cpp:149
#12 0x00007fcb8cb67195 in QEventLoop::exec (this=0x1ccbe90, flags=...) at kernel/qeventloop.cpp:204
#13 0x00000000005df519 in Digikam::ScanController::completeCollectionScanCore (this=0x1b49300, needTotalFiles=needTotalFiles@entry=true, defer=defer@entry=false) at /usr/src/debug/digikam-4.5.0/core/app/database/scancontroller.cpp:486
#14 0x00000000005df61e in Digikam::ScanController::completeCollectionScanInBackground (this=<optimized out>, defer=defer@entry=false) at /usr/src/debug/digikam-4.5.0/core/app/database/scancontroller.cpp:471
#15 0x000000000052e857 in Digikam::NewItemsFinder::slotStart (this=0x5f5fc90) at /usr/src/debug/digikam-4.5.0/core/utilities/maintenance/newitemsfinder.cpp:112
#16 0x00007fcb8cb805ce in QObject::event (this=0x5f5fc90, e=<optimized out>) at kernel/qobject.cpp:1231
#17 0x00007fcb8d5767bc in QApplicationPrivate::notify_helper (this=this@entry=0x18e6900, receiver=receiver@entry=0x5f5fc90, e=e@entry=0x1c2b480) at kernel/qapplication.cpp:4565
#18 0x00007fcb8d57ccfd in QApplication::notify (this=this@entry=0x7fff6059cd20, receiver=receiver@entry=0x5f5fc90, e=e@entry=0x1c2b480) at kernel/qapplication.cpp:4351
#19 0x00007fcb8e28ebaa in KApplication::notify (this=0x7fff6059cd20, receiver=0x5f5fc90, event=0x1c2b480) at /usr/src/debug/kdelibs-4.14.3/kdeui/kernel/kapplication.cpp:311
#20 0x00007fcb8cb682dd in QCoreApplication::notifyInternal (this=0x7fff6059cd20, receiver=receiver@entry=0x5f5fc90, event=event@entry=0x1c2b480) at kernel/qcoreapplication.cpp:953
#21 0x00007fcb8cb6b5ad in sendEvent (event=0x1c2b480, receiver=0x5f5fc90) at kernel/qcoreapplication.h:231
#22 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x17b3980) at kernel/qcoreapplication.cpp:1577
#23 0x00007fcb8cb6ba53 in QCoreApplication::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0) at kernel/qcoreapplication.cpp:1470
#24 0x00007fcb8cb9592e in sendPostedEvents () at kernel/qcoreapplication.h:236
#25 postEventSourceDispatch (s=0x18d7d70) at kernel/qeventdispatcher_glib.cpp:300
#26 0x00007fcb83fe9a04 in g_main_dispatch (context=0x18d9d30) at gmain.c:3111
#27 g_main_context_dispatch (context=context@entry=0x18d9d30) at gmain.c:3710
#28 0x00007fcb83fe9c48 in g_main_context_iterate (context=context@entry=0x18d9d30, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3781
#29 0x00007fcb83fe9cec in g_main_context_iteration (context=0x18d9d30, may_block=1) at gmain.c:3842
#30 0x00007fcb8cb950ee in QEventDispatcherGlib::processEvents (this=0x17b8e00, flags=...) at kernel/qeventdispatcher_glib.cpp:450
#31 0x00007fcb8d6136c6 in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#32 0x00007fcb8cb66e9f in QEventLoop::processEvents (this=this@entry=0x7fff6059c800, flags=...) at kernel/qeventloop.cpp:149
#33 0x00007fcb8cb67195 in QEventLoop::exec (this=this@entry=0x7fff6059c800, flags=...) at kernel/qeventloop.cpp:204
#34 0x00007fcb8cb6c5e9 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1225
#35 0x00007fcb8d574f8c in QApplication::exec () at kernel/qapplication.cpp:3823
#36 0x00000000004a0310 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/digikam-4.5.0/core/app/main/main.cpp:236

Possible duplicates by query: bug 341307, bug 341024, bug 337300, bug 336594, bug 336309.

Reported using DrKonqi
Comment 1 Christoph Feck 2014-12-18 22:32:10 UTC
This is not an xcb problem. The libkexiv2 library wants to show an error using KExiv2Iface::KExiv2::Private::printExiv2ExceptionError, which (for whatever reason) tries to route through KMessageBox.

GUI classes, however, cannot be used from outside the main thread.
Comment 2 Christoph Feck 2014-12-18 22:34:19 UTC
Can you please use "kdebugdialog --fullmode", and check if any of them say "Output to: Message Box" ?
Comment 3 Christoph Feck 2014-12-18 22:38:21 UTC
BTW, the exiv2 exception is this text:

Cannot load metadata from file   (Error # 11 :  /home/ingham/Photos/Alicia-2014-12-10/CellPhone/20141210_112417-levels-100.xcf

If possible, please attach that file so that the meta data loading can be fixed. If this file is private, you can also mail it to Digikam developers directly.
Comment 4 caulier.gilles 2014-12-18 22:49:15 UTC
Christoph,

The trace sound like corrupted. There is no GUI call from separated thread running Exiv2/libkexiv2.

I suspect a duplicate report about missing C++ exception handling included in libkexiv2 recently. Here XCF image is not supported by Exiv2 which send a C++ exception.

Full C++ exception wrapper have been implemented through this commit :

https://projects.kde.org/projects/kde/kdegraphics/libs/libkexiv2/repository/revisions/8a8dc535d504b70776677b933ac761bba0f7a4ae

So for me it's a duplicate of bug #331679

Gilles Caulier
Comment 5 Kenneth Ingham 2014-12-19 23:07:42 UTC
These have Error and Fatal Error to Message box:
50003 digikam (core)
50004 digikam (kio-slave)
50005 digikam (showfoto)
50006 digikam (editor plugins)
50007 digikam (database server)
digikam
Comment 6 Christoph Feck 2014-12-20 00:36:53 UTC
Okey, this confirms my suspicion. Unfortunately kDebug() does not make sure KMessageBox is called in the main thread. To avoid this crash, set any other output method for digikam, because it is highly multi-threaded.

I am closing this as UNMAINTAINED, because we will not fix kDebug(). Applications should be ported to qCDebug, which is hopefully more thread-safe.

Regarding the error thrown by libexiv2, Gilles decides if this should be reported upstream to libexiv2 developers, or if this is a digikam issue. I am not sure if .xcf files are supposed to support metadata at all.
Comment 7 caulier.gilles 2014-12-20 06:26:28 UTC
Christoph,

>Unfortunately kDebug() does not make sure KMessageBox is called in the main thread.

==> What ? kDebug want to print message through KMessageBox ?

No. it's just print text on the console. kDebug is thread safe. We use it since a very long time everywhere in digiKam, especially in multi-threaded section. In the pass, we have found several dysfunction about non re-entrancy fixed by David Faure. But it very old (2005/2006).

For the XCF support, it's a Exiv2 UPSTREAM wish to report in Exiv2 bugzilla. XCF has metadata...

Gilles Caulier


Anyway, i already ported all kDebug everywhere in digiKam/libkexiv2 to qCDebug with framework.
Comment 8 Christoph Feck 2014-12-20 14:34:34 UTC
> No. it's just print text on the console.

Please read comment #2 and Kenneth's answer in comment #5.
Comment 9 caulier.gilles 2014-12-20 17:24:37 UTC
ok. right. now i understand...

I close this file as fixed with Qt5 port, as kDebug is fully port to qCDebug now...

For Exiv2 exception, this is already reported in Exiv2 bugzilla, and fixed with next 0.25 release

Gilles Caulier
Comment 10 Kenneth Ingham 2014-12-20 18:34:30 UTC
The only problem is that digikam is still completely unusable.  I got the latest libkexiv2 and libexiv2 sources, built them and verified via ldd that digikam was using them.  It still crashes using a directory containing only one .xcf file.  If I get the latest digikam sources and build, will it work?
Comment 11 caulier.gilles 2014-12-20 19:37:05 UTC
yes it is. Full C++ exception handling have been implemented in libkexiv2 since few months

Gilles Caulier
Comment 12 caulier.gilles 2015-01-25 09:39:29 UTC
*** Bug 343257 has been marked as a duplicate of this bug. ***