Summary: | crash in QQuickItemPrivate::addToDirtyList | ||
---|---|---|---|
Product: | [Plasma] plasmashell | Reporter: | Andres Nogueiras <aaugusto> |
Component: | generic-crash | Assignee: | Plasma Bugs List <plasma-bugs> |
Status: | RESOLVED UPSTREAM | ||
Severity: | crash | CC: | 8000tlv, aasheimvebjorn, baretdidier, burneddi, carlos.r.castro.m, d.christopeit, gabeklav, jlp, justin.zobel, kde, knolld00, lemmyg, makar.valentinov, nate, notmart, plasma-bugs, qydwhotmail, rocketraman, rybak.a.v, stakanov.s, sub, tomislav.gazica |
Priority: | HI | Keywords: | drkonqi |
Version: | 5.8.7 | ||
Target Milestone: | 1.0 | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
See Also: | https://bugs.kde.org/show_bug.cgi?id=467909 | ||
Latest Commit: | https://invent.kde.org/qt/qt/qtdeclarative/-/commit/d1b9a4cacfb966cf0a37983d8f8044f3aedf5de3 | Version Fixed In: | Qt 6.5.0 |
Description
Andres Nogueiras
2018-07-10 09:09:17 UTC
*** Bug 369864 has been marked as a duplicate of this bug. *** *** Bug 374930 has been marked as a duplicate of this bug. *** Other dupe reports are all whilst hotplugging displays. Thank you for the report, Andres. As it has been a while since this was reported, can you please test and confirm if this issue is still occurring or if this bug report can be marked as resolved. I have set the bug status to "needsinfo" pending your response, please change back to "reported" or "resolved/worksforme" when you respond, thank you. 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 mark the bug 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! 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! *** Bug 445134 has been marked as a duplicate of this bug. *** Just got another report of it in Plasma 5.23.3 (See Bug 445134); re-opening. *** Bug 445170 has been marked as a duplicate of this bug. *** *** Bug 446421 has been marked as a duplicate of this bug. *** The reporter of duplicate bug 446421 can reproduce the issue 100% by running the following python script: > import pygame > from pygame.locals import * > pygame.init() > > screen = pygame.display.set_mode((500, 500), flags=FULLSCREEN) > clock = pygame.time.Clock() > > run = True > > while run: > for event in pygame.event.get(): > if event.type == QUIT: > run = False > pygame.display.update() > clock.tick(60) > pygame.quit() I can reproduce it, though. (In reply to Nate Graham from comment #11) > The reporter of duplicate bug 446421 can reproduce the issue 100% by running > the following python script: > > > import pygame > > from pygame.locals import * > > pygame.init() > > > > screen = pygame.display.set_mode((500, 500), flags=FULLSCREEN) > > clock = pygame.time.Clock() > > > > run = True > > > > while run: > > for event in pygame.event.get(): > > if event.type == QUIT: > > run = False > > pygame.display.update() > > clock.tick(60) > > pygame.quit() > > I can reproduce it, though. So does it also crash for you, with this script? The thing is that even without running it again, the system always remains in this broken state. After restart and even after restoring a backup (In reply to Nate Graham from comment #11) > The reporter of duplicate bug 446421 can reproduce the issue 100% by running > the following python script: > > > import pygame > > from pygame.locals import * > > pygame.init() > > > > screen = pygame.display.set_mode((500, 500), flags=FULLSCREEN) > > clock = pygame.time.Clock() > > > > run = True > > > > while run: > > for event in pygame.event.get(): > > if event.type == QUIT: > > run = False > > pygame.display.update() > > clock.tick(60) > > pygame.quit() > > I can reproduce it, though. Actually this is not really a duplicate. It seems to happen sometimes for the reporter of THIS bug for me it's permanent. Maybe I understand it wrong. The shell always breaks on start. It always had problems with fullscreen windows but this is the worst bug/error I had. So sorry, typo: I CAN'T reproduce it with that script. (In reply to Nate Graham from comment #14) > So sorry, typo: I CAN'T reproduce it with that script. Did you execute it correctly? Did it open a window? I think so. I saw a black fullscreen window. (In reply to Nate Graham from comment #16) > I think so. I saw a black fullscreen window. Some additional information, which could help reproduce the error: Use Kubuntu 21.10 Upgrade to KDE Plasma 5.23.4 (latest version): "sudo apt-add-repository PPA:kubuntu-backports/ppa sudo apt update && sudo apt full-upgrade" Use two monitors. This COULD help reproducing the error. Best would be in a VM. *** Bug 444742 has been marked as a duplicate of this bug. *** *** Bug 447063 has been marked as a duplicate of this bug. *** *** Bug 446993 has been marked as a duplicate of this bug. *** *** Bug 447244 has been marked as a duplicate of this bug. *** *** Bug 447605 has been marked as a duplicate of this bug. *** *** Bug 448194 has been marked as a duplicate of this bug. *** Increasing priority due to number of duplicates. I get a bit different backtrace than the original poster with Plasma 5.23.90 (Frameworks 5.90.0, Qt 5.15.2, kernel 5.16.1). It happened sometime over night. I just went sleeping and turned of monitors and when I woke up and got back the crash dialog awaited with this backtrace: Application: Plasma (plasmashell), signal: Segmentation fault [KCrash Handler] #4 QQuickItemPrivate::addToDirtyList() (this=this@entry=0x5626cedea140) at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde36-1.6.x86_64/src/quick/items/qquickitem.h:468 #5 0x00007f5cea74121e in QQuickItemPrivate::dirty(QQuickItemPrivate::DirtyType) (this=this@entry=0x5626cedea140, type=type@entry=QQuickItemPrivate::Size) at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde36-1.6.x86_64/src/quick/items/qquickitem.cpp:6188 #6 0x00007f5cea741a29 in QQuickItem::setSize(QSizeF const&) (this=0x5626cee1f510, size=...) at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde36-1.6.x86_64/src/quick/items/qquickitem.cpp:7035 #7 0x00007f5cea72d0ba in QQuickAnchorsPrivate::setItemSize(QSizeF const&) (v=..., this=0x5626cee07580) at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde36-1.6.x86_64/src/quick/items/qquickanchors.cpp:435 #8 QQuickAnchorsPrivate::fillChanged() (this=0x5626cee07580) at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde36-1.6.x86_64/src/quick/items/qquickanchors.cpp:211 #9 0x00007f5cea7439d3 in QQuickItem::geometryChanged(QRectF const&, QRectF const&) (this=this@entry=0x5626ce4d0fc0, newGeometry=<optimized out>, oldGeometry=...) at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde36-1.6.x86_64/src/quick/items/qquickitem.cpp:3759 #10 0x00007f5ceaf32f6e in PlasmaQuick::AppletQuickItem::geometryChanged(QRectF const&, QRectF const&) (this=0x5626ce4d0fc0, newGeometry=<optimized out>, oldGeometry=<optimized out>) at /usr/src/debug/plasma-framework-5.90.0-340.3.x86_64/src/plasmaquick/appletquickitem.cpp:915 #11 0x00007f5cea741a9b in QQuickItem::setSize(QSizeF const&) (this=this@entry=0x5626ce4d0fc0, size=...) at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde36-1.6.x86_64/src/quick/items/qquickitem.cpp:7037 #12 0x00007f5ceaf39d5c in PlasmaQuick::ContainmentViewPrivate::setContainment(Plasma::Containment*) (this=0x5626d07dbe00, cont=<optimized out>) at /usr/src/debug/plasma-framework-5.90.0-340.3.x86_64/src/plasmaquick/containmentview.cpp:121 #13 0x00005626cbebbf6c in ShellCorona::addOutput(QScreen*) (this=0x5626ce0cae50, screen=<optimized out>) at /usr/src/debug/plasma5-workspace-5.23.90-632.5.x86_64/shell/shellcorona.cpp:1290 #14 0x00007f5ce8c60423 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7fff57f47260, r=0x5626ce0cae50, this=0x5626cf02d700) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #15 doActivate<false>(QObject*, int, void**) (sender=0x7fff57f477d0, signal_index=9, argv=0x7fff57f47260) at kernel/qobject.cpp:3886 #16 0x00007f5ce8c598ef in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=<optimized out>, m=m@entry=0x7f5ce9612400, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x7fff57f47260) at kernel/qobject.cpp:3946 #17 0x00007f5ce907a522 in QGuiApplication::screenAdded(QScreen*) (this=<optimized out>, _t1=<optimized out>, _t1@entry=0x7f5cdc020e10) at .moc/moc_qguiapplication.cpp:389 #18 0x00007f5ce906052c in QWindowSystemInterface::handleScreenAdded(QPlatformScreen*, bool) (ps=ps@entry=0x5626d016de90, isPrimary=<optimized out>) at kernel/qwindowsysteminterface.cpp:826 #19 0x00007f5ce4342cbc in QXcbConnection::createScreen(QXcbVirtualDesktop*, xcb_randr_output_change_t const&, xcb_randr_get_output_info_reply_t*) (this=this@entry=0x5626cdf61900, virtualDesktop=virtualDesktop@entry=0x5626cdf79cb0, outputChange=..., outputInfo=outputInfo@entry=0x7f5cdc0169a0) at /usr/src/debug/libqt5-qtbase-5.15.2+kde268-2.1.x86_64/src/plugins/platforms/xcb/qxcbscreen.h:174 #20 0x00007f5ce43455c1 in QXcbConnection::updateScreens(xcb_randr_notify_event_t const*) (this=0x5626cdf61900, event=<optimized out>) at qxcbconnection_screens.cpp:158 #21 0x00007f5ce4319e00 in QXcbConnection::handleXcbEvent(xcb_generic_event_t*) (this=this@entry=0x5626cdf61900, event=event@entry=0x7f5cdc005d00) at qxcbconnection.cpp:690 #22 0x00007f5ce431aa86 in QXcbConnection::processXcbEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x5626cdf61900, flags=...) at qxcbconnection.cpp:1014 #23 0x00007f5ce4340cf3 in xcbSourceDispatch(GSource*, GSourceFunc, gpointer) (source=source@entry=0x5626ce091240) at qxcbeventdispatcher.cpp:103 #24 0x00007f5ce6f6cd9f in g_main_dispatch (context=0x7f5cdc005000) at ../glib/gmain.c:3381 #25 g_main_context_dispatch (context=0x7f5cdc005000) at ../glib/gmain.c:4099 #26 0x00007f5ce6f6d128 in g_main_context_iterate (context=context@entry=0x7f5cdc005000, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4175 #27 0x00007f5ce6f6d1df in g_main_context_iteration (context=0x7f5cdc005000, may_block=1) at ../glib/gmain.c:4240 #28 0x00007f5ce8c81294 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x5626ce09b710, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #29 0x00007f5ce8c287bb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fff57f47650, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69 #30 0x00007f5ce8c30aa0 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #31 0x00007f5ce907c23c in QGuiApplication::exec() () at kernel/qguiapplication.cpp:1867 #32 0x00007f5ce99c79f5 in QApplication::exec() () at kernel/qapplication.cpp:2824 #33 0x00005626cbe9a69a in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/plasma5-workspace-5.23.90-632.5.x86_64/shell/main.cpp:238 [Inferior 1 (process 4311) detached] should not be this ticket set as Confirmed? moving to confirmed *** Bug 449663 has been marked as a duplicate of this bug. *** *** Bug 449699 has been marked as a duplicate of this bug. *** The crash (at least the one reported in dup issue https://bugs.kde.org/show_bug.cgi?id=446993) no longer happens for me on: Operating System: Fedora Linux 35 KDE Plasma Version: 5.24.2 KDE Frameworks Version: 5.91.0 Qt Version: 5.15.2 Kernel Version: 5.16.12-200.fc35.x86_64 (64-bit) Graphics Platform: X11 (In reply to Jure Repinc from comment #25) > I get a bit different backtrace than the original poster with Plasma > 5.23.90 (Frameworks 5.90.0, Qt 5.15.2, kernel 5.16.1). It happened sometime > over night. I just went sleeping and turned of monitors and when I woke up > and got back the crash dialog awaited with this backtrace: for how the bt looks, the crash occurred exactly when you turned out the monitors (or videocard?), and those are the type of monitors that wen you turn them off/go to sleep the system thinks they have been completely disconnected, so while sleeping, plasmashell destroyed all of its views and tried to create new ones on resume. this still doesn't explain the crash tho Could be fixed by https://invent.kde.org/qt/qt/qtdeclarative/-/merge_requests/40 If so, this should already be fixed in Plasma 6. Git commit 45c22a0221937682f4496801a495458a00f76d3a by Albert Astals Cid, on behalf of Volker Hilsheimer. Committed on 17/04/2023 at 21:40. Pushed by aacid into branch 'kde/5.15'. QQuickItem: Fix effective visibility for items without parent Items are visible if they are children of a visible parent, and not explicitly hidden. The effectiveVisible member stores the state and is updated when conditions that impact the item visibility changes. The old code returned true for items outside a visual hierarchy, which broke signal emission when items were removed from a parent, e.g. because the parent got destroyed. With this change, items removed from a visual hierarchy will emit the visibleChanged signal. Note: QQuickItem initializes the effectiveVisible member to true, even if the item was created without parent item. Visual items are required to be added to a visual hierarchy via setParentItem. For this reason, newly created items never emit visibleChanged when they are added to a parent. Adjust the QQuickItem::visible test - it creates an item hierarchy without window. Such items are never visible, so add a window and parent the test item hierarchy to the window's content item. This fixes the expected failures in the tests. It does introduce an incompatibility with QGraphicsView and QGraphicsItem, which continue to return true from QGraphicsItem::isVisible for items that are not in an item hierarchy. [ChangeLog][Qt Quick][QQuickItem] The visible property of Items without a parent now always returns false, and the visibleChanged signal gets emitted when the parent item of a visible item becomes null. Fixes: QTBUG-108213 Change-Id: If4b2947cefd1407853f0f29e6c3fdbd49fc9af65 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> (cherry picked from commit d1b9a4cacfb966cf0a37983d8f8044f3aedf5de3) Related: bug 467909 M +2 -4 src/quick/items/qquickitem.cpp M +2 -0 tests/auto/quick/qquickitem/tst_qquickitem.cpp https://invent.kde.org/qt/qt/qtdeclarative/commit/45c22a0221937682f4496801a495458a00f76d3a Mark as resolved for now *** Bug 478621 has been marked as a duplicate of this bug. *** |