lxqt / lxqt-session

The LXQt session manager
https://lxqt.github.io
GNU Lesser General Public License v2.1
57 stars 52 forks source link

Disable crashing calls on Wayland #469

Closed tsujan closed 1 year ago

tsujan commented 1 year ago

They are screen locking before suspend and reloading the settings of lxqt-config-monitor

Fixes https://github.com/lxqt/lxqt-session/issues/457 and is related to https://github.com/lxqt/lxqt-config/issues/916

stefonarch commented 1 year ago

There's something: on suspend/resume lxqt-powermanagement crashes (and is restarted):


mar 18 07:00:44 systemd-logind[438]: Suspending...
mar 18 07:00:44 systemd[1]: systemd-coredump@29-594080-0.service: Deactivated successfully.
mar 18 07:00:44 systemd-coredump[594081]: [🡕] Process 592821 (lxqt-powermanag) of user 1000 dumped core.

                                          Stack trace of thread 592821:
                                          #0  0x00007f9eac7b2719 _ZN4LXQt18ScreenSaverPrivate19isScreenSaverLockedEv (liblxqt.so.1 + 0x49719)
                                          #1  0x00007f9eac7b2d8c _ZN4LXQt11ScreenSaver10lockScreenEv (liblxqt.so.1 + 0x49d8c)
                                          #2  0x0000560bc1385e42 n/a (lxqt-powermanagement + 0xee42)
                                          #3  0x00007f9eab2bea71 n/a (libQt5Core.so.5 + 0x2bea71)
                                          #4  0x0000560bc1382a14 n/a (lxqt-powermanagement + 0xba14)
                                          #5  0x0000560bc138387f n/a (lxqt-powermanagement + 0xc87f)
                                          #6  0x00007f9eac54c45f n/a (libQt5DBus.so.5 + 0x6145f)
                                          #7  0x00007f9eab2b1bb0 _ZN7QObject5eventEP6QEvent (libQt5Core.so.5 + 0x2b1bb0)
                                          #8  0x00007f9eabf78b5c _ZN19QApplicationPrivate13notify_helperEP7QObjectP6QEvent (libQt5Widgets.so.5 + 0x178b5c)
                                          #9  0x00007f9eab28df48 _ZN16QCoreApplication15notifyInternal2EP7QObjectP6QEvent (libQt5Core.so.5 + 0x28df48)
                                          #10 0x00007f9eab28ea53 _ZN23QCoreApplicationPrivate16sendPostedEventsEP7QObjectiP11QThreadData (libQt5Core.so.5 + 0x28ea53)
                                          #11 0x00007f9eab2d4e88 n/a (libQt5Core.so.5 + 0x2d4e88)
                                          #12 0x00007f9eaa928afb g_main_context_dispatch (libglib-2.0.so.0 + 0x5aafb)
                                          #13 0x00007f9eaa9855d9 n/a (libglib-2.0.so.0 + 0xb75d9)
                                          #14 0x00007f9eaa926382 g_main_context_iteration (libglib-2.0.so.0 + 0x58382)
                                          #15 0x00007f9eab2d8c6c _ZN20QEventDispatcherGlib13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE (libQt5Core.so.5 + 0x2d8c6c)
                                          #16 0x00007f9eab2866ec _ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE (libQt5Core.so.5 + 0x2866ec)
                                          #17 0x00007f9eab291219 _ZN16QCoreApplication4execEv (libQt5Core.so.5 + 0x291219)
                                          #18 0x0000560bc138213b n/a (lxqt-powermanagement + 0xb13b)
                                          #19 0x00007f9eaaa3c790 n/a (libc.so.6 + 0x23790)
                                          #20 0x00007f9eaaa3c84a __libc_start_main (libc.so.6 + 0x2384a)
                                          #21 0x0000560bc1382725 _start (lxqt-powermanagement + 0xb725)

                                          Stack trace of thread 592842:
                                          #0  0x00007f9eaab139df __poll (libc.so.6 + 0xfa9df)
                                          #1  0x00007f9eaa98553f n/a (libglib-2.0.so.0 + 0xb753f)
                                          #2  0x00007f9eaa926382 g_main_context_iteration (libglib-2.0.so.0 + 0x58382)
                                          #3  0x00007f9eab2d8c6c _ZN20QEventDispatcherGlib13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE (libQt5Core.so.5 + 0x2d8c6c)
                                          #4  0x00007f9eab2866ec _ZN10QEventLoop4execE6QFlagsINS_17ProcessEventsFlagEE (libQt5Core.so.5 + 0x2866ec)
                                          #5  0x00007f9eab0e725f _ZN7QThread4execEv (libQt5Core.so.5 + 0xe725f)
                                          #6  0x00007f9eac50ecba n/a (libQt5DBus.so.5 + 0x23cba)
                                          #7  0x00007f9eab0e432a n/a (libQt5Core.so.5 + 0xe432a)

(gdb) where
#0  LXQt::ScreenSaverPrivate::isScreenSaverLocked() (this=0x560bc251d6b0) at /tmp/liblxqt/lxqtscreensaver.cpp:196
#1  0x00007f9eac7b2d8c in LXQt::ScreenSaver::lockScreen() (this=0x560bc24ef6a8) at /tmp/liblxqt/lxqtscreensaver.cpp:253
#2  0x0000560bc1385e42 in  ()
#3  0x00007f9eab2bea71 in  () at /usr/lib/libQt5Core.so.5
#4  0x0000560bc1382a14 in  ()
#5  0x0000560bc138387f in  ()
#6  0x00007f9eac54c45f in  () at /usr/lib/libQt5DBus.so.5
#7  0x00007f9eab2b1bb0 in QObject::event(QEvent*) () at /usr/lib/libQt5Core.so.5
#8  0x00007f9eabf78b5c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#9  0x00007f9eab28df48 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#10 0x00007f9eab28ea53 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib/libQt5Core.so.5
#11 0x00007f9eab2d4e88 in  () at /usr/lib/libQt5Core.so.5
#12 0x00007f9eaa928afb in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#13 0x00007f9eaa9855d9 in  () at /usr/lib/libglib-2.0.so.0
#14 0x00007f9eaa926382 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#15 0x00007f9eab2d8c6c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#16 0x00007f9eab2866ec in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#17 0x00007f9eab291219 in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5
#18 0x0000560bc138213b in  ()
#19 0x00007f9eaaa3c790 in  () at /usr/lib/libc.so.6
#20 0x00007f9eaaa3c84a in __libc_start_main () at /usr/lib/libc.so.6
#21 0x0000560bc1382725 in _start ()

Session doesn't crash, and lxqt-config-monitor does not start and crash too.

stefonarch commented 1 year ago

Also https://github.com/lxqt/lxqt-powermanagement/issues/342 is present again, it was solved in the previous PR.

tsujan commented 1 year ago

Also lxqt/lxqt-powermanagement#342 is present again, it was solved in the previous PR.

This PR includes the previous one; it just adds lxqt-config-monitor to the exception list.

Are you sure that you've compiled/tested the correct branch?

stefonarch commented 1 year ago

Are you sure that you've compiled/tested the correct branch?

Yes. But recompiled to be sure and now the crash is gone. But didn't switch branches...

stefonarch commented 1 year ago

ok, it looks like the crash happens only if "lock screen on lid close" is checked in lxqt-config-powermanagement. Will recheck the other PR, there it was fixed.

tsujan commented 1 year ago

Will recheck the other PR, there it was fixed.

I don't think it was. More probably, you've found another source of crash on Wayland.

stefonarch commented 1 year ago

What is strange: I change settings from in "lid action" from "suspend" to "lock screen" or vice-versa and it activates the new setting only at the 2nd lid closure. Will do more tests. Btw "Ask" is still there as an option for "lid close action".

tsujan commented 1 year ago

Oh, the last crash is the same as in your other report: https://github.com/lxqt/lxqt-powermanagement/issues/342. It isn't related to lxqt-session.

stefonarch commented 1 year ago

Yes. I tested again https://github.com/lxqt/lxqt-session/pull/468 and it looks that I was wrong about https://github.com/lxqt/lxqt-powermanagement/issues/342 : it was not solved there too.