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

            Bug ID: 466183
           Summary: x11 nested kwin_wayland crashes on exit
    Classification: Plasma
           Product: kwin
           Version: unspecified
          Platform: Other
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: core
          Assignee: kwin-bugs-n...@kde.org
          Reporter: sit...@kde.org
  Target Milestone: ---

STEPS TO REPRODUCE
1. be on x11
2. kwin_wayland --no-global-shortcuts
3. close window using window decoration, or INT it, or TERM it, or QUIT it

OBSERVED RESULT
Crash about half the time

EXPECTED RESULT
No crash

SOFTWARE/OS VERSIONS
Operating System: KDE neon Unstable Edition
KDE Plasma Version: 5.27.80
KDE Frameworks Version: 5.104.0
Qt Version: 5.15.8
Kernel Version: 5.19.0-28-generic (64-bit)
Graphics Platform: X11
Processors: 12 × AMD Ryzen 5 3600X 6-Core Processor
Memory: 31,3 GiB of RAM
Graphics Processor: AMD Radeon RX 5700 XT

ADDITIONAL INFORMATION

kwin(97496)/(kwin_wayland_x11windowed)
KWin::X11WindowedBackend::handleClientMessage: Backend window is going to be
closed, shutting down.
corrupted double-linked list
Process 97496 stopped
* thread #1, name = 'kwin_wayland', stop reason = signal SIGABRT
    frame #0: 0x00007f8876a96a7c libc.so.6`__GI___pthread_kill at
pthread_kill.c:44:76
(lldb) bt all
* thread #1, name = 'kwin_wayland', stop reason = signal SIGABRT
  * frame #0: 0x00007f8876a96a7c libc.so.6`__GI___pthread_kill at
pthread_kill.c:44:76
    frame #1: 0x00007f8876a96a30 libc.so.6`__GI___pthread_kill [inlined]
__pthread_kill_internal(signo=6, threadid=140224031688128) at
pthread_kill.c:78:10
    frame #2: 0x00007f8876a96a30
libc.so.6`__GI___pthread_kill(threadid=140224031688128, signo=6) at
pthread_kill.c:89:10
    frame #3: 0x00007f8876a42476 libc.so.6`__GI_raise(sig=6) at raise.c:26:13
    frame #4: 0x00007f8876a287f3 libc.so.6`__GI_abort at abort.c:79:7
    frame #5: 0x00007f8876a896f6 libc.so.6`__libc_message(action=do_abort,
fmt="%s\n") at libc_fatal.c:155:5
    frame #6: 0x00007f8876aa0d7c libc.so.6`malloc_printerr(str="corrupted
double-linked list") at malloc.c:5664:3
    frame #7: 0x00007f8876aa184c libc.so.6`unlink_chunk(p=<unavailable>,
av=<unavailable>) at malloc.c:1635:5
    frame #8: 0x00007f8876aa19e9
libc.so.6`malloc_consolidate(av=0x00007f8876c19c80) at malloc.c:4780:6
    frame #9: 0x00007f8876aa2f20 libc.so.6`_int_free(av=0x00007f8876c19c80,
p=0x0000556159d1ea40, have_lock=<unavailable>) at malloc.c:4674:2
    frame #10: 0x00007f8876aa54d3 libc.so.6`__GI___libc_free(mem=<unavailable>)
at malloc.c:3391:7
    frame #11: 0x00007f887a3e258f
libkwin.so.5`QTypedArrayData<char>::deallocate(data=0x0000556159d20060) at
qarraydata.h:240:9
    frame #12: 0x00007f887a3de000
libkwin.so.5`QByteArray::~QByteArray(this=0x00005561592579a8) at
qbytearray.h:495:57
    frame #13: 0x00007f887a943848
libkwin.so.5`KWaylandServer::KeyboardInterfacePrivate::~KeyboardInterfacePrivate(this=0x0000556159257940)
at keyboard_interface_p.h:20:7
    frame #14: 0x00007f887a943889
libkwin.so.5`KWaylandServer::KeyboardInterfacePrivate::~KeyboardInterfacePrivate(this=0x0000556159257940)
at keyboard_interface_p.h:20:7
    frame #15: 0x00007f887a9442fc
libkwin.so.5`std::default_delete<KWaylandServer::KeyboardInterfacePrivate>::operator(this=0x00005561592578d0,
__ptr=0x0000556159257940)(KWaylandServer::KeyboardInterfacePrivate*) const at
unique_ptr.h:95:2
    frame #16: 0x00007f887a9436c3
libkwin.so.5`std::unique_ptr<KWaylandServer::KeyboardInterfacePrivate,
std::default_delete<KWaylandServer::KeyboardInterfacePrivate>>::~unique_ptr(this=0x556159257940)
at unique_ptr.h:396:4
    frame #17: 0x00007f887a94264b
libkwin.so.5`KWaylandServer::KeyboardInterface::~KeyboardInterface(this=0x00005561592578c0)
at keyboard_interface.cpp:130:39
    frame #18: 0x00007f887a942679
libkwin.so.5`KWaylandServer::KeyboardInterface::~KeyboardInterface(this=0x00005561592578c0)
at keyboard_interface.cpp:130:39
    frame #19: 0x00007f887a9842ac
libkwin.so.5`std::default_delete<KWaylandServer::KeyboardInterface>::operator(this=0x00005561591e1480,
__ptr=0x00005561592578c0)(KWaylandServer::KeyboardInterface*) const at
unique_ptr.h:95:2
    frame #20: 0x00007f887a983c43
libkwin.so.5`std::unique_ptr<KWaylandServer::KeyboardInterface,
std::default_delete<KWaylandServer::KeyboardInterface>>::~unique_ptr(this=0x5561592578c0)
at unique_ptr.h:396:4
    frame #21: 0x00007f887a982a1e
libkwin.so.5`KWaylandServer::SeatInterfacePrivate::~SeatInterfacePrivate(this=0x00005561591e1400)
at seat_interface_p.h:33:7
    frame #22: 0x00007f887a982a69
libkwin.so.5`KWaylandServer::SeatInterfacePrivate::~SeatInterfacePrivate(this=0x00005561591e1400)
at seat_interface_p.h:33:7
    frame #23: 0x00007f887a984bac
libkwin.so.5`std::default_delete<KWaylandServer::SeatInterfacePrivate>::operator(this=0x0000556159257350,
__ptr=0x00005561591e1400)(KWaylandServer::SeatInterfacePrivate*) const at
unique_ptr.h:95:2
    frame #24: 0x00007f887a980de3
libkwin.so.5`std::unique_ptr<KWaylandServer::SeatInterfacePrivate,
std::default_delete<KWaylandServer::SeatInterfacePrivate>>::~unique_ptr(this=0x5561591e1400)
at unique_ptr.h:396:4
    frame #25: 0x00007f887a97851f
libkwin.so.5`KWaylandServer::SeatInterface::~SeatInterface(this=0x0000556159257340)
at seat_interface.cpp:107:1
    frame #26: 0x00007f887a978549
libkwin.so.5`KWaylandServer::SeatInterface::~SeatInterface(this=0x0000556159257340)
at seat_interface.cpp:102:1
    frame #27: 0x00007f88786e711e
libQt5Core.so.5`QObjectPrivate::deleteChildren() + 110
    frame #28: 0x00007f88786f21a6 libQt5Core.so.5`QObject::~QObject() + 1046
    frame #29: 0x00007f887a926a30
libkwin.so.5`KWaylandServer::Display::~Display(this=0x0000556159252600) at
display.cpp:50:1
    frame #30: 0x00007f887a93b354
libkwin.so.5`KWaylandServer::FilteredDisplay::~FilteredDisplay(this=0x0000556159252600)
at filtered_display.cpp:50:1
    frame #31: 0x00007f887a77852b
libkwin.so.5`KWin::KWinDisplay::~KWinDisplay(this=0x0000556159252600) at
wayland_server.cpp:102:7
    frame #32: 0x00007f887a778559
libkwin.so.5`KWin::KWinDisplay::~KWinDisplay(this=0x0000556159252600) at
wayland_server.cpp:102:7
    frame #33: 0x00007f88786e711e
libQt5Core.so.5`QObjectPrivate::deleteChildren() + 110
    frame #34: 0x00007f88786f21a6 libQt5Core.so.5`QObject::~QObject() + 1046
    frame #35: 0x00007f887a76e8b5
libkwin.so.5`KWin::WaylandServer::~WaylandServer(this=0x0000556159248ca0) at
wayland_server.cpp:225:1
    frame #36: 0x00007f887a76e8d9
libkwin.so.5`KWin::WaylandServer::~WaylandServer(this=0x0000556159248ca0) at
wayland_server.cpp:223:1
    frame #37: 0x00007f88786e711e
libQt5Core.so.5`QObjectPrivate::deleteChildren() + 110
    frame #38: 0x00007f88786f21a6 libQt5Core.so.5`QObject::~QObject() + 1046
    frame #39: 0x00007f887a652a7b
libkwin.so.5`KWin::Application::~Application(this=0x00007ffe40d5a270) at
main.cpp:143:1
    frame #40: 0x0000556157d344cc
kwin_wayland`KWin::ApplicationWayland::~ApplicationWayland(this=0x00007ffe40d5a270)
at main_wayland.cpp:132:1
    frame #41: 0x0000556157d37a1f kwin_wayland`main(argc=2,
argv=0x00007ffe40d5a4a8) at main_wayland.cpp:617:1
    frame #42: 0x00007f8876a29d90
libc.so.6`__libc_start_call_main(main=(kwin_wayland`main at
main_wayland.cpp:266), argc=2, argv=0x00007ffe40d5a4a8) at
libc_start_call_main.h:58:16
    frame #43: 0x00007f8876a29e40
libc.so.6`__libc_start_main_impl(main=(kwin_wayland`main at
main_wayland.cpp:266), argc=2, argv=0x00007ffe40d5a4a8, init=<unavailable>,
fini=<unavailable>, rtld_fini=<unavailable>, stack_end=0x00007ffe40d5a498) at
libc-start.c:392:3
    frame #44: 0x0000556157cd27d5 kwin_wayland`_start + 37
  thread #2, name = 'QDBusConnection'
    frame #0: 0x00007f8876b18d7f libc.so.6`__GI___poll(fds=0x00007f886c0053c0,
nfds=3, timeout=-1) at poll.c:29:10
    frame #1: 0x00007f887af66666 libglib-2.0.so.0`___lldb_unnamed_symbol2709 +
390
    frame #2: 0x00007f887af0f3e3 libglib-2.0.so.0`g_main_context_iteration + 51
    frame #3: 0x00007f8878715ad8
libQt5Core.so.5`QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
+ 104
    frame #4: 0x00007f88786ba99b
libQt5Core.so.5`QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 299
    frame #5: 0x00007f88784cd4e2 libQt5Core.so.5`QThread::exec() + 98
    frame #6: 0x00007f887ae41f1b libQt5DBus.so.5`___lldb_unnamed_symbol1355 +
27
    frame #7: 0x00007f88784ce703 libQt5Core.so.5`___lldb_unnamed_symbol9629 +
275
    frame #8: 0x00007f8876a94b43 libc.so.6`start_thread(arg=<unavailable>) at
pthread_create.c:442:8
    frame #9: 0x00007f8876b26a00 libc.so.6`__clone3 at clone3.S:81




the crash doesn't always end in this trace but it seems to always be in a free.
e.g. another one:




#0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=140459150689728)
at ./nptl/pthread_kill.c:44
#1  __pthread_kill_internal (signo=6, threadid=140459150689728) at
./nptl/pthread_kill.c:78
#2  __GI___pthread_kill (threadid=140459150689728, signo=signo@entry=6) at
./nptl/pthread_kill.c:89
#3  0x00007fbf34e42476 in __GI_raise (sig=sig@entry=6) at
../sysdeps/posix/raise.c:26
#4  0x00007fbf34e287f3 in __GI_abort () at ./stdlib/abort.c:79
#5  0x00007fbf34e896f6 in __libc_message (action=action@entry=do_abort,
fmt=fmt@entry=0x7fbf34fdbb8c "%s\n") at ../sysdeps/posix/libc_fatal.c:155
#6  0x00007fbf34ea0d7c in malloc_printerr (str=str@entry=0x7fbf34fde740
"free(): invalid next size (fast)") at ./malloc/malloc.c:5664
#7  0x00007fbf34ea2b1d in _int_free (av=0x7fbf35019c80 <main_arena>,
p=0x555c19d9d9a0, have_lock=0) at ./malloc/malloc.c:4522
#8  0x00007fbf34ea54d3 in __GI___libc_free (mem=<optimized out>) at
./malloc/malloc.c:3391
#9  0x00007fbf368e711e in QObjectPrivate::deleteChildren()
(this=0x555c1a0408d0) at kernel/qobject.cpp:2137
#10 0x00007fbf368f21a6 in QObject::~QObject() (this=<optimized out>,
__in_chrg=<optimized out>) at kernel/qobject.cpp:1115
#11 0x00007fbf3612713b in
KGlobalAccelSingleton::KGlobalAccelSingleton()::{lambda()#1}::_FUN() () at
./obj-x86_64-linux-gnu/src/kglobalaccel_component_interface.cpp:25
#12 0x00007fbf368be222 in qt_call_post_routines() () at
kernel/qcoreapplication.cpp:336
#13 0x00007fbf3576ce78 in QApplication::~QApplication() (this=0x7ffdeed57040,
__in_chrg=<optimized out>) at kernel/qapplication.cpp:711
#14 0x00007fbf38852a7b in KWin::Application::~Application()
(this=0x7ffdeed57040) at /home/me/src/kwin/src/main.cpp:143
#15 0x0000555c18b144cc in KWin::ApplicationWayland::~ApplicationWayland()
(this=0x7ffdeed57040) at /home/me/src/kwin/src/main_wayland.cpp:132
#16 0x0000555c18b17a1f in main(int, char**) (argc=2, argv=0x7ffdeed57278) at
/home/me/src/kwin/src/main_wayland.cpp:617

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

Reply via email to