Summary: | Plasmashell crashes in PanelView::updateFloating() after rebooting | ||
---|---|---|---|
Product: | [Plasma] plasmashell | Reporter: | the_archer_xz |
Component: | general | Assignee: | Plasma Bugs List <plasma-bugs> |
Status: | RESOLVED DUPLICATE | ||
Severity: | crash | CC: | kde, nate, niccolo.venerandi |
Priority: | NOR | Keywords: | drkonqi |
Version: | 5.25.5 | ||
Target Milestone: | 1.0 | ||
Platform: | unspecified | ||
OS: | Linux | ||
See Also: | https://bugs.kde.org/show_bug.cgi?id=451147 | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
the_archer_xz
2022-09-18 23:43:56 UTC
[KCrash Handler] #4 0x00007f021416a384 in QScreen::geometry() const () at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5 #5 0x000055736e8d6a85 in PanelView::geometryByDistance(int) const (this=this@entry=0x557372b8dc90, distance=0) at ./shell/panelview.cpp:533 #6 0x000055736e8d6f10 in PanelView::positionPanel() (this=this@entry=0x557372b8dc90) at ./shell/panelview.cpp:519 #7 0x000055736e8d8483 in PanelView::updateFloating() (this=this@entry=0x557372b8dc90) at ./shell/panelview.cpp:1574 #8 0x000055736e8d8538 in PanelView::handleQmlStatusChange(QQmlComponent::Status) (this=0x557372b8dc90, status=<optimized out>) at ./shell/panelview.cpp:1378 Similar to Bug 451147, but the backtraces are not exactly the same. Both crash in PanelView::geometryByDistance, but in this, we got there through PanelView::positionPanel() and PanelView::updateFloating(); in that one we got there through PanelView::resizeEvent() I would relatively confidently say that it's a duplicate of the bug you commented; there's no real difference in positionPanel when called from stuff like changing the panel screen side vs the panel becoming bigger because of floating panels. One thing I can say is that calling positionPanel from updateFloating is actually probably not necessary, resizePanel is enough (I think I put both "for sure"...); but clearly there's some bug that crashes the panel upon resizing pretty much regardless of the target size or resize cause. Looking at the traceback, it seems that it crashes on ``` QScreen *s = m_screenToFollow; const QRect screenGeometry = s->geometry(); ``` which is... simply reading the geometry of the screen the panel is in, and has nothing to do with the panel? Maybe it sometimes the screen is not "ready" for its geometry to be read (especially if you consider it happens after sleep)? maybe there's an issue with getting the screen that the panel is following? I think for a further investigation kwin folks are probably better than me at this point, it really does not seem to be related to the panel itself (surely not floating); but I can see if it's some mis-management of the m_screenToFollow within the panel, thought I doubt that Yeah, it's quite possible that the screen it targeted was null at the time due to Bug 450068. Can you mention your findings in Bug 451147 too? Thanks! *** This bug has been marked as a duplicate of bug 451147 *** |