Bug 304609 - Crash of Digikam
Summary: Crash of Digikam
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: ColorManagement-Backend (show other bugs)
Version: 2.5.0
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-08-05 12:00 UTC by Christoph Jüngling
Modified: 2022-02-01 11:23 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: 3.0.0


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Christoph Jüngling 2012-08-05 12:00:41 UTC
Application: digikam (2.5.0)
KDE Platform Version: 4.8.4 (4.8.4)
Qt Version: 4.8.1
Operating System: Linux 3.2.0-27-generic x86_64
Distribution: Ubuntu 12.04 LTS

-- Information about the crash:
- What I was doing when the application crashed:
I started using digikam this morning, imported some photos from 2 memory cards, added keywords and geographical information, used merging of bracketed images (HDR) and tried to explore digikam a bit. Nothing unusual, I suppose.

- Unusual behavior I noticed:

In some situations digikam needed a long time to finish some internal operations, which causes the window to be greyed out many seconds. The same happened at last, so I locked the screen and when I came back aufter some minutes, I saw the crash message after unlocking the account.

- Additional information:

Currently there are 802 files (jpg, png, xmp) with 1.8 GB in digikam's folder.

-- Backtrace:
Application: digiKam (digikam), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f284e7b4a00 (LWP 24550))]

Thread 10 (Thread 0x7f282a03d700 (LWP 24556)):
#0  0x00007f2847c370bd in read () at ../sysdeps/unix/syscall-template.S:82
#1  0x00007f28411e18cf in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f28411a6ba4 in g_main_context_check () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f28411a6fd6 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f28411a749a in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f282a04298b in ?? () from /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so
#6  0x00007f28411c89e5 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#7  0x00007f2843559e9a in start_thread (arg=0x7f282a03d700) at pthread_create.c:308
#8  0x00007f2847c444bd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#9  0x0000000000000000 in ?? ()

Thread 9 (Thread 0x7f2829431700 (LWP 24557)):
#0  0x00007f28411e2341 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007f28411e25c9 in g_mutex_unlock () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f28411a6f4e in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f28411a749a in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f2836f75406 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#5  0x00007f28411c89e5 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#6  0x00007f2843559e9a in start_thread (arg=0x7f2829431700) at pthread_create.c:308
#7  0x00007f2847c444bd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#8  0x0000000000000000 in ?? ()

Thread 8 (Thread 0x7f28175f6700 (LWP 24575)):
#0  0x00007f284355d05d in __pthread_mutex_unlock_usercnt (mutex=<optimized out>, decr=<optimized out>) at pthread_mutex_unlock.c:52
#1  __pthread_mutex_unlock (mutex=0x7f2808000a60) at pthread_mutex_unlock.c:290
#2  0x00007f28411e25d1 in g_mutex_unlock () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f28411a702a in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f28411a7164 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f2848b46426 in QEventDispatcherGlib::processEvents (this=0x7f28080008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#6  0x00007f2848b15c82 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#7  0x00007f2848b15ed7 in QEventLoop::exec (this=0x7f28175f5b50, flags=...) at kernel/qeventloop.cpp:204
#8  0x00007f2848a14fa7 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:501
#9  0x00007f2848af59ff in QInotifyFileSystemWatcherEngine::run (this=0x2cdaef0) at io/qfilesystemwatcher_inotify.cpp:248
#10 0x00007f2848a17fcb in QThreadPrivate::start (arg=0x2cdaef0) at thread/qthread_unix.cpp:298
#11 0x00007f2843559e9a in start_thread (arg=0x7f28175f6700) at pthread_create.c:308
#12 0x00007f2847c444bd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#13 0x0000000000000000 in ?? ()

Thread 7 (Thread 0x7f2816df5700 (LWP 24593)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007f2848a184db in wait (time=18446744073709551615, this=0x3096d70) at thread/qwaitcondition_unix.cpp:86
#2  QWaitCondition::wait (this=<optimized out>, mutex=0x3096ad8, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:158
#3  0x00007f284be1fff1 in Digikam::ParkingThread::run (this=0x3096ac0) at /build/buildd/digikam-2.5.0/core/libs/threads/threadmanager.cpp:119
#4  0x00007f2848a17fcb in QThreadPrivate::start (arg=0x3096ac0) at thread/qthread_unix.cpp:298
#5  0x00007f2843559e9a in start_thread (arg=0x7f2816df5700) at pthread_create.c:308
#6  0x00007f2847c444bd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 6 (Thread 0x7f27e61af700 (LWP 24809)):
#0  0x00007f2847c38b03 in __GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007f28411a7036 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f28411a7164 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f2848b46426 in QEventDispatcherGlib::processEvents (this=0x7f27cc018190, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#4  0x00007f2848b15c82 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#5  0x00007f2848b15ed7 in QEventLoop::exec (this=0x7f27e61aeb50, flags=...) at kernel/qeventloop.cpp:204
#6  0x00007f2848a14fa7 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:501
#7  0x00007f2848af59ff in QInotifyFileSystemWatcherEngine::run (this=0x7071fe0) at io/qfilesystemwatcher_inotify.cpp:248
#8  0x00007f2848a17fcb in QThreadPrivate::start (arg=0x7071fe0) at thread/qthread_unix.cpp:298
#9  0x00007f2843559e9a in start_thread (arg=0x7f27e61af700) at pthread_create.c:308
#10 0x00007f2847c444bd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 5 (Thread 0x7f2792ff5700 (LWP 25541)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007f283b216dec in ?? () from /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4
#2  0x00007f283b216f19 in ?? () from /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4
#3  0x00007f2843559e9a in start_thread (arg=0x7f2792ff5700) at pthread_create.c:308
#4  0x00007f2847c444bd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#5  0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7f27947f8700 (LWP 25542)):
#0  0x00007f2847c38b03 in __GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007f28411a7036 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f28411a7164 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f2848b46426 in QEventDispatcherGlib::processEvents (this=0x7f27cc051340, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#4  0x00007f2848b15c82 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#5  0x00007f2848b15ed7 in QEventLoop::exec (this=0x7f27947f7b80, flags=...) at kernel/qeventloop.cpp:204
#6  0x00007f2848a14fa7 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:501
#7  0x00007f2848a17fcb in QThreadPrivate::start (arg=0x5fc6a30) at thread/qthread_unix.cpp:298
#8  0x00007f2843559e9a in start_thread (arg=0x7f27947f8700) at pthread_create.c:308
#9  0x00007f2847c444bd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#10 0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7f27affff700 (LWP 27118)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007f2848a184db in wait (time=18446744073709551615, this=0x5b06740) at thread/qwaitcondition_unix.cpp:86
#2  QWaitCondition::wait (this=<optimized out>, mutex=0x62fc538, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:158
#3  0x00007f27fb74a314 in KIPIPlugins::LoadRawThumbThread::run (this=0x59405c0) at /build/buildd/digikam-2.5.0/extra/kipi-plugins/common/libkipiplugins/dialogs/imagedialog.cpp:547
#4  0x00007f2848a17fcb in QThreadPrivate::start (arg=0x59405c0) at thread/qthread_unix.cpp:298
#5  0x00007f2843559e9a in start_thread (arg=0x7f27affff700) at pthread_create.c:308
#6  0x00007f2847c444bd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7f27ae825700 (LWP 27528)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007f2848a184db in wait (time=18446744073709551615, this=0x6665aa0) at thread/qwaitcondition_unix.cpp:86
#2  QWaitCondition::wait (this=<optimized out>, mutex=0x593fb98, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:158
#3  0x00007f27fb74a314 in KIPIPlugins::LoadRawThumbThread::run (this=0x4a9c000) at /build/buildd/digikam-2.5.0/extra/kipi-plugins/common/libkipiplugins/dialogs/imagedialog.cpp:547
#4  0x00007f2848a17fcb in QThreadPrivate::start (arg=0x4a9c000) at thread/qthread_unix.cpp:298
#5  0x00007f2843559e9a in start_thread (arg=0x7f27ae825700) at pthread_create.c:308
#6  0x00007f2847c444bd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f284e7b4a00 (LWP 24550)):
[KCrash Handler]
#6  QX11Info::screen (this=0x1e0) at kernel/qx11info_x11.cpp:476
#7  0x00007f28495a2b4d in QDesktopWidget::screenNumber (this=<optimized out>, widget=0x2ddf590) at kernel/qdesktopwidget_x11.cpp:412
#8  0x00007f284bcdd9f3 in Digikam::IccSettings::IccSettingsPriv::profileFromWindowSystem (this=0x2d2e8e0, widget=0x2ddf590) at /build/buildd/digikam-2.5.0/core/libs/dimg/filters/icc/iccsettings.cpp:197
#9  0x00007f284bcde385 in Digikam::IccSettings::monitorProfile (this=0x2cdf390, widget=<optimized out>) at /build/buildd/digikam-2.5.0/core/libs/dimg/filters/icc/iccsettings.cpp:133
#10 0x00007f284bcc1140 in Digikam::IccManager::displayProfile (displayingWidget=0x2ddf590) at /build/buildd/digikam-2.5.0/core/libs/dimg/filters/icc/iccmanager.cpp:385
#11 0x00007f284be01e39 in Digikam::ThumbnailLoadThread::ThumbnailLoadThreadPriv::createLoadingDescription (this=0x3cc0000, filePath=..., size=69903696, setLastDescription=true) at /build/buildd/digikam-2.5.0/core/libs/threadimageio/thumbnailloadthread.cpp:350
#12 0x00007f284be02463 in Digikam::ThumbnailLoadThread::find (this=0x3ccdc80, filePath=..., size=69903696, retPixmap=0x0, emitSignal=true, detailRect=...) at /build/buildd/digikam-2.5.0/core/libs/threadimageio/thumbnailloadthread.cpp:464
#13 0x00007f284be02a03 in Digikam::ThumbnailLoadThread::find (this=<optimized out>, filePath=..., size=<optimized out>) at /build/buildd/digikam-2.5.0/core/libs/threadimageio/thumbnailloadthread.cpp:527
#14 0x00000000006e3a55 in Digikam::QueueListView::reloadThumbs (this=0x3fdf6b0, url=...) at /build/buildd/digikam-2.5.0/core/utilities/queuemanager/views/queuelist.cpp:1061
#15 0x00000000006e8879 in Digikam::QueuePool::slotFileChanged (this=0x3fde940, filePath=...) at /build/buildd/digikam-2.5.0/core/utilities/queuemanager/views/queuepool.cpp:410
#16 0x00007f2848b30446 in QObject::event (this=0x3fde940, e=<optimized out>) at kernel/qobject.cpp:1195
#17 0x00007f2849561b7b in QWidget::event (this=0x3fde940, event=0x16869a90) at kernel/qwidget.cpp:8821
#18 0x00007f2849511894 in notify_helper (e=0x16869a90, receiver=0x3fde940, this=0x2a06b70) at kernel/qapplication.cpp:4559
#19 QApplicationPrivate::notify_helper (this=0x2a06b70, receiver=0x3fde940, e=0x16869a90) at kernel/qapplication.cpp:4531
#20 0x00007f2849516713 in QApplication::notify (this=0x7fff0028bfa0, receiver=0x3fde940, e=0x16869a90) at kernel/qapplication.cpp:4420
#21 0x00007f284a24b9e6 in KApplication::notify (this=0x7fff0028bfa0, receiver=0x3fde940, event=0x16869a90) at ../../kdeui/kernel/kapplication.cpp:311
#22 0x00007f2848b16e9c in QCoreApplication::notifyInternal (this=0x7fff0028bfa0, receiver=0x3fde940, event=0x16869a90) at kernel/qcoreapplication.cpp:876
#23 0x00007f2848b1ac6a in sendEvent (event=0x16869a90, receiver=0x3fde940) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#24 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x29a44a0) at kernel/qcoreapplication.cpp:1500
#25 0x00007f2848b45f93 in sendPostedEvents () at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:236
#26 postEventSourceDispatch (s=<optimized out>) at kernel/qeventdispatcher_glib.cpp:279
#27 0x00007f28411a6d53 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#28 0x00007f28411a70a0 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#29 0x00007f28411a7164 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#30 0x00007f2848b463bf in QEventDispatcherGlib::processEvents (this=0x29a5d80, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#31 0x00007f28495b9d5e in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#32 0x00007f2848b15c82 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#33 0x00007f2848b15ed7 in QEventLoop::exec (this=0x7fff0028be20, flags=...) at kernel/qeventloop.cpp:204
#34 0x00007f2848b1af67 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1148
#35 0x000000000048bc5d in main (argc=5, argv=<optimized out>) at /build/buildd/digikam-2.5.0/core/digikam/main/main.cpp:232

Reported using DrKonqi
Comment 1 caulier.gilles 2012-08-05 15:52:51 UTC
Sound like it crash in Color Management. Do you assigned a color profile for your screen ? Which icc profile file ?

Also it crash internally in Qt screen management ? It sound like a problem with Qt or your X11 video driver. Please investiguate...

Gilles Caulier
Comment 2 Christoph Jüngling 2012-08-05 16:03:41 UTC
I did not change any color management settings, nor did I assign a particular color profile.
Comment 3 caulier.gilles 2012-08-05 16:05:27 UTC
Well, sound like a binary compatibility issue in your system with Qt or X11. Also try to use last stable digiKam 2.7.0.

Gilles Caulier
Comment 4 Marcel Wiesweg 2012-10-03 13:04:28 UTC
Code (crash in second line):
   QDesktopWidget* desktop = QApplication::desktop();
    int screenNumber        = desktop->screenNumber(widget);

We dont check the desktop widget, and from the docs the state of a null desktop widget is not defined/expected, but the crash comes from accessing this.
I will add a null pointer check. If there's not a null pointer and still crashes, it's an upstream problem.
Comment 5 Marcel Wiesweg 2012-10-06 20:57:44 UTC
Git commit c668a445da7e7ac62e42f035e5fef68a8d9571a0 by Marcel Wiesweg.
Committed on 03/10/2012 at 15:05.
Pushed by mwiesweg into branch 'master'.

Add null pointer check because of reported crash here.
FIXED-IN: 3.0

M  +5    -0    libs/dimg/filters/icc/iccsettings.cpp

http://commits.kde.org/digikam/c668a445da7e7ac62e42f035e5fef68a8d9571a0