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

            Bug ID: 416974
           Summary: Plasma 5.17.90 crashed due to a kwin_wayland
                    segmentation fault in
                    QWeakPointer<QObject>::QWeakPointer
           Product: kwin
           Version: 5.17.90
          Platform: Other
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: wayland-generic
          Assignee: kwin-bugs-n...@kde.org
          Reporter: matthew.fagn...@utoronto.ca
  Target Milestone: ---

SUMMARY

I was using Plasma 5.17.90 on Wayland in Fedora Rawhide with KF 5.66.0, Qt
5.13.2, Mesa 19.3.3. I started VLC 3.0.9 (from rpmfusion). I played a video and
paused it after a few minutes. Plasma froze for about 3 minutes, and then sddm
appeared. The systemd-coredump process for the kwin_wayland crash didn't
complete correctly possibly due to timing out. I found the kwin_wayland core
dump file in /var/lib/systemd/coredump/ kwin_wayland had a segmentation fault
in 
QWeakPointer<QObject>::QWeakPointer at
/usr/include/qt5/QtCore/qsharedpointer_impl.h:589. The full trace of the
crashing thread 1 showed what looked like a invalid pointer d = 0x20 from
frames 0 to 2 in KWayland::Server::SurfaceInterface::lockedPointer at
/usr/src/debug/kf5-kwayland-5.66.0-1.fc32.x86_64/src/server/surface_interface.cpp:937.
The underlying problem might be in kwayland.

Core was generated by `/usr/bin/kwin_wayland --xwayland --libinput
--exit-with-session=/usr/libexec/st'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  QWeakPointer<QObject>::QWeakPointer (other=..., this=0x7fff3257acb0)
    at /usr/include/qt5/QtCore/qsharedpointer_impl.h:589
589     /usr/include/qt5/QtCore/qsharedpointer_impl.h: No such file or
directory.
[Current thread is 1 (Thread 0x7fc905ad7900 (LWP 1269))]

(gdb) bt full
#0  QWeakPointer<QObject>::QWeakPointer(QWeakPointer<QObject> const&)
(other=..., this=0x7fff3257acb0)
    at /usr/include/qt5/QtCore/qsharedpointer_impl.h:589
        d = 0x20
#1 
QPointer<KWayland::Server::LockedPointerInterface>::QPointer(QPointer<KWayland::Server::LockedPointerInterface>
const&) (this=0x7fff3257acb0) at /usr/include/qt5/QtCore/qpointer.h:53
        d = 0x20
#2  KWayland::Server::SurfaceInterface::lockedPointer() const (this=<optimized
out>)
    at
/usr/src/debug/kf5-kwayland-5.66.0-1.fc32.x86_64/src/server/surface_interface.cpp:937
        d = 0x20
#3  0x00007fc906938809 in
KWayland::Server::PointerInterface::<lambda()>::operator()
    (__closure=<optimized out>)
    at
/usr/src/debug/kf5-kwayland-5.66.0-1.fc32.x86_64/src/server/pointer_interface.cpp:247
        d = 0x5585256ff410
        pos = {xp = 6.941689537196333e-310, yp = 6.9531853373731582e-310}
        targetSurface = <optimized out>
#4  QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void,
KWayland::Server::PointerInterface::PointerInterface(KWayland::Server::SeatInterface*,
wl_resource*)::<lambda()> >::call
    (arg=<optimized out>, f=...) at
/usr/include/qt5/QtCore/qobjectdefs_impl.h:146
#5 
QtPrivate::Functor<KWayland::Server::PointerInterface::PointerInterface(KWayland::Server::SeatInterface*,
wl_resource*)::<lambda()>, 0>::call<QtPrivate::List<>, void> (arg=<optimized
out>, f=...)
    at /usr/include/qt5/QtCore/qobjectdefs_impl.h:256
#6 
QtPrivate::QFunctorSlotObject<KWayland::Server::PointerInterface::PointerInterface(KWayland::Server::SeatInterface*,
wl_resource*)::<lambda()>, 0, QtPrivate::List<>, void>::impl(int,
QtPrivate::QSlotObjectBase *, QObject *, void **, bool *)
    (which=<optimized out>, this_=<optimized out>, r=<optimized out>,
a=<optimized out>, ret=<optimized--Type <RET> for more, q to quit, c to
continue without paging--c
 out>) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:439
#7  0x00007fc905d74a60 in QtPrivate::QSlotObjectBase::call(QObject*, void**)
(a=0x7fff3257ae30, r=0x5585255ffd80, this=0x5585256ef150) at
../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:394
        obj = {d = 0x5585256ef150}
        receiver = 0x5585255ffd80
        receiverInSameThread = <optimized out>
        sw = {receiver = 0x5585255ffd80, previousSender = 0x0, currentSender =
{sender = 0x558524d49310, signal = 8, ref = 1}, switched = true}
        c = 0x558525704a70
        last = 0x5585256118d0
        locker = {val = 140501365871928}
        connectionLists = {connectionLists = 0x558524d49690}
        list = <optimized out>
        currentThreadId = 0x7fc905ad7900
        signal_index = 8
        empty_argv = {0x0}
#8  QMetaObject::activate(QObject*, int, int, void**) (sender=0x558524d49310,
signalOffset=<optimized out>, local_signal_index=<optimized out>,
argv=<optimized out>) at kernel/qobject.cpp:3789
        obj = {d = 0x5585256ef150}
        receiver = 0x5585255ffd80
        receiverInSameThread = <optimized out>
        sw = {receiver = 0x5585255ffd80, previousSender = 0x0, currentSender =
{sender = 0x558524d49310, signal = 8, ref = 1}, switched = true}
        c = 0x558525704a70
        last = 0x5585256118d0
        locker = {val = 140501365871928}
        connectionLists = {connectionLists = 0x558524d49690}
        list = <optimized out>
        currentThreadId = 0x7fc905ad7900
        signal_index = 8
        empty_argv = {0x0}
#9  0x00007fc906909899 in
KWayland::Server::SeatInterface::pointerPosChanged(QPointF const&)
(this=this@entry=0x558524d49310, _t1=...) at
/usr/src/debug/kf5-kwayland-5.66.0-1.fc32.x86_64/x86_64-redhat-linux-gnu/src/server/KF5WaylandServer_autogen/EWIEGA46WW/moc_seat_interface.cpp:451
        _a = {0x0, 0x7fff3257ae90}
#10 0x00007fc906941c02 in
KWayland::Server::SeatInterface::setPointerPos(QPointF const&)
(this=this@entry=0x558524d49310, pos=...) at
/usr/src/debug/kf5-kwayland-5.66.0-1.fc32.x86_64/src/server/seat_interface.cpp:636
        d = <optimized out>
#11 0x00007fc906d5b822 in
KWin::PointerInputRedirection::focusUpdate(KWin::Toplevel*, KWin::Toplevel*)
(this=0x558524d43cc0, focusOld=<optimized out>, focusNow=0x558525cb4a30) at
/usr/include/qt5/QtCore/qpoint.h:131
        seat = 0x558524d49310
#12 0x00007fc906d13f0f in KWin::InputDeviceHandler::updateFocus() () at
/usr/include/c++/9/bits/atomic_base.h:413
#13 0x00007fc906d15467 in KWin::InputDeviceHandler::update()
(this=this@entry=0x558524d43cc0) at
/usr/src/debug/kwin-5.17.90-1.fc32.x86_64/input.cpp:2492
#14 0x00007fc906d588db in KWin::PointerInputRedirection::processMotion(QPointF
const&, QSizeF const&, QSizeF const&, unsigned int, unsigned long long,
KWin::LibInput::Device*) (this=0x558524d43cc0, pos=..., delta=...,
deltaNonAccelerated=..., time=1652800, timeUsec=1652800061,
device=0x558524e30af0) at
/usr/src/debug/kwin-5.17.90-1.fc32.x86_64/pointer_input.cpp:272
        blocker = {static s_counter = 1, static s_scheduledPositions = {d =
0x7fc905e20b40 <QArrayData::shared_null>}, m_pointer = 0x558524d43cc0}
        event = {<QMouseEvent> = {<QInputEvent> = {<QEvent> = {_vptr.QEvent =
0x7fc906ef4c68 <vtable for KWin::MouseEvent+16>, static staticMetaObject = {d =
{superdata = 0x0, stringdata = 0x7fc905ee9ae0 <qt_meta_stringdata_QEvent>, data
= 0x7fc905ee9520 <qt_meta_data_QEvent>, static_metacall = 0x0,
relatedMetaObjects = 0x0, extradata = 0x0}}, d = 0x0, t = 5, posted = 0, spont
= 0, m_accept = 1, reserved = 1213}, modState = {i = 0}, ts = 1652800}, l = {xp
= 378.69718167443523, yp = 632.89473419457943}, w = {xp = 378.69718167443523,
yp = 632.89473419457943}, s = {xp = 378.69718167443523, yp =
632.89473419457943}, b = Qt::NoButton, mouseState = {i = 0}, caps = 0, velocity
= {v = {0, 0}}}, m_delta = {wd = -2.2000000000000002, ht =
-7.7000000000000011}, m_deltaUnccelerated = {wd = -2, ht = -7},
m_timestampMicroseconds = 1652800061, m_device = 0x558524e30af0,
m_modifiersRelevantForShortcuts = {i = 0}, m_nativeButton = 0}
#15 0x00007fc906d11ca8 in
QtPrivate::QFunctorSlotObject<KWin::InputRedirection::setupLibInput()::<lambda(const
QSizeF&, const QSizeF&, uint32_t, quint64, KWin::LibInput::Device*)>, 5,
QtPrivate::List<const QSizeF&, const QSizeF&, unsigned int, long long unsigned
int, KWin::LibInput::Device*>, void>::impl(int, QtPrivate::QSlotObjectBase *,
QObject *, void **, bool *) (which=<optimized out>, this_=<optimized out>,
r=<optimized out>, a=<optimized out>, ret=<optimized out>) at
/usr/include/qt5/QtCore/qpoint.h:287
#16 0x00007fc905d74a60 in QtPrivate::QSlotObjectBase::call(QObject*, void**)
(a=0x7fff3257b2e0, r=0x558524d60390, this=0x558524e928d0) at
../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:394
        obj = {d = 0x558524e928d0}
        receiver = 0x558524d60390
        receiverInSameThread = <optimized out>
        sw = {receiver = 0x558524d60390, previousSender = 0x7fff3257b420,
currentSender = {sender = 0x558524dc0a80, signal = 6, ref = 1}, switched =
true}
        c = 0x558524e1ef10
        last = 0x558524e1ef10
        locker = {val = 140501365871840}
        connectionLists = {connectionLists = 0x7fc8ec010fe0}
        list = <optimized out>
        currentThreadId = 0x7fc905ad7900
        signal_index = 6
        empty_argv = {0x0}
#17 QMetaObject::activate(QObject*, int, int, void**) (sender=0x558524dc0a80,
signalOffset=<optimized out>, local_signal_index=<optimized out>,
argv=<optimized out>) at kernel/qobject.cpp:3789
        obj = {d = 0x558524e928d0}
        receiver = 0x558524d60390
        receiverInSameThread = <optimized out>
        sw = {receiver = 0x558524d60390, previousSender = 0x7fff3257b420,
currentSender = {sender = 0x558524dc0a80, signal = 6, ref = 1}, switched =
true}
        c = 0x558524e1ef10
        last = 0x558524e1ef10
        locker = {val = 140501365871840}
        connectionLists = {connectionLists = 0x7fc8ec010fe0}
        list = <optimized out>
        currentThreadId = 0x7fc905ad7900
        signal_index = 6
        empty_argv = {0x0}
#18 0x00007fc906c696cd in KWin::LibInput::Connection::pointerMotion(QSizeF
const&, QSizeF const&, unsigned int, unsigned long long,
KWin::LibInput::Device*) (this=this@entry=0x558524dc0a80, _t1=..., _t2=...,
_t3=<optimized out>, _t3@entry=1652800, _t4=<optimized out>,
_t4@entry=1652800061, _t5=<optimized out>) at
/usr/src/debug/kwin-5.17.90-1.fc32.x86_64/x86_64-redhat-linux-gnu/kwin_autogen/PCJB6APXE6/moc_connection.cpp:639
        _a = {0x0, 0x7fff3257b390, 0x7fff3257b3a0, 0x7fff3257b2dc,
0x7fff3257b2d0, 0x7fff3257b2c8}
#19 0x00007fc906d32288 in KWin::LibInput::Connection::processEvents()
(this=0x558524dc0a80) at
/usr/src/debug/kwin-5.17.90-1.fc32.x86_64/libinput/connection.cpp:377
        deltaNonAccel = {wd = -2, ht = -7}
        latestTime = 1652800
        latestTimeUsec = 1652800061
        pe = 0x7fc8e8005210
        delta = {wd = -2.2000000000000002, ht = -7.7000000000000011}
        it = <optimized out>
        event = {d = 0x7fc8e8005210}
        locker = {val = 94030337411785}
#20 0x00007fc905d7579a in QObject::event(QEvent*) (this=0x558524d60390,
e=<optimized out>) at kernel/qobject.cpp:1260
        mce = <optimized out>
        sw = {receiver = 0x558524d60390, previousSender = 0x0, currentSender =
{sender = 0x558524dc0a80, signal = 37, ref = 1}, switched = true}
#21 0x00007fc906181ab6 in QApplicationPrivate::notify_helper(QObject*, QEvent*)
(this=this@entry=0x558524d08070, receiver=receiver@entry=0x558524d60390,
e=e@entry=0x7fc8e8007630) at kernel/qapplication.cpp:3703
        consumed = false
        filtered = false
#22 0x00007fc90618b150 in QApplication::notify(QObject*, QEvent*)
(this=0x7fff3257bad0, receiver=0x558524d60390, e=0x7fc8e8007630) at
kernel/qapplication.cpp:3449
        w = <optimized out>
        extra = <optimized out>
        isProxyWidget = <optimized out>
        d = <optimized out>
        res = false
#23 0x00007fc905d4a3e8 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
(receiver=0x558524d60390, event=0x7fc8e8007630) at
kernel/qcoreapplication.cpp:1095
        selfRequired = true
        result = false
        cbdata = {0x558524d60390, 0x7fc8e8007630, 0x7fff3257b66f}
        d = <optimized out>
        threadData = 0x558524cf6680
        scopeLevelCounter = {threadData = 0x558524cf6680}
#24 0x00007fc905d4d42b in QCoreApplicationPrivate::sendPostedEvents(QObject*,
int, QThreadData*) (receiver=0x0, event_type=0, data=0x558524cf6680) at
kernel/qcoreapplication.cpp:1840
        e = 0x7fc8e8007630
        pe = <optimized out>
        r = <optimized out>
        unlocker = {m = <synthetic pointer><error reading variable>}
        event_deleter = {d = 0x7fc8e8007630}
        locker = {val = 94030336583344}
        startOffset = 0
        i = @0x558524cf66a4: 1
        cleanup = {receiver = 0x0, event_type = 0, data = 0x558524cf6680,
exceptionCaught = true}
#25 0x00007fc905d9cca7 in
QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(this=0x558524d175f0, flags=...) at kernel/qeventdispatcher_unix.cpp:466
        d = 0x558524d267d0
        include_timers = <optimized out>
        canWait = <optimized out>
        tm = <optimized out>
        wait_tm = {tv_sec = 140501329838656, tv_nsec = 140501329839087}
        nevents = <optimized out>
#26 0x00007fc8f2bfd001 in
QUnixEventDispatcherQPA::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
() at /usr/lib64/qt5/plugins/platforms/KWinQpaPlugin.so
#27 0x00007fc905d491db in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)
(this=this@entry=0x7fff3257b880, flags=..., flags@entry=...) at
../../include/QtCore/../../src/corelib/global/qflags.h:140
        d = 0x558524da3520
        locker = {val = 94030336499712}
        app = <optimized out>
#28 0x00007fc905d510b6 in QCoreApplication::exec() () at
../../include/QtCore/../../src/corelib/global/qflags.h:120
        threadData = 0x558524cf6680
        eventLoop = {<QObject> = {_vptr.QObject = 0x7fc906005a08 <vtable for
QEventLoop+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata =
0x7fc905eee860 <qt_meta_stringdata_QObject>, data = 0x7fc905eee740
<qt_meta_data_QObject>, static_metacall = 0x7fc905d7cb10
<QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>,
relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x558524da3520},
static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x7fc905ef1780
<qt_meta_stringdata_Qt>, data = 0x7fc905eee980 <qt_meta_data_Qt>,
static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static
staticMetaObject = {d = {superdata = 0x7fc905ffdba0
<QObject::staticMetaObject>, stringdata = 0x7fc905ee8ba0
<qt_meta_stringdata_QEventLoop>, data = 0x7fc905ee8b40
<qt_meta_data_QEventLoop>, static_metacall = 0x7fc905d48ef0
<QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>,
relatedMetaObjects = 0x0, extradata = 0x0}}}
        returnCode = <optimized out>
#29 0x0000558524ca3795 in main(int, char**) (argc=<optimized out>,
argv=<optimized out>) at
/usr/src/debug/kwin-5.17.90-1.fc32.x86_64/main_wayland.cpp:676
        userSignals = {__val = {2560, 0 <repeats 15 times>}}
        environment = {d = {d = 0x558524d06280}}
        a = {<KWin::ApplicationWaylandAbstract> = {<KWin::Application> =
{<QApplication> = {<QGuiApplication> = {<QCoreApplication> = {<QObject> =
{_vptr.QObject = 0x558524cc8100 <vtable for KWin::ApplicationWayland+16>,
static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7fc905eee860
<qt_meta_stringdata_QObject>, data = 0x7fc905eee740 <qt_meta_data_QObject>,
static_metacall = 0x7fc905d7cb10 <QObject::qt_static_metacall(QObject*,
QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}},
d_ptr = {d = 0x558524d08070}, static staticQtMetaObject = {d = {superdata =
0x0, stringdata = 0x7fc905ef1780 <qt_meta_stringdata_Qt>, data = 0x7fc905eee980
<qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata =
0x0}}}, static staticMetaObject = {d = {superdata = 0x7fc905ffdba0
<QObject::staticMetaObject>, stringdata = 0x7fc905ee9240
<qt_meta_stringdata_QCoreApplication>, data = 0x7fc905ee9120
<qt_meta_data_QCoreApplication>, static_metacall = 0x7fc905d4be80
<QCoreApplication::qt_static_metacall(QObject*, QMetaObject::Call, int,
void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, static self =
0x7fff3257bad0}, static staticMetaObject = {d = {superdata = 0x7fc906005ba0
<QCoreApplication::staticMetaObject>, stringdata = 0x7fc904105e40
<qt_meta_stringdata_QGuiApplication>, data = 0x7fc904105bc0
<qt_meta_data_QGuiApplication>, static_metacall = 0x7fc903dc9ed0
<QGuiApplication::qt_static_metacall(QObject*, QMetaObject::Call, int,
void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject
= {d = {superdata = 0x7fc9041e0dc0 <QGuiApplication::staticMetaObject>,
stringdata = 0x7fc906531a40 <qt_meta_stringdata_QApplication>, data =
0x7fc9065318c0 <qt_meta_data_QApplication>, static_metacall = 0x7fc9061885b0
<QApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>,
relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d =
{superdata = 0x7fc90668c040 <QApplication::staticMetaObject>, stringdata =
0x7fc906e62300 <qt_meta_stringdata_KWin__Application>, data = 0x7fc906e621c0
<qt_meta_data_KWin__Application>, static_metacall = 0x7fc906c77270
<KWin::Application::qt_static_metacall(QObject*, QMetaObject::Call, int,
void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, m_originalSessionKey =
{static null = {<No data fields>}, d = 0x7fc905e20b40
<QArrayData::shared_null>}, static crashes = 0, m_eventFilter = {d =
0x558524d340b0}, m_configLock = false, m_config = {d = 0x558524d334e0},
m_kxkbConfig = {d = 0x558524d445b0}, m_inputConfig = {d = 0x558524d449b0},
m_operationMode = KWin::Application::OperationModeXwayland, m_x11Time =
1652795, m_rootWindow = 924, m_connection = 0x5585256f3890, m_useKActivities =
false, m_platform = 0x558524d42cd0, m_terminating = false}, static
staticMetaObject = {d = {superdata = 0x7fc906efea80
<KWin::Application::staticMetaObject>, stringdata = 0x7fc906e62180
<qt_meta_stringdata_KWin__ApplicationWaylandAbstract>, data = 0x7fc906e62140
<qt_meta_data_KWin__ApplicationWaylandAbstract>, static_metacall =
0x7fc906c6dbc0 <KWin::ApplicationWaylandAbstract::qt_static_metacall(QObject*,
QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}},
static staticMetaObject = {d = {superdata = 0x7fc906efea40
<KWin::ApplicationWaylandAbstract::staticMetaObject>, stringdata =
0x558524cbe3e0 <qt_meta_stringdata_KWin__ApplicationWayland>, data =
0x558524cbe3a0 <qt_meta_data_KWin__ApplicationWayland>, static_metacall =
0x558524ca3cc0 <KWin::ApplicationWayland::qt_static_metacall(QObject*,
QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}},
m_startXWayland = true, m_applicationsToStart = {<QList<QString>> =
{<QListSpecialMethods<QString>> = {<No data fields>}, {p = {static shared_null
= {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static
_S_alignment = 4, _M_i = -1}, <No data fields>}}}, alloc = 0, begin = 0, end =
0, array = {0x0}}, d = 0x7fc905e22a80 <QListData::shared_null>}, d =
0x7fc905e22a80 <QListData::shared_null>}}, <No data fields>},
m_inputMethodServerToStart = {static null = {<No data fields>}, d =
0x7fc905e20b40 <QArrayData::shared_null>}, m_environment = {d = {d =
0x558524d87080}}, m_sessionArgument = {static null = {<No data fields>}, d =
0x558524d4fdc0}, m_xwayland = 0x5585255fba10}
        availablePlugins = {d = 0x558524cde180}
        hasPlugin = {__availablePlugins = @0x7fff3257b9e8}
        hasSizeOption = <optimized out>
        hasOutputCountOption = <optimized out>
        hasX11Option = <optimized out>
        hasVirtualOption = <optimized out>
        hasWaylandOption = true
        hasFramebufferOption = <optimized out>
        hasDrmOption = <optimized out>
        xwaylandOption = {d = {d = 0x558524d3d7e0}}
        waylandSocketOption = {d = {d = 0x558524d3b950}}
        framebufferOption = {d = {d = 0x558524d3cc10}}
        framebufferDeviceOption = {d = {d = 0x558524d3c860}}
        x11DisplayOption = {d = {d = 0x558524d3ce80}}
        waylandDisplayOption = {d = {d = 0x558524d3d160}}
        virtualFbOption = {d = {d = 0x558524d3ca80}}
        widthOption = {d = {d = 0x558524d3bdc0}}
        heightOption = {d = {d = 0x558524d3be00}}
        scaleOption = {d = {d = 0x558524d3bb40}}
        outputCountOption = {d = {d = 0x558524d3bb80}}
        parser = {d = 0x558524d30e30}
        libinputOption = {d = {d = 0x558524d4f8a0}}
        drmOption = {d = {d = 0x558524d4f8e0}}
        inputMethodOption = {d = {d = 0x558524d4f9e0}}
        listBackendsOption = {d = {d = 0x558524d4fb40}}
        screenLockerOption = {d = {d = 0x558524d4fbe0}}
        noScreenLockerOption = {d = {d = 0x558524d4fc80}}
        noGlobalShortcutsOption = {d = {d = 0x558524d4fd80}}
        exitWithSessionOption = {d = {d = 0x558524d23040}}
        pluginName = {static null = {<No data fields>}, d = 0x558524cbf460
<KWin::{lambda()#4}::operator()() const::qstring_literal>}
        initialWindowSize = {wd = 1024, ht = 768}
        deviceIdentifier = {d = 0x7fc905e20b40 <QArrayData::shared_null>}
        outputCount = 1
        outputScale = 1
        pluginIt = <optimized out>
        server = 0x558524d35b00
        flags = <optimized out>


Plasma froze later in the same boot while playing the same video in VLC.
The core file wasn't saved for that crash. I've seen several similar crashes of
Plasma with kwin_wayland segmentation faults shown in the journal recently, but
no core files were available. The kwin_wayland core file was 2.4 GB
uncompressed, and the systemd-coredump default limit was 2 GB. I increased the
limit to 3 GB so the kwin_wayland core files could be saved without being
truncated.

STEPS TO REPRODUCE
1. Boot Fedora Rawhide KDE Plasma spin installation fully updated to 2020-1-29,
with kwin-wayland, plasma-workspace-wayland, and their dependencies installed
2. Log in to Plasma on Wayland from sddm
3. change /etc/systemd/coredump.conf to have 
ProcessSizeMax=3G
ExternalSizeMax=3G 
4. Install rpmfusion-free-rawhide repository
sudo dnf install
https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E
%fedora).noarch.rpm
5. sudo dnf install vlc --enablerepo=rpmfusion-*
6. start vlc
7. play an mp4 video in vlc
8. pause the video. I'm not sure if the crashes are related to what is done in
VLC or not.

OBSERVED RESULT
Plasma 5.17.90 froze due to a kwin_wayland segmentation fault in
QWeakPointer<QObject>::QWeakPointer

EXPECTED RESULT
Plasma wouldn't crash.

SOFTWARE/OS VERSIONS

Linux/KDE Plasma: Fedora Rawhide/32
(available in About System)
KDE Plasma Version: 5.17.90
KDE Frameworks Version: 5.66.0
Qt Version: 5.13.2

ADDITIONAL INFORMATION

I've also seen Plasma freeze and crash when using Firefox many times, though
the kwin_wayland core dumps were not available or truncated. I've seen
kwin_wayland segmentation faults when logging out frequently which I've
reported at https://bugs.kde.org/show_bug.cgi?id=416147 I'm seeing kwin_wayland
aborts and segmentation faults when I shut down or reboot which might be
related. I reported some of those kwin_wayland crashes which involved invalid
reads and writes and use of uninitialized variables at
https://bugs.kde.org/show_bug.cgi?id=409688

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

Reply via email to