[kde] [Bug 463709] New: Animated Cursors in Weston with 32 bit QtWayland kde/5.15 branch causes crashes
bugzilla_noreply at kde.org
bugzilla_noreply at kde.org
Mon Jan 2 00:59:49 GMT 2023
https://bugs.kde.org/show_bug.cgi?id=463709
Bug ID: 463709
Summary: Animated Cursors in Weston with 32 bit QtWayland
kde/5.15 branch causes crashes
Classification: I don't know
Product: kde
Version: unspecified
Platform: Compiled Sources
OS: Linux
Status: REPORTED
Severity: crash
Priority: NOR
Component: general
Assignee: unassigned-bugs at kde.org
Reporter: bluescreenavenger at gmail.com
Target Milestone: ---
Created attachment 154946
--> https://bugs.kde.org/attachment.cgi?id=154946&action=edit
Ugly workaround that prevents the crashes
Hi
I am not sure if Qt bugs are accepted here, but I am using the kde/5.15
maintained patches.
Now https://bugreports.qt.io/browse/QTBUG-78652 has existed since 2019 in 32
bit Qt and Weston. It does not happen in 64 bit Qt, so it's not an issue the
patches themselves introduce.
It seems to be FIXED in Qt 6, but they never backported the fix, and I can't
seem to find a relevant commit in QtWayland that would have fixed it. I could
have missed it, and it is also possible the fix is in QtBase or something
The bug happened ever since they supported animated cursors, once an animated
cursor is active and the cursor is over the window, the Qt application crashes
(like 'wait' in oxy-white)
I don't think Qt 5.15 is supported for open source people AFAIK, so I doubt
they will fix it in 5.15
The attached file is an UGLY workaround, but it prevents the crash, maybe that
helps in some direction.
Below is the stack trace:
#0 0x00000001 in ?? ()
No symbol table info available.
#1 0xb43c6d25 in QtWaylandClient::WlCallback::callback_done (this=0xefeb10,
callback_data=42452921) at qwaylandinputdevice.cpp:183
No locals.
#2 0xb43f61e7 in QtWayland::wl_callback::handle_done (data=0xefeb10,
object=0xe2e910, callback_data=42452921) at qwayland-wayland.cpp:183
No locals.
#3 0xb1ee8408 in ffi_call_i386 () at ../src/x86/sysv.S:120
No locals.
#4 0xb1ee7a4f in ffi_call_int (cif=<optimized out>, fn=<optimized out>,
rvalue=<optimized out>, rvalue at entry=0x0, avalue=<optimized out>,
closure=<optimized out>) at ../src/x86/ffi.c:391
rsize = <optimized out>
bytes = <optimized out>
frame = <optimized out>
stack = <optimized out>
argp = 0xbfd6152c "\233\320\065\264\310\025ֿOz\356\261\324a?\264\t"
arg_types = 0xbfd61620
flags = <optimized out>
cabi = 1
i = <optimized out>
n = 3
--Type <RET> for more, q to quit, c to continue without paging--c
dir = 1
narg_reg = 0
pabi = 0xb1ee9298 <abi_params+24>
#5 0xb1ee7cd1 in ffi_call (cif=<optimized out>, fn=<optimized out>,
rvalue=0x0, avalue=0xbfd61678) at ../src/x86/ffi.c:397
No locals.
#6 0xb435f02b in wl_closure_invoke (closure=<optimized out>, flags=1,
target=<optimized out>, opcode=0, data=<optimized out>) at
../src/connection.c:1025
count = 1
cif = {abi = FFI_SYSV, nargs = 3, arg_types = 0xbfd61620, rtype =
0xb1ee9090 <ffi_type_void>, bytes = 12, flags = 9}
ffi_types = {0xb1ee9024 <ffi_type_pointer>, 0xb1ee9024
<ffi_type_pointer>, 0xb1ee9054 <ffi_type_uint32>, 0xb44f1000, 0xc93570, 0x1,
0xf9d070, 0xb43c187b
<QtWaylandClient::QWaylandInputDevice::Pointer::updateCursor()+501>, 0xf9c3c0,
0xec31d0, 0xbfd61674, 0xbfd6167c, 0x1, 0xb61eb000, 0xb61eb740 <main_arena>,
0x20, 0x0, 0xec0007, 0x812dea11, 0x3d719799, 0x1, 0x10}
ffi_args = {0xbfd61700, 0xbfd616f8, 0xa70043c0, 0xee0007, 0xb60838fb
<_int_free+11>, 0xb63b6000, 0xc7f7b4, 0xf5c590, 0xb69a5000, 0xb6274b18
<operator delete(void*)+24>, 0xf5c590, 0x1, 0xb60838fb <_int_free+11>,
0xb63b6000, 0xc7f7b4, 0xb6274b06 <operator delete(void*)+6>, 0xb63b6000,
0xb6274b38 <operator delete(void*, unsigned int)+24>, 0xf5c590, 0x0,
0xb69a5000, 0xb69a5000}
implementation = <optimized out>
#7 0xb435cafd in dispatch_event (display=display at entry=0xc85680,
queue=<optimized out>, queue=<optimized out>) at ../src/wayland-client.c:1595
closure = 0xa70043b0
proxy = 0xe2e910
opcode = 0
proxy_destroyed = <optimized out>
#8 0xb435dbea in dispatch_queue (queue=0xc856f0, display=0xc85680) at
../src/wayland-client.c:1741
count = 0
#9 wl_display_dispatch_queue_pending (display=0xc85680, queue=0xc856f0) at
../src/wayland-client.c:1983
ret = <optimized out>
#10 0xb435dc46 in wl_display_dispatch_pending (display=0xc85680) at
../src/wayland-client.c:2046
No locals.
#11 0xb43c7921 in QtWaylandClient::EventThread::dispatchQueuePending
(this=0xd32470) at qwaylanddisplay.cpp:253
No locals.
#12 QtWaylandClient::EventThread::readAndDispatchEvents (this=0xd32470) at
qwaylanddisplay.cpp:140
No locals.
#13 QtWaylandClient::QWaylandDisplay::flushRequests (this=0xc824e0) at
qwaylanddisplay.cpp:419
No locals.
#14 0xb43cbb34 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>,
QtPrivate::List<>, void, void
(QtWaylandClient::QWaylandDisplay::*)()>::call(void
(QtWaylandClient::QWaylandDisplay::*)(), QtWaylandClient::QWaylandDisplay*,
void**) (arg=0xee56dc, o=0xc824e0, f=<optimized out>) at
/opt/include/QtCore/qobjectdefs_impl.h:152
No locals.
#15 QtPrivate::FunctionPointer<void
(QtWaylandClient::QWaylandDisplay::*)()>::call<QtPrivate::List<>, void>(void
(QtWaylandClient::QWaylandDisplay::*)(), QtWaylandClient::QWaylandDisplay*,
void**) (arg=0xee56dc, o=0xc824e0, f=<optimized out>) at
/opt/include/QtCore/qobjectdefs_impl.h:185
No locals.
#16 QtPrivate::QSlotObject<void (QtWaylandClient::QWaylandDisplay::*)(),
QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*,
void**, bool*) (which=1, this_=0xd324c0, r=0xc824e0, a=0xee56dc, ret=0x0) at
/opt/include/QtCore/qobjectdefs_impl.h:418
No locals.
#17 0xb6672d04 in QtPrivate::QSlotObjectBase::call (a=<optimized out>,
r=0xc824e0, this=<optimized out>) at
../../include/QtCore/../../../src/corelib/kernel/qobjectdefs_impl.h:398
No locals.
#18 QMetaCallEvent::placeMetaCall (this=0xee56b0, object=0xc824e0) at
/srcbuild/qt5-qtbase/src/corelib/kernel/qobject.cpp:633
No locals.
#19 0xb667a888 in QObject::event (this=<optimized out>, e=<optimized out>) at
/srcbuild/qt5-qtbase/src/corelib/kernel/qobject.cpp:1347
mce = 0xee56b0
sender = {previous = 0x0, receiver = 0xc824e0, sender = 0xd32470,
signal = 5}
#20 0xb73380d2 in QApplicationPrivate::notify_helper (this=0xc7ee70,
receiver=0xc824e0, e=0xee56b0) at
/srcbuild/qt5-qtbase/src/widgets/kernel/qapplication.cpp:3637
consumed = false
filtered = false
#21 0xb734172a in QApplication::notify (this=0xc7ee60, receiver=0xc824e0,
e=0xee56b0) at /srcbuild/qt5-qtbase/src/widgets/kernel/qapplication.cpp:2977
d = 0xc7ee70
__PRETTY_FUNCTION__ = "virtual bool QApplication::notify(QObject*,
QEvent*)"
res = false
#22 0xb663ecd2 in QCoreApplication::notifyInternal2 (receiver=0xc824e0,
event=0xee56b0) at
/srcbuild/qt5-qtbase/src/corelib/kernel/qcoreapplication.cpp:1064
selfRequired = true
result = false
cbdata = {0xc824e0, 0xee56b0, 0xbfd61c1f}
d = <optimized out>
threadData = 0xc7c810
scopeLevelCounter = {threadData = 0xc7c810}
#23 0xb663ef92 in QCoreApplication::sendEvent (receiver=0xc824e0,
event=0xee56b0) at
/srcbuild/qt5-qtbase/src/corelib/kernel/qcoreapplication.cpp:1462
No locals.
#24 0xb6642db4 in QCoreApplicationPrivate::sendPostedEvents
(receiver=<optimized out>, event_type=<optimized out>, data=<optimized out>) at
/srcbuild/qt5-qtbase/src/corelib/kernel/qcoreapplication.cpp:1821
e = <optimized out>
pe = <optimized out>
r = 0xc824e0
relocker = {m_func = {__locker = @0xbfd61cb0}, m_invoke = true}
event_deleter = {d = 0xee56b0}
__PRETTY_FUNCTION__ = "static void
QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*)"
locker = {_M_device = 0xc7c830, _M_owns = false}
startOffset = 0
i = <optimized out>
cleanup = {receiver = 0x0, event_type = 0, data = 0xc7c810,
exceptionCaught = true}
#25 0xb66430b9 in QCoreApplication::sendPostedEvents (receiver=0x0,
event_type=0) at
/srcbuild/qt5-qtbase/src/corelib/kernel/qcoreapplication.cpp:1680
data = <optimized out>
#26 0xb66acd1b in postEventSourceDispatch (s=0xc7fdd0) at
/srcbuild/qt5-qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:277
source = 0xc7fdd0
#27 0xb47197b2 in g_main_context_dispatch () from
/opt/lib/i386-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#28 0xb4719a27 in g_main_context_iterate.constprop () from
/opt/lib/i386-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#29 0xb4719ad5 in g_main_context_iteration () from
/opt/lib/i386-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#30 0xb66ac6a1 in QEventDispatcherGlib::processEvents (this=0xd2d610,
flags=...) at
/srcbuild/qt5-qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:423
d = 0xcbbb50
canWait = true
savedFlags = {i = <optimized out>}
result = <optimized out>
#31 0xb440bdcf in QPAEventDispatcherGlib::processEvents (this=0xd2d610,
flags=...) at
/srcbuild/qt5-qtbase/src/platformsupport/eventdispatchers/qeventdispatcher_glib.cpp:120
No locals.
#32 0xb663c6d3 in QEventLoop::processEvents (this=0xbfd61f30, flags=...) at
/srcbuild/qt5-qtbase/src/corelib/kernel/qeventloop.cpp:139
d = <optimized out>
threadData = <optimized out>
#33 0xb663cda5 in QEventLoop::exec (this=<optimized out>, flags=...) at
../../include/QtCore/../../../src/corelib/global/qflags.h:69
d = 0xfa19b0
threadData = <optimized out>
locker = {val = 13095248}
__PRETTY_FUNCTION__ = "int
QEventLoop::exec(QEventLoop::ProcessEventsFlags)"
ref = {d = 0xfa19b0, locker = @0xbfd61ec0, exceptionCaught = true}
app = <optimized out>
#34 0xb6647829 in QCoreApplication::exec () at
../../include/QtCore/../../../src/corelib/global/qflags.h:121
threadData = 0xc7c810
__PRETTY_FUNCTION__ = "static int QCoreApplication::exec()"
eventLoop = {<QObject> = {_vptr.QObject = 0xb69a3bdc <vtable for
QEventLoop+8>, static staticMetaObject = {d = {superdata = {direct = 0x0},
stringdata = 0xb683ca80 <qt_meta_stringdata_QObject>, data = 0xb683c960
<qt_meta_data_QObject>, static_metacall = 0xb6680b76
<QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>,
relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0xfa19b0}, static
staticQtMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0xb683f9e0
<qt_meta_stringdata_Qt>, data = 0xb683cb60 <qt_meta_data_Qt>, static_metacall =
0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d
= {superdata = {direct = 0xb699ea00 <QObject::staticMetaObject>}, stringdata =
0xb68354a0 <qt_meta_stringdata_QEventLoop>, data = 0xb6835440
<qt_meta_data_QEventLoop>, static_metacall = 0xb663c806
<QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>,
relatedMetaObjects = 0x0, extradata = 0x0}}}
returnCode = <optimized out>
#35 0xb6b6858b in QGuiApplication::exec () at
/srcbuild/qt5-qtbase/src/gui/kernel/qguiapplication.cpp:1870
No locals.
#36 0xb7338038 in QApplication::exec () at
/srcbuild/qt5-qtbase/src/widgets/kernel/qapplication.cpp:2829
No locals.
#37 0x0049ddce in main ()
No symbol table info available.
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the Unassigned-bugs
mailing list