Bug 355711

Summary: System Settings crashed during exit processing.
Product: [Applications] systemsettings Reporter: George R. Goffe <grgoffe>
Component: generalAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED FIXED    
Severity: crash CC: a.skembris, andy.gura.jd, arizoncarl1, arruor, artghio, billrclarity, bipinsadasivan97, cfeck, claudio.canevarolo, cytadela8, dj_dexter, drgrigorov, ftrompat, g111, gabriel.a.frank, i.newton, isc.oscar.balandran, jacob.becker, jcg.apollosoyuz, jjm, jwiels, kderb, keren_sky, lashkevi, LinuxCobra, mariana.marica, mbr, mielniczakkuba, mike.alfa.2007, Nikolay.Shustov, nit.abhi85, nuaanjzizy, opensuse.lietuviu.kalba, Patrick.Carabin, rafneq, raven, ricdefreitas, s.g.stewart1, simonandric5, sp.andrey, srle.markovic, toshiikiito, travneff, uzunov_d, VovanShu, webmaster, wulf.richartz, yousuckyoujackass
Priority: NOR Keywords: drkonqi
Version: 5.5.1   
Target Milestone: ---   
Platform: Fedora RPMs   
OS: Linux   
See Also: https://bugs.kde.org/show_bug.cgi?id=355275
Latest Commit: Version Fixed In:

Description George R. Goffe 2015-11-22 00:29:49 UTC
Application: systemsettings5 (5.4.3)

Qt Version: 5.5.1
Operating System: Linux 4.2.6-300.fc23.x86_64+debug x86_64
Distribution: "Fedora release 23 (Twenty Three)"

-- Information about the crash:
I had been editing system settings and selected quit... System Settings crashed at this point.

The crash can be reproduced sometimes.

-- Backtrace:
Application: System Settings (systemsettings5), signal: Segmentation fault
Using host libthread_db library "/usr/lib64/libthread_db.so.1".
[Current thread is 1 (Thread 0x7ff07173a8c0 (LWP 12133))]

Thread 3 (Thread 0x7ff05530f700 (LWP 12134)):
#0  0x00007ff06ba22fdd in poll () at /usr/lib64/libc.so.6
#1  0x00007ff06896b272 in _xcb_conn_wait () at /usr/lib64/libxcb.so.1
#2  0x00007ff06896cee7 in xcb_wait_for_event () at /usr/lib64/libxcb.so.1
#3  0x00007ff057cdbda9 in QXcbEventReader::run() () at /usr/lib64/libQt5XcbQpa.so.5
#4  0x00007ff06c62b3ce in QThreadPrivate::start(void*) () at /usr/lib64/libQt5Core.so.5
#5  0x00007ff06812660a in start_thread () at /usr/lib64/libpthread.so.0
#6  0x00007ff06ba2ea7d in clone () at /usr/lib64/libc.so.6

Thread 2 (Thread 0x7ff0414e7700 (LWP 3274)):
#0  0x00007ff067346719 in g_mutex_lock () at /usr/lib64/libglib-2.0.so.0
#1  0x00007ff067301d06 in g_main_context_dispatch () at /usr/lib64/libglib-2.0.so.0
#2  0x00007ff0673021d0 in g_main_context_iterate.isra () at /usr/lib64/libglib-2.0.so.0
#3  0x00007ff06730227c in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#4  0x00007ff06c862f0b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
#5  0x00007ff06c809f0a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
#6  0x00007ff06c626424 in QThread::exec() () at /usr/lib64/libQt5Core.so.5
#7  0x00007ff06adfdb45 in QQmlThreadPrivate::run() () at /usr/lib64/libQt5Qml.so.5
#8  0x00007ff06c62b3ce in QThreadPrivate::start(void*) () at /usr/lib64/libQt5Core.so.5
#9  0x00007ff06812660a in start_thread () at /usr/lib64/libpthread.so.0
#10 0x00007ff06ba2ea7d in clone () at /usr/lib64/libc.so.6

Thread 1 (Thread 0x7ff07173a8c0 (LWP 12133)):
[KCrash Handler]
#5  0x00005610890c5fb0 in  ()
#6  0x00007ff06c83f4f9 in QObject::disconnect(QObject const*, char const*, QObject const*, char const*) () at /usr/lib64/libQt5Core.so.5
#7  0x00007ff045d6c289 in KParts::PartManager::~PartManager() () at /usr/lib64/libKF5Parts.so.5
#8  0x00007ff045d6c549 in KParts::PartManager::~PartManager() () at /usr/lib64/libKF5Parts.so.5
#9  0x00007ff06c83985b in QObjectPrivate::deleteChildren() () at /usr/lib64/libQt5Core.so.5
#10 0x00007ff06c8430c0 in QObject::~QObject() () at /usr/lib64/libQt5Core.so.5
#11 0x00007ff0464c475b in KHTMLPart::~KHTMLPart() () at /usr/lib64/libKF5KHtml.so.5
#12 0x00007ff0464c4879 in KHTMLPart::~KHTMLPart() () at /usr/lib64/libKF5KHtml.so.5
#13 0x00007ff06c83c1d0 in QObject::event(QEvent*) () at /usr/lib64/libQt5Core.so.5
#14 0x00007ff06e59e41c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5
#15 0x00007ff06e5a38e6 in QApplication::notify(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5
#16 0x00007ff06c80c77b in QCoreApplication::notifyInternal(QObject*, QEvent*) () at /usr/lib64/libQt5Core.so.5
#17 0x00007ff06c80eb76 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib64/libQt5Core.so.5
#18 0x00007ff06c862ae3 in postEventSourceDispatch(_GSource*, int (*)(void*), void*) () at /usr/lib64/libQt5Core.so.5
#19 0x00007ff067301e3a in g_main_context_dispatch () at /usr/lib64/libglib-2.0.so.0
#20 0x00007ff0673021d0 in g_main_context_iterate.isra () at /usr/lib64/libglib-2.0.so.0
#21 0x00007ff06730227c in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0
#22 0x00007ff06c862eef in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
#23 0x00007ff06c809f0a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5
#24 0x00007ff06c811fec in QCoreApplication::exec() () at /usr/lib64/libQt5Core.so.5
#25 0x000056108715b72b in main ()

Reported using DrKonqi
Comment 1 Antonio Rojas 2015-12-01 09:10:33 UTC
I can reproduce this consistently after changing any setting and closing systemsettings. Backtrace with debug symbols:

Application: Preferencias del sistema (systemsettings5), signal: Segmentation fault
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f49c3b35800 (LWP 26678))]

Thread 4 (Thread 0x7f4992904700 (LWP 26710)):
#0  0x00007f49bf80e18d in poll () from /usr/lib/libc.so.6
#1  0x00007f49bb800fbc in ?? () from /usr/lib/libglib-2.0.so.0
#2  0x00007f49bb8010cc in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#3  0x00007f49bb801109 in ?? () from /usr/lib/libglib-2.0.so.0
#4  0x00007f49bb827715 in ?? () from /usr/lib/libglib-2.0.so.0
#5  0x00007f49bbd1e4a4 in start_thread () from /usr/lib/libpthread.so.0
#6  0x00007f49bf81713d in clone () from /usr/lib/libc.so.6

Thread 3 (Thread 0x7f4991aa4700 (LWP 26711)):
#0  0x00007f49bf80e18d in poll () from /usr/lib/libc.so.6
#1  0x00007f49bb800fbc in ?? () from /usr/lib/libglib-2.0.so.0
#2  0x00007f49bb801342 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#3  0x00007f49936ce236 in ?? () from /usr/lib/libgio-2.0.so.0
#4  0x00007f49bb827715 in ?? () from /usr/lib/libglib-2.0.so.0
#5  0x00007f49bbd1e4a4 in start_thread () from /usr/lib/libpthread.so.0
#6  0x00007f49bf81713d in clone () from /usr/lib/libc.so.6

Thread 2 (Thread 0x7f4985d2f700 (LWP 26733)):
#0  0x00007f49bf812cf9 in syscall () from /usr/lib/libc.so.6
#1  0x00007f49bb84587a in g_cond_wait_until () from /usr/lib/libglib-2.0.so.0
#2  0x00007f49bb7d5a69 in ?? () from /usr/lib/libglib-2.0.so.0
#3  0x00007f49bb7d608b in g_async_queue_timeout_pop () from /usr/lib/libglib-2.0.so.0
#4  0x00007f49bb82816a in ?? () from /usr/lib/libglib-2.0.so.0
#5  0x00007f49bb827715 in ?? () from /usr/lib/libglib-2.0.so.0
#6  0x00007f49bbd1e4a4 in start_thread () from /usr/lib/libpthread.so.0
#7  0x00007f49bf81713d in clone () from /usr/lib/libc.so.6

Thread 1 (Thread 0x7f49c3b35800 (LWP 26678)):
[KCrash Handler]
#5  0x0000000000000020 in ?? ()
#6  0x00007f49c01236f9 in QObject::disconnect(QObject const*, char const*, QObject const*, char const*) () from /usr/lib/libQt5Core.so.5
#7  0x00007f49a294b128 in KParts::PartManager::~PartManager (this=0xc4e3d0, __in_chrg=<optimized out>) at /home/antonio/Software/abs/extra/kparts/src/kparts-5.16.0/src/partmanager.cpp:136
#8  0x00007f49a294b2e9 in KParts::PartManager::~PartManager (this=0xc4e3d0, __in_chrg=<optimized out>) at /home/antonio/Software/abs/extra/kparts/src/kparts-5.16.0/src/partmanager.cpp:146
#9  0x00007f49c011d65b in QObjectPrivate::deleteChildren() () from /usr/lib/libQt5Core.so.5
#10 0x00007f49c01273e0 in QObject::~QObject() () from /usr/lib/libQt5Core.so.5
#11 0x00007f49a30a358b in KHTMLPart::~KHTMLPart (this=this@entry=0xbcba50, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at /home/antonio/Software/abs/extra/khtml/src/khtml-5.16.0/src/khtml_part.cpp:559
#12 0x00007f49a30a36a9 in KHTMLPart::~KHTMLPart (this=0xbcba50, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at /home/antonio/Software/abs/extra/khtml/src/khtml-5.16.0/src/khtml_part.cpp:607
#13 0x00007f49c0120010 in QObject::event(QEvent*) () from /usr/lib/libQt5Core.so.5
#14 0x00007f49c1c9b01c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#15 0x00007f49c1ca04f6 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#16 0x00007f49c00f09ab in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#17 0x00007f49c00f2da6 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQt5Core.so.5
#18 0x00007f49c0146f43 in ?? () from /usr/lib/libQt5Core.so.5
#19 0x00007f49bb800dc7 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#20 0x00007f49bb801020 in ?? () from /usr/lib/libglib-2.0.so.0
#21 0x00007f49bb8010cc in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#22 0x00007f49c014734f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#23 0x00007f49c00ee37a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#24 0x00007f49c00f633c in QCoreApplication::exec() () from /usr/lib/libQt5Core.so.5
#25 0x000000000040f39b in main ()
Comment 2 Christoph Feck 2015-12-03 19:55:43 UTC
*** Bug 355828 has been marked as a duplicate of this bug. ***
Comment 3 Christoph Feck 2015-12-03 19:56:09 UTC
*** Bug 355611 has been marked as a duplicate of this bug. ***
Comment 4 Christoph Feck 2015-12-08 01:13:35 UTC
*** Bug 356364 has been marked as a duplicate of this bug. ***
Comment 5 Christoph Feck 2015-12-13 13:49:31 UTC
*** Bug 356465 has been marked as a duplicate of this bug. ***
Comment 6 Christoph Feck 2015-12-13 13:50:27 UTC
*** Bug 356487 has been marked as a duplicate of this bug. ***
Comment 7 Jonathan Marten 2015-12-16 11:31:25 UTC
Note that the crash only happens in "Classic Tree View" mode.  What seems to be happening is this:

ClassicMode::initEvent() creates d->classicWidget, a QSplitter with no parent.

KParts::PartManager::PartManager() is called for that splitter, which calls addManagedTopLevelWidget() for it.  At this stage isTopLevel() for the splitter is true and so it is added to the d->m_managedTopLevelWidgets list.

SettingsBase::changePlugin() adds the splitter to the stackedWidget, which takes ownership of the splitter.

When systemsettings5 is closed, KParts::PartManager::removeManagedTopLevelWidget() is called by the destroyed() signal of the splitter.  However, by this point isTopLevel() for the splitter is false (because it has been reparented above) and so it is not removed from d->m_managedTopLevelWidgets.

KParts::PartManager::~PartManager() accesses the splitter, which has already been destroyed but still remains in d->m_managedTopLevelWidgets => crash.
Comment 8 Jonathan Marten 2015-12-16 13:40:26 UTC
https://git.reviewboard.kde.org/r/126385/
Comment 9 Artur Puzio 2015-12-25 17:28:46 UTC
bug 356771 suggests that the problem is still in version 5.5.1. In this version I'm also able to reproduce it.
Comment 10 Andrew 2015-12-25 19:50:32 UTC
*** Bug 356771 has been marked as a duplicate of this bug. ***
Comment 11 Jonathan Marten 2016-01-06 18:04:20 UTC
Git commit 5ac5dfb28014035e3704ae8bf8076001e5955ceb by Jonathan Marten.
Committed on 06/01/2016 at 17:59.
Pushed by marten into branch 'master'.

PartManager: stop tracking a widget even if it is no longer top level

Fixes an access-to-deleted-object crash if a widget is top level when it
is added but no longer top level when it is removed.  Seen when exiting
System Settings.

REVIEW:126385

M  +0    -4    src/partmanager.cpp

http://commits.kde.org/kparts/5ac5dfb28014035e3704ae8bf8076001e5955ceb
Comment 12 Christoph Feck 2016-01-24 13:21:28 UTC
*** Bug 356835 has been marked as a duplicate of this bug. ***
Comment 13 Christoph Feck 2016-01-24 13:21:56 UTC
*** Bug 357285 has been marked as a duplicate of this bug. ***
Comment 14 Christoph Feck 2016-01-24 13:22:20 UTC
*** Bug 357866 has been marked as a duplicate of this bug. ***
Comment 15 Christoph Feck 2016-01-24 13:22:49 UTC
*** Bug 357957 has been marked as a duplicate of this bug. ***
Comment 16 Christoph Feck 2016-01-24 13:23:21 UTC
*** Bug 358090 has been marked as a duplicate of this bug. ***
Comment 17 Christoph Feck 2016-01-24 13:23:46 UTC
*** Bug 358134 has been marked as a duplicate of this bug. ***
Comment 18 Christoph Feck 2016-01-24 13:24:10 UTC
*** Bug 358230 has been marked as a duplicate of this bug. ***
Comment 19 Christoph Feck 2016-01-24 13:24:35 UTC
*** Bug 358380 has been marked as a duplicate of this bug. ***
Comment 20 Christoph Feck 2016-02-02 04:05:53 UTC
*** Bug 358746 has been marked as a duplicate of this bug. ***
Comment 21 Christoph Feck 2016-02-02 04:06:12 UTC
*** Bug 358874 has been marked as a duplicate of this bug. ***
Comment 22 Christoph Feck 2016-02-08 02:01:23 UTC
*** Bug 359099 has been marked as a duplicate of this bug. ***
Comment 23 Christoph Feck 2016-02-12 13:19:53 UTC
*** Bug 359221 has been marked as a duplicate of this bug. ***
Comment 24 Christoph Feck 2016-02-22 22:37:26 UTC
*** Bug 359536 has been marked as a duplicate of this bug. ***
Comment 25 Christoph Feck 2016-02-22 22:37:50 UTC
*** Bug 359547 has been marked as a duplicate of this bug. ***
Comment 26 Christoph Feck 2016-02-22 22:38:13 UTC
*** Bug 359589 has been marked as a duplicate of this bug. ***
Comment 27 Christoph Feck 2016-02-22 22:38:51 UTC
*** Bug 359615 has been marked as a duplicate of this bug. ***
Comment 28 Christoph Feck 2016-04-22 10:25:10 UTC
*** Bug 362057 has been marked as a duplicate of this bug. ***
Comment 29 Christoph Feck 2016-04-25 01:27:28 UTC
*** Bug 362194 has been marked as a duplicate of this bug. ***
Comment 30 Christoph Feck 2016-04-25 18:23:58 UTC
*** Bug 362242 has been marked as a duplicate of this bug. ***
Comment 31 Christoph Feck 2016-04-25 18:24:16 UTC
*** Bug 362233 has been marked as a duplicate of this bug. ***
Comment 32 Christoph Feck 2016-04-25 18:27:32 UTC
This bug is fixed since KDE Frameworks version 5.19, but Ubuntu LTS 16.04 only ships 5.18 version. Please report this to the bug tracker of your distribution.
Comment 33 Christoph Feck 2016-05-02 01:47:37 UTC
*** Bug 362520 has been marked as a duplicate of this bug. ***
Comment 34 Christoph Feck 2016-05-02 01:47:55 UTC
*** Bug 362564 has been marked as a duplicate of this bug. ***
Comment 35 Christoph Feck 2016-05-20 19:04:16 UTC
*** Bug 363323 has been marked as a duplicate of this bug. ***
Comment 36 Christoph Feck 2016-05-29 10:08:58 UTC
*** Bug 363646 has been marked as a duplicate of this bug. ***
Comment 37 Christoph Feck 2016-06-12 12:40:22 UTC
*** Bug 364048 has been marked as a duplicate of this bug. ***
Comment 38 Christoph Feck 2016-06-26 04:09:01 UTC
*** Bug 364754 has been marked as a duplicate of this bug. ***
Comment 39 Christoph Feck 2016-08-08 03:26:34 UTC
*** Bug 366489 has been marked as a duplicate of this bug. ***
Comment 40 Christoph Feck 2016-08-14 11:09:11 UTC
*** Bug 366515 has been marked as a duplicate of this bug. ***
Comment 41 Christoph Feck 2016-08-29 17:44:08 UTC
*** Bug 367884 has been marked as a duplicate of this bug. ***
Comment 42 Christoph Feck 2016-09-04 13:09:42 UTC
*** Bug 368230 has been marked as a duplicate of this bug. ***
Comment 43 George R. Goffe 2016-09-06 05:01:16 UTC
Christopf,

When I notice that the problems I report no longer exist, should I post that "event" on the bug report? It might help you guys?

George...
Comment 44 Christoph Feck 2016-09-06 05:45:45 UTC
Help with what? This bug is long fixed, see comment #11.
Comment 45 Christoph Feck 2016-11-21 03:21:53 UTC
*** Bug 372657 has been marked as a duplicate of this bug. ***
Comment 46 Christoph Feck 2016-12-31 20:39:59 UTC
*** Bug 374093 has been marked as a duplicate of this bug. ***
Comment 47 Christoph Feck 2017-01-19 14:33:06 UTC
*** Bug 375109 has been marked as a duplicate of this bug. ***
Comment 48 Ken Derbyshire 2017-01-19 17:24:22 UTC
(In reply to Christoph Feck from comment #47)
> *** Bug 375109 has been marked as a duplicate of this bug. ***

I apologise for the repeated bug reports Christoph, I am as new as they come to Linux, so when something went wrong, I just followed the prompts. I can't imagine how frustrating it must be to get flooded with duplicate reports for already squashed bugs. I'll try and be more diligent about "looking before I click" next time. I sincerely appreciate the excellent work you guys do with a product that I am thoroughly enjoying the h*ll out of!
Comment 49 Christoph Feck 2017-02-01 23:00:56 UTC
*** Bug 375852 has been marked as a duplicate of this bug. ***
Comment 50 Christoph Feck 2017-03-02 23:11:26 UTC
*** Bug 376969 has been marked as a duplicate of this bug. ***
Comment 51 Christoph Feck 2017-03-06 03:19:34 UTC
*** Bug 377227 has been marked as a duplicate of this bug. ***
Comment 52 Nate Graham 2017-08-18 02:27:08 UTC
*** Bug 383654 has been marked as a duplicate of this bug. ***
Comment 53 George R. Goffe 2017-08-18 04:58:39 UTC
Hi,

I'm running a Fedora 27 (rawhide) system with this version of systemsettings and have not seen this problem in some time. Has it gone away (i.e. been fixed)?

plasma-systemsettings-5.10.4-3.fc27.x86_64
Comment 54 Nate Graham 2018-01-02 16:48:23 UTC
*** Bug 388443 has been marked as a duplicate of this bug. ***
Comment 55 Christoph Feck 2018-06-17 14:31:48 UTC
*** Bug 395415 has been marked as a duplicate of this bug. ***