Bug 1384618

Summary: digikam failed under wayland session
Product: [Fedora] Fedora Reporter: RJ <ogldelphi>
Component: digikamAssignee: Rex Dieter <rdieter>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 25CC: alekcejk, me, ogldelphi, rdieter, smparrish, than
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: digikam-5.3.0-3.fc25 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-11-28 04:00:26 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1298494    

Description RJ 2016-10-13 17:07:15 UTC
Description of problem:
just failed with this: Application: digiKam (digikam), signal: Segmentation fault

Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1. start KDE wayland session
2. start digikam
3.

Actual results:
failed

Expected results:
work

Additional info:

Comment 1 Rex Dieter 2016-11-09 14:30:53 UTC
for crashes like, having a backtrace is almost essential, can you provide one?

Comment 2 RJ 2016-11-09 17:17:04 UTC
KDE crash software drkonqi says: Application: digiKam (digikam), signal: Segmentation fault.
And ABRT do not popup.

In Konsole log looks like: $digikam 
QObject::connect: invalid null parameter
QFileSystemWatcher::removePaths: list is empty
KCrash: Application 'digikam' crashing...
KCrash: Attempting to start /usr/libexec/drkonqi from kdeinit
sock_file=/run/user/1000/kdeinit5__1

[1]+  Stopped                 digikam

Do you need any special info?

Comment 3 Rex Dieter 2016-11-09 17:24:25 UTC
If neither abrt or drkonqi catches the crash, debugging this is going to be hard.

You could try running digikam via gdb debugger by hand, if you're familiar with it (gdb).

Comment 4 RJ 2016-11-09 19:35:53 UTC
(gdb) run
Starting program: /usr/bin/digikam 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
[New Thread 0x7fffb207c700 (LWP 2427)]
QObject::connect: invalid null parameter
[New Thread 0x7fffa60cd700 (LWP 2428)]
[New Thread 0x7fffa582c700 (LWP 2429)]
QFileSystemWatcher::removePaths: list is empty
[New Thread 0x7fffa502b700 (LWP 2430)]
[Thread 0x7fffa502b700 (LWP 2430) exited]

Thread 1 "digikam" received signal SIGSEGV, Segmentation fault.
0x00007ffff4a8995a in XInternAtom (dpy=0x5555558b35d0, name=name@entry=0x555555ecc6e8 "_ICC_PROFILE", 
    onlyIfExists=onlyIfExists@entry=1) at IntAtom.c:174
174         LockDisplay(dpy);
(gdb) 

Something like that.

Comment 5 RJ 2016-11-09 19:48:31 UTC
(gdb) backtrace
#0  0x00007ffff4a8995a in XInternAtom (dpy=0x5555558b3b20, 
    name=name@entry=0x555555edc108 "_ICC_PROFILE", 
    onlyIfExists=onlyIfExists@entry=1) at IntAtom.c:174
#1  0x00007ffff66ed823 in Digikam::IccSettings::Private::profileFromWindowSystem (
    this=0x555555d4c550, widget=widget@entry=0x555555d7c700)
    at /usr/src/debug/digikam-5.2.0/core/libs/dimg/filters/icc/iccsettings.cpp:234
#2  0x00007ffff66edb71 in Digikam::IccSettings::monitorProfile (this=
    0x7ffff7302260 <_ZZN7Digikam12_GLOBAL__N_113Q_QGS_creator13innerFunctionEvE6holder>, widget=widget@entry=0x555555d7c700)
    at /usr/src/debug/digikam-5.2.0/core/libs/dimg/filters/icc/iccsettings.cpp:134
#3  0x00007ffff66e10a2 in Digikam::IccManager::displayProfile (
    displayingWidget=displayingWidget@entry=0x555555d7c700)
    at /usr/src/debug/digikam-5.2.0/core/libs/dimg/filters/icc/iccmanager.cpp:382
#4  0x00007ffff68732e1 in Digikam::ThumbnailLoadThread::setDisplayingWidget (
    widget=widget@entry=0x555555d7c700)
    at /usr/src/debug/digikam-5.2.0/core/libs/threadimageio/thumbnailloadthread.cpp:264
#5  0x00007ffff753a0ba in Digikam::DigikamApp::DigikamApp (this=0x555555d7c700, 
    __in_chrg=<optimized out>, __vtt_parm=<optimized out>)
    at /usr/src/debug/digikam-5.2.0/core/app/main/digikamapp.cpp:199
#6  0x000055555555a0b1 in main (argc=<optimized out>, argv=<optimized out>)
    at /usr/src/debug/digikam-5.2.0/core/app/main/main.cpp:199
(gdb)

Comment 6 Rex Dieter 2016-11-10 18:26:13 UTC
do:  thread apply all backtrace

Comment 7 RJ 2016-11-10 19:57:02 UTC
(In reply to Rex Dieter from comment #6)
> do:  thread apply all backtrace

Sorry, what do you mean?

Comment 8 Rex Dieter 2016-11-11 13:00:29 UTC
We need backtrace from all threads.  instead of issuing just 'backtrace' to gdb, do 'thread apply all backtrace'.

Comment 9 RJ 2016-11-11 16:04:39 UTC
Here you are.

(gdb) thread apply all backtrace

Thread 4 (Thread 0x7fffa582c700 (LWP 2208)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007fffe978209a in QWaitConditionPrivate::wait (time=18446744073709551615, this=0x555555c13b30)
    at thread/qwaitcondition_unix.cpp:143
#2  QWaitCondition::wait (this=this@entry=0x555555c13a50, mutex=mutex@entry=0x555555c13a48, 
    time=time@entry=18446744073709551615) at thread/qwaitcondition_unix.cpp:215
#3  0x00007ffff74edf6a in Digikam::ScanController::run (this=
    0x7ffff7dd5100 <_ZZN7Digikam12_GLOBAL__N_113Q_QGS_creator13innerFunctionEvE6holder>)
    at /usr/src/debug/digikam-5.2.0/core/libs/database/utils/scancontroller.cpp:677
#4  0x00007fffe9781a1a in QThreadPrivate::start (
    arg=0x7ffff7dd5100 <_ZZN7Digikam12_GLOBAL__N_113Q_QGS_creator13innerFunctionEvE6holder>)
    at thread/qthread_unix.cpp:344
#5  0x00007ffff566f6ca in start_thread (arg=0x7fffa582c700) at pthread_create.c:333
#6  0x00007fffe7b0cf6f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 3 (Thread 0x7fffa60cd700 (LWP 2207)):
#0  0x00007fffe7b0100d in poll () at ../sysdeps/unix/syscall-template.S:84
---Type <return> to continue, or q <return> to quit---
#1  0x00007fffe752d156 in g_main_context_poll (priority=<optimized out>, n_fds=3, fds=0x7fffa0003220, 
    timeout=<optimized out>, context=0x7fffa0000990) at gmain.c:4228
#2  g_main_context_iterate (context=context@entry=0x7fffa0000990, block=block@entry=1, 
    dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3924
#3  0x00007fffe752d26c in g_main_context_iteration (context=0x7fffa0000990, 
    may_block=may_block@entry=1) at gmain.c:3990
#4  0x00007fffe996ed6f in QEventDispatcherGlib::processEvents (this=0x7fffa00008c0, flags=...)
    at kernel/qeventdispatcher_glib.cpp:423
#5  0x00007fffe99200ba in QEventLoop::exec (this=this@entry=0x7fffa60cc180, flags=..., 
    flags@entry=...) at kernel/qeventloop.cpp:210
#6  0x00007fffe977d643 in QThread::exec (
    this=this@entry=0x7fffec515060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>)
    at thread/qthread.cpp:507
#7  0x00007fffec49f7a9 in QDBusConnectionManager::run (
    this=0x7fffec515060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>)
    at qdbusconnection.cpp:196
#8  0x00007fffe9781a1a in QThreadPrivate::start (
    arg=0x7fffec515060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>)
---Type <return> to continue, or q <return> to quit---
    at thread/qthread_unix.cpp:344
#9  0x00007ffff566f6ca in start_thread (arg=0x7fffa60cd700) at pthread_create.c:333
#10 0x00007fffe7b0cf6f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 2 (Thread 0x7fffb207c700 (LWP 2206)):
#0  0x00007fffe7b0100d in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007fffd4d7b841 in poll (__timeout=-1, __nfds=2, __fds=0x7fffb207b220)
    at /usr/include/bits/poll2.h:46
#2  linux_udev_event_thread_main (arg=<optimized out>) at os/linux_udev.c:175
#3  0x00007ffff566f6ca in start_thread (arg=0x7fffb207c700) at pthread_create.c:333
#4  0x00007fffe7b0cf6f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 1 (Thread 0x7fffba083400 (LWP 2194)):
#0  0x00007ffff4a8995a in XInternAtom (dpy=0x5555558b35d0, 
    name=name@entry=0x555555edc1f8 "_ICC_PROFILE", onlyIfExists=onlyIfExists@entry=1) at IntAtom.c:174
#1  0x00007ffff66ed823 in Digikam::IccSettings::Private::profileFromWindowSystem (
    this=0x555555d4f8f0, widget=widget@entry=0x555555d2a6f0)
    at /usr/src/debug/digikam-5.2.0/core/libs/dimg/filters/icc/iccsettings.cpp:234
---Type <return> to continue, or q <return> to quit---
#2  0x00007ffff66edb71 in Digikam::IccSettings::monitorProfile (this=                                                                 
    0x7ffff7302260 <_ZZN7Digikam12_GLOBAL__N_113Q_QGS_creator13innerFunctionEvE6holder>, widget=widget@entry=0x555555d2a6f0)          
    at /usr/src/debug/digikam-5.2.0/core/libs/dimg/filters/icc/iccsettings.cpp:134                                                    
#3  0x00007ffff66e10a2 in Digikam::IccManager::displayProfile (displayingWidget=displayingWidget@entry=0x555555d2a6f0)                
    at /usr/src/debug/digikam-5.2.0/core/libs/dimg/filters/icc/iccmanager.cpp:382                                                     
#4  0x00007ffff68732e1 in Digikam::ThumbnailLoadThread::setDisplayingWidget (widget=widget@entry=0x555555d2a6f0)                      
    at /usr/src/debug/digikam-5.2.0/core/libs/threadimageio/thumbnailloadthread.cpp:264                                               
#5  0x00007ffff753a0ba in Digikam::DigikamApp::DigikamApp (this=0x555555d2a6f0, __in_chrg=<optimized out>,                            
    __vtt_parm=<optimized out>) at /usr/src/debug/digikam-5.2.0/core/app/main/digikamapp.cpp:199                                      
#6  0x000055555555a0b1 in main (argc=<optimized out>, argv=<optimized out>)                                                           
    at /usr/src/debug/digikam-5.2.0/core/app/main/main.cpp:199                                                                        
(gdb)

Comment 10 RJ 2016-11-13 08:49:07 UTC
Get new backtrace with KDE crash notifier from digikam 5.3.

-- Backtrace:
Application: digiKam (digikam), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
84	T_PSEUDO (SYSCALL_SYMBOL, SYSCALL_NAME, SYSCALL_NARGS)
[Current thread is 1 (Thread 0x7fc36c7fc400 (LWP 1879))]

Thread 4 (Thread 0x7fc353f61700 (LWP 1885)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007fc39bef609a in QWaitConditionPrivate::wait (time=18446744073709551615, this=0x558c072e7ac0) at thread/qwaitcondition_unix.cpp:143
#2  QWaitCondition::wait (this=this@entry=0x558c072e79e0, mutex=mutex@entry=0x558c072e79d8, time=time@entry=18446744073709551615) at thread/qwaitcondition_unix.cpp:215
#3  0x00007fc3a9c7307a in Digikam::ScanController::run (this=0x7fc3aa56a100 <_ZZN7Digikam12_GLOBAL__N_113Q_QGS_creator13innerFunctionEvE6holder>) at /usr/src/debug/digikam-5.3.0/core/libs/database/utils/scancontroller.cpp:677
#4  0x00007fc39bef5a1a in QThreadPrivate::start (arg=0x7fc3aa56a100 <_ZZN7Digikam12_GLOBAL__N_113Q_QGS_creator13innerFunctionEvE6holder>) at thread/qthread_unix.cpp:344
#5  0x00007fc3a7de36ca in start_thread (arg=0x7fc353f61700) at pthread_create.c:333
#6  0x00007fc399bd6f6f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 3 (Thread 0x7fc358846700 (LWP 1884)):
#0  0x00007fc39beedab9 in std::__atomic_base<QMutexData*>::compare_exchange_strong (__m2=<optimized out>, __m1=std::memory_order_acquire, __p2=<optimized out>, __p1=@0x7fc358844f18: 0x0, this=0x558c07161400) at /usr/include/c++/6.1.1/bits/atomic_base.h:752
#1  std::atomic<QMutexData*>::compare_exchange_strong (__m=std::memory_order_acquire, __p2=<optimized out>, __p1=@0x7fc358844f18: 0x0, this=0x558c07161400) at /usr/include/c++/6.1.1/atomic:475
#2  QAtomicOps<QMutexData*>::testAndSetAcquire<QMutexData*> (currentValue=<synthetic pointer>, newValue=<optimized out>, expectedValue=0x0, _q_value=...) at ../../src/corelib/arch/qatomic_cxx11.h:165
#3  QBasicAtomicPointer<QMutexData>::testAndSetAcquire (currentValue=<synthetic pointer>: <optimized out>, newValue=<optimized out>, expectedValue=0x0, this=0x558c07161400) at ../../src/corelib/thread/qbasicatomic.h:259
#4  QBasicMutex::fastTryLock (current=<synthetic pointer>: <optimized out>, this=0x558c07161400) at thread/qmutex.h:89
#5  QMutex::lock (this=this@entry=0x558c07161400) at thread/qmutex.cpp:225
#6  0x00007fc39c0e2c4f in QMutexLocker::QMutexLocker (m=0x558c07161400, this=<synthetic pointer>) at ../../src/corelib/thread/qmutex.h:137
#7  QThreadData::canWaitLocked (this=0x558c071613d0) at ../../src/corelib/thread/qthread_p.h:253
#8  postEventSourcePrepare (s=0x7fc3540012d0, timeout=timeout@entry=0x7fc358844fb4) at kernel/qeventdispatcher_glib.cpp:259
#9  0x00007fc3995f6699 in g_main_context_prepare (context=context@entry=0x7fc354000990, priority=priority@entry=0x7fc358845040) at gmain.c:3501
#10 0x00007fc3995f707b in g_main_context_iterate (context=context@entry=0x7fc354000990, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3909
#11 0x00007fc3995f726c in g_main_context_iteration (context=0x7fc354000990, may_block=may_block@entry=1) at gmain.c:3990
#12 0x00007fc39c0e2d8b in QEventDispatcherGlib::processEvents (this=0x7fc3540008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#13 0x00007fc39c0940ba in QEventLoop::exec (this=this@entry=0x7fc358845180, flags=..., flags@entry=...) at kernel/qeventloop.cpp:210
#14 0x00007fc39bef1643 in QThread::exec (this=this@entry=0x7fc39ec89060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread.cpp:507
#15 0x00007fc39ec137a9 in QDBusConnectionManager::run (this=0x7fc39ec89060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:196
#16 0x00007fc39bef5a1a in QThreadPrivate::start (arg=0x7fc39ec89060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:344
#17 0x00007fc3a7de36ca in start_thread (arg=0x7fc358846700) at pthread_create.c:333
#18 0x00007fc399bd6f6f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 2 (Thread 0x7fc3647f5700 (LWP 1883)):
#0  0x00007fc3a7ded310 in __libc_recvmsg (fd=3, msg=0x7fc3647f20d0, flags=0) at ../sysdeps/unix/sysv/linux/recvmsg.c:28
#1  0x00007fc38cb3d958 in udev_monitor_receive_device (udev_monitor=<optimized out>) at src/libudev/libudev-monitor.c:612
#2  0x00007fc39a74c8db in linux_udev_event_thread_main (arg=<optimized out>) at os/linux_udev.c:186
#3  0x00007fc3a7de36ca in start_thread (arg=0x7fc3647f5700) at pthread_create.c:333
#4  0x00007fc399bd6f6f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:105

Thread 1 (Thread 0x7fc36c7fc400 (LWP 1879)):
[KCrash Handler]
#6  0x00007fc3a71fd95a in XInternAtom (dpy=0x558c06f874f0, name=name@entry=0x558c075aff38 "_ICC_PROFILE", onlyIfExists=onlyIfExists@entry=1) at IntAtom.c:174
#7  0x00007fc3a8e625b3 in Digikam::IccSettings::Private::profileFromWindowSystem (this=0x558c0741d9d0, widget=widget@entry=0x558c073b9bf0) at /usr/src/debug/digikam-5.3.0/core/libs/dimg/filters/icc/iccsettings.cpp:234
#8  0x00007fc3a8e62901 in Digikam::IccSettings::monitorProfile (this=0x7fc3a9a85420 <_ZZN7Digikam12_GLOBAL__N_113Q_QGS_creator13innerFunctionEvE6holder>, widget=widget@entry=0x558c073b9bf0) at /usr/src/debug/digikam-5.3.0/core/libs/dimg/filters/icc/iccsettings.cpp:134
#9  0x00007fc3a8e55e32 in Digikam::IccManager::displayProfile (displayingWidget=displayingWidget@entry=0x558c073b9bf0) at /usr/src/debug/digikam-5.3.0/core/libs/dimg/filters/icc/iccmanager.cpp:382
#10 0x00007fc3a8fe8b31 in Digikam::ThumbnailLoadThread::setDisplayingWidget (widget=widget@entry=0x558c073b9bf0) at /usr/src/debug/digikam-5.3.0/core/libs/threadimageio/thumbnailloadthread.cpp:264
#11 0x00007fc3a9cbf01f in Digikam::DigikamApp::DigikamApp (this=0x558c073b9bf0, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at /usr/src/debug/digikam-5.3.0/core/app/main/digikamapp.cpp:199
#12 0x0000558c05e160e1 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/digikam-5.3.0/core/app/main/main.cpp:198

Comment 12 RJ 2016-11-14 20:20:09 UTC
This is stub but it's ok I think. Is'n it?

Comment 13 Fedora Update System 2016-11-16 18:51:22 UTC
digikam-5.3.0-3.fc25 has been submitted as an update to Fedora 25. https://bodhi.fedoraproject.org/updates/FEDORA-2016-b61d94db6f

Comment 14 Fedora Update System 2016-11-18 15:56:58 UTC
digikam-5.3.0-3.fc25 has been pushed to the Fedora 25 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2016-b61d94db6f

Comment 15 Fedora Update System 2016-11-28 04:00:26 UTC
digikam-5.3.0-3.fc25 has been pushed to the Fedora 25 stable repository. If problems still persist, please make note of it in this bug report.