Bug 219384 - Random crash in NotificationWidgetPrivate::updateNotification
Summary: Random crash in NotificationWidgetPrivate::updateNotification
Status: RESOLVED FIXED
Alias: None
Product: plasma4
Classification: Plasma
Component: notifications (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: Rob Scheepmaker
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-12-20 07:04 UTC by Torrie Fischer
Modified: 2009-12-24 17:08 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
New crash information added by DrKonqi: --- I was starting up the machine from hibernation with Firefox starting. I also have about ten widgets running: picture frame, clock, performance montitor, application launcher, recycle bin, task manager, Deskto (3.82 KB, text/plain)
2009-12-24 17:08 UTC, Charles Germany
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Torrie Fischer 2009-12-20 07:04:00 UTC
Version:            (using Devel)
OS:                Linux
Installed from:    Compiled sources

I was sitting here, watching a movie, IMing a friend, when plasma-desktop crashed. I can't remember if recieving a new message triggered this or not, but there definitely were some old notifications in the list.

Poking around in the mess with gdb gets some interesting results:

(gdb) frame 7
#7  0x06bea4c4 in NotificationWidgetPrivate::updateNotification (this=<value optimized out>)
    at /usr/src/kde4/kdebase/workspace/plasma/generic/applets/systemtray/ui/notificationwidget.cpp:235
235         extenderItem->config().writeEntry("applicationName", notification->applicationName());
(gdb) print notification
Cannot access memory at address 0x4
(gdb) frame 8
#8  0x06beab00 in NotificationWidget::qt_metacall (this=<value optimized out>, _c=<value optimized out>,
    _id=<value optimized out>, _a=<value optimized out>)
    at /usr/src/kde4/build/kdebase/workspace/plasma/generic/applets/systemtray/notificationwidget.moc:75
75              case 0: d->updateNotification(); break;
(gdb) print d
Cannot access memory at address 0x18

Application: plasma-desktop (0.3)
KDE Platform Version: 4.3.85 (KDE 4.3.85 (KDE 4.4 Beta2))
Qt Version: 4.6.0
Operating System: Linux 2.6.31.6-166.fc12.i686.PAE i686
Distribution: "Fedora release 12 (Constantine)"

 -- Backtrace:
Application: Plasma Workspace (plasma-desktop), signal: Segmentation fault
[Current thread is 1 (Thread 0xb777c730 (LWP 1802))]

Thread 2 (Thread 0xaa44eb70 (LWP 1807)):
#0  0x00c2b424 in __kernel_vsyscall ()
#1  0x00466c45 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#2  0x070f0737 in wait (time=<value optimized out>, this=<value optimized out>) at /usr/src/kde4/qt-copy/src/corelib/thread/qwaitcondition_unix.cpp:87
#3  QWaitCondition::wait (time=<value optimized out>, this=<value optimized out>) at /usr/src/kde4/qt-copy/src/corelib/thread/qwaitcondition_unix.cpp:159
#4  0x003506e2 in QHostInfoAgent::run (this=<value optimized out>) at /usr/src/kde4/qt-copy/src/network/kernel/qhostinfo.cpp:252
#5  0x070ef763 in QThreadPrivate::start (arg=<value optimized out>) at /usr/src/kde4/qt-copy/src/corelib/thread/qthread_unix.cpp:244
#6  0x00462ab5 in start_thread () from /lib/libpthread.so.0
#7  0x0789583e in clone () from /lib/libc.so.6

Thread 1 (Thread 0xb777c730 (LWP 1802)):
[KCrash Handler]
#6  SystemTray::Notification::applicationName (this=0x0) at /usr/src/kde4/kdebase/workspace/plasma/generic/applets/systemtray/core/notification.cpp:84
#7  0x06bea4c4 in NotificationWidgetPrivate::updateNotification (this=<value optimized out>) at /usr/src/kde4/kdebase/workspace/plasma/generic/applets/systemtray/ui/notificationwidget.cpp:235
#8  0x06beab00 in NotificationWidget::qt_metacall (this=<value optimized out>, _c=<value optimized out>, _id=<value optimized out>, _a=<value optimized out>)
    at /usr/src/kde4/build/kdebase/workspace/plasma/generic/applets/systemtray/notificationwidget.moc:75
#9  0x071e299a in QMetaObject::metacall (object=<value optimized out>, cl=<value optimized out>, idx=<value optimized out>, argv=<value optimized out>)
    at /usr/src/kde4/qt-copy/src/corelib/kernel/qmetaobject.cpp:237
#10 0x071f1f87 in QMetaObject::activate (sender=<value optimized out>, m=<value optimized out>, local_signal_index=<value optimized out>, argv=<value optimized out>)
    at /usr/src/kde4/qt-copy/src/corelib/kernel/qobject.cpp:3291
#11 0x06bbb873 in SystemTray::Notification::changed (this=<value optimized out>, _t1=0x9847448) at /usr/src/kde4/build/kdebase/workspace/plasma/generic/applets/systemtray/notification.moc:107
#12 0x06bcb20a in SystemTray::DBusNotificationProtocol::dataUpdated (this=<value optimized out>, source=<value optimized out>, data=<value optimized out>)
    at /usr/src/kde4/kdebase/workspace/plasma/generic/applets/systemtray/protocols/notifications/dbusnotificationprotocol.cpp:123
#13 0x06bcb334 in SystemTray::DBusNotificationProtocol::qt_metacall (this=<value optimized out>, _c=<value optimized out>, _id=<value optimized out>, _a=<value optimized out>)
    at /usr/src/kde4/build/kdebase/workspace/plasma/generic/applets/systemtray/dbusnotificationprotocol.moc:86
#14 0x071e299a in QMetaObject::metacall (object=<value optimized out>, cl=<value optimized out>, idx=<value optimized out>, argv=<value optimized out>)
    at /usr/src/kde4/qt-copy/src/corelib/kernel/qmetaobject.cpp:237
#15 0x071f1f87 in QMetaObject::activate (sender=<value optimized out>, m=<value optimized out>, local_signal_index=<value optimized out>, argv=<value optimized out>)
    at /usr/src/kde4/qt-copy/src/corelib/kernel/qobject.cpp:3291
#16 0x007bce59 in Plasma::DataContainer::dataUpdated (this=<value optimized out>, _t1=<value optimized out>, _t2=<value optimized out>) at /usr/src/kde4/build/kdelibs/plasma/datacontainer.moc:101
#17 0x007bd0ef in Plasma::DataContainer::checkForUpdate (this=<value optimized out>) at /usr/src/kde4/kdelibs/plasma/datacontainer.cpp:167
#18 0x007c0bc1 in Plasma::DataEngine::timerEvent (this=<value optimized out>, event=<value optimized out>) at /usr/src/kde4/kdelibs/plasma/dataengine.cpp:389
#19 0x06db54bf in NotificationsEngine::timerEvent (this=<value optimized out>, event=<value optimized out>)
    at /usr/src/kde4/kdebase/workspace/plasma/generic/dataengines/notifications/notificationsengine.cpp:221
#20 0x071ed1b4 in QObject::event (this=<value optimized out>, e=<value optimized out>) at /usr/src/kde4/qt-copy/src/corelib/kernel/qobject.cpp:1224
#21 0x04cb92dc in QApplicationPrivate::notify_helper (this=<value optimized out>, receiver=<value optimized out>, e=<value optimized out>)
    at /usr/src/kde4/qt-copy/src/gui/kernel/qapplication.cpp:4242
#22 0x04cc2087 in QApplication::notify (this=<value optimized out>, receiver=<value optimized out>, e=<value optimized out>) at /usr/src/kde4/qt-copy/src/gui/kernel/qapplication.cpp:3661
#23 0x0136284b in KApplication::notify (this=<value optimized out>, receiver=<value optimized out>, event=<value optimized out>) at /usr/src/kde4/kdelibs/kdeui/kernel/kapplication.cpp:302
#24 0x071de088 in QCoreApplication::notifyInternal (this=<value optimized out>, receiver=<value optimized out>, event=<value optimized out>)
    at /usr/src/kde4/qt-copy/src/corelib/kernel/qcoreapplication.cpp:704
#25 0x07208c2e in sendEvent (event=<value optimized out>, receiver=<value optimized out>) at ../../include/QtCore/../../../../qt-copy/src/corelib/kernel/qcoreapplication.h:215
#26 QTimerInfoList::activateTimers (event=<value optimized out>, receiver=<value optimized out>) at /usr/src/kde4/qt-copy/src/corelib/kernel/qeventdispatcher_unix.cpp:603
#27 0x072056b7 in timerSourceDispatch (source=<value optimized out>) at /usr/src/kde4/qt-copy/src/corelib/kernel/qeventdispatcher_glib.cpp:184
#28 idleTimerSourceDispatch (source=<value optimized out>) at /usr/src/kde4/qt-copy/src/corelib/kernel/qeventdispatcher_glib.cpp:231
#29 0x08326128 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#30 0x08329a58 in ?? () from /lib/libglib-2.0.so.0
#31 0x08329b84 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#32 0x07205385 in QEventDispatcherGlib::processEvents (this=<value optimized out>, flags=<value optimized out>) at /usr/src/kde4/qt-copy/src/corelib/kernel/qeventdispatcher_glib.cpp:407
#33 0x04d63895 in QGuiEventDispatcherGlib::processEvents (this=<value optimized out>, flags=<value optimized out>) at /usr/src/kde4/qt-copy/src/gui/kernel/qguieventdispatcher_glib.cpp:202
#34 0x071dc8d9 in QEventLoop::processEvents (this=<value optimized out>, flags=<value optimized out>) at /usr/src/kde4/qt-copy/src/corelib/kernel/qeventloop.cpp:149
#35 0x071dcab2 in QEventLoop::exec (this=<value optimized out>, flags=<value optimized out>) at /usr/src/kde4/qt-copy/src/corelib/kernel/qeventloop.cpp:197
#36 0x071dead9 in QCoreApplication::exec () at /usr/src/kde4/qt-copy/src/corelib/kernel/qcoreapplication.cpp:981
#37 0x04cb9387 in QApplication::exec () at /usr/src/kde4/qt-copy/src/gui/kernel/qapplication.cpp:3570
#38 0x00170e60 in kdemain (argc=<value optimized out>, argv=<value optimized out>) at /usr/src/kde4/kdebase/workspace/plasma/desktop/shell/main.cpp:112
#39 0x0804877b in main (argc=<value optimized out>, argv=<value optimized out>) at /usr/src/kde4/build/kdebase/workspace/plasma/desktop/shell/plasma-desktop_dummy.cpp:3
Comment 1 Jure Repinc 2009-12-20 14:46:13 UTC
I got the same crash and the backtrace. For me it happened when a contact in Kopete came online, and a notification of this even was shown briefly and then it crashed.
Comment 2 Marco Martin 2009-12-20 17:48:53 UTC
SVN commit 1064330 by mart:

since notification can die, put it behind a QWeakPointer
BUG:219384


 M  +20 -18    notificationwidget.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1064330
Comment 3 Charles Germany 2009-12-24 17:08:05 UTC
Created attachment 39314 [details]
New crash information added by DrKonqi:
---
I was starting up the machine from hibernation with Firefox starting.  I also have about ten widgets running: picture frame,   clock, performance montitor, application launcher, recycle bin, task manager, Deskto