Bug 152332 - occasional crash when manipulating services in the "services preferences order"
Summary: occasional crash when manipulating services in the "services preferences order"
Status: RESOLVED FIXED
Alias: None
Product: systemsettings
Classification: Applications
Component: kcm_filetypes (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: David Faure
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-11-15 02:51 UTC by Germain Garand
Modified: 2008-03-04 17:32 UTC (History)
0 users

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 Germain Garand 2007-11-15 02:51:06 UTC
Version:            (using KDE Devel)
Installed from:    Compiled sources

I get frequent crashes while manipulating services in the "services preferences order"

e.g: clicking "add", chosing a part in the list of services and applying works, but doing it twice in a row often crashes.

Backtrace:

0xb4bddf9c in KServiceListWidget::addService (this=0x81197f0) at qlistwidget.h:84
84              { return data(Qt::DisplayRole).toString(); }
(gdb) bt
#0  0xb4bddf9c in KServiceListWidget::addService (this=0x81197f0) at qlistwidget.h:84
#1  0xb4bde5c2 in KServiceListWidget::qt_metacall (this=0x81197f0, _c=QMetaObject::InvokeMetaMethod, _id=3,
    _a=0xbfffe030) at kservicelistwidget.moc:78
#2  0xb7369968 in QMetaObject::activate (sender=0x81560a8, from_signal_index=29, to_signal_index=30,
    argv=0xbfffe030) at kernel/qobject.cpp:3080
#3  0xb7369c2b in QMetaObject::activate (sender=0x81560a8, m=0xb70e8990, from_local_signal_index=2,
    to_local_signal_index=3, argv=0xbfffe030) at kernel/qobject.cpp:3162
#4  0xb7030da1 in QAbstractButton::clicked (this=0x81560a8, _t1=false)
    at .moc/debug-shared/moc_qabstractbutton.cpp:180
#5  0xb6ddff95 in QAbstractButtonPrivate::emitClicked (this=0x8155af8) at widgets/qabstractbutton.cpp:532
#6  0xb6ddff29 in QAbstractButtonPrivate::click (this=0x8155af8) at widgets/qabstractbutton.cpp:525
#7  0xb6de1485 in QAbstractButton::mouseReleaseEvent (this=0x81560a8, e=0xbfffe690)
    at widgets/qabstractbutton.cpp:1102
#8  0xb6b02868 in QWidget::event (this=0x81560a8, event=0xbfffe690) at kernel/qwidget.cpp:6129
#9  0xb6de12f0 in QAbstractButton::event (this=0x81560a8, e=0xbfffe690) at widgets/qabstractbutton.cpp:1064
#10 0xb6e83421 in QPushButton::event (this=0x81560a8, e=0xbfffe690) at widgets/qpushbutton.cpp:667
#11 0xb6ab7315 in QApplicationPrivate::notify_helper (this=0x8068df8, receiver=0x81560a8, e=0xbfffe690)
    at kernel/qapplication.cpp:3558
#12 0xb6ab6106 in QApplication::notify (this=0xbfffeeb0, receiver=0x81560a8, e=0xbfffe690)
    at kernel/qapplication.cpp:3257
#13 0xb7990624 in KApplication::notify (this=0xbfffeeb0, receiver=0x81560a8, event=0xbfffe690)
    at /home/germain/git/kdelibs/kdeui/kernel/kapplication.cpp:319
#14 0xb7354bd4 in QCoreApplication::notifyInternal (this=0xbfffeeb0, receiver=0x81560a8, event=0xbfffe690)
    at kernel/qcoreapplication.cpp:532
#15 0xb6ab858d in QCoreApplication::sendSpontaneousEvent (receiver=0x81560a8, event=0xbfffe690)
    at qcoreapplication.h:205
#16 0xb6b18a13 in QETWidget::translateMouseEvent (this=0x81560a8, event=0xbfffe9a0)
    at kernel/qapplication_x11.cpp:3866
s (this=0x8068f38, flags={i = 20})


==10979==
==10979== Invalid read of size 4
==10979==    at 0x1F902F9C: KServiceListWidget::addService() (qlistwidget.h:84)
==10979==    by 0x1F9035C1: KServiceListWidget::qt_metacall(QMetaObject::Call, int, void**) (kservicelistwidget.moc:78)
==10979==    by 0x1C65C967: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3080)
==10979==    by 0x1C65CC2A: QMetaObject::activate(QObject*, QMetaObject const*, int, int, void**) (qobject.cpp:3162)
==10979==    by 0x1CFDADA0: QAbstractButton::clicked(bool) (moc_qabstractbutton.cpp:180)
==10979==    by 0x1CD89F94: QAbstractButtonPrivate::emitClicked() (qabstractbutton.cpp:532)
==10979==    by 0x1CD89F28: QAbstractButtonPrivate::click() (qabstractbutton.cpp:525)
==10979==    by 0x1CD8B484: QAbstractButton::mouseReleaseEvent(QMouseEvent*) (qabstractbutton.cpp:1102)
==10979==    by 0x1CAAC867: QWidget::event(QEvent*) (qwidget.cpp:6129)
==10979==    by 0x1CD8B2EF: QAbstractButton::event(QEvent*) (qabstractbutton.cpp:1064)
==10979==    by 0x1CE2D420: QPushButton::event(QEvent*) (qpushbutton.cpp:667)
==10979==    by 0x1CA61314: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:3558)
==10979==  Address 0x0 is not stack'd, malloc'd or (recently) free'd
==10979==
==10979== Process terminating with default action of signal 11 (SIGSEGV)
==10979==  Access not within mapped region at address 0x0
==10979==    at 0x1F902F9C: KServiceListWidget::addService() (qlistwidget.h:84)
==10979==    by 0x1F9035C1: KServiceListWidget::qt_metacall(QMetaObject::Call, int, void**) (kservicelistwidget.moc:78)
==10979==    by 0x1C65C967: QMetaObject::activate(QObject*, int, int, void**) (qobject.cpp:3080)
==10979==    by 0x1C65CC2A: QMetaObject::activate(QObject*, QMetaObject const*, int, int, void**) (qobject.cpp:3162)
==10979==    by 0x1CFDADA0: QAbstractButton::clicked(bool) (moc_qabstractbutton.cpp:180)
==10979==    by 0x1CD89F94: QAbstractButtonPrivate::emitClicked() (qabstractbutton.cpp:532)
==10979==    by 0x1CD89F28: QAbstractButtonPrivate::click() (qabstractbutton.cpp:525)
==10979==    by 0x1CD8B484: QAbstractButton::mouseReleaseEvent(QMouseEvent*) (qabstractbutton.cpp:1102)
==10979==    by 0x1CAAC867: QWidget::event(QEvent*) (qwidget.cpp:6129)
==10979==    by 0x1CD8B2EF: QAbstractButton::event(QEvent*) (qabstractbutton.cpp:1064)
==10979==    by 0x1CE2D420: QPushButton::event(QEvent*) (qpushbutton.cpp:667)
==10979==    by 0x1CA61314: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:3558)
==
Comment 1 David Faure 2008-03-04 17:32:02 UTC
I made a large number of fixes to this code, especially in trunk.
I think this crash cannot happen anymore (must have been when creating a new desktop file, and kbuildsycoca wasn't run properly because kded wasn't running -- r782150 in kdelibs). Ah, must backport.
Comment 2 David Faure 2008-03-04 17:32:20 UTC
SVN commit 782229 by dfaure:

Run kbuildsycoca4 ourselves when we can't ask kded to do it for us
BUG: 152332


 M  +11 -3     kbuildsycocaprogressdialog.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=782229