Details
-
Bug
-
Resolution: Unresolved
-
P3: Somewhat important
-
None
-
5.15
-
None
Description
Hi
It seems to be FIXED in Qt 6, but it seems to not be backported to 5.15, 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 the support for animated cursors in 5.14, once an animated cursor is active and the cursor is over the window, the Qt application crashes (like 'wait' in oxy-white)
I opened a report for it in the 5.14 days, but it never got fixed, and it got closed because it's fixed in 6.0, but still not in the 5.x series
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@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@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.
Attachments
Issue Links
- relates to
-
QTBUG-78652 QtWayland 5.14 crashes with animated cursors and 32 bit
- Closed