Bug 446987 - On X11, plasmashell crashes on launch in QWindow::screenChanged() with multiple screens connected
Summary: On X11, plasmashell crashes on launch in QWindow::screenChanged() with multip...
Status: REPORTED
Alias: None
Product: plasmashell
Classification: Plasma
Component: generic-crash (show other bugs)
Version: 5.23.4
Platform: openSUSE Linux
: NOR crash
Target Milestone: 1.0
Assignee: Aleix Pol
URL:
Keywords: drkonqi, multiscreen
: 448375 448747 466730 472642 (view as bug list)
Depends on:
Blocks:
 
Reported: 2021-12-14 18:01 UTC by Billy
Modified: 2023-10-27 15:51 UTC (History)
7 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
q09aI97pCrai72Ul.png (95.48 KB, image/png)
2022-01-18 16:51 UTC, Billy
Details
y0t2azCqrV9AS9FZ.png (143.82 KB, image/png)
2022-01-18 16:51 UTC, Billy
Details
q09aI97pCrai72Ul.png (95.48 KB, image/png)
2022-01-24 20:46 UTC, Billy
Details
y0t2azCqrV9AS9FZ.png (143.82 KB, image/png)
2022-01-24 20:46 UTC, Billy
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Billy 2021-12-14 18:01:08 UTC
Application: plasmashell (5.23.4)

Qt Version: 5.15.2
Frameworks Version: 5.88.0
Operating System: Linux 5.15.7-1-default x86_64
Windowing System: X11
Distribution: openSUSE Tumbleweed
DrKonqi: 5.23.4 [KCrashBackend]

-- Information about the crash:
The issue generally occurs during the startup sequence. Additional my desktop on one of the 3 screens will not render.

The reporter is unsure if this crash is reproducible.

-- Backtrace:
Application: Plasma (plasmashell), signal: Segmentation fault
Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = <optimized out>}
[KCrash Handler]
#6  0x00007feb79da5285 in QVector<QQuickItem*>::isEmpty (this=0x71000001c9) at /usr/include/qt5/QtCore/qvector.h:90
#7  QQuickItem::polish (this=this@entry=0x55578c05d280) at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde36-1.2.x86_64/src/quick/items/qquickitem.cpp:4437
#8  0x00007feb79db71d8 in forcePolishHelper (item=0x55578c05d280) at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde36-1.2.x86_64/src/quick/items/qquickwindow.cpp:470
#9  0x00007feb79db717d in forcePolishHelper (item=0x55578b58fc40) at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde36-1.2.x86_64/src/quick/items/qquickwindow.cpp:475
#10 0x00007feb79db717d in forcePolishHelper (item=0x55578b589d30) at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde36-1.2.x86_64/src/quick/items/qquickwindow.cpp:475
#11 0x00007feb79db717d in forcePolishHelper (item=0x55578a835bf0) at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde36-1.2.x86_64/src/quick/items/qquickwindow.cpp:475
#12 0x00007feb79db717d in forcePolishHelper (item=0x55578ae816f0) at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde36-1.2.x86_64/src/quick/items/qquickwindow.cpp:475
#13 0x00007feb79db717d in forcePolishHelper (item=0x5557904d2a00) at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde36-1.2.x86_64/src/quick/items/qquickwindow.cpp:475
#14 0x00007feb782c1078 in doActivate<false> (sender=0x55578bea02d0, signal_index=3, argv=0x7ffe6d06fef0) at kernel/qobject.cpp:3898
#15 0x00007feb782ba50f in QMetaObject::activate (sender=sender@entry=0x55578bea02d0, m=m@entry=0x7feb78c71640, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffe6d06fef0) at kernel/qobject.cpp:3946
#16 0x00007feb786ea9ef in QWindow::screenChanged (this=this@entry=0x55578bea02d0, _t1=<optimized out>, _t1@entry=0x55578a2a3600) at .moc/moc_qwindow.cpp:729
#17 0x00007feb786eb20d in QWindowPrivate::emitScreenChangedRecursion (this=<optimized out>, newScreen=0x55578a2a3600) at kernel/qwindow.cpp:484
#18 0x00007feb786e4072 in QGuiApplicationPrivate::processWindowScreenChangedEvent (wse=0x55578b5402b0) at kernel/qguiapplication.cpp:2544
#19 QGuiApplicationPrivate::processWindowScreenChangedEvent (wse=0x55578b5402b0) at kernel/qguiapplication.cpp:2537
#20 0x00007feb786bd78c in QWindowSystemInterface::sendWindowSystemEvents (flags=flags@entry=...) at kernel/qwindowsysteminterface.cpp:1169
#21 0x00007feb73718d0a in xcbSourceDispatch (source=source@entry=0x55578a2cbcb0) at qxcbeventdispatcher.cpp:105
#22 0x00007feb765aad9f in g_main_dispatch (context=0x7feb6c005000) at ../glib/gmain.c:3381
#23 g_main_context_dispatch (context=0x7feb6c005000) at ../glib/gmain.c:4099
#24 0x00007feb765ab128 in g_main_context_iterate (context=context@entry=0x7feb6c005000, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4175
#25 0x00007feb765ab1df in g_main_context_iteration (context=0x7feb6c005000, may_block=1) at ../glib/gmain.c:4240
#26 0x00007feb782e1ed4 in QEventDispatcherGlib::processEvents (this=0x55578a2d6b70, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#27 0x00007feb782893fb in QEventLoop::exec (this=this@entry=0x7ffe6d070270, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#28 0x00007feb782916e0 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#29 0x00007feb786db18c in QGuiApplication::exec () at kernel/qguiapplication.cpp:1867
#30 0x00007feb790269f5 in QApplication::exec () at kernel/qapplication.cpp:2824
#31 0x0000555788a013e6 in main (argc=<optimized out>, argv=0x7ffe6d070430) at /usr/src/debug/plasma5-workspace-5.23.4-1.1.x86_64/shell/main.cpp:238
[Inferior 1 (process 2698) detached]

Possible duplicates by query: bug 445315, bug 408030, bug 389761, bug 386383.

Reported using DrKonqi
Comment 1 Nate Graham 2022-01-13 21:39:44 UTC
*** Bug 448375 has been marked as a duplicate of this bug. ***
Comment 2 Marco Martin 2022-01-18 15:12:07 UTC
this is again the qquickitem still having a dangling pointer to its (former) qquickwindow, I've seen various forms of this crash.

In plsma-framework master there isa workaround to mitigate this issue, tough there is still an internal upstream issue in QML which isn't really clear yet how it happens
Comment 3 Marco Martin 2022-01-18 15:13:17 UTC
in your 3 screens setup, do you always have one missing desktop when plasma finally comes up or only some times?
Comment 4 Billy 2022-01-18 16:51:18 UTC
Created attachment 145621 [details]
q09aI97pCrai72Ul.png

   Marco,

   Honestly its random when it happens. Generally when I do a "zypper
   dup" I reboot and that is when I am most likely experience the bug. My
   solution are one of the following or a combination of both:

   1) Go to the display properties and disable the compositor, this
   generally gets the screen layout the way its supposed to be. I then
   enable the compositor again


   2) Go to the display properties and disable / enable the affected
   monitor. Once again this gets the display back to normal. Also, the
   issue generally affects DisplayPort-0

   Thank you,

   Billy

   On 1/18/22 09:13, Marco Martin wrote:

     https://bugs.kde.org/show_bug.cgi?id=446987          
     --- Comment #3 from Marco Martin      <notmart@gmail.com> [1]      ---
     in your 3 screens setup, do you always have one missing desktop when plasma
     finally comes up or only some times?


   

   1. mailto:notmart@gmail.com
Comment 5 Billy 2022-01-18 16:51:19 UTC
Created attachment 145622 [details]
y0t2azCqrV9AS9FZ.png
Comment 6 Nicolas Fella 2022-01-19 23:29:34 UTC
*** Bug 448747 has been marked as a duplicate of this bug. ***
Comment 7 Billy 2022-01-24 20:46:21 UTC
Created attachment 145882 [details]
q09aI97pCrai72Ul.png

   Not sure if this will help or not, however, this morning after
   restarting my computer after a zypper dup all the screens were
   crashing, only the pointer was available and my usual fixes were not
   working. The keyboard shortcuts were working and I was able to launch
   quick setting and changed my sessions from save session to start with
   a new session and that fixed the issue...

   Billy

   On 1/18/22 10:51, Billy Draper wrote:

   Marco,

   Honestly its random when it happens. Generally when I do a "zypper
   dup" I reboot and that is when I am most likely experience the bug. My
   solution are one of the following or a combination of both:

   1) Go to the display properties and disable the compositor, this
   generally gets the screen layout the way its supposed to be. I then
   enable the compositor again


   2) Go to the display properties and disable / enable the affected
   monitor. Once again this gets the display back to normal. Also, the
   issue generally affects DisplayPort-0

   Thank you,

   Billy

   On 1/18/22 09:13, Marco Martin wrote:

     https://bugs.kde.org/show_bug.cgi?id=446987          
     --- Comment #3 from Marco Martin      <notmart@gmail.com> [1]      ---
     in your 3 screens setup, do you always have one missing desktop when plasma
     finally comes up or only some times?


   

   1. mailto:notmart@gmail.com
Comment 8 Billy 2022-01-24 20:46:22 UTC
Created attachment 145883 [details]
y0t2azCqrV9AS9FZ.png
Comment 9 Nate Graham 2023-04-10 23:06:29 UTC
Mose of the code here has changed to improve multimonitor use-cases in Plasma 5.27, so the original crash is likely no longer possible. If you experience more crashes with Plasma 5.27.4 or newer, please submit additional bug reports for them. Thanks!
Comment 10 Nate Graham 2023-07-25 21:22:57 UTC
*** Bug 466730 has been marked as a duplicate of this bug. ***
Comment 11 Nate Graham 2023-07-26 18:49:24 UTC
*** Bug 472642 has been marked as a duplicate of this bug. ***
Comment 12 Nate Graham 2023-07-26 18:50:53 UTC
Got a new report from someone using Plasma 5.27.5; re-opening. Looks like it could be a Qt issue.
Comment 13 Yurii 2023-09-13 10:42:56 UTC
Plasma version 5.27.7, the bug still persists.
Comment 14 Yurii 2023-10-17 10:12:03 UTC
Any chance this will be fixed in Plasma 6?