Bug 201537 - Solid::Backends::Hal::Processor::instructionSets() causes crashes in ksmserver and kinfocenter->processor information
Summary: Solid::Backends::Hal::Processor::instructionSets() causes crashes in ksmserve...
Status: RESOLVED FIXED
Alias: None
Product: solid
Classification: Frameworks and Libraries
Component: general (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: Kevin Ottens
URL:
Keywords:
: 201755 201954 (view as bug list)
Depends on:
Blocks:
 
Reported: 2009-07-26 11:39 UTC by Tadeas Moravec
Modified: 2009-08-04 04:58 UTC (History)
5 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
Patch to fix the crash (630 bytes, patch)
2009-07-26 21:30 UTC, George Kiagiadakis
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Tadeas Moravec 2009-07-26 11:39:28 UTC
Version:            (using KDE 4.2.98)
Compiler:          gcc (Debian 4.3.3-14) 4.3.3 
OS:                Linux
Installed from:    Compiled From Sources

Clicking Leave button on panel causes ksmserver to crash. Everything goes black and only The KDE Crash Handler pops up (without decoration) with information that KDE Session Manager crashed. The same happens if I press Restart or Shutdown in Kickoff.
The crash is caused in function Solid::Backends::Hal::Processor::instructionSets(), according to the backtrace.
On next start of KDE, it doesn't remember the session - things like widgets position, opened application, wallpaper etc.


If I open Kinfocenter and select Processor Information, it crashes as well with error in the same function.


ksmserver crash backtrace:

garion@Satellite:~$ cat ksmserver-20090726.kcrash
Application: The KDE Session Manager (kdeinit4), signal: Segmentation fault
[KCrash Handler]                                                           
#6  0xb62c30bf in Solid::Backends::Hal::Processor::instructionSets() const () from /opt/kde4/lib/libsolid.so.4                                                                                    
#7  0xb628750e in Solid::Processor::instructionSets() const () from /opt/kde4/lib/libsolid.so.4  
#8  0xb4a1ce9d in BlendingThread::BlendingThread(QObject*) () from /opt/kde4/lib/libkdeinit4_ksmserver.so                                                                                         
#9  0xb4a1d08d in FadeEffect::FadeEffect(QWidget*, QPixmap*) () from /opt/kde4/lib/libkdeinit4_ksmserver.so                                                                                       
#10 0xb4a1baca in LogoutEffect::create(QWidget*, QPixmap*) () from /opt/kde4/lib/libkdeinit4_ksmserver.so                                                                                         
#11 0xb4a09dd9 in KSMShutdownFeedback::slotPaintEffect() () from /opt/kde4/lib/libkdeinit4_ksmserver.so                                                                                           
#12 0xb4a0a06b in KSMShutdownFeedback::qt_metacall(QMetaObject::Call, int, void**) () from /opt/kde4/lib/libkdeinit4_ksmserver.so                                                                 
#13 0xb7e1dad3 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQtCore.so.4                                                                                               
#14 0xb7e1e722 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4                                                                                
#15 0xb7e237e7 in ?? () from /usr/lib/libQtCore.so.4                                             
#16 0xb7e2390c in ?? () from /usr/lib/libQtCore.so.4                                             
#17 0xb7e18b6f in QObject::event(QEvent*) () from /usr/lib/libQtCore.so.4                        
#18 0xb688b7d4 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4                                                                                            
#19 0xb689393e in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4         
#20 0xb739a56d in KApplication::notify(QObject*, QEvent*) () from /opt/kde4/lib/libkdeui.so.5    
#21 0xb7e0896b in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4                                                                                             
#22 0xb7e37301 in ?? () from /usr/lib/libQtCore.so.4                                             
#23 0xb7e338a0 in ?? () from /usr/lib/libQtCore.so.4                                             
#24 0xb6409368 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0                      
#25 0xb640c8c3 in ?? () from /usr/lib/libglib-2.0.so.0                                           
#26 0xb640ca48 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0                     
#27 0xb7e337f8 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4                                                                      
#28 0xb692af85 in ?? () from /usr/lib/libQtGui.so.4                                              
#29 0xb7e06fba in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4                                                                                
#30 0xb7e07402 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4                                                                                         
#31 0xb6d70143 in QDialog::exec() () from /usr/lib/libQtGui.so.4                                 
#32 0xb4a0d6fd in KSMShutdownDlg::confirmShutdown(bool, bool, KWorkSpace::ShutdownType&, QString&) () from /opt/kde4/lib/libkdeinit4_ksmserver.so                                                 
#33 0xb4a17b0e in KSMServer::shutdown(KWorkSpace::ShutdownConfirm, KWorkSpace::ShutdownType, KWorkSpace::ShutdownMode) () from /opt/kde4/lib/libkdeinit4_ksmserver.so                             
#34 0xb4a1dec4 in KSMServerInterfaceAdaptor::qt_metacall(QMetaObject::Call, int, void**) () from /opt/kde4/lib/libkdeinit4_ksmserver.so                                                           
#35 0xb7179ba5 in ?? () from /usr/lib/libQtDBus.so.4                                             
#36 0xb717acf2 in ?? () from /usr/lib/libQtDBus.so.4                                             
#37 0xb717b214 in ?? () from /usr/lib/libQtDBus.so.4                                             
#38 0xb717b6fa in ?? () from /usr/lib/libQtDBus.so.4                                             
#39 0xb7e18db0 in QObject::event(QEvent*) () from /usr/lib/libQtCore.so.4                        
#40 0xb688b7d4 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4                                                                                            
#41 0xb689393e in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4         
#42 0xb739a56d in KApplication::notify(QObject*, QEvent*) () from /opt/kde4/lib/libkdeui.so.5    
#43 0xb7e0896b in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4                                                                                             
#44 0xb7e095ae in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQtCore.so.4                                                                          
#45 0xb7e0978d in QCoreApplication::sendPostedEvents(QObject*, int) () from /usr/lib/libQtCore.so.4
#46 0xb7e33baf in ?? () from /usr/lib/libQtCore.so.4
#47 0xb6409368 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#48 0xb640c8c3 in ?? () from /usr/lib/libglib-2.0.so.0
#49 0xb640ca48 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#50 0xb7e337f8 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#51 0xb692af85 in ?? () from /usr/lib/libQtGui.so.4
#52 0xb7e06fba in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#53 0xb7e07402 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#54 0xb7e09859 in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
#55 0xb688b657 in QApplication::exec() () from /usr/lib/libQtGui.so.4
#56 0xb4a01889 in kdemain () from /opt/kde4/lib/libkdeinit4_ksmserver.so
#57 0x0804e2ff in launch(int, char const*, char const*, char const*, int, char const*, bool, char const*, bool, char const*) ()
#58 0x0804ea85 in handle_launcher_request(int, char const*) ()
#59 0x0804ef8c in handle_requests(int) ()
#60 0x0804f71f in main ()


kinfocenter crash backtrace:

Application: KDE Info Center (kdeinit4), signal: Segmentation fault
[Current thread is 1 (Thread 0xb6035710 (LWP 29882))]

Thread 2 (Thread 0xb162cb90 (LWP 29883)):
#0  0xb8050424 in __kernel_vsyscall ()
#1  0xb7df0292 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/i686/cmov/libpthread.so.0
#2  0xb7e564dc in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4
#3  0xb7e4bcfe in ?? () from /usr/lib/libQtCore.so.4
#4  0xb7e55522 in ?? () from /usr/lib/libQtCore.so.4
#5  0xb7dec4b5 in start_thread () from /lib/i686/cmov/libpthread.so.0
#6  0xb66c8a4e in clone () from /lib/i686/cmov/libc.so.6

Thread 1 (Thread 0xb6035710 (LWP 29882)):
[KCrash Handler]
#6  0xb64010bf in Solid::Backends::Hal::Processor::instructionSets() const () from /opt/kde4/lib/libsolid.so.4
#7  0xb63c550e in Solid::Processor::instructionSets() const () from /opt/kde4/lib/libsolid.so.4
#8  0xaff32d9c in KCMSolidProc::rowSelected(int) () from /opt/kde4/lib/kde4/kcm_solidproc.so
#9  0xaff30a45 in KCMSolidProc::qt_metacall(QMetaObject::Call, int, void**) () from /opt/kde4/lib/kde4/kcm_solidproc.so
#10 0xb7f5bad3 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQtCore.so.4
#11 0xb7f5c722 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#12 0xb6f71e13 in QListWidget::currentRowChanged(int) () from /usr/lib/libQtGui.so.4
#13 0xb6f75be4 in ?? () from /usr/lib/libQtGui.so.4
#14 0xb6f77c68 in QListWidget::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libQtGui.so.4
#15 0xb7f5bad3 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQtCore.so.4
#16 0xb7f5c722 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#17 0xb6f603c9 in QItemSelectionModel::currentChanged(QModelIndex const&, QModelIndex const&) () from /usr/lib/libQtGui.so.4
#18 0xb6f6056d in QItemSelectionModel::setCurrentIndex(QModelIndex const&, QFlags<QItemSelectionModel::SelectionFlag>) () from /usr/lib/libQtGui.so.4
#19 0xb6f7557d in QListWidget::setCurrentRow(int) () from /usr/lib/libQtGui.so.4
#20 0xb6f76225 in QListWidget::setCurrentItem(QListWidgetItem*) () from /usr/lib/libQtGui.so.4
#21 0xaff31466 in KCMSolidProc::KCMSolidProc(QWidget*, QList<QVariant> const&) () from /opt/kde4/lib/kde4/kcm_solidproc.so
#22 0xaff3444f in QObject* KPluginFactory::createInstance<KCMSolidProc, QWidget>(QWidget*, QObject*, QList<QVariant> const&) () from /opt/kde4/lib/kde4/kcm_solidproc.so
#23 0xb7d91db5 in KPluginFactory::create(char const*, QWidget*, QObject*, QList<QVariant> const&, QString const&) () from /opt/kde4/lib/libkdecore.so.5
#24 0xb4b14bc7 in KCModuleLoader::loadModule(KCModuleInfo const&, KCModuleLoader::ErrorReporting, QWidget*, QStringList const&) () from /opt/kde4/lib/libkutils.so.4
#25 0xb4b5b61c in ConfigModule::module() () from /opt/kde4/lib/libkdeinit4_kinfocenter.so
#26 0xb4b55903 in DockContainer::initializeModule(ConfigModule*) () from /opt/kde4/lib/libkdeinit4_kinfocenter.so
#27 0xb4b56049 in DockContainer::dockModule(ConfigModule*) () from /opt/kde4/lib/libkdeinit4_kinfocenter.so
#28 0xb4b52628 in TopLevel::activateModule(ConfigModule*) () from /opt/kde4/lib/libkdeinit4_kinfocenter.so
#29 0xb4b53007 in TopLevel::qt_metacall(QMetaObject::Call, int, void**) () from /opt/kde4/lib/libkdeinit4_kinfocenter.so
#30 0xb7f5bad3 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQtCore.so.4
#31 0xb7f5c722 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#32 0xb4b53f83 in IndexWidget::moduleActivated(ConfigModule*) () from /opt/kde4/lib/libkdeinit4_kinfocenter.so
#33 0xb4b545d9 in IndexWidget::selectModule(ConfigModule*) () from /opt/kde4/lib/libkdeinit4_kinfocenter.so
#34 0xb4b54719 in IndexWidget::qt_metacall(QMetaObject::Call, int, void**) () from /opt/kde4/lib/libkdeinit4_kinfocenter.so
#35 0xb7f5bad3 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQtCore.so.4
#36 0xb7f5c722 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#37 0xb4b59393 in ModuleTreeView::moduleSelected(ConfigModule*) () from /opt/kde4/lib/libkdeinit4_kinfocenter.so
#38 0xb4b59df6 in ModuleTreeView::selectItem() () from /opt/kde4/lib/libkdeinit4_kinfocenter.so
#39 0xb4b5a21b in ModuleTreeView::qt_metacall(QMetaObject::Call, int, void**) () from /opt/kde4/lib/libkdeinit4_kinfocenter.so
#40 0xb7f5bad3 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQtCore.so.4
#41 0xb7f5c722 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#42 0xb6f71dc7 in QListWidget::itemSelectionChanged() () from /usr/lib/libQtGui.so.4
#43 0xb6f77d06 in QListWidget::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libQtGui.so.4
#44 0xb4b5a1ca in ModuleTreeView::qt_metacall(QMetaObject::Call, int, void**) () from /opt/kde4/lib/libkdeinit4_kinfocenter.so
#45 0xb7f5bad3 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/libQtCore.so.4
#46 0xb7f5c722 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#47 0xb6f60419 in QItemSelectionModel::selectionChanged(QItemSelection const&, QItemSelection const&) () from /usr/lib/libQtGui.so.4
#48 0xb6f64ca8 in QItemSelectionModel::emitSelectionChanged(QItemSelection const&, QItemSelection const&) () from /usr/lib/libQtGui.so.4
#49 0xb6f66e32 in QItemSelectionModel::select(QItemSelection const&, QFlags<QItemSelectionModel::SelectionFlag>) () from /usr/lib/libQtGui.so.4
#50 0xb6f311be in QListView::setSelection(QRect const&, QFlags<QItemSelectionModel::SelectionFlag>) () from /usr/lib/libQtGui.so.4
#51 0xb6f11d2f in QAbstractItemView::mousePressEvent(QMouseEvent*) () from /usr/lib/libQtGui.so.4
#52 0xb6a1f83e in QWidget::event(QEvent*) () from /usr/lib/libQtGui.so.4
#53 0xb6dc5f03 in QFrame::event(QEvent*) () from /usr/lib/libQtGui.so.4
#54 0xb6e64f1f in QAbstractScrollArea::viewportEvent(QEvent*) () from /usr/lib/libQtGui.so.4
#55 0xb6f160d7 in QAbstractItemView::viewportEvent(QEvent*) () from /usr/lib/libQtGui.so.4
#56 0xb6e674f5 in ?? () from /usr/lib/libQtGui.so.4
#57 0xb7f45b9a in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#58 0xb69c97ac in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#59 0xb69d22a1 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#60 0xb74d856d in KApplication::notify(QObject*, QEvent*) () from /opt/kde4/lib/libkdeui.so.5
#61 0xb7f4696b in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#62 0xb69d132e in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&) () from /usr/lib/libQtGui.so.4
#63 0xb6a3fe55 in ?? () from /usr/lib/libQtGui.so.4
#64 0xb6a3f336 in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/libQtGui.so.4
#65 0xb6a69842 in ?? () from /usr/lib/libQtGui.so.4
#66 0xb6547368 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#67 0xb654a8c3 in ?? () from /usr/lib/libglib-2.0.so.0
#68 0xb654aa48 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#69 0xb7f717f8 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#70 0xb6a68f85 in ?? () from /usr/lib/libQtGui.so.4
#71 0xb7f44fba in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#72 0xb7f45402 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#73 0xb7f47859 in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
#74 0xb69c9657 in QApplication::exec() () from /usr/lib/libQtGui.so.4
#75 0xb4b500ab in kdemain () from /opt/kde4/lib/libkdeinit4_kinfocenter.so
#76 0x0804e2ff in launch(int, char const*, char const*, char const*, int, char const*, bool, char const*, bool, char const*) ()
#77 0x0804ea85 in handle_launcher_request(int, char const*) ()
#78 0x0804efaf in handle_requests(int) ()
#79 0x0804f71f in main ()

I apologize for low-quality backtraces, but I cannot get better ones.
Comment 1 George Kiagiadakis 2009-07-26 12:26:13 UTC
I can confirm this crash with trunk here. This seems to be a regression introduced in 1001979 (in trunk) and 1001980 (in 4.3 branch). What I did: I rebuild latest kdelibs from trunk, opened kinfocenter and selected the "processor information" module. It crashed. Then I reverted solid/backends/hal/halprocessor.cpp to its last revision before 1001979 (svn up -r773323 halprocessor.cpp) and rebuilt solid. Then I tested again with kinfocenter and it doesn't crash.

My cpu is "AMD Phenom(tm) 8450 Triple-Core Processor" and I am using the amd64 architecture.

This is the backtrace (although it doesn't seem to be very helpful...):

Application: KDE Info Center (kinfocenter), signal: Segmentation fault
[Current thread is 1 (Thread 0x7f27e4c59760 (LWP 7056))]

Thread 2 (Thread 0x7f27d33f9950 (LWP 7060)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:217
#1  0x00007f27e0e453c7 in QWaitConditionPrivate::wait (this=0x1b27f48, mutex=0x1b27f40, time=30000) at thread/qwaitcondition_unix.cpp:85
#2  QWaitCondition::wait (this=0x1b27f48, mutex=0x1b27f40, time=30000) at thread/qwaitcondition_unix.cpp:159
#3  0x00007f27e0e3b221 in QThreadPoolThread::run (this=0x1ade440) at concurrent/qthreadpool.cpp:140
#4  0x00007f27e0e443f5 in QThreadPrivate::start (arg=0x1ade440) at thread/qthread_unix.cpp:188
#5  0x00007f27e0bc3faa in start_thread (arg=<value optimized out>) at pthread_create.c:300
#6  0x00007f27e018b29d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f27e4c59760 (LWP 7056)):
[KCrash Handler]
#4  0x00007fff347e1c30 in ?? ()
#5  0x00007f27dd3103e9 in Solid::Backends::Hal::Processor::instructionSets (this=0x4) at /home/gkiagia/kde/src/KDE/kdelibs/solid/solid/backends/hal/halprocessor.cpp:63
#6  0x00007f27dd2e4fa0 in Solid::Processor::instructionSets (this=<value optimized out>) at /home/gkiagia/kde/src/KDE/kdelibs/solid/solid/processor.cpp:58
#7  0x00007f27d1d2807e in KCMSolidProc::rowSelected (this=0x1efd4f0, newRow=<value optimized out>) at /home/gkiagia/kde/src/KDE/kdebase/apps/kinfocenter/solidproc/solidproc.cpp:95
#8  0x00007f27d1d2933d in KCMSolidProc::qt_metacall (this=0x1efd4f0, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x7fff347e1d90)
    at /home/gkiagia/kde/build/KDE/kdebase/apps/kinfocenter/solidproc/solidproc.moc:68
#9  0x00007f27e0f3f602 in QMetaObject::activate (sender=0x1efde30, from_signal_index=<value optimized out>, to_signal_index=78, argv=0x7fff347e1920) at kernel/qobject.cpp:3112
#10 0x00007f27e193c231 in QListWidget::currentRowChanged (this=0x7fff347e1c30, _t1=0) at .moc/release-shared/moc_qlistwidget.cpp:241
#11 0x00007f27e193faf3 in QListWidgetPrivate::_q_emitCurrentItemChanged (this=0x7fff347e1dc0, current=<value optimized out>, previous=...) at itemviews/qlistwidget.cpp:1079
#12 0x00007f27e194240f in QListWidget::qt_metacall (this=0x1efde30, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff347e1f30) at .moc/release-shared/moc_qlistwidget.cpp:141
#13 0x00007f27e0f3f602 in QMetaObject::activate (sender=0x1efff90, from_signal_index=<value optimized out>, to_signal_index=5, argv=0x7fff347e1920) at kernel/qobject.cpp:3112
#14 0x00007f27e192a06a in QItemSelectionModel::currentChanged (this=0x7fff347e1c30, _t1=<value optimized out>, _t2=<value optimized out>) at .moc/release-shared/moc_qitemselectionmodel.cpp:153
#15 0x00007f27e192a1b4 in QItemSelectionModel::setCurrentIndex (this=0x1efff90, index=<value optimized out>, command=...) at itemviews/qitemselectionmodel.cpp:1123
#16 0x00007f27e193f560 in QListWidget::setCurrentRow (this=0x1efde30, row=0) at itemviews/qlistwidget.cpp:1437
#17 0x00007f27d1d28878 in KCMSolidProc (this=0x1efd4f0, parent=<value optimized out>) at /home/gkiagia/kde/src/KDE/kdebase/apps/kinfocenter/solidproc/solidproc.cpp:67
#18 0x00007f27d1d2ace3 in KPluginFactory::createInstance<KCMSolidProc, QWidget> (parentWidget=<value optimized out>, parent=<value optimized out>, args=...)
    at /home/gkiagia/kde/include/KDE/../kpluginfactory.h:461
#19 0x00007f27e2255849 in KPluginFactory::create (this=0x1e845a0, iface=0x7f27e2ac3660 "KCModule", parentWidget=0x0, parent=0x0, args=..., keyword=<value optimized out>)
    at /home/gkiagia/kde/src/KDE/kdelibs/kdecore/util/kpluginfactory.cpp:191
#20 0x00007f27e3a10f61 in KPluginFactory::create<KCModule> (this=0x1e845a0, parentWidget=0x0, parent=0x0, keyword=..., args=...) at /home/gkiagia/kde/src/KDE/kdelibs/kdecore/util/kpluginfactory.h:515
#21 0x00007f27e3a11041 in KService::createInstance<KCModule> (this=0x1937690, parentWidget=0x0, parent=0x0, args=..., error=0x7fff347e27b0)
    at /home/gkiagia/kde/src/KDE/kdelibs/kdecore/services/kservice.h:517
#22 0x00007f27e3a10552 in KCModuleLoader::loadModule (mod=..., report=KCModuleLoader::None, parent=0x0, args=...) at /home/gkiagia/kde/src/KDE/kdelibs/kutils/kcmoduleloader.cpp:89
#23 0x00007f27e497c8dd in ConfigModule::module (this=0x1947480) at /home/gkiagia/kde/src/KDE/kdebase/apps/kinfocenter/modules.cpp:64
#24 0x00007f27e4978263 in DockContainer::initializeModule (this=0x1a5a590, module=0x1947480) at /home/gkiagia/kde/src/KDE/kdebase/apps/kinfocenter/dockcontainer.cpp:113
#25 0x00007f27e49787e0 in DockContainer::dockModule (this=0x7fff347e1c30, module=0x4) at /home/gkiagia/kde/src/KDE/kdebase/apps/kinfocenter/dockcontainer.cpp:130
#26 0x00007f27e49751d2 in TopLevel::activateModule (this=0x18db200, configModule=0x1947480) at /home/gkiagia/kde/src/KDE/kdebase/apps/kinfocenter/toplevel.cpp:137
#27 0x00007f27e497558f in TopLevel::qt_metacall (this=0x18db200, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff347e2e00)
    at /home/gkiagia/kde/build/KDE/kdebase/apps/kinfocenter/toplevel.moc:72
#28 0x00007f27e0f3f602 in QMetaObject::activate (sender=0x1946be0, from_signal_index=<value optimized out>, to_signal_index=28, argv=0x7fff347e1920) at kernel/qobject.cpp:3112
#29 0x00007f27e4977de2 in IndexWidget::moduleActivated (this=0x7fff347e1c30, _t1=0x1947480) at /home/gkiagia/kde/build/KDE/kdebase/apps/kinfocenter/indexwidget.moc:96
#30 0x00007f27e4977eab in IndexWidget::selectModule (this=0x1946be0, module=0x1947480) at /home/gkiagia/kde/src/KDE/kdebase/apps/kinfocenter/indexwidget.cpp:79
#31 0x00007f27e4977ffa in IndexWidget::qt_metacall (this=0x1946be0, _c=QMetaObject::InvokeMetaMethod, _id=4, _a=0x7fff347e2f90)
    at /home/gkiagia/kde/build/KDE/kdebase/apps/kinfocenter/indexwidget.moc:78
#32 0x00007f27e0f3f602 in QMetaObject::activate (sender=0x1946990, from_signal_index=<value optimized out>, to_signal_index=92, argv=0x7fff347e1920) at kernel/qobject.cpp:3112
#33 0x00007f27e497b3ff in ModuleTreeView::moduleSelected (this=0x7fff347e1c30, _t1=0x1947480) at /home/gkiagia/kde/build/KDE/kdebase/apps/kinfocenter/moduletreeview.moc:86
#34 0x00007f27e497b538 in ModuleTreeView::selectItem (this=0x1946990) at /home/gkiagia/kde/src/KDE/kdebase/apps/kinfocenter/moduletreeview.cpp:64
#35 0x00007f27e497b638 in ModuleTreeView::qt_metacall (this=0x1946990, _c=QMetaObject::InvokeMetaMethod, _id=880679984, _a=0x7fff347e3120)
    at /home/gkiagia/kde/build/KDE/kdebase/apps/kinfocenter/moduletreeview.moc:74
#36 0x00007f27e0f3f602 in QMetaObject::activate (sender=0x1946990, from_signal_index=<value optimized out>, to_signal_index=79, argv=0x7fff347e1920) at kernel/qobject.cpp:3112
#37 0x00007f27e194248b in QListWidget::qt_metacall (this=0x1946990, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff347e32a0) at .moc/release-shared/moc_qlistwidget.cpp:131
#38 0x00007f27e497b5e5 in ModuleTreeView::qt_metacall (this=0x7fff347e1c30, _c=QMetaObject::QueryPropertyDesignable, _id=-583990256, _a=0x7fff347e1920)
    at /home/gkiagia/kde/build/KDE/kdebase/apps/kinfocenter/moduletreeview.moc:67
#39 0x00007f27e0f3f602 in QMetaObject::activate (sender=0x18fc960, from_signal_index=<value optimized out>, to_signal_index=4, argv=0x7fff347e1920) at kernel/qobject.cpp:3112
#40 0x00007f27e192a097 in QItemSelectionModel::selectionChanged (this=0x7fff347e1c30, _t1=<value optimized out>, _t2=<value optimized out>) at .moc/release-shared/moc_qitemselectionmodel.cpp:146
#41 0x00007f27e192ea62 in QItemSelectionModel::emitSelectionChanged (this=0x18fc960, newSelection=..., oldSelection=...) at itemviews/qitemselectionmodel.cpp:1548
#42 0x00007f27e1931b3a in QItemSelectionModel::select (this=0x18fc960, selection=<value optimized out>, command=<value optimized out>) at itemviews/qitemselectionmodel.cpp:1055
#43 0x00007f27e18fe1f2 in QListView::setSelection (this=0x0, rect=..., command=...) at itemviews/qlistview.cpp:1595
#44 0x00007f27e18de828 in QAbstractItemView::mousePressEvent (this=0x1946990, event=0x7fff347e4440) at itemviews/qabstractitemview.cpp:1517
#45 0x00007f27e1447cc6 in QWidget::event (this=0x1946990, event=0x7fff347e4440) at kernel/qwidget.cpp:7545
#46 0x00007f27e17b0c7b in QFrame::event (this=0x1946990, e=0x7fff347e4440) at widgets/qframe.cpp:559
#47 0x00007f27e18e371b in QAbstractItemView::viewportEvent (this=0x1946990, event=0x7fff347e4440) at itemviews/qabstractitemview.cpp:1476
#48 0x00007f27e0f297b8 in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=<value optimized out>, receiver=0x1947410, event=0x7fff347e4440) at kernel/qcoreapplication.cpp:726
#49 0x00007f27e13f777c in QApplicationPrivate::notify_helper (this=0x1842710, receiver=0x1947410, e=0x7fff347e4440) at kernel/qapplication.cpp:4052
#50 0x00007f27e13fff5a in QApplication::notify (this=<value optimized out>, receiver=0x1947410, e=0x7fff347e4440) at kernel/qapplication.cpp:3758
#51 0x00007f27e29703fe in KApplication::notify (this=0x7fff347e61f0, receiver=0x1947410, event=0x7fff347e4440) at /home/gkiagia/kde/src/KDE/kdelibs/kdeui/kernel/kapplication.cpp:302
#52 0x00007f27e0f2a49c in QCoreApplication::notifyInternal (this=0x7fff347e61f0, receiver=0x1947410, event=0x7fff347e4440) at kernel/qcoreapplication.cpp:610
#53 0x00007f27e13ff208 in QCoreApplication::sendSpontaneousEvent (receiver=0x1947410, event=0x7fff347e4440, alienWidget=0x1947410, nativeWidget=0x18db200, buttonDown=<value optimized out>, 
    lastMouseReceiver=...) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:216
#54 QApplicationPrivate::sendMouseEvent (receiver=0x1947410, event=0x7fff347e4440, alienWidget=0x1947410, nativeWidget=0x18db200, buttonDown=<value optimized out>, lastMouseReceiver=...)
    at kernel/qapplication.cpp:2924
#55 0x00007f27e1467d99 in QETWidget::translateMouseEvent (this=0x18db200, event=<value optimized out>) at kernel/qapplication_x11.cpp:4409
#56 0x00007f27e1466b4f in QApplication::x11ProcessEvent (this=0x7fff347e61f0, event=0x7fff347e5e10) at kernel/qapplication_x11.cpp:3550
#57 0x00007f27e148ee3c in x11EventSourceDispatch (s=0x1845f00, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#58 0x00007f27dbafb7aa in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#59 0x00007f27dbafedf8 in ?? () from /usr/lib/libglib-2.0.so.0
#60 0x00007f27dbafefac in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#61 0x00007f27e0f52b7f in QEventDispatcherGlib::processEvents (this=0x1817790, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:327
#62 0x00007f27e148e5ef in QGuiEventDispatcherGlib::processEvents (this=0x7fff347e1c30, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:202
#63 0x00007f27e0f28d62 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149
#64 0x00007f27e0f29134 in QEventLoop::exec (this=0x7fff347e6140, flags=...) at kernel/qeventloop.cpp:201
#65 0x00007f27e0f2b3a4 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:888
#66 0x00007f27e4973f9a in kdemain (argc=1, argv=0x7fff347e65a8) at /home/gkiagia/kde/src/KDE/kdebase/apps/kinfocenter/main.cpp:117
#67 0x00007f27e00db5a6 in __libc_start_main (main=0x400830 <main>, argc=1, ubp_av=0x7fff347e65a8, init=0x400860 <__libc_csu_init>, fini=<value optimized out>, rtld_fini=<value optimized out>, 
    stack_end=0x7fff347e6598) at libc-start.c:222
#68 0x0000000000400769 in _start () at ../sysdeps/x86_64/elf/start.S:113

------

Since this crash affects ksmserver on logout, I think the issue is pretty serious and this commit should be reverted from the 4.3 branch before the 4.3.0 release. I am adding the kde-4.3.0-blocker keyword just to be safe. If you think it's not a blocker, then remove the keyword, but I really think it is.

Thanks
Comment 2 Kevin Ottens 2009-07-26 19:30:12 UTC
SVN commit 1002644 by ervin:

Reverting 1001980 in the 4.3 branch as it apparently crashes for some
CPU (great...). No need to block the 4.3 release for that, it's likely
not worth it.

CCBUG: 201537


 M  +22 -47    halprocessor.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1002644
Comment 3 Kevin Ottens 2009-07-26 19:31:23 UTC
Reverted in the 4.3 branch to avoid blocking 4.3.0 release.
Comment 4 Kevin Ottens 2009-07-26 19:35:34 UTC
Now to see this one really fixed, we'll need someone with an AMD64 processor who is willing to investigate it. I don't have such hardware and on my Intel 64 bits processors it works just flawlessly.

Any taker?
Comment 5 Tadeas Moravec 2009-07-26 20:43:55 UTC
I (the original poster) also have AMD, Athlon64 x2. I'll rebuild and check it tomorrow.
Comment 6 Tadeas Moravec 2009-07-26 21:16:48 UTC
So I did it now and I confirm that it works as expected. Viewing Kinfocenter->Processor information as well as logging out. The session saves as expected.
My processor is AMD Athlon(tm) 64 X2 Dual-Core Processor TK-57

Thank you very much!
Comment 7 George Kiagiadakis 2009-07-26 21:30:34 UTC
Created attachment 35651 [details]
Patch to fix the crash

After spending ~2 hours on gdb, I found the issue. It seems to be a simple copy/paste mistake. Two instructions were repeated twice and one of them was a "push" instruction, which decreased the stack frame pointer (%rsp) by 8 bytes, without being followed by any "pop" instruction to restore it. So, when the function was about to return, $rsp was smaller by 8 bytes and "retq" would pick garbage as a return address from the stack and crash. I really wonder how it works on your CPU...

So, the attached patch solves the issue for me.
Comment 8 Pino Toscano 2009-07-28 12:35:23 UTC
*** Bug 201755 has been marked as a duplicate of this bug. ***
Comment 9 Tomas Vavra 2009-07-28 17:26:36 UTC
I logged bug 201755 which is duplicate of this one and I have Intel COre 2 duo.
Comment 10 Pino Toscano 2009-07-30 02:22:02 UTC
*** Bug 201954 has been marked as a duplicate of this bug. ***
Comment 11 Michael Jansen 2009-08-02 18:32:43 UTC
Still crashes for me on trunk. What is the state here. This is a really worse bug. Please revert asap if there is no immediate solution.

Architecture:          x86_64
CPU(s):                8
Thread(s) per core:    2
Core(s) per socket:    4
CPU socket(s):         1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 26
Stepping:              4
CPU MHz:               1600.000
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              8192K
Comment 12 Kevin Ottens 2009-08-03 19:07:15 UTC
SVN commit 1006390 by ervin:

Commit patch by George Kiagiadakis.

BUG: 201537


 M  +0 -2      halprocessor.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1006390
Comment 13 Eugenio Mondini 2009-08-04 04:42:53 UTC
I'm running trunk and tried the patch before it was commited, it solved the crash but now I can't logout until i do kquitapp ksmserver. It is on debian 32 bits on a AMD64 processor. I did not try the kinfocenter part before, sorry. So it could be a different cause.
Comment 14 Eugenio Mondini 2009-08-04 04:58:02 UTC
(In reply to comment #13)
> I'm running trunk and tried the patch before it was commited, it solved the
> crash but now I can't logout until i do kquitapp ksmserver. It is on debian 32
> bits on a AMD64 processor. I did not try the kinfocenter part before, sorry. So
> it could be a different cause.
Sorry for replying again but I tried reverting and had the kinfocenter crash too.