Bug 333716 - kded4 crash when switch off monitor
Summary: kded4 crash when switch off monitor
Status: RESOLVED FIXED
Alias: None
Product: KScreen
Classification: Plasma
Component: kded (show other bugs)
Version: 1.0.2
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: Daniel Vrátil
URL:
Keywords: drkonqi
: 341102 (view as bug list)
Depends on:
Blocks:
 
Reported: 2014-04-22 08:31 UTC by Dmitry
Modified: 2015-03-06 15:18 UTC (History)
2 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Dmitry 2014-04-22 08:31:34 UTC
Application: kded4 (4.13.0)
KDE Platform Version: 4.13.0
Qt Version: 4.8.6
Operating System: Linux 3.13.0-24-generic x86_64
Distribution: Ubuntu 14.04 LTS

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

Chose a different source on the monitor connected via displayport, then turned back. 
Monitor: Dell U2212HM 
NVIDIA Driver Version: 331.38 
Graphics Processor: GeForce GTX 765M

The crash can be reproduced sometimes.

-- Backtrace:
Application: Служба KDE (kded4), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f9daefd87c0 (LWP 2513))]

Thread 7 (Thread 0x7f9d910ae700 (LWP 2515)):
#0  0x00007f9dac8406bd in read () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007f9d9af0ee41 in ?? () from /usr/lib/nvidia-331/tls/libnvidia-tls.so.331.38
#2  0x00007f9da9980c20 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f9da993fb14 in g_main_context_check () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f9da993ff7b in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f9da99400ec in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#6  0x00007f9dadc7b7be in QEventDispatcherGlib::processEvents (this=0x7f9d8c0008e0, flags=...) at kernel/qeventdispatcher_glib.cpp:436
#7  0x00007f9dadc4d0af in QEventLoop::processEvents (this=this@entry=0x7f9d910ade20, flags=...) at kernel/qeventloop.cpp:149
#8  0x00007f9dadc4d3a5 in QEventLoop::exec (this=this@entry=0x7f9d910ade20, flags=...) at kernel/qeventloop.cpp:204
#9  0x00007f9dadb49c5f in QThread::exec (this=<optimized out>) at thread/qthread.cpp:537
#10 0x00007f9dadb4c32f in QThreadPrivate::start (arg=0x1354800) at thread/qthread_unix.cpp:349
#11 0x00007f9daa022182 in start_thread (arg=0x7f9d910ae700) at pthread_create.c:312
#12 0x00007f9dac84f30d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 6 (Thread 0x7f9d88237700 (LWP 2522)):
#0  0x00007f9dac841fbd in poll () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007f9da993ffe4 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f9da99400ec in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f9dadc7b7be in QEventDispatcherGlib::processEvents (this=0x7f9d800008e0, flags=...) at kernel/qeventdispatcher_glib.cpp:436
#4  0x00007f9dadc4d0af in QEventLoop::processEvents (this=this@entry=0x7f9d88236de0, flags=...) at kernel/qeventloop.cpp:149
#5  0x00007f9dadc4d3a5 in QEventLoop::exec (this=this@entry=0x7f9d88236de0, flags=...) at kernel/qeventloop.cpp:204
#6  0x00007f9dadb49c5f in QThread::exec (this=this@entry=0x13f3ef0) at thread/qthread.cpp:537
#7  0x00007f9dadc2e823 in QInotifyFileSystemWatcherEngine::run (this=0x13f3ef0) at io/qfilesystemwatcher_inotify.cpp:265
#8  0x00007f9dadb4c32f in QThreadPrivate::start (arg=0x13f3ef0) at thread/qthread_unix.cpp:349
#9  0x00007f9daa022182 in start_thread (arg=0x7f9d88237700) at pthread_create.c:312
#10 0x00007f9dac84f30d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 5 (Thread 0x7f9d52f86700 (LWP 2753)):
#0  __lll_unlock_wake () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:371
#1  0x00007f9daa0258a4 in _L_unlock_722 () from /lib/x86_64-linux-gnu/libpthread.so.0
#2  0x00007f9daa0257f4 in __pthread_mutex_unlock_usercnt (decr=1, mutex=0x7f9d9c572ec0) at pthread_mutex_unlock.c:57
#3  __GI___pthread_mutex_unlock (mutex=0x7f9d9c572ec0) at pthread_mutex_unlock.c:310
#4  0x00007f9d9c30421a in ?? () from /usr/lib/nvidia-331/libGL.so.1
#5  0x00007f9d9c3057a8 in ?? () from /usr/lib/nvidia-331/libGL.so.1
#6  0x00007f9d9af0ee1b in ?? () from /usr/lib/nvidia-331/tls/libnvidia-tls.so.331.38
#7  0x00007f9da9980c20 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#8  0x00007f9da993fb14 in g_main_context_check () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#9  0x00007f9da993ff7b in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#10 0x00007f9da994030a in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#11 0x00007f9d74cb2e16 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#12 0x00007f9da9964f15 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#13 0x00007f9daa022182 in start_thread (arg=0x7f9d52f86700) at pthread_create.c:312
#14 0x00007f9dac84f30d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 4 (Thread 0x7f9d52785700 (LWP 2754)):
#0  0x00007f9da998162d in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007f9da9981989 in g_mutex_lock () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f9da993f699 in g_main_context_prepare () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f9da993ff03 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f9da99400ec in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f9dadc7b7be in QEventDispatcherGlib::processEvents (this=0x7f9d440008e0, flags=...) at kernel/qeventdispatcher_glib.cpp:436
#6  0x00007f9dadc4d0af in QEventLoop::processEvents (this=this@entry=0x7f9d52784de0, flags=...) at kernel/qeventloop.cpp:149
#7  0x00007f9dadc4d3a5 in QEventLoop::exec (this=this@entry=0x7f9d52784de0, flags=...) at kernel/qeventloop.cpp:204
#8  0x00007f9dadb49c5f in QThread::exec (this=<optimized out>) at thread/qthread.cpp:537
#9  0x00007f9d8a68d027 in KCupsConnection::run() () from /usr/lib/libkcupslib.so
#10 0x00007f9dadb4c32f in QThreadPrivate::start (arg=0xf90a00) at thread/qthread_unix.cpp:349
#11 0x00007f9daa022182 in start_thread (arg=0x7f9d52785700) at pthread_create.c:312
#12 0x00007f9dac84f30d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 3 (Thread 0x7f9d51f84700 (LWP 2755)):
#0  0x00007f9dadb2e3c0 in g_main_context_iteration@plt () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#1  0x00007f9dadc7b7be in QEventDispatcherGlib::processEvents (this=0x7f9d480008e0, flags=...) at kernel/qeventdispatcher_glib.cpp:436
#2  0x00007f9dadc4d0af in QEventLoop::processEvents (this=this@entry=0x7f9d51f83e20, flags=...) at kernel/qeventloop.cpp:149
#3  0x00007f9dadc4d3a5 in QEventLoop::exec (this=this@entry=0x7f9d51f83e20, flags=...) at kernel/qeventloop.cpp:204
#4  0x00007f9dadb49c5f in QThread::exec (this=<optimized out>) at thread/qthread.cpp:537
#5  0x00007f9dadb4c32f in QThreadPrivate::start (arg=0x166dcc0) at thread/qthread_unix.cpp:349
#6  0x00007f9daa022182 in start_thread (arg=0x7f9d51f84700) at pthread_create.c:312
#7  0x00007f9dac84f30d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 2 (Thread 0x7f9d86ba3700 (LWP 3969)):
#0  __lll_unlock_wake () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:371
#1  0x00007f9daa0258a4 in _L_unlock_722 () from /lib/x86_64-linux-gnu/libpthread.so.0
#2  0x00007f9daa0257f4 in __pthread_mutex_unlock_usercnt (decr=1, mutex=0x7f9d9c572ec0) at pthread_mutex_unlock.c:57
#3  __GI___pthread_mutex_unlock (mutex=0x7f9d9c572ec0) at pthread_mutex_unlock.c:310
#4  0x00007f9d9c30421a in ?? () from /usr/lib/nvidia-331/libGL.so.1
#5  0x00007f9d9c3062ab in ?? () from /usr/lib/nvidia-331/libGL.so.1
#6  0x00007f9d9af0ee80 in ?? () from /usr/lib/nvidia-331/tls/libnvidia-tls.so.331.38
#7  0x00007f9da9980c20 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#8  0x00007f9da993fb14 in g_main_context_check () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#9  0x00007f9da993ff7b in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#10 0x00007f9da99400ec in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#11 0x00007f9dadc7b7be in QEventDispatcherGlib::processEvents (this=0x7f9d58003020, flags=...) at kernel/qeventdispatcher_glib.cpp:436
#12 0x00007f9dadc4d0af in QEventLoop::processEvents (this=this@entry=0x7f9d86ba2de0, flags=...) at kernel/qeventloop.cpp:149
#13 0x00007f9dadc4d3a5 in QEventLoop::exec (this=this@entry=0x7f9d86ba2de0, flags=...) at kernel/qeventloop.cpp:204
#14 0x00007f9dadb49c5f in QThread::exec (this=this@entry=0x14ec9a0) at thread/qthread.cpp:537
#15 0x00007f9dadc2e823 in QInotifyFileSystemWatcherEngine::run (this=0x14ec9a0) at io/qfilesystemwatcher_inotify.cpp:265
#16 0x00007f9dadb4c32f in QThreadPrivate::start (arg=0x14ec9a0) at thread/qthread_unix.cpp:349
#17 0x00007f9daa022182 in start_thread (arg=0x7f9d86ba3700) at pthread_create.c:312
#18 0x00007f9dac84f30d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 1 (Thread 0x7f9daefd87c0 (LWP 2513)):
[KCrash Handler]
#6  KScreen::Output::setPrimary (this=0x0, primary=primary@entry=true) at /build/buildd/libkscreen-1.0.2/src/output.cpp:378
#7  0x00007f9d8b9b81c0 in Generator::displaySwitch (this=0x132ce20, iteration=iteration@entry=1) at /build/buildd/kscreen-1.0.2.1/kded/generator.cpp:147
#8  0x00007f9d8b9b061f in KScreenDaemon::applyGenericConfig (this=<optimized out>) at /build/buildd/kscreen-1.0.2.1/kded/daemon.cpp:161
#9  0x00007f9dadc6287a in QMetaObject::activate (sender=0x134c370, m=<optimized out>, local_signal_index=<optimized out>, argv=0x0) at kernel/qobject.cpp:3539
#10 0x00007f9dadc66a31 in QObject::event (this=0x134c370, e=<optimized out>) at kernel/qobject.cpp:1156
#11 0x00007f9dacfe7e2c in QApplicationPrivate::notify_helper (this=this@entry=0x11b8e70, receiver=receiver@entry=0x134c370, e=e@entry=0x7fffdce6b220) at kernel/qapplication.cpp:4567
#12 0x00007f9dacfee4a0 in QApplication::notify (this=this@entry=0x7fffdce6b5c0, receiver=receiver@entry=0x134c370, e=e@entry=0x7fffdce6b220) at kernel/qapplication.cpp:4353
#13 0x00007f9dae9cdbaa in KApplication::notify (this=0x7fffdce6b5c0, receiver=0x134c370, event=0x7fffdce6b220) at ../../kdeui/kernel/kapplication.cpp:311
#14 0x00007f9dadc4e4dd in QCoreApplication::notifyInternal (this=0x7fffdce6b5c0, receiver=0x134c370, event=0x7fffdce6b220) at kernel/qcoreapplication.cpp:953
#15 0x00007f9dadc7e323 in sendEvent (event=<optimized out>, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#16 QTimerInfoList::activateTimers (this=0x11ba460) at kernel/qeventdispatcher_unix.cpp:621
#17 0x00007f9dadc7b629 in timerSourceDispatch (source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:193
#18 idleTimerSourceDispatch (source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:240
#19 0x00007f9da993fe04 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#20 0x00007f9da9940048 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#21 0x00007f9da99400ec in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#22 0x00007f9dadc7b7a1 in QEventDispatcherGlib::processEvents (this=0xf6c6d0, flags=...) at kernel/qeventdispatcher_glib.cpp:434
#23 0x00007f9dad089bb6 in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#24 0x00007f9dadc4d0af in QEventLoop::processEvents (this=this@entry=0x7fffdce6b490, flags=...) at kernel/qeventloop.cpp:149
#25 0x00007f9dadc4d3a5 in QEventLoop::exec (this=this@entry=0x7fffdce6b490, flags=...) at kernel/qeventloop.cpp:204
#26 0x00007f9dadc52b79 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1225
#27 0x00007f9dacfe637c in QApplication::exec () at kernel/qapplication.cpp:3828
#28 0x00007f9d96aa4d1b in kdemain (argc=1, argv=0x119a100) at ../../kded/kded.cpp:940
#29 0x00000000004083ee in launch (argc=argc@entry=1, _name=_name@entry=0x40afc5 "kded4", args=args@entry=0x0, cwd=cwd@entry=0x0, envc=envc@entry=0, envs=<optimized out>, envs@entry=0x0, reset_env=reset_env@entry=false, tty=tty@entry=0x0, avoid_loops=avoid_loops@entry=false, startup_id_str=startup_id_str@entry=0x40aead "0") at ../../kinit/kinit.cpp:738
#30 0x00000000004059a3 in main (argc=4, argv=<optimized out>, envp=0x7fffdce6bd20) at ../../kinit/kinit.cpp:1853

Reported using DrKonqi
Comment 1 Christoph Feck 2014-11-19 20:59:01 UTC
*** Bug 341102 has been marked as a duplicate of this bug. ***
Comment 2 Daniel Vrátil 2015-03-06 15:18:54 UTC
commit 9a4f36f6973d6f9d712b6b3b1ff30f868d9910b9
Author: Dan Vrátil <dvratil@redhat.com>
Date:   Fri Mar 6 14:30:43 2015 +0100

    KDED: Make Generator maximally fool-proof
    
    This change adds lots of checks (and asserts for devs) on validity of
    the configs, outputs and modes and makes sure that we never try to
    dereference a null pointer from outputs or modes.
    
    Also renames some variables to make the code cleaner and easier to
    understand.