Application: kded4 ($Id$) KDE Platform Version: 4.6.3 (4.6.3) (Compiled from sources) Qt Version: 4.7.3 Operating System: Linux 2.6.39-drm+ i686 Distribution (Platform): Gentoo Packages -- Information about the crash: - What I was doing when the application crashed: I've just started the system, wacomtablet was automatically started. -- Backtrace: Application: KDE démon (kdeinit4), signal: Segmentation fault [Current thread is 1 (Thread 0xb57fb710 (LWP 8126))] Thread 4 (Thread 0xab130b70 (LWP 8131)): #0 0xb7756424 in __kernel_vsyscall () #1 0xb5f50e46 in __poll (fds=0xb5fe4ff4, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87 #2 0xb59d444c in g_poll (fds=0x8e8d268, nfds=1, timeout=-1) at gpoll.c:132 #3 0xb59c8292 in g_main_context_poll (context=0x8ea3608, block=<value optimized out>, dispatch=1, self=0xaa800468) at gmain.c:3404 #4 g_main_context_iterate (context=0x8ea3608, block=<value optimized out>, dispatch=1, self=0xaa800468) at gmain.c:3086 #5 0xb59c8585 in g_main_context_iteration (context=0x8ea3608, may_block=1) at gmain.c:3154 #6 0xb6db0cf4 in QEventDispatcherGlib::processEvents (this=0x8e88cc0, flags=...) at kernel/qeventdispatcher_glib.cpp:424 #7 0xb6d7f4fa in QEventLoop::processEvents (this=0xab1302c0, flags=) at kernel/qeventloop.cpp:149 #8 0xb6d7f8f4 in QEventLoop::exec (this=0xab1302c0, flags=...) at kernel/qeventloop.cpp:201 #9 0xb6c75262 in QThread::exec (this=0x8e8d4d8) at thread/qthread.cpp:492 #10 0xab21cc18 in AgentListener::run (this=0x8e8d4d8) at /mnt/data/tmp/portage/net-wireless/bluedevil-1.1-r1/work/bluedevil-1.1/src/daemon/kded/agentlistener.cpp:40 #11 0xb6c7804b in QThreadPrivate::start (arg=0x8e8d4d8) at thread/qthread_unix.cpp:320 #12 0xb6bface2 in start_thread (arg=0xab130b70) at pthread_create.c:301 #13 0xb5f5b67e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:133 Thread 3 (Thread 0xaa7ffb70 (LWP 8136)): #0 0xb5a96276 in clock_gettime (clock_id=1, tp=0xaa7feff0) at ../sysdeps/unix/clock_gettime.c:100 #1 0xb6cd5f24 in do_gettime () at tools/qelapsedtimer_unix.cpp:123 #2 qt_gettime () at tools/qelapsedtimer_unix.cpp:140 #3 0xb6db293d in QTimerInfoList::updateCurrentTime (this=0x8eaeecc) at kernel/qeventdispatcher_unix.cpp:339 #4 0xb6db2c16 in QTimerInfoList::timerWait (this=0x8eaeecc, tm=...) at kernel/qeventdispatcher_unix.cpp:442 #5 0xb6db0eb0 in timerSourcePrepareHelper (src=<value optimized out>, timeout=0xaa7ff10c) at kernel/qeventdispatcher_glib.cpp:136 #6 0xb6db0f40 in timerSourcePrepare (source=0x0, timeout=0xb5a99ff4) at kernel/qeventdispatcher_glib.cpp:169 #7 0xb59c7be8 in g_main_context_prepare (context=0x8ebeb38, priority=0xaa7ff17c) at gmain.c:2761 #8 0xb59c7fec in g_main_context_iterate (context=0x8ebeb38, block=<value optimized out>, dispatch=1, self=0x8eaf250) at gmain.c:3071 #9 0xb59c8585 in g_main_context_iteration (context=0x8ebeb38, may_block=1) at gmain.c:3154 #10 0xb6db0cf4 in QEventDispatcherGlib::processEvents (this=0x8ebeab8, flags=...) at kernel/qeventdispatcher_glib.cpp:424 #11 0xb6d7f4fa in QEventLoop::processEvents (this=0xaa7ff2a0, flags=) at kernel/qeventloop.cpp:149 #12 0xb6d7f8f4 in QEventLoop::exec (this=0xaa7ff2a0, flags=...) at kernel/qeventloop.cpp:201 #13 0xb6c75262 in QThread::exec (this=0x8eaf198) at thread/qthread.cpp:492 #14 0xb6d5bc5e in QInotifyFileSystemWatcherEngine::run (this=0x8eaf198) at io/qfilesystemwatcher_inotify.cpp:248 #15 0xb6c7804b in QThreadPrivate::start (arg=0x8eaf198) at thread/qthread_unix.cpp:320 #16 0xb6bface2 in start_thread (arg=0xaa7ffb70) at pthread_create.c:301 #17 0xb5f5b67e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:133 Thread 2 (Thread 0xa962fb70 (LWP 8148)): #0 0xb7756424 in __kernel_vsyscall () #1 0xb5f50e46 in __poll (fds=0xb5fe4ff4, nfds=3, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87 #2 0xb59d444c in g_poll (fds=0x8e2ad38, nfds=3, timeout=-1) at gpoll.c:132 #3 0xb59c8292 in g_main_context_poll (context=0x8f2cf38, block=<value optimized out>, dispatch=1, self=0x8f2cfd8) at gmain.c:3404 #4 g_main_context_iterate (context=0x8f2cf38, block=<value optimized out>, dispatch=1, self=0x8f2cfd8) at gmain.c:3086 #5 0xb59c8853 in g_main_loop_run (loop=0x8e2ad28) at gmain.c:3299 #6 0xa96dc168 in gdbus_shared_thread_func (data=0x0) at gdbusprivate.c:276 #7 0xb59ec25e in g_thread_create_proxy (data=0x8f2cfd8) at gthread.c:1897 #8 0xb6bface2 in start_thread (arg=0xa962fb70) at pthread_create.c:301 #9 0xb5f5b67e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:133 Thread 1 (Thread 0xb57fb710 (LWP 8126)): [KCrash Handler] #7 Wacom::XDeviceEventNotifier::x11Event (this=0x8e94a78, event=0xbff0a340) at /mnt/data/tmp/portage/kde-misc/wacomtablet-1.3.1/work/wacomtablet-v1.3.1/src/kded/xdeviceeventnotifier.cpp:69 #8 0xb74e06af in publicx11Event (this=0xbff0a690, _event=0xbff0a340) at /mnt/data/tmp/portage/kde-base/kdelibs-4.6.3-r1/work/kdelibs-4.6.3/kdeui/kernel/kapplication.cpp:918 #9 KApplication::x11EventFilter (this=0xbff0a690, _event=0xbff0a340) at /mnt/data/tmp/portage/kde-base/kdelibs-4.6.3-r1/work/kdelibs-4.6.3/kdeui/kernel/kapplication.cpp:969 #10 0xb629a8b7 in qt_x11EventFilter (ev=0xbff0a340) at kernel/qapplication_x11.cpp:435 #11 0xb62abbbf in QApplication::x11ProcessEvent (this=0xbff0a690, event=0xbff0a340) at kernel/qapplication_x11.cpp:3299 #12 0xb62da224 in x11EventSourceDispatch (s=0x8d89d00, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146 #13 0xb59c443d in g_main_dispatch (context=0x8d89268) at gmain.c:2440 #14 g_main_context_dispatch (context=0x8d89268) at gmain.c:3013 #15 0xb59c83cb in g_main_context_iterate (context=0x8d89268, block=<value optimized out>, dispatch=1, self=0x8cdb280) at gmain.c:3091 #16 0xb59c8585 in g_main_context_iteration (context=0x8d89268, may_block=1) at gmain.c:3154 #17 0xb6db0cbc in QEventDispatcherGlib::processEvents (this=0x8d57648, flags=...) at kernel/qeventdispatcher_glib.cpp:422 #18 0xb62d9b41 in QGuiEventDispatcherGlib::processEvents (this=0x8d57648, flags=...) at kernel/qguieventdispatcher_glib.cpp:204 #19 0xb6d7f4fa in QEventLoop::processEvents (this=0xbff0a5f4, flags=) at kernel/qeventloop.cpp:149 #20 0xb6d7f8f4 in QEventLoop::exec (this=0xbff0a5f4, flags=...) at kernel/qeventloop.cpp:201 #21 0xb6d82238 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1008 #22 0xb6212a7f in QApplication::exec () at kernel/qapplication.cpp:3736 #23 0xb533f0cc in kdemain (argc=1, argv=0x8d28888) at /mnt/data/tmp/portage/kde-base/kdelibs-4.6.3-r1/work/kdelibs-4.6.3/kded/kded.cpp:925 #24 0x0804ecb9 in launch (argc=<value optimized out>, _name=<value optimized out>, args=<value optimized out>, cwd=0x0, envc=0, envs=0x0, reset_env=false, tty=0x0, avoid_loops=false, startup_id_str=0x8051fd7 "0") at /mnt/data/tmp/portage/kde-base/kdelibs-4.6.3-r1/work/kdelibs-4.6.3/kinit/kinit.cpp:734 #25 0x08050c0c in main (argc=2, argv=0xbff0ac04, envp=0xbff0ac10) at /mnt/data/tmp/portage/kde-base/kdelibs-4.6.3-r1/work/kdelibs-4.6.3/kinit/kinit.cpp:1849 Reported using DrKonqi
This belongs to wacomtablet application, version 1.3.1, but DrKonqi didn't offer me to change it even I know it is there. There is problem in handling XGenericEventCookie - accessing cookie->data without first calling XGetEventData. So the cookie->data is null and there is a segmentation fault as a result.
This happens when I change things in a hurry. Still wonder why this didn't chrash my Kubuntu system though. I have to find the reason why my tablet wasn't recognized since I changed to Kubuntu Natty than. Short Question, does the 1.3.0 work for you? The only Change inbetween them is the line that cause the seg fault.
(In reply to comment #2) > Short Question, does the 1.3.0 work for you? The only Change inbetween them is > the line that cause the seg fault. Short answer - yes. From the documentation (man page of XGetEventData) the cookie->data is null until you call XGetEventData. The data have to be freed with a call to XFreeEventData. The code in 1.3.1 doesn't call XGetEventData, but it calls XFreeEventData - this looks wrong. The question might be why the data pointer is usable when you access it on Kubuntu Natty without calling XGetEventData first (maybe somebody called it before you). I'm just guessing, I have actually no experience in this area.
Somehow the coockie data is retrieved somewhere else before my routine runs. Thats why XGetEventData retrusn false and does not detect a tablet anymore on my system and my "fix" didn't crash the system. Nonetheless, I call XGetEventData again and now check if the data pointer is valid. This should again work for all systems. Could you please get the latest version from git and check this. Don't want to release another crashy release into the wild
*** Bug 274346 has been marked as a duplicate of this bug. ***
*** Bug 274608 has been marked as a duplicate of this bug. ***
I will test it during this week, thanks. I've reviewed the patch and I think you should actually call XFreeEventData only in case the XGetEventData returned TRUE.
I've tested the current git master and it works for me. It looks fine now, thanks :-)
*** Bug 274935 has been marked as a duplicate of this bug. ***