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

            Bug ID: 483681
           Summary: Crash in KWin::ScreenCastStream::onStreamAddBuffer()
    Classification: Plasma
           Product: kwin
           Version: git master
          Platform: Other
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: general
          Assignee: kwin-bugs-n...@kde.org
          Reporter: jpe...@petsovits.com
  Target Milestone: ---

SUMMARY
kwin_wayland (post-6.0.2, commit a2867666) just crashed on me. I was just
submitting a comment on Invent and moving the mouse cursor away from the button
after doing so. Don't remember alt-tabbing but it's possible that I did, given
the reference to ScreenCastStream?

Possible duplicate of Bug 458117 which was closed as WORKSFORME back in Plasma
5.25.4 days. I have a better stack trace though.


STEPS TO REPRODUCE
Has not been crashing for a few minutes following the automatic restart &
recovery, not sure how to reproduce.

OBSERVED RESULT
Crash, restart & recovery.

SOFTWARE/OS VERSIONS
Operating System: Arch Linux 
KDE Plasma Version: 6.0.80 (kwin commit a2867666)
KDE Frameworks Version: 6.0.0
Qt Version: 6.6.2
Kernel Version: 6.7.9-arch1-1 (64-bit)
Graphics Platform: Wayland
Processors: 8 × Intel® Core™ i7-8565U CPU @ 1.80GHz
Memory: 15.3 GiB of RAM
Graphics Processor: Mesa Intel® UHD Graphics 620
Manufacturer: LENOVO
Product Name: 20QD001VUS
System Version: ThinkPad X1 Carbon 7th


ADDITIONAL INFORMATION

journalctl shows this assertion, with nothing immediately preceding it:

Mar 15 10:16:55 quint kwin_wayland[817]: ASSERT: "buffer->buffer->n_datas >=
uint(dmabufAttribs->planeCount)" in file
/home/kpetso/src/kde/plasma/kwin/src/plugins/screencast/screencaststream.cpp,
line 234

I had previously woken up from suspend, plugged and unplugged my monitor. The
last block of logs from kwin_wayland, from a few minutes earlier, were these:

Mar 15 10:11:20 quint kwin_wayland[817]: This plugin does not support raise()
Mar 15 10:11:20 quint kwin_wayland[817]: OpenGL vendor string:                 
 Intel
Mar 15 10:11:20 quint kwin_wayland[817]: OpenGL renderer string:               
 Mesa Intel(R) UHD Graphics 620 (WHL GT2)
Mar 15 10:11:20 quint kwin_wayland[817]: OpenGL version string:                
 4.6 (Core Profile) Mesa 24.0.2-arch1.2
Mar 15 10:11:20 quint kwin_wayland[817]: OpenGL shading language version
string: 4.60
Mar 15 10:11:20 quint kwin_wayland[817]: Driver:                               
 Intel
Mar 15 10:11:20 quint kwin_wayland[817]: GPU class:                            
 Whiskey Lake
Mar 15 10:11:20 quint kwin_wayland[817]: OpenGL version:                       
 4.6
Mar 15 10:11:20 quint kwin_wayland[817]: GLSL version:                         
 4.60
Mar 15 10:11:20 quint kwin_wayland[817]: Mesa version:                         
 24.0.2
Mar 15 10:11:20 quint kwin_wayland[817]: Requires strict binding:              
 no
Mar 15 10:11:20 quint kwin_wayland[817]: Virtual Machine:                      
 no
Mar 15 10:11:20 quint kwin_wayland[817]: kwin_scene_opengl: 0x1:
GL_INVALID_OPERATION in glDrawBuffers(unsupported buffer GL_BACK_LEFT)
Mar 15 10:11:20 quint kwin_wayland[817]: kwin_scene_opengl: 0x1:
GL_INVALID_OPERATION in glDrawBuffers(unsupported buffer GL_BACK_LEFT)
Mar 15 10:11:20 quint kwin_wayland[817]: kwin_scene_opengl: 0x1:
GL_INVALID_OPERATION in glDrawBuffers(unsupported buffer GL_BACK_LEFT)

Apparently the stack traces for all threads are pushing this description past
the character limit. I'll start with just the crashing thread and post the
remaining ones into another comment (or several) below. As provided by
`coredumpctl debug`, with debuginfod enabled:

(gdb) thread apply all bt

[...]

Thread 1 (Thread 0x716c2854e440 (LWP 817)):
#0  __pthread_kill_implementation (threadid=<optimized out>,
signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1  0x0000716c2d0ab393 in __pthread_kill_internal (signo=6, threadid=<optimized
out>) at pthread_kill.c:78
#2  0x0000716c2d05a6c8 in __GI_raise (sig=sig@entry=6) at
../sysdeps/posix/raise.c:26
#3  0x0000716c2d0424b8 in __GI_abort () at abort.c:79
#4  0x0000716c2d68a924 in qAbort () at
/usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/global/qglobal.cpp:161
#5  qt_message_fatal<QString&> (message=..., context=<optimized out>) at
/usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/global/qlogging.cpp:2030
#6  qt_message(QtMsgType, const QMessageLogContext &, const char *, typedef
__va_list_tag __va_list_tag *) (msgType=msgType@entry=QtFatalMsg, context=...,
msg=<optimized out>, ap=ap@entry=0x7fff41dc32d0) at
/usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/global/qlogging.cpp:378
#7  0x0000716c2d68b135 in QMessageLogger::fatal (this=<optimized out>,
msg=<optimized out>) at
/usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/global/qlogging.cpp:901
#8  0x0000716c2d689770 in qt_assert (assertion=<optimized out>, file=<optimized
out>, line=<optimized out>) at
/usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/global/qassert.cpp:68
#9  0x0000716c1ffd0e3b in KWin::ScreenCastStream::onStreamAddBuffer
(this=0x5b0c07708e80, buffer=0x5b0c07b7c3b8) at
/home/kpetso/src/kde/plasma/kwin/src/plugins/screencast/screencaststream.cpp:234
#10 0x0000716c1ffd1705 in operator() (__closure=0x0, data=0x5b0c07708e80,
buffer=0x5b0c07b7c3b8) at
/home/kpetso/src/kde/plasma/kwin/src/plugins/screencast/screencaststream.cpp:324
#11 0x0000716c1ffd172d in _FUN () at
/home/kpetso/src/kde/plasma/kwin/src/plugins/screencast/screencaststream.cpp:325
#12 0x0000716c17da2783 in ??? () at /usr/lib/libpipewire-0.3.so.0
#13 0x0000716c17d9a3cb in pw_impl_port_use_buffers () at
/usr/lib/libpipewire-0.3.so.0
#14 0x0000716c1ff30a96 in ??? () at
/usr/lib/pipewire-0.3/libpipewire-module-client-node.so
#15 0x0000716c1ff3f9b7 in ??? () at
/usr/lib/pipewire-0.3/libpipewire-module-client-node.so
#16 0x0000716c1ff76162 in ??? () at
/usr/lib/pipewire-0.3/libpipewire-module-protocol-native.so
#17 0x0000716c1ff76940 in ??? () at
/usr/lib/pipewire-0.3/libpipewire-module-protocol-native.so
#18 0x0000716c24034646 in ??? () at /usr/lib/spa-0.2/support/libspa-support.so
#19 0x0000716c1ffc07fa in operator() (__closure=0x5b0c0614abb0) at
/home/kpetso/src/kde/plasma/kwin/src/plugins/screencast/pipewirecore.cpp:67
#20 0x0000716c1ffc159f in QtPrivate::FunctorCall<QtPrivate::IndexesList<>,
QtPrivate::List<>, void, KWin::PipeWireCore::init()::<lambda()> >::call(struct
{...} &, void **) (f=..., arg=0x7fff41dc46d0) at
/usr/include/qt6/QtCore/qobjectdefs_impl.h:137
#21 0x0000716c1ffc1571 in
QtPrivate::Functor<KWin::PipeWireCore::init()::<lambda()>,
0>::call<QtPrivate::List<>, void>(struct {...} &, void *, void **) (f=...,
arg=0x7fff41dc46d0) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:339
#22 0x0000716c1ffc1528 in
QtPrivate::QCallableObject<KWin::PipeWireCore::init()::<lambda()>,
QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *,
void **, bool *) (which=1, this_=0x5b0c0614aba0, r=0x5b0c0618dd40,
a=0x7fff41dc46d0, ret=0x0) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:522
#23 0x0000716c2d790ca9 in QtPrivate::QSlotObjectBase::call (a=0x7fff41dc46d0,
r=0x5b0c0618dd40, this=0x5b0c0614aba0, this=<optimized out>, r=<optimized out>,
a=<optimized out>) at
/usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qobjectdefs_impl.h:433
#24 doActivate<false> (sender=0x5b0c0614ab80, signal_index=3,
argv=0x7fff41dc46d0) at
/usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qobject.cpp:4039
#25 0x0000716c2d798530 in QSocketNotifier::activated (_t3=..., _t2=<optimized
out>, _t1=..., this=0x5b0c0614ab80) at
/usr/src/debug/qt6-base/build/src/corelib/Core_autogen/include/moc_qsocketnotifier.cpp:231
#26 QSocketNotifier::event (this=0x5b0c0614ab80, e=<optimized out>) at
/usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qsocketnotifier.cpp:326
#27 0x0000716c2e8f438b in QApplicationPrivate::notify_helper (this=<optimized
out>, receiver=0x5b0c0614ab80, e=0x7fff41dc47d0) at
/usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/widgets/kernel/qapplication.cpp:3296
#28 0x0000716c2d739818 in QCoreApplication::notifyInternal2
(receiver=0x5b0c0614ab80, event=0x7fff41dc47d0) at
/usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qcoreapplication.cpp:1121
#29 0x0000716c2d89e749 in QCoreApplication::sendEvent (event=0x7fff41dc47d0,
receiver=<optimized out>) at
/usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qcoreapplication.cpp:1539
#30 QEventDispatcherUNIXPrivate::activateSocketNotifiers
(this=this@entry=0x5b0c05ce2c10) at
/usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qeventdispatcher_unix.cpp:267
#31 0x0000716c2d89fbac in QEventDispatcherUNIX::processEvents (this=<optimized
out>, flags=..., flags@entry=...) at
/usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qeventdispatcher_unix.cpp:476
#32 0x0000716c2e1b26e2 in QUnixEventDispatcherQPA::processEvents
(this=<optimized out>, flags=...) at
/usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/gui/platform/unix/qunixeventdispatcher.cpp:27
#33 0x0000716c2d743d6e in QEventLoop::processEvents (flags=...,
this=0x7fff41dc49b0) at
/usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qeventloop.cpp:100
#34 QEventLoop::exec (this=0x7fff41dc49b0, flags=...) at
/usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qeventloop.cpp:182
#35 0x0000716c2d73c2b8 in QCoreApplication::exec () at
/usr/src/debug/qt6-base/qtbase-everywhere-src-6.6.2/src/corelib/global/qflags.h:74
#36 0x00005b0c047eb154 in main (argc=14, argv=0x7fff41dc50b8) at
/home/kpetso/src/kde/plasma/kwin/src/main_wayland.cpp:634

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

Reply via email to