Bug 274221

Summary: Kaffeine crashed when resuming from suspend to RAM state
Product: [Applications] kaffeine Reporter: Jarno Suni <8>
Component: generalAssignee: Christoph Pfister <christophpfister>
Status: RESOLVED FIXED    
Severity: crash CC: jirislaby
Priority: NOR    
Version: 1.x   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: patch for the issue
a bit better version

Description Jarno Suni 2011-05-26 21:07:58 UTC
Application: kaffeine (1.1)
KDE Platform Version: 4.6.2 (4.6.2)
Qt Version: 4.7.2
Operating System: Linux 2.6.38-8-generic i686
Distribution: Ubuntu 11.04

-- Information about the crash:
- What I was doing when the application crashed:
resuming from suspend to RAM state
- Unusual behavior I noticed:
screensaver did not display properly, but I could resume by giving password anyway
- Custom settings of the application:
DVB-T tuner connected to USB and configured in Kaffeine, also lirc was in use, but not configured for Kaffeine.

-- Backtrace:
Application: Kaffeine (kaffeine), signal: Segmentation fault
[Current thread is 1 (Thread 0xb7843710 (LWP 3631))]

Thread 2 (Thread 0xb4e64b70 (LWP 3636)):
#0  0x00be6d41 in clock_gettime () from /lib/i386-linux-gnu/librt.so.1
#1  0x060cfdd8 in do_gettime () at tools/qelapsedtimer_unix.cpp:123
#2  qt_gettime () at tools/qelapsedtimer_unix.cpp:140
#3  0x0619c4f2 in updateCurrentTime (this=0x9dbceb4, tm=...) at kernel/qeventdispatcher_unix.cpp:339
#4  QTimerInfoList::timerWait (this=0x9dbceb4, tm=...) at kernel/qeventdispatcher_unix.cpp:442
#5  0x0619ad32 in timerSourcePrepareHelper (src=<value optimized out>, timeout=0xb4e640dc) at kernel/qeventdispatcher_glib.cpp:136
#6  0x0619adcd in timerSourcePrepare (source=0x9dbce80, timeout=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:169
#7  0x06632fd4 in g_main_context_prepare () from /lib/i386-linux-gnu/libglib-2.0.so.0
#8  0x06633e63 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#9  0x06634524 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#10 0x0619b577 in QEventDispatcherGlib::processEvents (this=0x9dbc1a8, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#11 0x0616d289 in QEventLoop::processEvents (this=0xb4e64290, flags=...) at kernel/qeventloop.cpp:149
#12 0x0616d522 in QEventLoop::exec (this=0xb4e64290, flags=...) at kernel/qeventloop.cpp:201
#13 0x060772a0 in QThread::exec (this=0x9dba538) at thread/qthread.cpp:492
#14 0x0614efdb in QInotifyFileSystemWatcherEngine::run (this=0x9dba538) at io/qfilesystemwatcher_inotify.cpp:248
#15 0x06079da2 in QThreadPrivate::start (arg=0x9dba538) at thread/qthread_unix.cpp:320
#16 0x00451e99 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#17 0x00ea873e in clone () from /lib/i386-linux-gnu/libc.so.6

Thread 1 (Thread 0xb7843710 (LWP 3631)):
[KCrash Handler]
#7  DvbManager::deviceRemoved (this=0x9d51d80, backendDevice=0x9f96a30) at /build/buildd/kaffeine-1.1/src/dvb/dvbmanager.cpp:455
#8  0x08061e31 in DvbManager::qt_metacall (this=0x9d51d80, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0xbfe449d8) at /build/buildd/kaffeine-1.1/obj-i686-linux-gnu/src/moc_dvbmanager.cpp:76
#9  0x061746ba in QMetaObject::metacall (object=0x9d51d80, cl=QMetaObject::InvokeMetaMethod, idx=5, argv=0xbfe449d8) at kernel/qmetaobject.cpp:237
#10 0x061844ff in QMetaObject::activate (sender=0x9f6a460, m=0x80dbc58, local_signal_index=1, argv=0xbfe449d8) at kernel/qobject.cpp:3287
#11 0x08064a45 in DvbDeviceManager::deviceRemoved (this=0x9f6a460, _t1=0x9f96a30) at /build/buildd/kaffeine-1.1/obj-i686-linux-gnu/src/moc_dvbdevice_linux.cpp:132
#12 0x08064b0a in DvbDeviceManager::qt_metacall (this=0x9f6a460, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0xbfe44af8) at /build/buildd/kaffeine-1.1/obj-i686-linux-gnu/src/moc_dvbdevice_linux.cpp:90
#13 0x061746ba in QMetaObject::metacall (object=0x9f6a460, cl=QMetaObject::InvokeMetaMethod, idx=8, argv=0xbfe44af8) at kernel/qmetaobject.cpp:237
#14 0x061844ff in QMetaObject::activate (sender=0x9d65630, m=0xdcec68, local_signal_index=1, argv=0xbfe44af8) at kernel/qobject.cpp:3287
#15 0x00d41dd3 in Solid::DeviceNotifier::deviceRemoved (this=0x9d65630, _t1=...) at ./devicenotifier.moc:94
#16 0x00d42ddc in Solid::DeviceManagerPrivate::_k_deviceRemoved (this=0x9d65630, udi=...) at ../../../solid/solid/devicemanager.cpp:207
#17 0x00d43585 in Solid::DeviceManagerPrivate::qt_metacall (this=0x9d65630, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0xbfe44c88) at ./devicemanager_p.moc:80
#18 0x061746ba in QMetaObject::metacall (object=0x9d65630, cl=QMetaObject::InvokeMetaMethod, idx=7, argv=0xbfe44c88) at kernel/qmetaobject.cpp:237
#19 0x061844ff in QMetaObject::activate (sender=0x9d61438, m=0xdcfd40, local_signal_index=1, argv=0xbfe44c88) at kernel/qobject.cpp:3287
#20 0x00d57223 in Solid::Ifaces::DeviceManager::deviceRemoved (this=0x9d61438, _t1=...) at ./ifaces/devicemanager.moc:94
#21 0x00d6f051 in Solid::Backends::UDev::UDevManager::slotDeviceRemoved (this=0x9d61438, device=...) at ../../../solid/solid/backends/udev/udevmanager.cpp:210
#22 0x00d3f0ba in Solid::Backends::UDev::UDevManager::qt_metacall (this=0x9d61438, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0xbfe44df8) at moc_udevmanager.cpp:78
#23 0x061746ba in QMetaObject::metacall (object=0x9d61438, cl=QMetaObject::InvokeMetaMethod, idx=7, argv=0xbfe44df8) at kernel/qmetaobject.cpp:237
#24 0x061844ff in QMetaObject::activate (sender=0x9d5dbc8, m=0xdd3ae0, local_signal_index=1, argv=0xbfe44df8) at kernel/qobject.cpp:3287
#25 0x00d78283 in UdevQt::Client::deviceRemoved (this=0x9d5dbc8, _t1=...) at ./udevqt.moc:139
#26 0x00d784ca in UdevQt::ClientPrivate::_uq_monitorReadyRead (this=0x9d48d90, fd=14) at ../../../solid/solid/backends/shared/udevqtclient.cpp:107
#27 0x00d78c72 in UdevQt::Client::qt_metacall (this=0x9d5dbc8, _c=QMetaObject::InvokeMetaMethod, _id=5, _a=0xbfe44f78) at ./udevqt.moc:93
#28 0x061746ba in QMetaObject::metacall (object=0x9d5dbc8, cl=QMetaObject::InvokeMetaMethod, idx=9, argv=0xbfe44f78) at kernel/qmetaobject.cpp:237
#29 0x061844ff in QMetaObject::activate (sender=0x9dba398, m=0x62a9550, local_signal_index=0, argv=0xbfe44f78) at kernel/qobject.cpp:3287
#30 0x061d1183 in QSocketNotifier::activated (this=0x9dba398, _t1=14) at .moc/release-shared/moc_qsocketnotifier.cpp:89
#31 0x06189fb7 in QSocketNotifier::event (this=0x9dba398, e=0xbfe453f4) at kernel/qsocketnotifier.cpp:317
#32 0x050a3d24 in QApplicationPrivate::notify_helper (this=0x9c74108, receiver=0x9dba398, e=0xbfe453f4) at kernel/qapplication.cpp:4462
#33 0x050a88ce in QApplication::notify (this=0xbfe4570c, receiver=0x9dba398, e=0xbfe453f4) at kernel/qapplication.cpp:3862
#34 0x006d83ca in KApplication::notify (this=0xbfe4570c, receiver=0x9dba398, event=0xbfe453f4) at ../../kdeui/kernel/kapplication.cpp:311
#35 0x0616e0bb in QCoreApplication::notifyInternal (this=0xbfe4570c, receiver=0x9dba398, event=0xbfe453f4) at kernel/qcoreapplication.cpp:731
#36 0x0619aec7 in sendEvent (source=0x9c76318) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#37 socketNotifierSourceDispatch (source=0x9c76318) at kernel/qeventdispatcher_glib.cpp:110
#38 0x06633aa8 in g_main_context_dispatch () from /lib/i386-linux-gnu/libglib-2.0.so.0
#39 0x06634270 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#40 0x06634524 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#41 0x0619b53c in QEventDispatcherGlib::processEvents (this=0x9c36aa8, flags=...) at kernel/qeventdispatcher_glib.cpp:422
#42 0x05157775 in QGuiEventDispatcherGlib::processEvents (this=0x9c36aa8, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#43 0x0616d289 in QEventLoop::processEvents (this=0xbfe45664, flags=...) at kernel/qeventloop.cpp:149
#44 0x0616d522 in QEventLoop::exec (this=0xbfe45664, flags=...) at kernel/qeventloop.cpp:201
#45 0x06171ecc in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1008
#46 0x050a18e7 in QApplication::exec () at kernel/qapplication.cpp:3736
#47 0x08079fe9 in main (argc=1, argv=0x3) at /build/buildd/kaffeine-1.1/src/main.cpp:93

Reported using DrKonqi
Comment 1 Jarno Suni 2011-05-26 21:58:48 UTC
also note that I was using Kaffeine in lubuntu desktop (LXDE, gnome-power-manager, xscreensaver), not in KDE.
Comment 2 Jiri Slaby 2012-02-27 21:58:49 UTC
Still an issue. With Kaffeine 1.2.2 on KDE 4.8.
Comment 3 Jiri Slaby 2012-02-28 11:40:56 UTC
Created attachment 69159 [details]
patch for the issue

This patch fixes the issue for me.
Comment 4 Jiri Slaby 2012-02-28 11:57:37 UTC
Created attachment 69160 [details]
a bit better version
Comment 5 Christoph Pfister 2012-03-02 16:17:15 UTC
Git commit ff70ac26a0e12a2dad3ce691cab9fc0fd9d30a9c by Christoph Pfister.
Committed on 02/03/2012 at 17:16.
Pushed by pfister into branch 'master'.

fix crash after resume

patch by Jiri Slaby, thanks!
(essentially adds a null pointer check)

M  +9    -7    src/dvb/dvbmanager.cpp

http://commits.kde.org/kaffeine/ff70ac26a0e12a2dad3ce691cab9fc0fd9d30a9c