Bug 457554 - Plasma crashes on screen rotate if panel is smaller than 44px
Summary: Plasma crashes on screen rotate if panel is smaller than 44px
Status: RESOLVED DUPLICATE of bug 454064
Alias: None
Product: plasmashell
Classification: Plasma
Component: Panel (show other bugs)
Version: 5.25.4
Platform: Manjaro Linux
: NOR crash
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-08-06 14:15 UTC by Plata
Modified: 2022-09-09 18:15 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Plata 2022-08-06 14:15:47 UTC
SUMMARY
On MS Surface Go 2 with 200% scaling: if I reduce the panel height to less than 44px, Plasma crashes when rotating from landscape to portrait.


STEPS TO REPRODUCE
1. Set scaling to 200%.
2. Change the panel height to something less than 44px, e.g. 20px to easily see the difference.
3. Rotate the screen from landscape to portrait.

OBSERVED RESULT
1. The panel doesn't fit.
2. The screen rotation doesn't complete properly (lower part of the screen is black).
3. Everything becomes black (panel and background disappears). Probably it crashed.
4. The panel and background comes back. Now, the panel is higher again.
5. Rotate back to landscape and the panel is smaller again.

EXPECTED RESULT
The panel keeps the desired size and nothing crashes.

SOFTWARE/OS VERSIONS
Linux: Manjaro
KDE Plasma Version: 5.25.4
KDE Frameworks Version: 5.96.0
Qt Version: 5.15.5
Comment 1 Nate Graham 2022-08-08 17:14:47 UTC
Cannot reproduce on my ThinkPad X1 Yoga. And if something crashed, we need a backtrace of it so we can figure out what's going on. See https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports.

Can you please attach one? Thanks!
Comment 2 Plata 2022-08-08 17:26:38 UTC
I didn't see the KDE Crash Report dialog. I actually do not know if it really crashed. It was just an assumption because everything went black.

I'll try to collect some more information.
Comment 3 Plata 2022-08-13 12:05:05 UTC
Core was generated by `/usr/bin/plasmashell --no-respawn'.
Program terminated with signal SIGABRT, Aborted.
#0  0x00007f5ff07ba4dc in ?? () from /usr/lib/libc.so.6
[Current thread is 1 (Thread 0x7f5febed4a80 (LWP 673))]
(gdb) bt
#0  0x00007f5ff07ba4dc in  () at /usr/lib/libc.so.6
#1  0x00007f5ff076a998 in raise () at /usr/lib/libc.so.6
#2  0x00007f5ff075453d in abort () at /usr/lib/libc.so.6
#3  0x00007f5ff09e8112 in std::__glibcxx_assert_fail(char const*, int, char const*, char const*)
    (file=<optimized out>, line=<optimized out>, function=<optimized out>, condition=<optimized out>)
    at /usr/src/debug/gcc/libstdc++-v3/src/c++11/debug.cc:60
#4  0x0000556424095b50 in  ()
#5  0x0000556424096d75 in  ()
#6  0x000055642409b39c in  ()
#7  0x00007f5ff0e0a341 in  () at /usr/lib/libQt5Core.so.5
#8  0x00007f5ff1588907 in QScreen::geometryChanged(QRect const&) () at /usr/lib/libQt5Gui.so.5
#9  0x00007f5ff11daf7d in  () at /usr/lib/libQt5Gui.so.5
#10 0x00007f5ff11ba6a7 in QGuiApplicationPrivate::processScreenGeometryChange(QWindowSystemInterfacePrivate::ScreenGeometryEvent*) () at /usr/lib/libQt5Gui.so.5
--Type <RET> for more, q to quit, c to continue without paging--
#11 0x00007f5ff1199935 in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
    at /usr/lib/libQt5Gui.so.5
#12 0x00007f5feeaa4fe5 in  () at /usr/lib/libQt5WaylandClient.so.5
#13 0x00007f5fef1c8c6b in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#14 0x00007f5fef21f001 in  () at /usr/lib/libglib-2.0.so.0
#15 0x00007f5fef1c6392 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#16 0x00007f5ff0e2432c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
    at /usr/lib/libQt5Core.so.5
#17 0x00007f5ff0dd227c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#18 0x00007f5ff0ddcda9 in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5
#19 0x000055642407e123 in  ()
#20 0x00007f5ff07552d0 in  () at /usr/lib/libc.so.6
#21 0x00007f5ff075538a in __libc_start_main () at /usr/lib/libc.so.6
#22 0x000055642407e4d5 in  ()
Comment 4 Plata 2022-08-13 12:09:22 UTC
This is from coredumpctl. I hope it helps. Was a bit surprised to see SIGABRT and not SIGSEGV. Should this raise the KDE Crash Report tool normally?
Comment 5 Plata 2022-08-13 12:23:26 UTC
Like I wrote in the initial description, the panel goes back to it's original height after the crash (in portrait mode). If I change the height also in portrait mode now, I can rotate with no issues.
Same behavior from landscape to portrait or vice versa.
As if it's not one panel but two.
Comment 6 Nate Graham 2022-08-15 16:40:22 UTC
Thank you for the backtrace! Unfortunately it's is incomplete and missing debug symbols for the following lines that we need to figure out exactly what's going wrong:

> #4  0x0000556424095b50 in  ()
> #5  0x0000556424096d75 in  ()
> #6  0x000055642409b39c in  ()
> #7  0x00007f5ff0e0a341 in  () at /usr/lib/libQt5Core.so.5

Could you please install debug symbols for Qt and Plasma, reproduce the crash, and attach a new symbolicated backtrace? See https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports

Thanks again!
Comment 7 Plata 2022-08-18 16:52:28 UTC
Sorry, I had installed debuginfod but not realized that it had not worked for some reason. So hopefully correctly this time:

Core was generated by `/usr/bin/plasmashell --no-respawn'.
Program terminated with signal SIGABRT, Aborted.
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_
kill.c:44                                                                                                            
44            return INTERNAL_SYSCALL_ERROR_P (ret) ? INTERNAL_SYSCALL_ERRNO (ret) : 0;
[Current thread is 1 (Thread 0x7fc9b7f35a80 (LWP 705))]
(gdb) bt
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0)
   at pthread_kill.c:44
#1  0x00007fc9bc81d543 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78
#2  0x00007fc9bc7cd998 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#3  0x00007fc9bc7b753d in __GI_abort () at abort.c:79
#4  0x00007fc9bca4e112 in std::__glibcxx_assert_fail(char const*, int, char const*, char const*)
   (file=file@entry=0x55b9fd9048f8 "/usr/include/c++/12.1.1/bits/stl_algo.h", line=line@entry=3623, function=functi
on@entry=0x55b9fd9048a0 "constexpr const _Tp& std::clamp(const _Tp&, const _Tp&, const _Tp&) [with _Tp = int]", cond
ition=condition@entry=0x55b9fd904693 "!(__hi < __lo)") at /usr/src/debug/gcc/libstdc++-v3/src/c++11/debug.cc:60
#5  0x000055b9fd8beb50 in std::clamp<int>(int const&, int const&, int const&)
   (__val=<optimized out>, __lo=<optimized out>, __hi=<optimized out>)
   at /usr/include/c++/12.1.1/bits/stl_algo.h:3621
#6  std::clamp<int>(int const&, int const&, int const&) (__hi=<synthetic pointer>: <optimized out>, __lo=<synthetic
pointer>: <optimized out>, __val=@0x55b9ff5597f4: 1336) at /usr/include/c++/12.1.1/bits/stl_algo.h:3621
#7  PanelView::resizePanel() (this=this@entry=0x55b9ff5597b0) at /usr/src/debug/plasma-workspace-5.25.4/shell/panelv
iew.cpp:629                                                                                                          
#8  0x000055b9fd8bfd75 in PanelView::setThickness(int) (this=this@entry=0x55b9ff5597b0, value=<optimized out>) at /u
sr/src/debug/plasma-workspace-5.25.4/shell/panelview.cpp:269                                                         
#9  0x000055b9fd8c439c in PanelView::restore() (this=0x55b9ff5597b0) at /usr/src/debug/plasma-workspace-5.25.4/shell
/panelview.cpp:670                                                                                                   
#10 0x00007fc9bce70341 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffdda926430, r=<optimized out>, t
his=0x55b9ffcaba10, this=<optimized out>, r=<optimized out>, a=<optimized out>) at ../../include/QtCore/../../src/co
relib/kernel/qobjectdefs_impl.h:398                                                                                  
#11 doActivate<false>(QObject*, int, void**) (sender=0x55b9ff205930, signal_index=3, argv=0x7ffdda926430) at kernel/
qobject.cpp:3886                                                                                                     
#12 0x00007fc9bd5ee907 in QScreen::geometryChanged(QRect const&) (this=<optimized out>, _t1=<optimized out>) at .moc
/moc_qscreen.cpp:372                                                                                                 
#13 0x00007fc9bd240f7d in QScreenPrivate::emitGeometryChangeSignals(bool, bool) (this=0x55b9ff202bd0, geometryChange
d=<optimized out>, availableGeometryChanged=<optimized out>) at kernel/qscreen.cpp:98
#14 0x00007fc9bd2206a7 in QGuiApplicationPrivate::processScreenGeometryChange(QWindowSystemInterfacePrivate::ScreenG
eometryEvent*) (e=<optimized out>) at kernel/qguiapplication.cpp:3176                                                
#15 QGuiApplicationPrivate::processScreenGeometryChange(QWindowSystemInterfacePrivate::ScreenGeometryEvent*) (e=<opt
imized out>) at kernel/qguiapplication.cpp:3155
#16 0x00007fc9bd1ff935 in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) (fla
gs=...) at kernel/qwindowsysteminterface.cpp:1169
#17 0x00007fc9bab05fe5 in userEventSourceDispatch(_GSource*, int (*)(void*), void*) () at /usr/lib/libQt5WaylandClie
nt.so.5                                                                                                              
#18 0x00007fc9bb229c6b in g_main_dispatch (context=0x55b9ff203670) at ../glib/glib/gmain.c:3417
#19 g_main_context_dispatch (context=0x55b9ff203670) at ../glib/glib/gmain.c:4135
#20 0x00007fc9bb280001 in g_main_context_iterate.constprop.0 (context=context@entry=0x55b9ff203670, block=block@entr
y=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4211
#21 0x00007fc9bb227392 in g_main_context_iteration (context=0x55b9ff203670, may_block=1) at ../glib/glib/gmain.c:427
6
#22 0x00007fc9bce8a32c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x55b9ff2
051c0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#23 0x00007fc9bce3827c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7ffdda9267a0, flags=...) a
t ../../include/QtCore/../../src/corelib/global/qflags.h:69
#24 0x00007fc9bce42da9 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#25 0x00007fc9bd211092 in QGuiApplication::exec() () at kernel/qguiapplication.cpp:1867
#26 0x00007fc9bda9ef4a in QApplication::exec() () at kernel/qapplication.cpp:2829
#27 0x000055b9fd8a7123 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/plasma-wo
rkspace-5.25.4/shell/main.cpp:243
Comment 9 Nate Graham 2022-08-19 19:18:38 UTC
Ah, so it was that, yeah.

*** This bug has been marked as a duplicate of bug 454064 ***
Comment 10 Plata 2022-09-09 12:08:13 UTC
The crash doesn't happen anymore but the panel has still the old height after rotating. Is this the intended behavior?
Comment 11 Nate Graham 2022-09-09 18:15:47 UTC
Yeah.