Bug 375388

Summary: Crash in QQuickItemPrivate::setEffectiveVisibleRecursive
Product: [Plasma] plasmashell Reporter: petrk <pepko94>
Component: generic-crashAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED UPSTREAM    
Severity: crash CC: 1690192590, 2020cmitchell, abdelhakg, alexandre.nunes, arojas, arsenarsentmc, bhush94, bugs.kde.org.trustful938, catalin.pichiu, ch.mercesmoreira, cosmenp, elman, errati, forza51, francis.vermaak.coding, gaamdalurt, garus666, greengogoose, ian.snow, iratusmalusque, kananichandresh, kde, kdeokk, kde_bugs, kiv.apple, krushndayshmookh, lsangild+kdedebug, lukasz, manav.zxa, maxrd2, maxxcan, mdraw.gh+kde, me, nicu, paulmontaque9, peminejkin, plasma-bugs, pyntux, rahulprabhakarddun, rdieter, rulatir, s4bba7, s, sad.dgs, seelook, somnianti, sylvain, victor
Priority: NOR Keywords: drkonqi
Version: 5.8.95   
Target Milestone: 1.0   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed In:

Description petrk 2017-01-21 21:14:09 UTC
Application: plasmashell (5.8.95)

Qt Version: 5.8.0
Frameworks Version: 5.30.0
Operating System: Linux 4.9.5-1-ck-ivybridge x86_64
Distribution (Platform): Archlinux Packages

-- Information about the crash:
- What I was doing when the application crashed:

I dedided to click hamburger icon on desktop, that one which was always in the corner.
It crashed plasmashell with nice segfault, I've tried a couple of times and it always ends with crash.

Unlocking and locking widgets seems to fix any issues, gotta relog and test.

qt 5.8 
plasma 5.8.95

The crash can be reproduced every time.

-- Backtrace:
Application: Plazma (plasmashell), signal: Segmentation fault
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[Current thread is 1 (Thread 0x7fda2e36a800 (LWP 978))]

Thread 7 (Thread 0x7fd9786f7700 (LWP 989)):
#0  0x00007fda27a1948d in poll () at /usr/lib/libc.so.6
#1  0x00007fda22841786 in  () at /usr/lib/libglib-2.0.so.0
#2  0x00007fda2284189c in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#3  0x00007fda2833d3eb in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#4  0x00007fda282e6c1a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#5  0x00007fda281089f3 in QThread::exec() () at /usr/lib/libQt5Core.so.5
#6  0x00007fda2bdf8fd6 in  () at /usr/lib/libQt5Quick.so.5
#7  0x00007fda2810d658 in  () at /usr/lib/libQt5Core.so.5
#8  0x00007fda26fd8454 in start_thread () at /usr/lib/libpthread.so.0
#9  0x00007fda27a227df in clone () at /usr/lib/libc.so.6

Thread 6 (Thread 0x7fda03fff700 (LWP 983)):
#0  0x00007fda26fde10f in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
#1  0x00007fda2daee244 in  () at /usr/lib/libQt5Script.so.5
#2  0x00007fda2daee289 in  () at /usr/lib/libQt5Script.so.5
#3  0x00007fda26fd8454 in start_thread () at /usr/lib/libpthread.so.0
#4  0x00007fda27a227df in clone () at /usr/lib/libc.so.6

Thread 5 (Thread 0x7fda0df73700 (LWP 982)):
#0  0x00007fda27a1948d in poll () at /usr/lib/libc.so.6
#1  0x00007fda22841786 in  () at /usr/lib/libglib-2.0.so.0
#2  0x00007fda2284189c in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#3  0x00007fda2833d3eb in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#4  0x00007fda282e6c1a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#5  0x00007fda281089f3 in QThread::exec() () at /usr/lib/libQt5Core.so.5
#6  0x00007fda2b243e75 in  () at /usr/lib/libQt5Qml.so.5
#7  0x00007fda2810d658 in  () at /usr/lib/libQt5Core.so.5
#8  0x00007fda26fd8454 in start_thread () at /usr/lib/libpthread.so.0
#9  0x00007fda27a227df in clone () at /usr/lib/libc.so.6

Thread 4 (Thread 0x7fda0ffff700 (LWP 981)):
#0  0x00007fda27a154ed in read () at /usr/lib/libc.so.6
#1  0x00007fda22885a10 in  () at /usr/lib/libglib-2.0.so.0
#2  0x00007fda22841235 in g_main_context_check () at /usr/lib/libglib-2.0.so.0
#3  0x00007fda22841724 in  () at /usr/lib/libglib-2.0.so.0
#4  0x00007fda2284189c in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#5  0x00007fda2833d3eb in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#6  0x00007fda282e6c1a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#7  0x00007fda281089f3 in QThread::exec() () at /usr/lib/libQt5Core.so.5
#8  0x00007fda2b243e75 in  () at /usr/lib/libQt5Qml.so.5
#9  0x00007fda2810d658 in  () at /usr/lib/libQt5Core.so.5
#10 0x00007fda26fd8454 in start_thread () at /usr/lib/libpthread.so.0
#11 0x00007fda27a227df in clone () at /usr/lib/libc.so.6

Thread 3 (Thread 0x7fda15be5700 (LWP 980)):
#0  0x00007fda27a154ed in read () at /usr/lib/libc.so.6
#1  0x00007fda22885a10 in  () at /usr/lib/libglib-2.0.so.0
#2  0x00007fda22841235 in g_main_context_check () at /usr/lib/libglib-2.0.so.0
#3  0x00007fda22841724 in  () at /usr/lib/libglib-2.0.so.0
#4  0x00007fda2284189c in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#5  0x00007fda2833d3eb in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#6  0x00007fda282e6c1a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#7  0x00007fda281089f3 in QThread::exec() () at /usr/lib/libQt5Core.so.5
#8  0x00007fda28e8d0c5 in  () at /usr/lib/libQt5DBus.so.5
#9  0x00007fda2810d658 in  () at /usr/lib/libQt5Core.so.5
#10 0x00007fda26fd8454 in start_thread () at /usr/lib/libpthread.so.0
#11 0x00007fda27a227df in clone () at /usr/lib/libc.so.6

Thread 2 (Thread 0x7fda1783e700 (LWP 979)):
#0  0x00007fda27a1948d in poll () at /usr/lib/libc.so.6
#1  0x00007fda2ca148e0 in  () at /usr/lib/libxcb.so.1
#2  0x00007fda2ca16679 in xcb_wait_for_event () at /usr/lib/libxcb.so.1
#3  0x00007fda1977d239 in  () at /usr/lib/libQt5XcbQpa.so.5
#4  0x00007fda2810d658 in  () at /usr/lib/libQt5Core.so.5
#5  0x00007fda26fd8454 in start_thread () at /usr/lib/libpthread.so.0
#6  0x00007fda27a227df in clone () at /usr/lib/libc.so.6

Thread 1 (Thread 0x7fda2e36a800 (LWP 978)):
[KCrash Handler]
#6  0x00007fda2bea3dd1 in QQuickItemPrivate::setEffectiveVisibleRecur(bool) () at /usr/lib/libQt5Quick.so.5
#7  0x00007fda2bea3dda in QQuickItemPrivate::setEffectiveVisibleRecur(bool) () at /usr/lib/libQt5Quick.so.5
#8  0x00007fda2bea3f34 in QQuickItem::setVisible(bool) () at /usr/lib/libQt5Quick.so.5
#9  0x00007fda2de214bc in  () at /usr/lib/libKF5PlasmaQuick.so.5
#10 0x00007fda2de22bee in PlasmaQuick::Dialog::event(QEvent*) () at /usr/lib/libKF5PlasmaQuick.so.5
#11 0x00007fda2925634c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#12 0x00007fda2925db61 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#13 0x00007fda282e87c0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#14 0x00007fda2883f78e in QWindow::setVisible(bool) () at /usr/lib/libQt5Gui.so.5
#15 0x00007fda2de1edd4 in PlasmaQuick::Dialog::setVisible(bool) () at /usr/lib/libKF5PlasmaQuick.so.5
#16 0x00007fda2de21c48 in  () at /usr/lib/libKF5PlasmaQuick.so.5
#17 0x00007fda2de2338b in PlasmaQuick::Dialog::qt_metacall(QMetaObject::Call, int, void**) () at /usr/lib/libKF5PlasmaQuick.so.5
#18 0x00007fda2b1b78e9 in  () at /usr/lib/libQt5Qml.so.5
#19 0x00007fda2b1b62b8 in QQmlPropertyPrivate::write(QObject*, QQmlPropertyData const&, QVariant const&, QQmlContextData*, QFlags<QQmlPropertyData::WriteFlag>) () at /usr/lib/libQt5Qml.so.5
#20 0x00007fda2b18097b in QV4::QObjectWrapper::setProperty(QV4::ExecutionEngine*, QObject*, QQmlPropertyData*, QV4::Value const&) () at /usr/lib/libQt5Qml.so.5
#21 0x00007fda2b181190 in QV4::QObjectWrapper::setQmlProperty(QV4::ExecutionEngine*, QQmlContextData*, QObject*, QV4::String*, QV4::QObjectWrapper::RevisionMode, QV4::Value const&) () at /usr/lib/libQt5Qml.so.5
#22 0x00007fda2b1812a6 in QV4::QObjectWrapper::put(QV4::Managed*, QV4::String*, QV4::Value const&) () at /usr/lib/libQt5Qml.so.5
#23 0x00007fda2b191d86 in QV4::Runtime::method_setProperty(QV4::ExecutionEngine*, QV4::Value const&, int, QV4::Value const&) () at /usr/lib/libQt5Qml.so.5
#24 0x00007fda000d8062 in  ()
#25 0x0000000002295050 in  ()
#26 0x00007fda000d8624 in  ()
#27 0x00007fda0cf74428 in  ()
#28 0x0003400000000001 in  ()
#29 0x00000000000004fa in  ()
#30 0x0003400000000000 in  ()
#31 0x00007fff81a270b0 in  ()
#32 0x0000000000000000 in  ()

Reported using DrKonqi
Comment 1 petrk 2017-01-21 21:22:19 UTC
Same issue after logging off:

So it seems that it really doesn't matter if I unlock widgets, still happens. Cool thing that yakuake is on standby.



Application: Plazma (plasmashell), signal: Segmentation fault
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[Current thread is 1 (Thread 0x7fa33613e800 (LWP 1531))]

Thread 7 (Thread 0x7fa2804d8700 (LWP 1662)):
#0  0x00007fa32a65add4 in g_mutex_unlock () at /usr/lib/libglib-2.0.so.0
#1  0x00007fa32a614c7c in g_main_context_prepare () at /usr/lib/libglib-2.0.so.0
#2  0x00007fa32a6156ab in  () at /usr/lib/libglib-2.0.so.0
#3  0x00007fa32a61589c in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#4  0x00007fa3301113eb in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#5  0x00007fa3300bac1a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#6  0x00007fa32fedc9f3 in QThread::exec() () at /usr/lib/libQt5Core.so.5
#7  0x00007fa333bccfd6 in  () at /usr/lib/libQt5Quick.so.5
#8  0x00007fa32fee1658 in  () at /usr/lib/libQt5Core.so.5
#9  0x00007fa32edac454 in start_thread () at /usr/lib/libpthread.so.0
#10 0x00007fa32f7f67df in clone () at /usr/lib/libc.so.6

Thread 6 (Thread 0x7fa30bfff700 (LWP 1655)):
#0  0x00007fa32edb210f in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
#1  0x00007fa3358c2244 in  () at /usr/lib/libQt5Script.so.5
#2  0x00007fa3358c2289 in  () at /usr/lib/libQt5Script.so.5
#3  0x00007fa32edac454 in start_thread () at /usr/lib/libpthread.so.0
#4  0x00007fa32f7f67df in clone () at /usr/lib/libc.so.6

Thread 5 (Thread 0x7fa315d6e700 (LWP 1646)):
#0  0x00007fa32f7ed48d in poll () at /usr/lib/libc.so.6
#1  0x00007fa32a615786 in  () at /usr/lib/libglib-2.0.so.0
#2  0x00007fa32a61589c in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#3  0x00007fa3301113eb in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#4  0x00007fa3300bac1a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#5  0x00007fa32fedc9f3 in QThread::exec() () at /usr/lib/libQt5Core.so.5
#6  0x00007fa333017e75 in  () at /usr/lib/libQt5Qml.so.5
#7  0x00007fa32fee1658 in  () at /usr/lib/libQt5Core.so.5
#8  0x00007fa32edac454 in start_thread () at /usr/lib/libpthread.so.0
#9  0x00007fa32f7f67df in clone () at /usr/lib/libc.so.6

Thread 4 (Thread 0x7fa317dfa700 (LWP 1588)):
#0  0x00007fa32a65adb9 in g_mutex_lock () at /usr/lib/libglib-2.0.so.0
#1  0x00007fa32a614c95 in g_main_context_prepare () at /usr/lib/libglib-2.0.so.0
#2  0x00007fa32a6156ab in  () at /usr/lib/libglib-2.0.so.0
#3  0x00007fa32a61589c in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#4  0x00007fa3301113eb in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#5  0x00007fa3300bac1a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#6  0x00007fa32fedc9f3 in QThread::exec() () at /usr/lib/libQt5Core.so.5
#7  0x00007fa333017e75 in  () at /usr/lib/libQt5Qml.so.5
#8  0x00007fa32fee1658 in  () at /usr/lib/libQt5Core.so.5
#9  0x00007fa32edac454 in start_thread () at /usr/lib/libpthread.so.0
#10 0x00007fa32f7f67df in clone () at /usr/lib/libc.so.6

Thread 3 (Thread 0x7fa31d9b9700 (LWP 1554)):
#0  0x00007fa32f7ed48d in poll () at /usr/lib/libc.so.6
#1  0x00007fa32a615786 in  () at /usr/lib/libglib-2.0.so.0
#2  0x00007fa32a61589c in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#3  0x00007fa3301113eb in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#4  0x00007fa3300bac1a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#5  0x00007fa32fedc9f3 in QThread::exec() () at /usr/lib/libQt5Core.so.5
#6  0x00007fa330c610c5 in  () at /usr/lib/libQt5DBus.so.5
#7  0x00007fa32fee1658 in  () at /usr/lib/libQt5Core.so.5
#8  0x00007fa32edac454 in start_thread () at /usr/lib/libpthread.so.0
#9  0x00007fa32f7f67df in clone () at /usr/lib/libc.so.6

Thread 2 (Thread 0x7fa31f612700 (LWP 1546)):
#0  0x00007fa32f7ed48d in poll () at /usr/lib/libc.so.6
#1  0x00007fa3347e88e0 in  () at /usr/lib/libxcb.so.1
#2  0x00007fa3347ea679 in xcb_wait_for_event () at /usr/lib/libxcb.so.1
#3  0x00007fa321551239 in  () at /usr/lib/libQt5XcbQpa.so.5
#4  0x00007fa32fee1658 in  () at /usr/lib/libQt5Core.so.5
#5  0x00007fa32edac454 in start_thread () at /usr/lib/libpthread.so.0
#6  0x00007fa32f7f67df in clone () at /usr/lib/libc.so.6

Thread 1 (Thread 0x7fa33613e800 (LWP 1531)):
[KCrash Handler]
#6  0x00007fa333c77d06 in QQuickItemPrivate::setEffectiveVisibleRecur(bool) () at /usr/lib/libQt5Quick.so.5
#7  0x00007fa333c77dda in QQuickItemPrivate::setEffectiveVisibleRecur(bool) () at /usr/lib/libQt5Quick.so.5
#8  0x00007fa333c77dda in QQuickItemPrivate::setEffectiveVisibleRecur(bool) () at /usr/lib/libQt5Quick.so.5
#9  0x00007fa333c77f34 in QQuickItem::setVisible(bool) () at /usr/lib/libQt5Quick.so.5
#10 0x00007fa335bf54bc in  () at /usr/lib/libKF5PlasmaQuick.so.5
#11 0x00007fa335bf6bee in PlasmaQuick::Dialog::event(QEvent*) () at /usr/lib/libKF5PlasmaQuick.so.5
#12 0x00007fa33102a34c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#13 0x00007fa331031b61 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#14 0x00007fa3300bc7c0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#15 0x00007fa33061378e in QWindow::setVisible(bool) () at /usr/lib/libQt5Gui.so.5
#16 0x00007fa335bf2dd4 in PlasmaQuick::Dialog::setVisible(bool) () at /usr/lib/libKF5PlasmaQuick.so.5
#17 0x00007fa335bf5c48 in  () at /usr/lib/libKF5PlasmaQuick.so.5
#18 0x00007fa335bf738b in PlasmaQuick::Dialog::qt_metacall(QMetaObject::Call, int, void**) () at /usr/lib/libKF5PlasmaQuick.so.5
#19 0x00007fa332f8b8e9 in  () at /usr/lib/libQt5Qml.so.5
#20 0x00007fa332f8a2b8 in QQmlPropertyPrivate::write(QObject*, QQmlPropertyData const&, QVariant const&, QQmlContextData*, QFlags<QQmlPropertyData::WriteFlag>) () at /usr/lib/libQt5Qml.so.5
#21 0x00007fa332f5497b in QV4::QObjectWrapper::setProperty(QV4::ExecutionEngine*, QObject*, QQmlPropertyData*, QV4::Value const&) () at /usr/lib/libQt5Qml.so.5
#22 0x00007fa332f55190 in QV4::QObjectWrapper::setQmlProperty(QV4::ExecutionEngine*, QQmlContextData*, QObject*, QV4::String*, QV4::QObjectWrapper::RevisionMode, QV4::Value const&) () at /usr/lib/libQt5Qml.so.5
#23 0x00007fa332f552a6 in QV4::QObjectWrapper::put(QV4::Managed*, QV4::String*, QV4::Value const&) () at /usr/lib/libQt5Qml.so.5
#24 0x00007fa332f65d86 in QV4::Runtime::method_setProperty(QV4::ExecutionEngine*, QV4::Value const&, int, QV4::Value const&) () at /usr/lib/libQt5Qml.so.5
#25 0x00007fa30b2ff062 in  ()
#26 0x0000000000000018 in  ()
#27 0x00007fa30b2ff624 in  ()
#28 0x00007ffc9907c01c in  ()
#29 0x0003400000000001 in  ()
#30 0x00000000000004fa in  ()
#31 0x0003400000000000 in  ()
#32 0x00007ffc9907c0a0 in  ()
#33 0x0000000000000000 in  ()
Comment 2 Kai Uwe Broulik 2017-02-11 09:49:15 UTC
*** Bug 375288 has been marked as a duplicate of this bug. ***
Comment 3 Kai Uwe Broulik 2017-02-11 09:49:22 UTC
*** Bug 375801 has been marked as a duplicate of this bug. ***
Comment 4 Kai Uwe Broulik 2017-02-11 09:49:30 UTC
*** Bug 376077 has been marked as a duplicate of this bug. ***
Comment 5 Kai Uwe Broulik 2017-02-11 09:49:35 UTC
*** Bug 376083 has been marked as a duplicate of this bug. ***
Comment 6 Kai Uwe Broulik 2017-02-11 09:49:41 UTC
*** Bug 376328 has been marked as a duplicate of this bug. ***
Comment 7 Kai Uwe Broulik 2017-02-11 09:50:43 UTC
*** Bug 376324 has been marked as a duplicate of this bug. ***
Comment 8 David Edmundson 2017-02-11 13:25:57 UTC
Upstream bug report as  https://bugreports.qt.io/browse/QTBUG-58811
Comment 9 Kai Uwe Broulik 2017-02-11 16:59:07 UTC
*** Bug 376356 has been marked as a duplicate of this bug. ***
Comment 10 Kai Uwe Broulik 2017-02-13 09:35:34 UTC
*** Bug 376428 has been marked as a duplicate of this bug. ***
Comment 11 Kai Uwe Broulik 2017-02-16 09:44:22 UTC
*** Bug 376527 has been marked as a duplicate of this bug. ***
Comment 12 David Edmundson 2017-02-19 15:07:00 UTC
*** Bug 362432 has been marked as a duplicate of this bug. ***
Comment 13 David Edmundson 2017-02-19 15:07:06 UTC
*** Bug 376670 has been marked as a duplicate of this bug. ***
Comment 14 David Edmundson 2017-02-20 10:24:56 UTC
*** Bug 376698 has been marked as a duplicate of this bug. ***
Comment 15 Marco Martin 2017-02-22 17:15:59 UTC
*** Bug 376811 has been marked as a duplicate of this bug. ***
Comment 16 Marco Martin 2017-02-28 10:43:16 UTC
*** Bug 376832 has been marked as a duplicate of this bug. ***
Comment 17 Marco Martin 2017-03-02 16:00:26 UTC
*** Bug 377083 has been marked as a duplicate of this bug. ***
Comment 18 David Edmundson 2017-03-03 02:39:20 UTC
*** Bug 377137 has been marked as a duplicate of this bug. ***
Comment 19 David Edmundson 2017-03-04 07:46:12 UTC
*** Bug 377190 has been marked as a duplicate of this bug. ***
Comment 20 Antonio Rojas 2017-03-04 09:03:34 UTC
*** Bug 377194 has been marked as a duplicate of this bug. ***
Comment 21 Antonio Rojas 2017-03-04 09:04:18 UTC
*** Bug 377192 has been marked as a duplicate of this bug. ***
Comment 22 David Edmundson 2017-03-05 23:52:25 UTC
*** Bug 377260 has been marked as a duplicate of this bug. ***
Comment 23 David Edmundson 2017-03-05 23:52:40 UTC
*** Bug 377257 has been marked as a duplicate of this bug. ***
Comment 24 David Edmundson 2017-03-07 14:17:07 UTC
*** Bug 377333 has been marked as a duplicate of this bug. ***
Comment 25 David Edmundson 2017-03-10 09:30:07 UTC
*** Bug 377429 has been marked as a duplicate of this bug. ***
Comment 26 David Edmundson 2017-03-10 09:30:11 UTC
*** Bug 377435 has been marked as a duplicate of this bug. ***
Comment 27 Kai Uwe Broulik 2017-03-16 14:20:25 UTC
*** Bug 377695 has been marked as a duplicate of this bug. ***
Comment 28 Marco Martin 2017-03-22 13:39:08 UTC
*** Bug 377910 has been marked as a duplicate of this bug. ***
Comment 29 David Edmundson 2017-03-22 14:00:59 UTC
I have a theory on this.

The code is:
    for (QQuickItem *childItem : qAsConst(childItems)) {
        childVisibilityChanged |= QQuickItemPrivate::get(childItem)->setEffectiveVisibleRecur(newEffectiveVisible);
    }
     ...
    emit q->visibleChanged();


which means if an item's visibility changing meant it ended up removing a sibling, we've just altered a loop we're itterating over and we'd potentially get the crash.

I tried reproducing that in a simple QML file but it didn't seem to make a crash.

Though I'm a bit fuzzy on the new C++11 for loops and how they react.
Comment 30 somnianti 2017-03-22 15:18:02 UTC
(In reply to David Edmundson from comment #29)
> I have a theory on this.
> 
> The code is:
>     for (QQuickItem *childItem : qAsConst(childItems)) {
>         childVisibilityChanged |=
> QQuickItemPrivate::get(childItem)-
> >setEffectiveVisibleRecur(newEffectiveVisible);
>     }
>      ...
>     emit q->visibleChanged();
> 

Should it test for the current visible state before setting newEffectiveVisible?

for (QQuickItem *childItem : qAsConst(childItems)) {
  if (childItem->isVisible() == newEffectiveVisible) continue;
  childVisibilityChanged |= QQuickItemPrivate::get(childItem)->setEffectiveVisibleRecur(newEffectiveVisible);
}

And what happens if a childItem is disabled and its visibility is toggled?

if (!childItem->isEnabled || childItem->isVisible() == newEffectiveVisible) continue;
Comment 31 David Edmundson 2017-03-23 11:58:21 UTC
*** Bug 377971 has been marked as a duplicate of this bug. ***
Comment 32 David Edmundson 2017-03-26 01:11:22 UTC
*** Bug 378035 has been marked as a duplicate of this bug. ***
Comment 33 Kai Uwe Broulik 2017-04-01 15:11:45 UTC
*** Bug 378306 has been marked as a duplicate of this bug. ***
Comment 34 David Edmundson 2017-04-03 19:53:39 UTC
*** Bug 378369 has been marked as a duplicate of this bug. ***
Comment 35 Antonio Rojas 2017-04-05 12:04:41 UTC
Backtrace with debug symbols:

#0  0x00007ffff5a1fe21 in QQuickItemPrivate::setEffectiveVisibleRecur(bool) (this=0x4225480, newEffectiveVisible=newEffectiveVisible@entry=true)
    at /tmp/makepkg/qt5-declarative-debug/src/qtdeclarative-opensource-src-5.8.0/src/quick/items/qquickitem.cpp:5789
#1  0x00007ffff5a1fe2a in QQuickItemPrivate::setEffectiveVisibleRecur(bool) (this=this@entry=0x451d1b0, newEffectiveVisible=<optimized out>)
    at /tmp/makepkg/qt5-declarative-debug/src/qtdeclarative-opensource-src-5.8.0/src/quick/items/qquickitem.cpp:5789
#2  0x00007ffff5a1ff84 in QQuickItem::setVisible(bool) (this=<optimized out>, v=<optimized out>)
    at /tmp/makepkg/qt5-declarative-debug/src/qtdeclarative-opensource-src-5.8.0/src/quick/items/qquickitem.cpp:5698
#3  0x00007ffff7998bcc in PlasmaQuick::DialogPrivate::updateVisibility(bool) (this=0x4404800, visible=visible@entry=true)
    at /build/plasma-framework/src/plasma-framework-5.32.0/src/plasmaquick/dialog.cpp:269
#4  0x00007ffff799ad36 in PlasmaQuick::Dialog::event(QEvent*) (this=0x42231e0, event=0x7fffffffb420)
    at /build/plasma-framework/src/plasma-framework-5.32.0/src/plasmaquick/dialog.cpp:1141
#5  0x00007ffff2dd43dc in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x42231e0, e=0x7fffffffb420) at kernel/qapplication.cpp:3745
#6  0x00007ffff2ddbbf1 in QApplication::notify(QObject*, QEvent*) (this=
    0x7fffffffe4d0, receiver=0x42231e0, e=0x7fffffffb420) at kernel/qapplication.cpp:3502
#7  0x00007ffff1e604e0 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=receiver@entry=0x42231e0, event=event@entry=0x7fffffffb420) at kernel/qcoreapplication.cpp:988
#8  0x00007ffff23b97ce in QCoreApplication::sendEvent(QObject*, QEvent*) (event=0x7fffffffb420, receiver=0x42231e0)
    at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#9  0x00007ffff23b97ce in QWindow::setVisible(bool) (this=this@entry=0x42231e0, visible=visible@entry=true)
    at kernel/qwindow.cpp:537
#10 0x00007ffff79966bc in PlasmaQuick::Dialog::setVisible(bool) (this=0x42231e0, visible=<optimized out>)
    at /build/plasma-framework/src/plasma-framework-5.32.0/src/plasmaquick/dialog.cpp:1316
#11 0x00007ffff7999b88 in PlasmaQuick::Dialog::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=_o@entry=0x42231e0, _c=_c@entry=QMetaObject::WriteProperty, _id=_id@entry=9, _a=_a@entry=0x7fffffffb550)
    at /build/plasma-framework/src/build/src/plasmaquick/moc_dialog.cpp:348
#12 0x00007ffff799b50b in PlasmaQuick::Dialog::qt_metacall(QMetaObject::Call, int, void**) (this=0x42231e0, _c=QMetaObject::WriteProperty, _id=9, _a=0x7fffffffb550) at /build/plasma-framework/src/build/src/plasmaquick/moc_dialog.cpp:401
#13 0x00007ffff4d32b09 in QQmlPropertyData::writeProperty(QObject*, void*, QFlags<QQmlPropertyData::WriteFlag>) const (this=this@entry=0x7fffc804a6f8, target=target@entry=0x42231e0, value=<optimized out>, flags=...)
    at /tmp/makepkg/qt5-declarative-debug/src/qtdeclarative-opensource-src-5.8.0/include/QtQml/5.8.0/QtQml/private/../../../../../src/qml/qml/qqmlpropertycache_p.h:324
#14 0x00007ffff4d314d8 in QQmlPropertyPrivate::write(QObject*, QQmlPropertyData const&, QVariant const&, QQmlContextData*, QFlags<QQmlPropertyData::WriteFlag>) (object=object@entry=0x42231e0, property=..., value=..., context=0xfac6f0, flags=..., 
    flags@entry=...)
    at /tmp/makepkg/qt5-declarative-debug/src/qtdeclarative-opensource-src-5.8.0/src/qml/qml/qqmlproperty.cpp:1197
#15 0x00007ffff4cfbbbb in QV4::QObjectWrapper::setProperty(QV4::ExecutionEngine*, QObject*, QQmlPropertyData*, QV4::Value const&) (engine=engine@entry=0x819f90, object=object@entry=0x42231e0, property=0x7fffc804a6f8, value=...)
    at /tmp/makepkg/qt5-declarative-debug/src/qtdeclarative-opensource-src-5.8.0/src/qml/jsruntime/qv4qobjectwrapper.cpp:475
---Type <return> to continue, or q <return> to quit---
#16 0x00007ffff4cfc3d0 in QV4::QObjectWrapper::setQmlProperty(QV4::ExecutionEngine*, QQmlContextData*, QObject*, QV4::String*, QV4::QObjectWrapper::RevisionMode, QV4::Value const&) (engine=0x819f90, qmlContext=<optimized out>, object=0x42231e0, name=<optimized out>, revisionMode=QV4::QObjectWrapper::IgnoreRevision, value=...)
    at /tmp/makepkg/qt5-declarative-debug/src/qtdeclarative-opensource-src-5.8.0/src/qml/jsruntime/qv4qobjectwrapper.cpp:362
#17 0x00007ffff4cfc4e6 in QV4::QObjectWrapper::put(QV4::Managed*, QV4::String*, QV4::Value const&) (m=0x7fffd30003f0, name=0x7fffd30003e8, value=...)
    at /tmp/makepkg/qt5-declarative-debug/src/qtdeclarative-opensource-src-5.8.0/src/qml/jsruntime/qv4qobjectwrapper.cpp:638
#18 0x00007ffff4d0cf96 in QV4::Object::put(QV4::String*, QV4::Value const&) (v=..., name=<optimized out>, this=<optimized out>) at /tmp/makepkg/qt5-declarative-debug/src/qtdeclarative-opensource-src-5.8.0/src/qml/jsruntime/qv4object_p.h:330
#19 0x00007ffff4d0cf96 in QV4::Runtime::method_setProperty(QV4::ExecutionEngine*, QV4::Value const&, int, QV4::Value const&) (engine=0x819f90, object=..., nameIndex=<optimized out>, value=...)
    at /tmp/makepkg/qt5-declarative-debug/src/qtdeclarative-opensource-src-5.8.0/src/qml/jsruntime/qv4runtime.cpp:603
#20 0x00007fffc4044f42 in  ()
#21 0x0000000000000018 in  ()
#22 0x00007fffc4045504 in  ()
#23 0x00007fffd3000520 in  ()
#24 0x0003400000000001 in  ()
#25 0x00000000000004fa in  ()
#26 0x0003400000000000 in  ()
#27 0x00007fffffffb910 in  ()
#28 0x0000000000000000 in  ()
Comment 36 David Edmundson 2017-04-13 22:29:22 UTC
*** Bug 378747 has been marked as a duplicate of this bug. ***
Comment 37 Christoph Feck 2017-04-21 13:03:02 UTC
*** Bug 378571 has been marked as a duplicate of this bug. ***
Comment 38 Christoph Feck 2017-04-21 13:03:20 UTC
*** Bug 376834 has been marked as a duplicate of this bug. ***
Comment 39 Christoph Feck 2017-04-21 13:03:43 UTC
*** Bug 379013 has been marked as a duplicate of this bug. ***
Comment 40 Marco Martin 2017-04-26 10:37:19 UTC
*** Bug 379130 has been marked as a duplicate of this bug. ***
Comment 41 Marco Martin 2017-04-28 12:15:34 UTC
*** Bug 379276 has been marked as a duplicate of this bug. ***
Comment 42 David Edmundson 2017-05-11 13:59:07 UTC
*** Bug 379690 has been marked as a duplicate of this bug. ***
Comment 43 David Edmundson 2017-05-11 13:59:11 UTC
*** Bug 379648 has been marked as a duplicate of this bug. ***
Comment 44 Shawn Rutledge 2017-05-18 06:15:40 UTC
Sounds pretty bad.

How would I go about reproducing this with a debug build of Qt, to see it happen, and if I try to fix it, to verify that it's fixed?
Comment 45 David Edmundson 2017-05-18 15:40:55 UTC
*** Bug 379972 has been marked as a duplicate of this bug. ***
Comment 46 David Edmundson 2017-05-18 15:40:59 UTC
*** Bug 379921 has been marked as a duplicate of this bug. ***
Comment 47 David Edmundson 2017-05-21 07:07:04 UTC
It was what I said in #29. Though I'm still not sure where we do this in plasma code.

Fixed in Qt5.9.0

Thanks Qt people
Comment 48 David Edmundson 2017-05-24 21:24:25 UTC
*** Bug 380160 has been marked as a duplicate of this bug. ***
Comment 49 Christoph Feck 2017-06-07 14:34:31 UTC
*** Bug 380259 has been marked as a duplicate of this bug. ***