Bug 248976 - Clearing all notifications when subset displayed caused Plasma to crash [invalid QObject, Plasma::TabBar::setCurrentIndex]
Summary: Clearing all notifications when subset displayed caused Plasma to crash [inva...
Status: RESOLVED FIXED
Alias: None
Product: plasma4
Classification: Plasma
Component: general (show other bugs)
Version: unspecified
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords:
: 247501 (view as bug list)
Depends on:
Blocks:
 
Reported: 2010-08-25 11:47 UTC by Alex Ball
Modified: 2010-11-15 22:06 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alex Ball 2010-08-25 11:47:05 UTC
Application: plasma-desktop (0.3)
KDE Platform Version: 4.5.00 (KDE 4.5.0)
Qt Version: 4.7.0
Operating System: Linux 2.6.32-24-generic x86_64
Distribution: Ubuntu 10.04.1 LTS

-- Information about the crash:
- What I was doing when the application crashed:
I had accumulated a lot of notifications from three different applications.
1. Clicked on notifications icon (systray area) to view notifications
2. Clicked on each application button (at top of list) to show notifications from just that application
3. With the last application button still selected, clicked on 'X' at very top of list to clear all notifications
4. 'No new notifications' message (I think) superimposed over list, at which point Plasma crashed

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

Thread 2 (Thread 0x7f29a56f6710 (LWP 1589)):
#0  0x00007f29c654ff83 in *__GI___poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007f29bb1504a9 in ?? () from /lib/libglib-2.0.so.0
#2  0x00007f29bb1508fc in g_main_context_iteration () from /lib/libglib-2.0.so.0
#3  0x00007f29c3bd3bd6 in QEventDispatcherGlib::processEvents (this=0x18b6b20, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:414
#4  0x00007f29c3ba67b2 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#5  0x00007f29c3ba6b9c in QEventLoop::exec (this=0x7f29a56f5d90, flags=) at kernel/qeventloop.cpp:201
#6  0x00007f29c3ab223d in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:490
#7  0x00007f29c3b866d8 in QInotifyFileSystemWatcherEngine::run (this=0x1c28200) at io/qfilesystemwatcher_inotify.cpp:248
#8  0x00007f29c3ab51be in QThreadPrivate::start (arg=0x1c28200) at thread/qthread_unix.cpp:266
#9  0x00007f29c38239ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#10 0x00007f29c655c6fd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f29c6c48780 (LWP 1581)):
[KCrash Handler]
#6  QObject::d_func (obj=0x70000ac00ac0053) at ../../include/QtCore/../../src/corelib/kernel/qobject.h:125
#7  QObjectPrivate::get (obj=0x70000ac00ac0053) at ../../include/QtCore/private/../../../src/corelib/kernel/qobject_p.h:174
#8  QtSharedPointer::ExternalRefCountData::getAndRef (obj=0x70000ac00ac0053) at tools/qsharedpointer.cpp:1252
#9  0x00007f29c617d15c in QWeakPointer<QGraphicsWidget> (this=0x3e61200, index=2) at /usr/include/qt4/QtCore/qsharedpointer_impl.h:562
#10 operator=<QGraphicsWidget> (this=0x3e61200, index=2) at /usr/include/qt4/QtCore/qsharedpointer_impl.h:567
#11 Plasma::TabBar::setCurrentIndex (this=0x3e61200, index=2) at ../../plasma/widgets/tabbar.cpp:368
#12 0x00007f29c617e2ea in Plasma::TabBar::qt_metacall (this=0x3e61200, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff2a401370) at ./tabbar.moc:124
#13 0x00007f29c3bbf7a7 in QMetaObject::activate (sender=0x3e9d4c0, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7fff2a401370) at kernel/qobject.cpp:3280
#14 0x00007f29c317bbae in QTabBar::currentChanged (this=0x70000ac00ac0053, _t1=2) at .moc/release-shared/moc_qtabbar.cpp:201
#15 0x00007f29c3184af3 in QTabBar::removeTab (this=0x3e9d4c0, index=1) at widgets/qtabbar.cpp:943
#16 0x00007f29c617deb8 in Plasma::TabBar::removeTab (this=0x3e61200, index=1) at ../../plasma/widgets/tabbar.cpp:454
#17 0x00007f29a7a2c63e in NotificationScroller::removeNotification (this=0x3e9a540, notification=0x45f7d00) at ../../../../../plasma/generic/applets/notifications/ui/notificationscroller.cpp:131
#18 0x00007f29a7a121c4 in NotificationScroller::qt_metacall (this=0x3e9a540, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff2a4015f0) at moc_notificationscroller.cpp:80
#19 0x00007f29c3bbf7a7 in QMetaObject::activate (sender=0x45f7d00, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7fff2a401370) at kernel/qobject.cpp:3280
#20 0x00007f29a7a13cb2 in Notification::notificationDestroyed (this=0x70000ac00ac0053, _t1=0x45f7d00) at ./notification.moc:119
#21 0x00007f29a7a1465b in ~Notification (this=0x70000ac00ac0053, __in_chrg=<value optimized out>) at ../../../../../plasma/generic/applets/notifications/core/notification.cpp:69
#22 0x00007f29a7a19e2a in ~DBusNotification (this=0x45f7d00, __in_chrg=<value optimized out>) at ../../../../../plasma/generic/applets/notifications/protocols/notifications/dbusnotification.cpp:36
#23 0x00007f29a7a2b1e7 in qDeleteAll<QList<Notification*>::const_iterator> (this=0x3e9a540, __in_chrg=<value optimized out>) at /usr/include/qt4/QtCore/qalgorithms.h:322
#24 qDeleteAll<QList<Notification*> > (this=0x3e9a540, __in_chrg=<value optimized out>) at /usr/include/qt4/QtCore/qalgorithms.h:330
#25 ~NotificationScroller (this=0x3e9a540, __in_chrg=<value optimized out>) at ../../../../../plasma/generic/applets/notifications/ui/notificationscroller.cpp:68
#26 0x00007f29c60b5aa3 in ~ExtenderItemPrivate (this=0x401b6e0, __in_chrg=<value optimized out>) at ../../plasma/extenders/extenderitem.cpp:740
#27 0x00007f29c60b5b8d in ~ExtenderItem (this=0x3fa7f00, __in_chrg=<value optimized out>) at ../../plasma/extenders/extenderitem.cpp:212
#28 0x00007f29c3bb98a8 in QObject::event (this=0x3fa7f00, e=0x2) at kernel/qobject.cpp:1202
#29 0x00007f29c336c71b in QGraphicsWidget::event (this=0x3fa7f00, event=0x406caa0) at graphicsview/qgraphicswidget.cpp:1404
#30 0x00007f29c2cfbcdc in QApplicationPrivate::notify_helper (this=0x1300df0, receiver=0x3fa7f00, e=0x406caa0) at kernel/qapplication.cpp:4389
#31 0x00007f29c2d017cd in QApplication::notify (this=0x12f0440, receiver=0x3fa7f00, e=0x406caa0) at kernel/qapplication.cpp:4270
#32 0x00007f29c485deb6 in KApplication::notify (this=0x12f0440, receiver=0x3fa7f00, event=0x406caa0) at ../../kdeui/kernel/kapplication.cpp:310
#33 0x00007f29c3ba7a8c in QCoreApplication::notifyInternal (this=0x12f0440, receiver=0x3fa7f00, event=0x406caa0) at kernel/qcoreapplication.cpp:732
#34 0x00007f29c3baa9b2 in QCoreApplication::sendEvent (receiver=0x0, event_type=<value optimized out>, data=0x12d5090) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#35 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=<value optimized out>, data=0x12d5090) at kernel/qcoreapplication.cpp:1373
#36 0x00007f29c3bd4043 in QCoreApplication::sendPostedEvents (s=<value optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220
#37 postEventSourceDispatch (s=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:276
#38 0x00007f29bb14c8c2 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#39 0x00007f29bb150748 in ?? () from /lib/libglib-2.0.so.0
#40 0x00007f29bb1508fc in g_main_context_iteration () from /lib/libglib-2.0.so.0
#41 0x00007f29c3bd3b83 in QEventDispatcherGlib::processEvents (this=0x12d4790, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:412
#42 0x00007f29c2dad7ee in QGuiEventDispatcherGlib::processEvents (this=0x70000ac00ac0053, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#43 0x00007f29c3ba67b2 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#44 0x00007f29c3ba6b9c in QEventLoop::exec (this=0x7fff2a402080, flags=) at kernel/qeventloop.cpp:201
#45 0x00007f29c3baac4b in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1009
#46 0x00007f29c6835d06 in kdemain (argc=<value optimized out>, argv=<value optimized out>) at ../../../../plasma/desktop/shell/main.cpp:118
#47 0x00007f29c6494c4d in __libc_start_main (main=<value optimized out>, argc=<value optimized out>, ubp_av=<value optimized out>, init=<value optimized out>, fini=<value optimized out>, 
    rtld_fini=<value optimized out>, stack_end=0x7fff2a402448) at libc-start.c:226
#48 0x00000000004006c9 in _start ()

Possible duplicates by query: bug 247501.

Reported using DrKonqi
Comment 1 Aaron J. Seigo 2010-08-26 03:15:53 UTC
SVN commit 1168059 by aseigo:

make the checks consistent with the rest of the methods: check the count of d->pages, not the tabwidget proxy; use value() instead of [] as it is protected against OOB indexes
BUG:248976


 M  +6 -7      tabbar.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1168059
Comment 2 Aaron J. Seigo 2010-08-26 03:19:29 UTC
SVN commit 1168060 by aseigo:

make the checks consistent with the rest of the methods: check the count of d->pages, not the tabwidget proxy; use value() instead of [] as it is protected a
gainst OOB indexes
BUG:248976


 M  +6 -7      tabbar.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1168060
Comment 3 Dario Andres 2010-11-15 22:06:12 UTC
*** Bug 247501 has been marked as a duplicate of this bug. ***