Bug 226135 - [Testcase]SystemSettings crashed when discarding changes in kcm_device_automounter
Summary: [Testcase]SystemSettings crashed when discarding changes in kcm_device_automo...
Status: RESOLVED WORKSFORME
Alias: None
Product: systemsettings
Classification: Applications
Component: kcm_deviceautomounter (show other bugs)
Version: unspecified
Platform: Arch Linux Linux
: NOR crash
Target Milestone: ---
Assignee: Torrie Fischer
URL:
Keywords: investigated, reproducible, testcase, triaged
: 232978 238576 244999 255119 255151 258943 (view as bug list)
Depends on:
Blocks:
 
Reported: 2010-02-10 13:49 UTC by Gaurish
Modified: 2018-10-27 04:19 UTC (History)
10 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
Backtrace of TestCase (3.23 KB, text/plain)
2010-02-10 16:45 UTC, Gaurish
Details
New crash information added by DrKonqi (6.58 KB, text/plain)
2010-04-10 22:06 UTC, RussianNeuroMancer
Details
New crash information added by DrKonqi (4.70 KB, text/plain)
2010-05-10 04:32 UTC, Oleg Atamanenko
Details
New crash information added by DrKonqi (6.52 KB, text/plain)
2010-08-17 21:05 UTC, hory_n
Details
New crash information added by DrKonqi (4.36 KB, text/plain)
2010-11-17 10:48 UTC, tohyf
Details
New crash information added by DrKonqi (4.41 KB, text/plain)
2010-11-17 10:53 UTC, tohyf
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Gaurish 2010-02-10 13:49:25 UTC
Version:           0.1 (using KDE 4.4.0)
Compiler:          gcc 4.4.3-1 
OS:                Linux
Installed from:    Archlinux Packages

Q) What I was Doing when when it crashed?
Ans)
1) I opened SystemSettings --> Advanced Tab --> Removable Devices
2) Made a few changes and clicked on "Overview"
3) Then, Got a diolog box asking i want to save the changes made. I clicked on discard.

BOOM! CRASH!


Application: System Settings (systemsettings), signal: Segmentation fault
[KCrash Handler]
#5  0x00007fabb3fc3264 in DeviceModel::data(QModelIndex const&, int) const () from /usr/lib/kde4/kcm_device_automounter.so
#6  0x00007fabc4190bbf in QStyledItemDelegate::sizeHint(QStyleOptionViewItem const&, QModelIndex const&) const () from /usr/lib/libQtGui.so.4
#7  0x00007fabc4122c61 in QTreeView::sizeHintForColumn(int) const () from /usr/lib/libQtGui.so.4
#8  0x00007fabc411c11f in QTreeView::resizeColumnToContents(int) () from /usr/lib/libQtGui.so.4
#9  0x00007fabb3fbe6b1 in DeviceAutomounterKCM::loadLayout() () from /usr/lib/kde4/kcm_device_automounter.so
#10 0x00007fabc4f0443c in KCModuleProxy::load() () from /usr/lib/libkutils.so.4
#11 0x00007fabc4cd4d5d in ModuleView::resolveChanges(KCModuleProxy*) () from /usr/lib/libsystemsettingsview.so.1
#12 0x00007fabb42de3d5 in IconMode::backToOverview() () from /usr/lib/kde4/icon_mode.so
#13 0x00007fabb42deb4c in IconMode::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/kde4/icon_mode.so
#14 0x00007fabc3002b0f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#15 0x00007fabc3bb9372 in QAction::triggered(bool) () from /usr/lib/libQtGui.so.4
#16 0x00007fabc3bbb3eb in QAction::activate(QAction::ActionEvent) () from /usr/lib/libQtGui.so.4
#17 0x00007fabc3f72a1a in ?? () from /usr/lib/libQtGui.so.4
#18 0x00007fabc3f72ccc in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/libQtGui.so.4
#19 0x00007fabc403edba in QToolButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/libQtGui.so.4
#20 0x00007fabc3c15792 in QWidget::event(QEvent*) () from /usr/lib/libQtGui.so.4
#21 0x00007fabc3bbf47c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#22 0x00007fabc3bc624b in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#23 0x00007fabc48b1cd6 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#24 0x00007fabc2fefdcc in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#25 0x00007fabc3bc541e in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/libQtGui.so.4
#26 0x00007fabc3c4484b in ?? () from /usr/lib/libQtGui.so.4
#27 0x00007fabc3c4355a in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/libQtGui.so.4
#28 0x00007fabc3c6da12 in ?? () from /usr/lib/libQtGui.so.4
#29 0x00007fabbfea426e in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#30 0x00007fabbfea7c28 in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0
#31 0x00007fabbfea7d50 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#32 0x00007fabc3019243 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#33 0x00007fabc3c6d60e in ?? () from /usr/lib/libQtGui.so.4
#34 0x00007fabc2fee6f2 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#35 0x00007fabc2feeacc in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#36 0x00007fabc2ff280b in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
#37 0x00000000004105d9 in _start ()
Comment 1 Torrie Fischer 2010-02-10 16:26:13 UTC
Nice catch, but I can't quite seem to reproduce it here. Do you remember exactly what changes you made? Even better, think you could install the debug packages for archlinux and crash it again with a more detailed backtrace?
Comment 2 Gaurish 2010-02-10 16:45:42 UTC
Created attachment 40644 [details]
Backtrace of TestCase

Here is how to reproduce the crash

1) Open SystemSettings --> Advanced Tab --> Removable Devices
2) Goto 'Disconnected Devices'. Select any device from the Disconnected Devices tree and click on 'Forget Device'
3) Now click on 'Overview'
4) Then, you will get dialog box asking you want to save the changes made. 
5) click 'discard'

systemsetting should crash now with a SEQ Fault
Comment 3 Gaurish 2010-02-10 16:50:10 UTC
I am afraid debug packages for archlinux do not exist, AFAIK.
Comment 4 Jonathan Thomas 2010-02-11 00:09:21 UTC
Reproducible here with Kubuntu:

Application: System Settings (systemsettings), signal: Segmentation fault
[Current thread is 1 (Thread 0xb54cc980 (LWP 25897))]

Thread 2 (Thread 0xb1a39b70 (LWP 25898)):
#0  0xb59a8e16 in *__GI_clock_gettime (clock_id=-1248145420, tp=0xb1a38f68) at ../sysdeps/unix/clock_gettime.c:100
#1  0xb66474db in qt_gettime () at kernel/qcore_unix.cpp:109
#2  0xb664c605 in QTimerInfoList::updateCurrentTime (this=0x9f5c93c) at kernel/qeventdispatcher_unix.cpp:340
#3  0xb664c64a in QTimerInfoList::timerWait (this=0x9f5c93c, tm=...) at kernel/qeventdispatcher_unix.cpp:443
#4  0xb664a5f8 in timerSourcePrepareHelper (src=<value optimized out>, timeout=0xb1a3907c) at kernel/qeventdispatcher_glib.cpp:136
#5  0xb664a685 in timerSourcePrepare (source=0x0, timeout=0xb59acff4) at kernel/qeventdispatcher_glib.cpp:169
#6  0xb5b3347a in g_main_context_prepare () from /lib/libglib-2.0.so.0
#7  0xb5b33899 in ?? () from /lib/libglib-2.0.so.0
#8  0xb5b33e58 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#9  0xb664a3ef in QEventDispatcherGlib::processEvents (this=0x9f3d528, flags=...) at kernel/qeventdispatcher_glib.cpp:414
#10 0xb661ce29 in QEventLoop::processEvents (this=0xb1a39240, flags=) at kernel/qeventloop.cpp:149
#11 0xb661d27a in QEventLoop::exec (this=0xb1a39240, flags=...) at kernel/qeventloop.cpp:201
#12 0xb6519568 in QThread::exec (this=0x9ae89a0) at thread/qthread.cpp:487
#13 0xb65fcafb in QInotifyFileSystemWatcherEngine::run (this=0x9ae89a0) at io/qfilesystemwatcher_inotify.cpp:248
#14 0xb651c2ee in QThreadPrivate::start (arg=0x9ae89a0) at thread/qthread_unix.cpp:248
#15 0xb5c458de in start_thread (arg=0xb1a39b70) at pthread_create.c:300
#16 0xb633b95e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 1 (Thread 0xb54cc980 (LWP 25897)):
[KCrash Handler]
#6  QBasicAtomicInt::ref (this=0x9b3ac00, index=..., role=13) at /usr/include/qt4/QtCore/qatomic_i386.h:120
#7  QString (this=0x9b3ac00, index=..., role=13) at /usr/include/qt4/QtCore/qstring.h:724
#8  DeviceModel::data (this=0x9b3ac00, index=..., role=13) at ../../../solid-device-automounter/kcm/DeviceModel.cpp:226
#9  0xb719a2e3 in QModelIndex::data (this=0x9ef80a0, option=..., index=...) at ../../include/QtCore/../../src/corelib/kernel/qabstractitemmodel.h:398
#10 QStyledItemDelegate::sizeHint (this=0x9ef80a0, option=..., index=...) at itemviews/qstyleditemdelegate.cpp:440
#11 0xb7128e39 in QTreeView::sizeHintForColumn (this=0x9b295f0, column=0) at itemviews/qtreeview.cpp:2802
#12 0xb7120372 in QTreeView::resizeColumnToContents (this=0x9b295f0, column=0) at itemviews/qtreeview.cpp:2598
#13 0xb2cde00a in DeviceAutomounterKCM::loadLayout (this=0x9b29308) at ../../../solid-device-automounter/kcm/DeviceAutomounterKCM.cpp:217
#14 0xb78721f7 in KCModuleProxy::load (this=0x9b25168) at ../../kutils/kcmoduleproxy.cpp:269
#15 0xb7849290 in ModuleView::resolveChanges (this=0x9b3ada0, currentProxy=0x9b25168) at ../../../systemsettings/core/ModuleView.cpp:266
#16 0xb7849349 in ModuleView::resolveChanges (this=0x9b3ada0) at ../../../systemsettings/core/ModuleView.cpp:240
#17 0xb34c3ed8 in IconMode::backToOverview (this=0x9adf790) at ../../../systemsettings/icons/IconMode.cpp:151
#18 0xb34c4713 in IconMode::qt_metacall (this=0x9adf790, _c=QMetaObject::InvokeMetaMethod, _id=14, _a=0xbf8877c8) at ./IconMode.moc:82
#19 0xb6623a6a in QMetaObject::metacall (object=0x9adf790, cl=162769920, idx=14, argv=0xbf8877c8) at kernel/qmetaobject.cpp:237
#20 0xb66321f5 in QMetaObject::activate (sender=0x9af7ee0, m=0xb7466d58, local_signal_index=1, argv=0xbf8877c8) at kernel/qobject.cpp:3275
#21 0xb6b3aad9 in QAction::triggered (this=0x9af7ee0, _t1=false) at .moc/release-shared/moc_qaction.cpp:263
#22 0xb6b3cccc in QAction::activate (this=0x9af7ee0, event=QAction::Trigger) at kernel/qaction.cpp:1251
#23 0xb702e072 in QAction::trigger (this=0x9f2b478) at ../../include/QtGui/../../src/gui/kernel/qaction.h:218
#24 QToolButton::nextCheckState (this=0x9f2b478) at widgets/qtoolbutton.cpp:1147
#25 0xb6f4b243 in QAbstractButtonPrivate::click (this=0x9eef588) at widgets/qabstractbutton.cpp:528
#26 0xb6f4b53e in QAbstractButton::mouseReleaseEvent (this=0x9eef570, e=0xbf887f30) at widgets/qabstractbutton.cpp:1121
#27 0xb702e53c in QToolButton::mouseReleaseEvent (this=0x9eef570, e=0xbf887f30) at widgets/qtoolbutton.cpp:721
#28 0xb6b9f528 in QWidget::event (this=0x9eef570, event=0xbf887f30) at kernel/qwidget.cpp:7978
#29 0xb6f4a2de in QAbstractButton::event (this=0x9eef570, e=0x9f2b478) at widgets/qabstractbutton.cpp:1080
#30 0xb703106a in QToolButton::event (this=0x9eef570, event=0xbf887f30) at widgets/qtoolbutton.cpp:1163
#31 0xb6b412dc in QApplicationPrivate::notify_helper (this=0x9495aa0, receiver=0x9eef570, e=0xbf887f30) at kernel/qapplication.cpp:4298
#32 0xb6b488c7 in QApplication::notify (this=0xbf8887ec, receiver=0x9eef570, e=0xbf887f30) at kernel/qapplication.cpp:3863
#33 0xb766451a in KApplication::notify (this=0xbf8887ec, receiver=0x9eef570, event=0xbf887f30) at ../../kdeui/kernel/kapplication.cpp:302
#34 0xb661e80b in QCoreApplication::notifyInternal (this=0xbf8887ec, receiver=0x9eef570, event=0xbf887f30) at kernel/qcoreapplication.cpp:704
#35 0xb6b47822 in QCoreApplication::sendEvent (receiver=0x9eef570, event=0xbf887f30, alienWidget=0x9eef570, nativeWidget=0x9524368, buttonDown=0xb7482078, lastMouseReceiver=..., spontaneous=true)
    at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#36 QApplicationPrivate::sendMouseEvent (receiver=0x9eef570, event=0xbf887f30, alienWidget=0x9eef570, nativeWidget=0x9524368, buttonDown=0xb7482078, lastMouseReceiver=..., spontaneous=true)
    at kernel/qapplication.cpp:2963
#37 0xb6bd24b8 in QETWidget::translateMouseEvent (this=0x9524368, event=0xbf88844c) at kernel/qapplication_x11.cpp:4368
#38 0xb6bd19f1 in QApplication::x11ProcessEvent (this=0xbf8887ec, event=0xbf88844c) at kernel/qapplication_x11.cpp:3379
#39 0xb6c008ca in x11EventSourceDispatch (s=0x9498aa8, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#40 0xb5b2ff95 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#41 0xb5b33c98 in ?? () from /lib/libglib-2.0.so.0
#42 0xb5b33e58 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#43 0xb664a3b5 in QEventDispatcherGlib::processEvents (this=0x9473520, flags=...) at kernel/qeventdispatcher_glib.cpp:412
#44 0xb6c003f5 in QGuiEventDispatcherGlib::processEvents (this=0x9473520, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#45 0xb661ce29 in QEventLoop::processEvents (this=0xbf888744, flags=) at kernel/qeventloop.cpp:149
#46 0xb661d27a in QEventLoop::exec (this=0xbf888744, flags=...) at kernel/qeventloop.cpp:201
#47 0xb662146f in QCoreApplication::exec () at kernel/qcoreapplication.cpp:981
#48 0xb6b41377 in QApplication::exec () at kernel/qapplication.cpp:3577
#49 0x08056b1e in main (argc=5, argv=0xbf888934) at ../../../systemsettings/app/main.cpp:49
The current source language is "auto; currently c".
Comment 5 Gaurish 2010-03-01 07:40:44 UTC
More on this Bug,
here is the relavent code of forget device(http://websvn.kde.org/trunk/KDE/kdebase/runtime/solid-device-automounter/kcm/DeviceModel.cpp?view=markup)


30 	DeviceModel::forgetDevice(const QString &udi)
31 	{
32 	if (m_disconnected.contains(udi)) {
33 	beginRemoveRows(index(0, 0), m_disconnected.indexOf(udi), m_disconnected.indexOf(udi));
34 	m_disconnected.removeOne(udi);
35 	endRemoveRows();
36 	} else if (m_attached.contains(udi)) {
37 	beginRemoveRows(index(1, 0), m_attached.indexOf(udi), m_attached.indexOf(udi));
38 	m_attached.removeOne(udi);
39 	endRemoveRows();
40 	}
41 	m_loginForced.remove(udi);
42 	m_attachedForced.remove(udi);
43 	} 
As you can see above "Forget Device" button makes changes which cannot be reversed latter by Discard option of systemsettings(hence the reason behind the crash). It seems the original author didn't notice this error.
Comment 6 Torrie Fischer 2010-03-26 19:14:29 UTC
I believe this should be fixed by r1107759, where I retooled the model to pass the qt modeltest. I couldn't seem to reproduce it before I started working on it, so think you could check if it crashes again from the latest svn?
Comment 7 Gaurish 2010-03-26 21:31:04 UTC
Hi,
Can't test from latest SVN. I don't know how to compile from source.
Comment 8 Gaurish 2010-03-27 21:22:49 UTC
[Update]
This bug seems to be fixed. It does not Crash anymore.

Thanks for the fix Trever :D
Comment 9 Nicolas L. 2010-04-02 11:01:29 UTC
*** Bug 232978 has been marked as a duplicate of this bug. ***
Comment 10 RussianNeuroMancer 2010-04-10 22:06:48 UTC
Created attachment 42660 [details]
New crash information added by DrKonqi

Crash after I discard changes in automounter module of System Settings.
Comment 11 Oleg Atamanenko 2010-05-10 04:32:42 UTC
Created attachment 43421 [details]
New crash information added by DrKonqi

I selected several devices, clicked "forget" and systemsettings crashed.
Comment 12 Christoph Feck 2010-05-23 16:51:51 UTC
*** Bug 238576 has been marked as a duplicate of this bug. ***
Comment 13 hory_n 2010-08-17 21:05:07 UTC
Created attachment 50667 [details]
New crash information added by DrKonqi

When a change is made in the removable devices configuration, configuration fronthead crashes.
Comment 14 Christoph Feck 2010-10-30 17:52:24 UTC
*** Bug 244999 has been marked as a duplicate of this bug. ***
Comment 15 Christoph Feck 2010-10-30 17:53:53 UTC
*** Bug 255119 has been marked as a duplicate of this bug. ***
Comment 16 Christoph Feck 2010-10-30 17:54:49 UTC
*** Bug 255151 has been marked as a duplicate of this bug. ***
Comment 17 tohyf 2010-11-17 10:48:23 UTC
Created attachment 53483 [details]
New crash information added by DrKonqi

System settings crashed after I selected(hilighted) the devices and click "forget device" button.
Comment 18 tohyf 2010-11-17 10:53:00 UTC
Created attachment 53484 [details]
New crash information added by DrKonqi

System settings crashed after I selected(hilighted) the devices and click
"forget device" button. (SECOND TIME)
Comment 19 Dario Andres 2010-12-11 22:07:42 UTC
[Comment from a bug triager]
So far all the duplicates are from KDE SC 4.4.
- Can this bug be reproduced with KDE SC 4.5 or later ?

Other relevant crashes like bug 227883 and bug 230558 were also fixed for KDE 4.5

Changing state from NEEDSINFO/BACKTRACE to NEEDSINFO/WAITINGFORINFO as backtraces are already provided in the latest comments...

Thanks
Comment 20 Dario Andres 2010-12-11 22:08:04 UTC
*** Bug 258943 has been marked as a duplicate of this bug. ***
Comment 21 Andrew Crouthamel 2018-09-20 22:12:46 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least 15 days. Please provide the requested information as soon as possible and set the bug status as REPORTED. Due to regular bug tracker maintenance, if the bug is still in NEEDSINFO status with no change in 30 days, the bug will be closed as RESOLVED > WORKSFORME due to lack of needed information.

For more information about our bug triaging procedures please read the wiki located here: https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please set the bug status as REPORTED so that the KDE team knows that the bug is ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 22 Ben Cooksley 2018-09-21 09:34:14 UTC
Removing subscriber per abuse report we received.
Comment 23 Andrew Crouthamel 2018-10-27 04:19:31 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least 30 days. The bug is now closed as RESOLVED > WORKSFORME due to lack of needed information.

For more information about our bug triaging procedures please read the wiki located here: https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

Thank you for helping us make KDE software even better for everyone!