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

Matt Fagnani <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |[email protected]

--- Comment #3 from Matt Fagnani <[email protected]> ---
I've seen two kwin_wayland crashes in
KWin::WindowQuadList::makeInterleavedArrays with the same type of trace while I
was using Plasma 5.26.2-5.26.3 on Wayland in a Fedora 37 KDE Plasma
installation. I started Firefox Nightly 108.0a1 20221029095010 or 109.0a1
(2022-11-18). I had previously enabled the menu bar in Firefox. I clicked on
Bookmarks in the menu bar. I moved the cursor over the bookmarks menu the first
time. The crash happened right after I clicked on Bookmarks in the menu bar
before the menu popup was shown in the second crash. Plasma froze, then the
screen went black. Plasma restarted. kwin_wayland crashed in
KWin::WindowQuadList::makeInterleavedArrays as shown in coredumpctl gdb.
vertices=vertices@entry=0x0 in KWin::WindowQuadList::makeInterleavedArrays's
arguments might be related to the problem since vertices was incremented then
treated as a pointer in *(vertex++) = v; A race condition in which vertices was
infrequently freed before it was used or not might be involved in this problem. 

Core was generated by `/usr/bin/kwin_wayland --wayland-fd 7 --socket wayland-0
--xwayland-fd 8 --xwayl'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007f53e9efee46 in KWin::WindowQuadList::makeInterleavedArrays
(this=this@entry=0x55a91e3f1620, type=type@entry=7,
vertices=vertices@entry=0x0, textureMatrix=...) at
/usr/src/debug/kwin-5.26.3-1.fc37.x86_64/src/libkwineffects/kwineffects.cpp:1084
1084                    *(vertex++) = v;
[Current thread is 1 (Thread 0x7f53e8a9d980 (LWP 1415))]

(gdb) bt
#0  0x00007f53e9efee46 in KWin::WindowQuadList::makeInterleavedArrays(unsigned
int, KWin::GLVertex2D*, QMatrix4x4 const&) const
    (this=this@entry=0x55a91e3f1620, type=type@entry=7,
vertices=vertices@entry=0x0, textureMatrix=...) at
/usr/src/debug/kwin-5.26.3-1.fc37.x86_64/src/libkwineffects/kwineffects.cpp:1084
#1  0x00007f53e9badb34 in KWin::SceneOpenGL::render(KWin::Item*, int, QRegion
const&, KWin::WindowPaintData const&) (this=0x55a91d046090, item=<optimized
out>, mask=<optimized out>, region=..., data=...)
    at
/usr/src/debug/kwin-5.26.3-1.fc37.x86_64/src/scenes/opengl/scene_opengl.cpp:477
#2  0x00007f53e9a1e0b4 in
KWin::EffectsHandlerImpl::drawWindow(KWin::EffectWindow*, int, QRegion const&,
KWin::WindowPaintData&)
    (this=0x55a91dc33ae0, w=<optimized out>, mask=<optimized out>,
region=<optimized out>, data=<optimized out>) at
/usr/src/debug/kwin-5.26.3-1.fc37.x86_64/src/effects.cpp:454
#3  0x00007f53e9a8871d in
KWin::EffectsHandlerImpl::drawWindow(KWin::EffectWindow*, int, QRegion const&,
KWin::WindowPaintData&)
    (data=<optimized out>, region=<optimized out>, mask=<optimized out>,
w=<optimized out>, this=0x55a91dc33ae0) at
/usr/src/debug/kwin-5.26.3-1.fc37.x86_64/src/effects.cpp:454
#4  KWin::Scene::finalPaintWindow(KWin::EffectWindowImpl*, int, QRegion const&,
KWin::WindowPaintData&)
    (this=<optimized out>, w=<optimized out>, mask=<optimized out>,
region=<optimized out>, data=<optimized out>) at
/usr/src/debug/kwin-5.26.3-1.fc37.x86_64/src/scene.cpp:589
#5  0x00007f53e9a1dffb in
KWin::EffectsHandlerImpl::paintWindow(KWin::EffectWindow*, int, QRegion const&,
KWin::WindowPaintData&)
    (this=0x55a91dc33ae0, w=0x55a91e5fb4f0, mask=0, region=<optimized out>,
data=...)
--Type <RET> for more, q to quit, c to continue without paging--c
    at /usr/src/debug/kwin-5.26.3-1.fc37.x86_64/src/effects.cpp:425
#6  0x00007f53e9a1dffb in
KWin::EffectsHandlerImpl::paintWindow(KWin::EffectWindow*, int, QRegion const&,
KWin::WindowPaintData&) (this=0x55a91dc33ae0, w=0x55a91e5fb4f0, mask=0,
region=<optimized out>, data=...) at
/usr/src/debug/kwin-5.26.3-1.fc37.x86_64/src/effects.cpp:425
#7  0x00007f53e9a8b35a in KWin::Scene::paintWindow(KWin::WindowItem*, int,
QRegion const&) (region=..., mask=0, item=0x55a91e25b500, this=0x55a91e25b500)
at /usr/src/debug/kwin-5.26.3-1.fc37.x86_64/src/window.h:2256
#8  KWin::Scene::paintWindow(KWin::WindowItem*, int, QRegion const&)
(this=this@entry=0x55a91d046090, item=0x55a91e25b500, mask=0, region=...) at
/usr/src/debug/kwin-5.26.3-1.fc37.x86_64/src/scene.cpp:576
#9  0x00007f53e9a8b606 in KWin::Scene::paintSimpleScreen(int, QRegion const&)
(this=0x55a91d046090, region=<optimized out>) at
/usr/src/debug/kwin-5.26.3-1.fc37.x86_64/src/scene.cpp:537
#10 0x00007f53e9a1df4b in KWin::EffectsHandlerImpl::paintScreen(int, QRegion
const&, KWin::ScreenPaintData&) (this=0x55a91dc33ae0, mask=<optimized out>,
region=<optimized out>, data=<optimized out>) at
/usr/src/debug/kwin-5.26.3-1.fc37.x86_64/src/effects.cpp:397
#11 0x00007f53e9a1df4b in KWin::EffectsHandlerImpl::paintScreen(int, QRegion
const&, KWin::ScreenPaintData&) (this=0x55a91dc33ae0, mask=<optimized out>,
region=<optimized out>, data=<optimized out>) at
/usr/src/debug/kwin-5.26.3-1.fc37.x86_64/src/effects.cpp:397
#12 0x00007f53e9a88583 in KWin::Scene::paintScreen(QRegion const&)
(this=0x55a91d046090, region=...) at
/usr/src/debug/kwin-5.26.3-1.fc37.x86_64/src/scene.cpp:480
#13 0x00007f53e9ba7468 in KWin::SceneOpenGL::paint(KWin::RenderTarget*, QRegion
const&) (this=0x55a91d046090, renderTarget=<optimized out>, region=...) at
/usr/src/debug/kwin-5.26.3-1.fc37.x86_64/src/scenes/opengl/scene_opengl.cpp:90
#14 0x00007f53e9a8a2d3 in KWin::SceneDelegate::paint(KWin::RenderTarget*,
QRegion const&) (this=<optimized out>, renderTarget=0x7fff1479b960, region=...)
at /usr/src/debug/kwin-5.26.3-1.fc37.x86_64/src/scene.cpp:121
#15 0x00007f53e99dfc08 in KWin::Compositor::paintPass(KWin::RenderLayer*,
KWin::RenderTarget*, QRegion const&) (this=this@entry=0x55a91d084e00,
layer=layer@entry=0x55a91dc34b70, target=target@entry=0x7fff1479b960,
region=...) at /usr/src/debug/kwin-5.26.3-1.fc37.x86_64/src/composite.cpp:713
#16 0x00007f53e99e3e3e in KWin::Compositor::composite(KWin::RenderLoop*)
(this=0x55a91d084e00, renderLoop=0x55a91d1d2d60) at
/usr/src/debug/kwin-5.26.3-1.fc37.x86_64/src/composite.cpp:656
#17 0x00007f53e80dbc26 in QtPrivate::QSlotObjectBase::call(QObject*, void**)
(a=0x7fff1479bab0, r=<optimized out>, this=0x55a91dc3aa90) at
../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#18 doActivate<false>(QObject*, int, void**) (sender=0x55a91d1d2d60,
signal_index=5, argv=0x7fff1479bab0) at kernel/qobject.cpp:3919
#19 0x00007f53e80d6bb7 in QMetaObject::activate(QObject*, QMetaObject const*,
int, void**) (sender=<optimized out>, m=m@entry=0x7f53e9daa780
<KWin::RenderLoop::staticMetaObject>,
local_signal_index=local_signal_index@entry=2, argv=argv@entry=0x7fff1479bab0)
at kernel/qobject.cpp:3979
#20 0x00007f53e9995816 in KWin::RenderLoop::frameRequested(KWin::RenderLoop*)
(this=<optimized out>, _t1=<optimized out>) at
/usr/src/debug/kwin-5.26.3-1.fc37.x86_64/redhat-linux-build/src/kwin_autogen/TAC5DWH4SE/moc_renderloop.cpp:206
#21 0x00007f53e99e8247 in KWin::RenderLoopPrivate::dispatch()
(this=0x55a91d1d4b00) at
/usr/src/debug/kwin-5.26.3-1.fc37.x86_64/src/core/renderloop.cpp:151
#22 0x00007f53e80dbc26 in QtPrivate::QSlotObjectBase::call(QObject*, void**)
(a=0x7fff1479bbd0, r=<optimized out>, this=0x55a91d1d4ee0) at
../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#23 doActivate<false>(QObject*, int, void**) (sender=0x55a91d1d4b18,
signal_index=3, argv=0x7fff1479bbd0) at kernel/qobject.cpp:3919
#24 0x00007f53e80d6bb7 in QMetaObject::activate(QObject*, QMetaObject const*,
int, void**) (sender=<optimized out>, m=m@entry=0x7f53e836d580
<QTimer::staticMetaObject>, local_signal_index=local_signal_index@entry=0,
argv=argv@entry=0x7fff1479bbd0) at kernel/qobject.cpp:3979
#25 0x00007f53e80defae in QTimer::timeout(QTimer::QPrivateSignal)
(this=<optimized out>, _t1=...) at .moc/moc_qtimer.cpp:205
#26 0x00007f53e80d2d55 in QObject::event(QEvent*) (this=0x55a91d1d4b18,
e=0x7fff1479bd30) at kernel/qobject.cpp:1369
#27 0x00007f53e75aed12 in QApplicationPrivate::notify_helper(QObject*, QEvent*)
(this=<optimized out>, receiver=0x55a91d1d4b18, e=0x7fff1479bd30) at
kernel/qapplication.cpp:3637
#28 0x00007f53e80a8278 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
(receiver=0x55a91d1d4b18, event=0x7fff1479bd30) at
kernel/qcoreapplication.cpp:1064
#29 0x00007f53e80f8711 in QTimerInfoList::activateTimers()
(this=this@entry=0x55a91cdd7e98) at kernel/qtimerinfo_unix.cpp:643
#30 0x00007f53e80f5e70 in QEventDispatcherUNIXPrivate::activateTimers()
(this=this@entry=0x55a91cdd7e10) at kernel/qeventdispatcher_unix.cpp:249
#31 0x00007f53e80f6cc0 in
QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(this=<optimized out>, flags=...) at kernel/qeventdispatcher_unix.cpp:516
#32 0x000055a91be18b51 in
QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
()
#33 0x00007f53e80a6cca in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)
(this=this@entry=0x7fff1479beb0, flags=..., flags@entry=...) at
../../include/QtCore/../../src/corelib/global/qflags.h:69
#34 0x00007f53e80aed92 in QCoreApplication::exec() () at
../../include/QtCore/../../src/corelib/global/qflags.h:121
#35 0x00007f53e855fbe0 in QGuiApplication::exec() () at
kernel/qguiapplication.cpp:1863
#36 0x00007f53e75aec89 in QApplication::exec() () at
kernel/qapplication.cpp:2829
#37 0x000055a91bd3dd88 in main(int, char**) (argc=<optimized out>,
argv=<optimized out>) at
/usr/src/debug/kwin-5.26.3-1.fc37.x86_64/src/main_wayland.cpp:613

The journal at the time of the crashes showed some errors including
kwin_wayland[1403]: libkwinglutils: Wait failed

Oct 29 13:59:50 systemd[1334]: Started
app-Firefox\x20Nightly\x20on\x20Wayland-d5a0a538e21f4d5dbaea387253d8a18a.scope
- Firefox Nightly on Wayland.
Oct 29 13:59:51 plasmashell[2500]: [GFX1-]: glxtest: VA-API test failed: no
supported VAAPI profile found.
Oct 29 13:59:53 rtkit-daemon[875]: Successfully made thread 2628 of process
2500 (/home/matt/programs/firefox/firefox-bin) owned by '1000' RT at priority
10.
Oct 29 13:59:56 kwin_wayland[1403]: libkwinglutils: Wait failed
Oct 29 13:59:56 kernel: show_signal_msg: 1 callbacks suppressed
Oct 29 13:59:56 kernel: kwin_wayland[1403]: segfault at 10 ip 00007f2c204e0e46
sp 00007ffe70257918 error 6 in libkwineffects.so.5.26.2[7f2c204cf000+27000]
Oct 29 13:59:56 kernel: Code: 58 e3 f3 44 0f 58 ca 41 0f 14 e0 66 45 0f ef c0
0f 16 f4 66 0f ef e4 f2 44 0f 5a 40 80 45 0f 14 c2 f2 0f 5a 60 90 f3 0f 59 e1
<0f> 11 6a d0 0f 11 7a e0 0f 11 72 f0 f3 0f 58 e3 41 0f 14 e1 44 0f
Oct 29 13:59:56 audit[1403]: ANOM_ABEND auid=1000 uid=1000 gid=1000 ses=3
subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 pid=1403
comm="kwin_wayland" exe="/usr/bin/kwin_wayland" sig=11 res=1

This problem didn't usually happen. After the crashes and Plasma restarted,
when I clicked on Shut Down or Restart in the Application Launcher menu Plasma
froze for about a minute which was unusual. kwin_wayland also crashed with
Plasma 5.26.1 on 2022-10-21 when I was using konsole with the same types of
errors in the journal like "kwin_wayland[1403]: libkwinglutils: Wait failed".
Plasma froze for about 5 minutes. systemd-coredump timed out after that long so
I don't have a trace for that crash. drkonqi showed that akonadiserver had
crashed after the kwin_wayland crashes.

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

Reply via email to