crash if I close Systemsettings while kcm-language is loading. Reproducible: Always Steps to Reproduce: 1.Open systemsettings 2.click select "Locale" 3.click Quit immediately while the module is loading Actual Results: Systemsettings close, but with a crash. (KDE Crash-handler shows up). Expected Results: Systemsettings should close without a crash Backtrace: Application: System Settings (systemsettings), signal: Segmentation fault Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". [Current thread is 1 (Thread 0x7f4bc049d7c0 (LWP 7142))] Thread 2 (Thread 0x7f4ba17c2700 (LWP 7143)): #0 0x00007f4bbd48ff7d in poll () at ../sysdeps/unix/syscall-template.S:81 #1 0x00007f4bb63f5694 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #2 0x00007f4bb63f579c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #3 0x00007f4bbdc15a76 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #4 0x00007f4bbdbe75ef in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #5 0x00007f4bbdbe78e5 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #6 0x00007f4bbdae688f in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #7 0x00007f4bbdbc8d13 in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #8 0x00007f4bbdae8f2f in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #9 0x00007f4bb68cdf6e in start_thread (arg=0x7f4ba17c2700) at pthread_create.c:311 #10 0x00007f4bbd49c9cd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:113 Thread 1 (Thread 0x7f4bc049d7c0 (LWP 7142)): [KCrash Handler] #5 0x00007f4ba0d9df9d in ?? () from /usr/lib/kde4/kcm_locale.so #6 0x00007f4ba0d9e2d9 in ?? () from /usr/lib/kde4/kcm_locale.so #7 0x00007f4bbdbff308 in QObjectPrivate::deleteChildren() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #8 0x00007f4bbe8a0b37 in QWidget::~QWidget() () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #9 0x00007f4bbfbb8f3b in KCModuleProxy::~KCModuleProxy() () from /usr/lib/libkcmutils.so.4 #10 0x00007f4bbfbb8fe9 in KCModuleProxy::~KCModuleProxy() () from /usr/lib/libkcmutils.so.4 #11 0x00007f4bbdbff308 in QObjectPrivate::deleteChildren() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #12 0x00007f4bbe8a0b37 in QWidget::~QWidget() () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #13 0x00007f4bbe8a0e49 in QWidget::~QWidget() () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #14 0x00007f4bbdbff308 in QObjectPrivate::deleteChildren() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #15 0x00007f4bbe8a0b37 in QWidget::~QWidget() () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #16 0x00007f4bbecc3979 in QScrollArea::~QScrollArea() () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #17 0x00007f4bbdbff308 in QObjectPrivate::deleteChildren() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #18 0x00007f4bbe8a0b37 in QWidget::~QWidget() () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #19 0x00007f4bbf58ae6e in ?? () from /usr/lib/libkdeui.so.5 #20 0x00007f4bbdbff308 in QObjectPrivate::deleteChildren() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #21 0x00007f4bbe8a0b37 in QWidget::~QWidget() () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #22 0x00007f4bbf58d8e9 in KPageWidget::~KPageWidget() () from /usr/lib/libkdeui.so.5 #23 0x00007f4bbdbff308 in QObjectPrivate::deleteChildren() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #24 0x00007f4bbe8a0b37 in QWidget::~QWidget() () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #25 0x00007f4bbf991ee9 in ModuleView::~ModuleView() () from /usr/lib/libsystemsettingsview.so.2 #26 0x00007f4bbdbff308 in QObjectPrivate::deleteChildren() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #27 0x00007f4bbe8a0b37 in QWidget::~QWidget() () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #28 0x00007f4bbec9c149 in QStackedWidget::~QStackedWidget() () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #29 0x00007f4bbdbff308 in QObjectPrivate::deleteChildren() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #30 0x00007f4bbe8a0b37 in QWidget::~QWidget() () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #31 0x00007f4bbec9c149 in QStackedWidget::~QStackedWidget() () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #32 0x00007f4bbdbff308 in QObjectPrivate::deleteChildren() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4 #33 0x00007f4bbe8a0b37 in QWidget::~QWidget() () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4 #34 0x00007f4bbf611fa5 in KMainWindow::~KMainWindow() () from /usr/lib/libkdeui.so.5 #35 0x000000000040bb1e in _start ()
Does not crash here. This is probably caused by distribution-specific patches for the language installation. Can you reproduce it on different distributions?
Christoph: As I was unsuccessful reproducing I have reported the bug downstream: https://bugs.launchpad.net/ubuntu/+source/kde-workspace/+bug/1270571. Is reproducible on Kubuntu with KDE 4.12, latest and full backtrace can be found in the linked bug report.
Crash caused by local event loop inside the KCMLocale constructor. The object is not fully created until the constructor returns. Running the event loop on the half-created object causes this crash.