https://bugs.kde.org/show_bug.cgi?id=411730

            Bug ID: 411730
           Summary: powerdevil 5.16.4 segmentation faults and aborts when
                    restarting while logging out of Plasma on Wayland
           Product: Powerdevil
           Version: 5.16.4
          Platform: Fedora RPMs
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: general
          Assignee: plasma-b...@kde.org
          Reporter: matthew.fagn...@utoronto.ca
  Target Milestone: ---

Created attachment 122548
  --> https://bugs.kde.org/attachment.cgi?id=122548&action=edit
Full trace of all threads of powerdevil segmentation fault when logging out of
Plasma on Wayland

SUMMARY

I've seen segmentation faults in powerdevil 5.16.4 about 15 times while logging
out of Plasma on Wayland in Fedora 31. drkonqi aborted in most cases when
trying to process the segmentation faults with command lines like
Command Line: /usr/libexec/drkonqi -platform wayland --appname
org_kde_powerdevil --apppath /usr/libexec --signal 11 --pid 1441 --appversion
2.0.0 --programname KDE Power Management System --bugaddress
sub...@bugs.kde.org --startupid 0 --restarted

powerdevil aborted when trying to restart because the connection to the Wayland
compositor had been broken. These crashes have occurred most times I've logged
out of Plasma on Wayland. An example of a trace of the segmentation fault of
powerdevil using coredumpctl gdb showed that occurred in frame #13 in
g_main_context_prepare at ../glib/gmain.c:3530 in glib2-2.61.3-1.fc31.x86_64.
kcrash then had a segmentation fault in __strcmp_sse2_unaligned at
../sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S:31 in
glibc-2.30-4.fc31.x86_64 when handling the powerdevil segmentation fault.

Core was generated by `/usr/libexec/org_kde_powerdevil'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  __strcmp_sse2_unaligned () at
../sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S:31
31              movdqu  (%rdi), %xmm1
[Current thread is 1 (Thread 0x7f77f5549700 (LWP 1578))]

(gdb) bt
#0  __strcmp_sse2_unaligned () at
../sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S:31
#1  0x00007f7808603251 in _nl_make_l10nflist
    (l10nfile_list=l10nfile_list@entry=0x7f780878e738 <_nl_loaded_domains>,
dirlist=dirlist@entry=0x7f780875e6f0 <_nl_default_dirname> "/usr/share/locale",
dirlist_len=18, mask=mask@entry=0, language=language@entry=0x7f77f5544c60
"en_CA.UTF-8", territory=territory@entry=0x0, codeset=0x0,
normalized_codeset=0x0, modifier=0x0, filename=0x7f77f5544c80
"LC_MESSAGES/libc.mo", do_allocate=0)
    at ../intl/l10nflist.c:221
#2  0x00007f7808600fa7 in _nl_find_domain
    (dirname=dirname@entry=0x7f780875e6f0 <_nl_default_dirname>
"/usr/share/locale", locale=locale@entry=0x7f77f5544c60 "en_CA.UTF-8",
domainname=domainname@entry=0x7f77f5544c80 "LC_MESSAGES/libc.mo",
domainbinding=domainbinding@entry=0x0) at finddomain.c:90
#3  0x00007f78086008b5 in __dcigettext
    (domainname=<optimized out>, msgid1=<optimized out>,
msgid2=msgid2@entry=0x0, plural=plural@entry=0, n=n@entry=0,
category=category@entry=5) at dcigettext.c:703
#4  0x00007f78085ff4c3 in __GI___dcgettext
    (domainname=<optimized out>, msgid=<optimized out>,
category=category@entry=5) at dcgettext.c:47
#5  0x00007f780865a092 in __GI___strerror_r
    (errnum=2, buf=buf@entry=0x7f77f5544e10 "", buflen=buflen@entry=1024) at
_strerror.c:71
#6  0x00007f78086223c5 in perror_internal
    (fp=0x7f780878d420 <_IO_2_1_stderr_>, s=0x7f7809d9103c "Warning: connect()
failed: ", errnum=<optimized out>) at perror.c:37
#7  0x00007f7809d8e4c6 in openSocket ()
    at /usr/src/debug/kf5-kcrash-5.61.0-1.fc31.x86_64/src/kcrash.cpp:862
#8  startFromKdeinit(int, char const**) (argc=argc@entry=20,
argv=argv@entry=0x7f77f5548420)
    at /usr/src/debug/kf5-kcrash-5.61.0-1.fc31.x86_64/src/kcrash.cpp:712
--Type <RET> for more, q to quit, c to continue without paging--c
#9  0x00007f7809d8e84d in startProcessInternal(int, char const**, bool, bool)
(argc=argc@entry=20, argv=argv@entry=0x7f77f5548420,
waitAndExit=waitAndExit@entry=true, directly=directly@entry=false) at
/usr/src/debug/kf5-kcrash-5.61.0-1.fc31.x86_64/src/kcrash.cpp:651
#10 0x00007f7809d8f395 in KCrash::startProcess(int, char const**, bool)
(argc=argc@entry=20, argv=argv@entry=0x7f77f5548420,
waitAndExit=waitAndExit@entry=true) at
/usr/src/debug/kf5-kcrash-5.61.0-1.fc31.x86_64/src/kcrash.cpp:637
#11 0x00007f7809d8f847 in KCrash::defaultCrashHandler(int) (sig=11) at
/usr/src/debug/kf5-kcrash-5.61.0-1.fc31.x86_64/src/kcrash.cpp:535
#12 0x00007f78086066b0 in <signal handler called> () at /lib64/libc.so.6
#13 0x00007f780720ad50 in g_main_context_prepare
(context=context@entry=0x7f77e0000c30, priority=priority@entry=0x7f77f5548be0)
at ../glib/gmain.c:3530
#14 0x00007f780720b6cb in g_main_context_iterate
(context=context@entry=0x7f77e0000c30, block=block@entry=1,
dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:3897
#15 0x00007f780720b8d3 in g_main_context_iteration (context=0x7f77e0000c30,
may_block=may_block@entry=1) at ../glib/gmain.c:3978
#16 0x00007f7808c53bb5 in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(this=0x7f77e0000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:422
#17 0x00007f7808bfd9db in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)
(this=this@entry=0x7f77f5548d20, flags=..., flags@entry=...) at
../../include/QtCore/../../src/corelib/global/qflags.h:140
#18 0x00007f7808a56625 in QThread::exec() (this=<optimized out>) at
../../include/QtCore/../../src/corelib/global/qflags.h:120
#19 0x00007f7808a57776 in QThreadPrivate::start(void*) (arg=0x56410973dae0) at
thread/qthread_unix.cpp:361
#20 0x00007f7807c9b4e2 in start_thread (arg=<optimized out>) at
pthread_create.c:479
#21 0x00007f78086cb643 in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:95

The screen remained black after this logout. I pressed sysrq+alt+r,
sysrq+alt+e,
sysrq+alt+i to get sddm to show up again. The black screen occurred less often
than the powerdevil crashes when logging out of Plasma 5.16.x on Wayland. I'll
attach the full trace of all threads.

STEPS TO REPRODUCE
1. Boot Fedora 31 KDE Plasma spin fully updated with updates-testing enabled
2. Log in to Plasma on Wayland from sddm
3. Log out of Plasma

OBSERVED RESULT
powerdevil 5.16.4 segmentation faults and aborts when restarting while logging
out of Plasma on Wayland

EXPECTED RESULT
No crashes


SOFTWARE/OS VERSIONS
Linux/KDE Plasma: Fedora 31
(available in About System)
KDE Plasma Version: 5.16.4
KDE Frameworks Version: 5.61.0
Qt Version: 5.12.4

glib2-0:2.61.3-1.fc31.x86_64
glibc-0:2.30-4.fc31.x86_64
kernel-0:5.3.0-0.rc7.git0.1.fc31.x86_64
kf5-kwayland-0:5.61.0-1.fc31.x86_64
libwayland-client-0:1.17.0-2.fc31.x86_64
powerdevil-0:5.16.4-1.fc31.x86_64
qt5-qtwayland-0:5.12.4-7.fc31.x86_64

ADDITIONAL INFORMATION

I saw segmentation faults of powerdevil 5.15.5 when logging out of Plasma on
Wayland in Fedora 30 which I reported at
https://bugs.kde.org/show_bug.cgi?id=408553 The traces were different with
Plasma 5.15.5 which is why I've made another report. The underlying invalid
reads and writes which were use-after-free errors involving libwayland-client
and kwayland I reported in #408553 might be involved.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to