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

Vlad Zahorodnii <vlad.zahorod...@kde.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
             Status|REPORTED                    |CONFIRMED

--- Comment #15 from Vlad Zahorodnii <vlad.zahorod...@kde.org> ---
I can reproduce the crash:

* put pen on the tablet so there's visible tablet cursor. while doing that
switch to another tty and back
* if the pen is still on the tablet, kwin will crash

Note that it's important to have some open application.

* thread #1, name = 'kwin_wayland', stop reason = signal SIGSEGV: invalid
address (fault address: 0x0)
  * frame #0: 0x00007f045d1d51cb
libQt5Core.so.5`std::__atomic_base<int>::operator++(this=0x00720075006f0073) at
atomic_base.h:378:34
    frame #1: 0x00007f045d1d4395 libQt5Core.so.5`bool
QAtomicOps<int>::ref<int>(_q_value=0x00720075006f0073) at
qatomic_cxx11.h:283:16
    frame #2: 0x00007f045d1d368e
libQt5Core.so.5`QBasicAtomicInteger<int>::ref(this=0x00720075006f0073) at
qbasicatomic.h:118:42
    frame #3: 0x00007f045d284c37
libQt5Core.so.5`QtSharedPointer::ExternalRefCountData::getAndRef(obj=0x0000562f702af550)
at qsharedpointer.cpp:1398:26
    frame #4: 0x00007f0461058603
libkwin.so.5`QWeakPointer<QObject>::QWeakPointer<QObject,
true>(this=0x00007fffd3505f28, ptr=0x0000562f702af550, (null)=true) at
qsharedpointer_impl.h:679:49
    frame #5: 0x00007f046105858b libkwin.so.5`QWeakPointer<QObject>&
QWeakPointer<QObject>::assign<QObject>(this=0x0000562f6f297f00,
ptr=0x0000562f702af550) at qsharedpointer_impl.h:675:22
    frame #6: 0x00007f04610d1541
libkwin.so.5`QPointer<KWaylandServer::SurfaceInterface>::operator=(this=0x0000562f6f297f00,
p=0x0000562f702af550) at qpointer.h:74:10
    frame #7: 0x00007f04610d13f2
libkwin.so.5`KWin::SurfaceCursor::updateCursorSurface(this=0x0000562f6f297ea0,
surface=0x0000562f702af550, hotspot=0x00007fffd3506038) at input.cpp:1679:19
    frame #8: 0x00007f04610d1241
libkwin.so.5`KWin::TabletInputFilter::createTool(this=0x0000562f6f4ff9c0,
tcursor=0x0000562f6ed30870)::'lambda'(KWaylandServer::TabletCursorV2*)::operator()(KWaylandServer::TabletCursorV2*)
const at input.cpp:1855:21
    frame #9: 0x00007f04610d10c1
libkwin.so.5`QtPrivate::FunctorCall<QtPrivate::IndexesList<0>,
QtPrivate::List<KWaylandServer::TabletCursorV2*>, void,
KWin::TabletInputFilter::createTool(KWin::TabletToolId
const&)::'lambda'(KWaylandServer::TabletCursorV2*)>::call(f=0x0000562f6f4ff9c0,
arg=0x00007fffd35062b0)::'lambda'(KWaylandServer::TabletCursorV2*)&, void**) at
qobjectdefs_impl.h:146:13
    frame #10: 0x00007f04610d1081 libkwin.so.5`void
QtPrivate::Functor<KWin::TabletInputFilter::createTool(KWin::TabletToolId
const&)::'lambda'(KWaylandServer::TabletCursorV2*),
1>::call<QtPrivate::List<KWaylandServer::TabletCursorV2*>,
void>(f=0x0000562f6f4ff9c0, (null)=0x0000562f6f297ea0,
arg=0x00007fffd35062b0)::'lambda'(KWaylandServer::TabletCursorV2*)&, void*,
void**) at qobjectdefs_impl.h:256:13
    frame #11: 0x00007f04610d1021
libkwin.so.5`QtPrivate::QFunctorSlotObject<KWin::TabletInputFilter::createTool(KWin::TabletToolId
const&)::'lambda'(KWaylandServer::TabletCursorV2*), 1,
QtPrivate::List<KWaylandServer::TabletCursorV2*>, void>::impl(which=1,
this_=0x0000562f6f4ff9b0, r=0x0000562f6f297ea0, a=0x00007fffd35062b0,
ret=0x0000000000000000) at qobjectdefs_impl.h:443:17
    frame #12: 0x00007f045d490a87
libQt5Core.so.5`QtPrivate::QSlotObjectBase::call(this=0x0000562f6f4ff9b0,
r=0x0000562f6f297ea0, a=0x00007fffd35062b0) at qobjectdefs_impl.h:398:57
    frame #13: 0x00007f045d4d4290 libQt5Core.so.5`void
doActivate<false>(sender=0x0000562f6f2f29f0, signal_index=3,
argv=0x00007fffd35062b0) at qobject.cpp:3886:30
    frame #14: 0x00007f045d4cd6e1
libQt5Core.so.5`QMetaObject::activate(sender=0x0000562f6f2f29f0,
m=0x00007f0460c2b090, local_signal_index=0, argv=0x00007fffd35062b0) at
qobject.cpp:3946:26
    frame #15: 0x00007f04609a6170
libKWaylandServer.so.5`KWaylandServer::TabletToolV2Interface::cursorChanged(this=0x0000562f6f2f29f0,
_t1=0x0000562f6ed30870) const at moc_tablet_v2_interface.cpp:257:5
    frame #16: 0x00007f0460a3d736
libKWaylandServer.so.5`KWaylandServer::TabletToolV2Interface::setCurrentSurface(this=0x0000562f6f2f29f0,
surface=0x0000562f6eed3530) at tablet_v2_interface.cpp:244:12
    frame #17: 0x00007f04610ceb45
libkwin.so.5`KWin::TabletInputFilter::tabletToolEvent(this=0x0000562f6f522680,
event=0x00007fffd3506a08) at input.cpp:1887:15
    frame #18: 0x00007f04611f86e9 libkwin.so.5`bool std::__invoke_impl<bool,
bool (KWin::InputEventFilter::*&)(KWin::TabletEvent*), KWin::InputEventFilter*
const&, KWin::TabletEvent*&>((null)=__invoke_memfun_deref @ 0x00007fffd3506538,
__f=0x00007fffd35066e0, __t=0x0000562f6f4b96f8,
__args=0x00007fffd35066f0)(KWin::TabletEvent*), KWin::InputEventFilter* const&,
KWin::TabletEvent*&) at invoke.h:74:14
    frame #19: 0x00007f04611f8617 libkwin.so.5`std::__invoke_result<bool
(KWin::InputEventFilter::*&)(KWin::TabletEvent*), KWin::InputEventFilter*
const&, KWin::TabletEvent*&>::type std::__invoke<bool (__fn=0x00007fffd35066e0,
__args=0x0000562f6f4b96f8, __args=0x00007fffd35066f0)(KWin::TabletEvent*),
KWin::InputEventFilter* const&, KWin::TabletEvent*&>(bool
(KWin::InputEventFilter::*&)(KWin::TabletEvent*), KWin::InputEventFilter*
const&, KWin::TabletEvent*&) at invoke.h:96:14
    frame #20: 0x00007f04611f859f libkwin.so.5`bool std::_Bind<bool
(KWin::InputEventFilter::* (std::_Placeholder<1>,
KWin::TabletEvent*))(KWin::TabletEvent*)>::__call<bool, KWin::InputEventFilter*
const&, 0ul, 1ul>(this=0x00007fffd35066e0, __args=0x00007fffd3506620,
(null)=_Index_tuple<0, 1> @ 0x00007fffd35065c0) at functional:420:11
    frame #21: 0x00007f04611f84fb libkwin.so.5`bool std::_Bind<bool
(KWin::InputEventFilter::* (std::_Placeholder<1>,
KWin::TabletEvent*))(KWin::TabletEvent*)>::operator(this=0x00007fffd35066e0,
__args=0x0000562f6f4b96f8)<KWin::InputEventFilter* const&,
bool>(KWin::InputEventFilter* const&) at functional:503:17
    frame #22: 0x00007f04611f849d libkwin.so.5`bool
__gnu_cxx::__ops::_Iter_pred<std::_Bind<bool (KWin::InputEventFilter::*
(std::_Placeholder<1>, KWin::TabletEvent*))(KWin::TabletEvent*)>
>::operator(this=0x00007fffd35066e0,
__it=0x0000562f6f4b96f8)<KWin::InputEventFilter*
const*>(KWin::InputEventFilter* const*) at predefined_ops.h:318:16
    frame #23: 0x00007f04611f8437 libkwin.so.5`KWin::InputEventFilter* const*
std::__find_if<KWin::InputEventFilter* const*,
__gnu_cxx::__ops::_Iter_pred<std::_Bind<bool (KWin::InputEventFilter::*
(std::_Placeholder<1>, KWin::TabletEvent*))(KWin::TabletEvent*)> >
>(__first=0x0000562f6f4b96f8, __last=0x0000562f6f4b9700,
__pred=_Iter_pred<std::_Bind<bool
(KWin::InputEventFilter::*(std::_Placeholder<1>, KWin::TabletEvent
*))(KWin::TabletEvent *)> > @ 0x00007fffd35066e0,
(null)=random_access_iterator_tag @ 0x00007fffd3506690))(KWin::TabletEvent*)>
>, std::random_access_iterator_tag) at stl_algobase.h:2099:8
    frame #24: 0x00007f04611f81d6 libkwin.so.5`KWin::InputEventFilter* const*
std::__find_if<KWin::InputEventFilter* const*,
__gnu_cxx::__ops::_Iter_pred<std::_Bind<bool (KWin::InputEventFilter::*
(std::_Placeholder<1>, KWin::TabletEvent*))(KWin::TabletEvent*)> >
>(__first=0x0000562f6f4b9678, __last=0x0000562f6f4b9700,
__pred=<unavailable>))(KWin::TabletEvent*)> >) at stl_algobase.h:2114:14
    frame #25: 0x00007f04611f814e libkwin.so.5`KWin::InputEventFilter* const*
std::find_if<KWin::InputEventFilter* const*, std::_Bind<bool
(KWin::InputEventFilter::* (std::_Placeholder<1>,
KWin::TabletEvent*))(KWin::TabletEvent*)> >(__first=0x0000562f6f4b9678,
__last=0x0000562f6f4b9700, __pred=<unavailable>))(KWin::TabletEvent*)>) at
stl_algo.h:3910:14
    frame #26: 0x00007f04611f80b1 libkwin.so.5`bool
std::none_of<KWin::InputEventFilter* const*, std::_Bind<bool
(KWin::InputEventFilter::* (std::_Placeholder<1>,
KWin::TabletEvent*))(KWin::TabletEvent*)> >(__first=0x0000562f6f4b9678,
__last=0x0000562f6f4b9700, __pred=<unavailable>))(KWin::TabletEvent*)>) at
stl_algo.h:471:24
    frame #27: 0x00007f04611f803d libkwin.so.5`bool
std::any_of<KWin::InputEventFilter* const*, std::_Bind<bool
(KWin::InputEventFilter::* (std::_Placeholder<1>,
KWin::TabletEvent*))(KWin::TabletEvent*)> >(__first=0x0000562f6f4b9678,
__last=0x0000562f6f4b9700, __pred=<unavailable>))(KWin::TabletEvent*)>) at
stl_algo.h:490:15
    frame #28: 0x00007f04611f6fde libkwin.so.5`void
KWin::InputRedirection::processFilters<std::_Bind<bool
(KWin::InputEventFilter::* (std::_Placeholder<1>,
KWin::TabletEvent*))(KWin::TabletEvent*)> >(this=0x0000562f6ee8be70,
function=_Bind<bool (KWin::InputEventFilter::*(std::_Placeholder<1>,
KWin::TabletEvent *))(KWin::TabletEvent *)> @
0x00007fffd35069b0))(KWin::TabletEvent*)>) at input.h:186:9
    frame #29: 0x00007f04611f5c72
libkwin.so.5`KWin::TabletInputRedirection::tabletToolEvent(this=0x0000562f6ed78bc0,
type=Proximity, pos=0x00007fffd35072d8, pressure=0, xTilt=0, yTilt=0,
rotation=0, tipDown=false, tipNear=true, tabletToolId=0x00007fffd3507298,
time=11150755) at tablet_input.cpp:84:14
    frame #30: 0x00007f04610da48f
libkwin.so.5`QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1, 2, 3, 4, 5, 6,
7, 8, 9>, QtPrivate::List<KWin::InputRedirection::TabletEventType, QPointF
const&, double, int, int, double, bool, bool, KWin::TabletToolId const&,
unsigned int>, void, void
(KWin::TabletInputRedirection::*)(KWin::InputRedirection::TabletEventType,
QPointF const&, double, int, int, double, bool, bool, KWin::TabletToolId
const&, unsigned int)>::call(f=f0 58 1f 61 04 7f 00 00 00 00 00 00 00 00 00 00,
o=0x0000562f6ed78bc0,
arg=0x00007fffd3506de0)(KWin::InputRedirection::TabletEventType, QPointF
const&, double, int, int, double, bool, bool, KWin::TabletToolId const&,
unsigned int), KWin::TabletInputRedirection*, void**) at
qobjectdefs_impl.h:152:13
    frame #31: 0x00007f04610da38d libkwin.so.5`void
QtPrivate::FunctionPointer<void
(KWin::TabletInputRedirection::*)(KWin::InputRedirection::TabletEventType,
QPointF const&, double, int, int, double, bool, bool, KWin::TabletToolId
const&, unsigned
int)>::call<QtPrivate::List<KWin::InputRedirection::TabletEventType, QPointF
const&, double, int, int, double, bool, bool, KWin::TabletToolId const&,
unsigned int>, void>(f=f0 58 1f 61 04 7f 00 00 00 00 00 00 00 00 00 00,
o=0x0000562f6ed78bc0,
arg=0x00007fffd3506de0)(KWin::InputRedirection::TabletEventType, QPointF
const&, double, int, int, double, bool, bool, KWin::TabletToolId const&,
unsigned int), KWin::TabletInputRedirection*, void**) at
qobjectdefs_impl.h:185:13
    frame #32: 0x00007f04610da2d2 libkwin.so.5`QtPrivate::QSlotObject<void
(KWin::TabletInputRedirection::*)(KWin::InputRedirection::TabletEventType,
QPointF const&, double, int, int, double, bool, bool, KWin::TabletToolId
const&, unsigned int), QtPrivate::List<KWin::InputRedirection::TabletEventType,
QPointF const&, double, int, int, double, bool, bool, KWin::TabletToolId
const&, unsigned int>, void>::impl(which=1, this_=0x0000562f70292940,
r=0x0000562f6ed78bc0, a=0x00007fffd3506de0, ret=0x0000000000000000) at
qobjectdefs_impl.h:418:17
    frame #33: 0x00007f045d490a87
libQt5Core.so.5`QtPrivate::QSlotObjectBase::call(this=0x0000562f70292940,
r=0x0000562f6ed78bc0, a=0x00007fffd3506de0) at qobjectdefs_impl.h:398:57
    frame #34: 0x00007f045d4d4290 libQt5Core.so.5`void
doActivate<false>(sender=0x0000562f6ef6d910, signal_index=26,
argv=0x00007fffd3506de0) at qobject.cpp:3886:30
    frame #35: 0x00007f045d4cd6e1
libQt5Core.so.5`QMetaObject::activate(sender=0x0000562f6ef6d910,
m=0x00007f04614d39e0, local_signal_index=23, argv=0x00007fffd3506de0) at
qobject.cpp:3946:26
    frame #36: 0x00007f0460f8be25
libkwin.so.5`KWin::InputDevice::tabletToolEvent(this=0x0000562f6ef6d910,
_t1=Proximity, _t2=0x00007fffd35072d8, _t3=0, _t4=0, _t5=0, _t6=0, _t7=false,
_t8=true, _t9=0x00007fffd3507298, _t10=11150755) at moc_inputdevice.cpp:817:5
    frame #37: 0x00007f04612eb25e
libkwin.so.5`KWin::LibInput::Connection::processEvents(this=0x0000562f6f002110)
at connection.cpp:492:45
    frame #38: 0x00007f04612ff56c
libkwin.so.5`KWin::LibinputBackend::LibinputBackend(this=0x00007f0450007290)::$_1::operator()()
const at libinputbackend.cpp:25:23
    frame #39: 0x00007f04612ff516
libkwin.so.5`QtPrivate::FunctorCall<QtPrivate::IndexesList<>,
QtPrivate::List<>, void,
KWin::LibinputBackend::LibinputBackend(QObject*)::$_1>::call(f=0x00007f0450007290,
arg=0x00007f040c04ffa8)::$_1&, void**) at qobjectdefs_impl.h:146:13
    frame #40: 0x00007f04612ff4e1 libkwin.so.5`void
QtPrivate::Functor<KWin::LibinputBackend::LibinputBackend(QObject*)::$_1,
0>::call<QtPrivate::List<>, void>(f=0x00007f0450007290,
(null)=0x0000562f6ee8f060, arg=0x00007f040c04ffa8)::$_1&, void*, void**) at
qobjectdefs_impl.h:256:13
    frame #41: 0x00007f04612ff481
libkwin.so.5`QtPrivate::QFunctorSlotObject<KWin::LibinputBackend::LibinputBackend(QObject*)::$_1,
0, QtPrivate::List<>, void>::impl(which=1, this_=0x00007f0450007280,
r=0x0000562f6ee8f060, a=0x00007f040c04ffa8, ret=0x0000000000000000) at
qobjectdefs_impl.h:443:17
    frame #42: 0x00007f045d490a87
libQt5Core.so.5`QtPrivate::QSlotObjectBase::call(this=0x00007f0450007280,
r=0x0000562f6ee8f060, a=0x00007f040c04ffa8) at qobjectdefs_impl.h:398:57
    frame #43: 0x00007f045d4c5581
libQt5Core.so.5`QMetaCallEvent::placeMetaCall(this=0x00007f040c04ff60,
object=0x0000562f6ee8f060) at qobject.cpp:615:25
    frame #44: 0x00007f045d4c6533
libQt5Core.so.5`QObject::event(this=0x0000562f6ee8f060, e=0x00007f040c04ff60)
at qobject.cpp:1314:31
    frame #45: 0x00007f045e49607d
libQt5Widgets.so.5`QApplicationPrivate::notify_helper(this=0x0000562f6ed15e40,
receiver=0x0000562f6ee8f060, e=0x00007f040c04ff60) at qapplication.cpp:3632:31
    frame #46: 0x00007f045e4932e9
libQt5Widgets.so.5`QApplication::notify(this=0x00007fffd35085e0,
receiver=0x0000562f6ee8f060, e=0x00007f040c04ff60) at qapplication.cpp:2972:31
    frame #47: 0x00007f045d47e41d
libQt5Core.so.5`QCoreApplication::notifyInternal2(receiver=0x0000562f6ee8f060,
event=0x00007f040c04ff60) at qcoreapplication.cpp:1064:24
    frame #48: 0x00007f045d47eea2
libQt5Core.so.5`QCoreApplication::sendEvent(receiver=0x0000562f6ee8f060,
event=0x00007f040c04ff60) at qcoreapplication.cpp:1462:27
    frame #49: 0x00007f045d47fc03
libQt5Core.so.5`QCoreApplicationPrivate::sendPostedEvents(receiver=0x0000000000000000,
event_type=0, data=0x0000562f6ecee4d0) at qcoreapplication.cpp:1821:36
    frame #50: 0x00007f045d511c22
libQt5Core.so.5`QEventDispatcherUNIX::processEvents(this=0x0000562f6ecd9ee0,
flags=(i = 36)) at qeventdispatcher_unix.cpp:468:46
    frame #51: 0x0000562f6ebd1a2e
kwin_wayland`QUnixEventDispatcherQPA::processEvents(this=0x0000562f6ecd9ee0,
flags=(i = 36)) at qunixeventdispatcher.cpp:63:67
    frame #52: 0x00007f045d47a97f
libQt5Core.so.5`QEventLoop::processEvents(this=0x00007fffd3507cb0, flags=(i =
36)) at qeventloop.cpp:139:68
    frame #53: 0x00007f045d47ace0
libQt5Core.so.5`QEventLoop::exec(this=0x00007fffd3507cb0, flags=(i = 0)) at
qeventloop.cpp:232:22
    frame #54: 0x00007f045d47ecdf libQt5Core.so.5`QCoreApplication::exec() at
qcoreapplication.cpp:1375:36
    frame #55: 0x00007f045d9cad2a libQt5Gui.so.5`QGuiApplication::exec() at
qguiapplication.cpp:1867:34
    frame #56: 0x00007f045e492caf libQt5Widgets.so.5`QApplication::exec() at
qapplication.cpp:2824:33
    frame #57: 0x0000562f6ea88eb7 kwin_wayland`main(argc=14,
argv=0x00007fffd3508838) at main_wayland.cpp:733:12
    frame #58: 0x00007f045c81ab25 libc.so.6`__libc_start_main + 213
    frame #59: 0x0000562f6ea2c7ce kwin_wayland`_start + 46

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

Reply via email to