Closed Pointedstick closed 2 years ago
Can you tell me steps to reproduce this?
I have not found anything consistent. :( It's literally just "select some text and sometimes maliit-keyboard crashes with this backtrace"
Can you verify if latest git build still does this for you? If so, I'd like to find it and get a fix in for it, to make a release. Of particular note is that we switched to text-input-v2, though i'm not sure if that would be related to whatever the actual problem is here.
I have not been successful at compiling from source. maliit-plugins
fails for me with this error:
/home/nate/Documents/FOSS/3rdParty/maliit-plugins/maliit-keyboard/lib/logic/spellchecker.cpp:206:46: error: cannot convert ‘QByteArray’ to ‘const string&’ {aka ‘const std::__cxx11::basic_string<char>&’}
206 | if (d->hunspell.add(d->codec->fromUnicode(word))) {
| ~~~~~~~~~~~~~~~~~~~~~^~~~~~
| |
| QByteArray
I have not been successful at compiling from source.
maliit-plugins
fails for me with this error:
That is dead and you don't need to compile it. Can you not compile just the keyboard (this repo)? If you have the maliit-framework-devel
(I presume that's what Fedora calls it) package installed, it should satisfy the maliit-plugins
library requirement (which I presume is what led you to trying to build maliit-plugins). You'll also need hunspell
and presage
for spell checking and text prediction, qtfeedback
(though maybe useless on a PC), qtmultimedia
and qtdeclarative
of course, and anthy
, libpinyin
, and libchewing
if you want to build CJK methods.
Ah ok. Unfortunately the Fedora repos don't seem to have presage
.
Ah ok. Unfortunately the Fedora repos don't seem to have
presage
.
OK, you can build without it using -Denagle-presage=OFF
argument to cmake.
OK I got it built. I'll live with it for a while and see if it stops crashing.
I installed it to /usr/local/
and rebooted, but I'm afraid it's still crashing. Here's a newer and more complete backtrace:
#0 QList<QtWaylandClient::QWaylandDisplay::RegistryGlobal>::Node::t() (this=0x9633c50)
at /usr/include/qt5/QtCore/qlist.h:151
maliit/keyboard#1 QList<QtWaylandClient::QWaylandDisplay::RegistryGlobal>::const_iterator::operator*() const
(this=<synthetic pointer>) at /usr/include/qt5/QtCore/qlist.h:313
maliit/keyboard#2 QtWaylandClient::QWaylandInputPanelShellIntegration::initialize(QtWaylandClient::QWaylandDisplay*) (this=0x1647030, display=0x1013250)
at /usr/src/debug/maliit-framework-2.0.0-4.fc35.x86_64/src/qt/plugins/shellintegration/qwaylandinputpanelshellintegration.cpp:35
maliit/keyboard#3 0x00007f077c00d397 in QtWaylandClient::QWaylandShellIntegrationFactory::create(QString const&, QtWaylandClient::QWaylandDisplay*, QStringList const&, QString const&)
(name=..., display=0x1013250, args=..., pluginPath=<optimized out>)
at shellintegration/qwaylandshellintegrationfactory.cpp:95
maliit/keyboard#4 0x00007f077bfe9ea1 in QtWaylandClient::QWaylandIntegration::createShellIntegration(QString const&) (this=this@entry=0x100c230, integrationName=...) at /usr/include/qt5/QtCore/qscopedpointer.h:138
maliit/keyboard#5 0x00007f077bfea0cb in QtWaylandClient::QWaylandIntegration::initializeShellIntegration()
(this=0x100c230)
at /usr/src/debug/qt5-qtwayland-5.15.2-17.fc35.x86_64/src/client/qwaylandintegration.cpp:422
maliit/keyboard#6 0x00007f077bff5508 in QtWaylandClient::QWaylandIntegration::shellIntegration() const
(this=0x100c230)
at /usr/src/debug/qt5-qtwayland-5.15.2-17.fc35.x86_64/src/client/qwaylandintegration.cpp:323
maliit/keyboard#7 QtWaylandClient::QWaylandDisplay::shellIntegration() const (this=<optimized out>)
at /usr/src/debug/qt5-qtwayland-5.15.2-17.fc35.x86_64/src/client/qwaylanddisplay.cpp:320
maliit/keyboard#8 0x00007f077bff5531 in QtWaylandClient::QWaylandWindow::shouldCreateShellSurface() const
(this=this@entry=0x159c6e0)
at /usr/src/debug/qt5-qtwayland-5.15.2-17.fc35.x86_64/src/client/qwaylandwindow.cpp:220
maliit/keyboard#9 0x00007f077bff9e1a in QtWaylandClient::QWaylandWindow::initWindow() (this=0x159c6e0)
at /usr/src/debug/qt5-qtwayland-5.15.2-17.fc35.x86_64/src/client/qwaylandwindow.cpp:137
maliit/keyboard#10 0x00007f077bffa426 in QtWaylandClient::QWaylandWindow::setVisible(bool)
(visible=<optimized out>, this=0x159c6e0)
at /usr/src/debug/qt5-qtwayland-5.15.2-17.fc35.x86_64/src/client/qwaylandwindow.cpp:435
maliit/keyboard#11 QtWaylandClient::QWaylandWindow::setVisible(bool) (this=0x159c6e0, visible=<optimized out>)
at /usr/src/debug/qt5-qtwayland-5.15.2-17.fc35.x86_64/src/client/qwaylandwindow.cpp:425
maliit/keyboard#12 0x00007f078d836feb in QWindowPrivate::setVisible(bool) (this=0xfff590, visible=<optimized out>)
at kernel/qwindow.cpp:408
maliit/keyboard#13 0x000000000041a387 in InputMethod::show() ()
maliit/keyboard#14 0x00007f078d2423e9 in QtPrivate::QSlotObjectBase::call(QObject*, void**)
(a=0x7ffc43fe2220, r=<optimized out>, this=0x15c5350)
at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
maliit/keyboard#15 doActivate<false>(QObject*, int, void**)
(sender=0x10bd1c0, signal_index=8, argv=0x7ffc43fe2220) at kernel/qobject.cpp:3886
maliit/keyboard#16 0x00007f078ebf0321 in Maliit::Wayland::InputMethodContext::InputMethodContext(MInputContextConnection*, zwp_input_method_context_v1*)
(this=0x161c0c0, connection=0x10bd1c0, object=<optimized out>, this=<optimized out>, connection=<optimized out>, object=<optimized out>)
at /usr/src/debug/maliit-framework-2.0.0-4.fc35.x86_64/connection/waylandinputmethodconnection.cpp:514
maliit/keyboard#17 0x00007f078ebf0b82 in Maliit::Wayland::InputMethod::zwp_input_method_v1_activate(zwp_input_method_context_v1*) (this=0x15c6060, id=0x7f076c005d00)
at /usr/src/debug/maliit-framework-2.0.0-4.fc35.x86_64/connection/waylandinputmethodconnection.cpp:488
maliit/keyboard#18 0x00007f078c8eac04 in ffi_call_unix64 () at ../src/x86/unix64.S:76
maliit/keyboard#19 0x00007f078c8ea108 in ffi_call
(cif=cif@entry=0x7ffc43fe2490, fn=<optimized out>, rvalue=<optimized out>,
rvalue@entry=0x0, avalue=avalue@entry=0x7ffc43fe2560) at ../src/x86/ffi64.c:525
maliit/keyboard#20 0x00007f078c988d10 in wl_closure_invoke
(closure=closure@entry=0x7f076c00efc0, target=<optimized out>,
target@entry=0x1627d00, opcode=opcode@entry=0, data=<optimized out>, flags=<optimized out>)
at ../src/connection.c:1018
maliit/keyboard#21 0x00007f078c98941b in dispatch_event
(display=display@entry=0x1013440, queue=0x1013510, queue=<optimized out>)
at ../src/wayland-client.c:1452
maliit/keyboard#22 0x00007f078c98960c in dispatch_queue (queue=0x1013510, display=0x1013440)
at ../src/wayland-client.c:1598
maliit/keyboard#23 wl_display_dispatch_queue_pending (display=0x1013440, queue=0x1013510)
at ../src/wayland-client.c:1840
maliit/keyboard#24 0x00007f077bff4025 in QtWaylandClient::QWaylandDisplay::flushRequests() (this=<optimized out>)
at /usr/src/debug/qt5-qtwayland-5.15.2-17.fc35.x86_64/src/client/qwaylanddisplay.cpp:253
maliit/keyboard#25 0x00007f078d238f49 in QObject::event(QEvent*) (this=0x1013250, e=0x7f0774004780)
at kernel/qobject.cpp:1314
maliit/keyboard#26 0x00007f078d20e7d8 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
(receiver=0x1013250, event=0x7f0774004780) at kernel/qcoreapplication.cpp:1064
maliit/keyboard#27 0x00007f078d211d46 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*)
(receiver=0x0, event_type=0, data=0x1006ff0) at kernel/qcoreapplication.cpp:1821
maliit/keyboard#28 0x00007f078d260117 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x105dab0)
at kernel/qeventdispatcher_glib.cpp:277
maliit/keyboard#29 0x00007f078de4f05f in g_main_dispatch (context=0x10717b0) at ../glib/gmain.c:3381
maliit/keyboard#30 g_main_context_dispatch (context=0x10717b0) at ../glib/gmain.c:4099
maliit/keyboard#31 0x00007f078dea42a8 in g_main_context_iterate.constprop.0
(context=context@entry=0x10717b0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4175
maliit/keyboard#32 0x00007f078de4c853 in g_main_context_iteration (context=0x10717b0, may_block=1)
at ../glib/gmain.c:4240
maliit/keyboard#33 0x00007f078d25fbb8 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x10658f0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
maliit/keyboard#34 0x00007f078d20d1e2 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)
(this=this@entry=0x7ffc43fe2af0, flags=..., flags@entry=...)
at ../../include/QtCore/../../src/corelib/global/qflags.h:69
maliit/keyboard#35 0x00007f078d215724 in QCoreApplication::exec() ()
at ../../include/QtCore/../../src/corelib/global/qflags.h:121
maliit/keyboard#36 0x000000000040f9a3 in main ()
maliit/keyboard#2 QtWaylandClient::QWaylandInputPanelShellIntegration::initialize(QtWaylandClient::QWaylandDisplay*) (this=0x1647030, display=0x1013250)
Hrmm, are you using a qtwayland
built from kde/5.15
and have maliit-framework
built against fedora qtwayland or something?
I don't have qtwayland
built from source anywhere; I use the qt5-qtwayland-devel
Fedora package for it.
OK. Can you try to build the wayland-crash
branch of https://github.com/maliit/framework too? It's where this last crash occurred, and while the looks like it should be ok,it could have been simplified, and it might fix this crash. This is in the wayland shell integration plugin, which needs to be in the qt5/plugins/
path of your Qt installation.
Oops. I just realized that the issue was reported against keyboard, but both of the stack traces are in framework, and I've moved it there. Please try to build framework from git, and with the above branch, to see if it resolves the issues for you. Thanks.
OK, I build maliit-frameworks
from source and then build maliit-keyboard
again for good measure and then rebooted, and I am still getting crashes:
(gdb) bt
#0 QList<QtWaylandClient::QWaylandDisplay::RegistryGlobal>::Node::t() (this=0xa910d90)
at /usr/include/qt5/QtCore/qlist.h:151
#1 QList<QtWaylandClient::QWaylandDisplay::RegistryGlobal>::const_iterator::operator*() const
(this=<synthetic pointer>) at /usr/include/qt5/QtCore/qlist.h:313
#2 QtWaylandClient::QWaylandInputPanelShellIntegration::initialize(QtWaylandClient::QWaylandDisplay*) (this=0x1842580, display=0x1221580)
at /usr/src/debug/maliit-framework-2.0.0-4.fc35.x86_64/src/qt/plugins/shellintegration/qwaylandinputpanelshellintegration.cpp:35
#3 0x00007fe8d85c5397 in QtWaylandClient::QWaylandShellIntegrationFactory::create(QString const&, QtWaylandClient::QWaylandDisplay*, QStringList const&, QString const&)
(name=..., display=0x1221580, args=..., pluginPath=<optimized out>)
at shellintegration/qwaylandshellintegrationfactory.cpp:95
#4 0x00007fe8d85a1ea1 in QtWaylandClient::QWaylandIntegration::createShellIntegration(QString const&) (this=this@entry=0x121a560, integrationName=...) at /usr/include/qt5/QtCore/qscopedpointer.h:138
#5 0x00007fe8d85a20cb in QtWaylandClient::QWaylandIntegration::initializeShellIntegration()
(this=0x121a560)
at /usr/src/debug/qt5-qtwayland-5.15.2-17.fc35.x86_64/src/client/qwaylandintegration.cpp:422
#6 0x00007fe8d85ad508 in QtWaylandClient::QWaylandIntegration::shellIntegration() const
(this=0x121a560)
at /usr/src/debug/qt5-qtwayland-5.15.2-17.fc35.x86_64/src/client/qwaylandintegration.cpp:323
#7 QtWaylandClient::QWaylandDisplay::shellIntegration() const (this=<optimized out>)
at /usr/src/debug/qt5-qtwayland-5.15.2-17.fc35.x86_64/src/client/qwaylanddisplay.cpp:320
#8 0x00007fe8d85ad531 in QtWaylandClient::QWaylandWindow::shouldCreateShellSurface() const
(this=this@entry=0x17a7610)
at /usr/src/debug/qt5-qtwayland-5.15.2-17.fc35.x86_64/src/client/qwaylandwindow.cpp:220
#9 0x00007fe8d85b1e1a in QtWaylandClient::QWaylandWindow::initWindow() (this=0x17a7610)
at /usr/src/debug/qt5-qtwayland-5.15.2-17.fc35.x86_64/src/client/qwaylandwindow.cpp:137
#10 0x00007fe8d85b2426 in QtWaylandClient::QWaylandWindow::setVisible(bool)
(visible=<optimized out>, this=0x17a7610)
at /usr/src/debug/qt5-qtwayland-5.15.2-17.fc35.x86_64/src/client/qwaylandwindow.cpp:435
#11 QtWaylandClient::QWaylandWindow::setVisible(bool) (this=0x17a7610, visible=<optimized out>)
at /usr/src/debug/qt5-qtwayland-5.15.2-17.fc35.x86_64/src/client/qwaylandwindow.cpp:425
#12 0x00007fe8e9deefeb in QWindowPrivate::setVisible(bool)
(this=0x12ef4c0, visible=<optimized out>) at kernel/qwindow.cpp:408
#13 0x000000000041a387 in InputMethod::show() ()
#14 0x00007fe8e97fa3e9 in QtPrivate::QSlotObjectBase::call(QObject*, void**)
(a=0x7ffd75aec7b0, r=<optimized out>, this=0x17cf6c0)
at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#15 doActivate<false>(QObject*, int, void**)
(sender=0x12cad70, signal_index=8, argv=0x7ffd75aec7b0) at kernel/qobject.cpp:3886
#16 0x00007fe8eb1a8321 in Maliit::Wayland::InputMethodContext::InputMethodContext(MInputContextConnection*, zwp_input_method_context_v1*)
(this=0x180dbd0, connection=0x12cad70, object=<optimized out>, this=<optimized out>, connection=<optimized out>, object=<optimized out>)
at /usr/src/debug/maliit-framework-2.0.0-4.fc35.x86_64/connection/waylandinputmethodconnection.cpp:514
#17 0x00007fe8eb1a8b82 in Maliit::Wayland::InputMethod::zwp_input_method_v1_activate(zwp_input_method_context_v1*) (this=0x17d0850, id=0x7fe8c8005f70)
at /usr/src/debug/maliit-framework-2.0.0-4.fc35.x86_64/connection/waylandinputmethodconnection.cpp:488
#18 0x00007fe8e8ea2c04 in ffi_call_unix64 () at ../src/x86/unix64.S:76
#19 0x00007fe8e8ea2108 in ffi_call
(cif=cif@entry=0x7ffd75aeca20, fn=<optimized out>, rvalue=<optimized out>,
rvalue@entry=0x0, avalue=avalue@entry=0x7ffd75aecaf0) at ../src/x86/ffi64.c:525
#20 0x00007fe8e8f40d10 in wl_closure_invoke
(closure=closure@entry=0x7fe8c800fb70, target=<optimized out>,
target@entry=0x1835bd0, opcode=opcode@entry=0, data=<optimized out>, flags=<optimized out>)
at ../src/connection.c:1018
#21 0x00007fe8e8f4141b in dispatch_event
(display=display@entry=0x1221770, queue=0x1221840, queue=<optimized out>)
at ../src/wayland-client.c:1452
#22 0x00007fe8e8f4160c in dispatch_queue (queue=0x1221840, display=0x1221770)
at ../src/wayland-client.c:1598
#23 wl_display_dispatch_queue_pending (display=0x1221770, queue=0x1221840)
at ../src/wayland-client.c:1840
#24 0x00007fe8d85ac025 in QtWaylandClient::QWaylandDisplay::flushRequests() (this=<optimized out>)
at /usr/src/debug/qt5-qtwayland-5.15.2-17.fc35.x86_64/src/client/qwaylanddisplay.cpp:253
#25 0x00007fe8e97fa430 in doActivate<false>(QObject*, int, void**)
(sender=0x12739b0, signal_index=4, argv=0x7ffd75aecd40) at kernel/qobject.cpp:3898
#26 0x00007fe8e97f5367 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**)
(sender=sender@entry=0x12739b0, m=m@entry=0x7fe8e9a9eae0 <QAbstractEventDispatcher::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x0)
at kernel/qobject.cpp:3946
#27 0x00007fe8e97c32b7 in QAbstractEventDispatcher::awake() (this=this@entry=0x12739b0)
at .moc/moc_qabstracteventdispatcher.cpp:149
#28 0x00007fe8e9817c4b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x12739b0, flags=...) at kernel/qeventdispatcher_glib.cpp:430
#29 0x00007fe8e97c51e2 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)
(this=this@entry=0x7ffd75aece60, flags=..., flags@entry=...)
at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#30 0x00007fe8e97cd724 in QCoreApplication::exec() ()
at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#31 0x000000000040f9a3 in main ()
I build
maliit-frameworks
from source
Did you build the wayland-crash
branch, or master?
Oops, my bad.
Unfortunately when I try to build that branch, it doesn't compile for me:
/home/nate/Documents/FOSS/3rdParty/maliit-framework/src/qt/plugins/shellintegration/qwaylandinputpanelshellintegration.cpp: In member function ‘virtual bool QtWaylandClient::QWaylandInputPanelShellIntegration::initialize(QtWaylandClient::QWaylandDisplay*)’:
/home/nate/Documents/FOSS/3rdParty/maliit-framework/src/qt/plugins/shellintegration/qwaylandinputpanelshellintegration.cpp:34:27: error: expected ‘;’ before ‘&’ token
34 | for (const auto global&: display->globals()) {
| ^
| ;
/home/nate/Documents/FOSS/3rdParty/maliit-framework/src/qt/plugins/shellintegration/qwaylandinputpanelshellintegration.cpp:34:28: error: expected primary-expression before ‘:’ token
34 | for (const auto global&: display->globals()) {
| ^
/home/nate/Documents/FOSS/3rdParty/maliit-framework/src/qt/plugins/shellintegration/qwaylandinputpanelshellintegration.cpp:34:28: error: expected ‘;’ before ‘:’ token
34 | for (const auto global&: display->globals()) {
| ^
| ;
/home/nate/Documents/FOSS/3rdParty/maliit-framework/src/qt/plugins/shellintegration/qwaylandinputpanelshellintegration.cpp:34:28: error: expected primary-expression before ‘:’ token
/home/nate/Documents/FOSS/3rdParty/maliit-framework/src/qt/plugins/shellintegration/qwaylandinputpanelshellintegration.cpp:34:28: error: expected ‘)’ before ‘:’ token
34 | for (const auto global&: display->globals()) {
| ~ ^
| )
/home/nate/Documents/FOSS/3rdParty/maliit-framework/src/qt/plugins/shellintegration/qwaylandinputpanelshellintegration.cpp:34:28: error: expected primary-expression before ‘:’ token
Seems like a typo with a trivial fix; fixing it and trying again...
And unfortunately it is still crashing.
#0 QList<QtWaylandClient::QWaylandDisplay::RegistryGlobal>::Node::t() (this=0x11f0b7f0)
at /usr/include/qt5/QtCore/qlist.h:151
#1 QList<QtWaylandClient::QWaylandDisplay::RegistryGlobal>::const_iterator::operator*() const
(this=<synthetic pointer>) at /usr/include/qt5/QtCore/qlist.h:313
#2 QtWaylandClient::QWaylandInputPanelShellIntegration::initialize(QtWaylandClient::QWaylandDisplay*) (this=0x2570580, display=0x1f47580)
at /usr/src/debug/maliit-framework-2.0.0-4.fc35.x86_64/src/qt/plugins/shellintegration/qwaylandinputpanelshellintegration.cpp:35
#3 0x00007f2882399397 in QtWaylandClient::QWaylandShellIntegrationFactory::create(QString const&, QtWaylandClient::QWaylandDisplay*, QStringList const&, QString const&)
(name=..., display=0x1f47580, args=..., pluginPath=<optimized out>)
at shellintegration/qwaylandshellintegrationfactory.cpp:95
#4 0x00007f2882375ea1 in QtWaylandClient::QWaylandIntegration::createShellIntegration(QString const&) (this=this@entry=0x1f40560, integrationName=...) at /usr/include/qt5/QtCore/qscopedpointer.h:138
#5 0x00007f28823760cb in QtWaylandClient::QWaylandIntegration::initializeShellIntegration()
(this=0x1f40560)
at /usr/src/debug/qt5-qtwayland-5.15.2-17.fc35.x86_64/src/client/qwaylandintegration.cpp:422
#6 0x00007f2882381508 in QtWaylandClient::QWaylandIntegration::shellIntegration() const
(this=0x1f40560)
at /usr/src/debug/qt5-qtwayland-5.15.2-17.fc35.x86_64/src/client/qwaylandintegration.cpp:323
#7 QtWaylandClient::QWaylandDisplay::shellIntegration() const (this=<optimized out>)
at /usr/src/debug/qt5-qtwayland-5.15.2-17.fc35.x86_64/src/client/qwaylanddisplay.cpp:320
#8 0x00007f2882381531 in QtWaylandClient::QWaylandWindow::shouldCreateShellSurface() const
(this=this@entry=0x24e9a20)
at /usr/src/debug/qt5-qtwayland-5.15.2-17.fc35.x86_64/src/client/qwaylandwindow.cpp:220
#9 0x00007f2882385e1a in QtWaylandClient::QWaylandWindow::initWindow() (this=0x24e9a20)
at /usr/src/debug/qt5-qtwayland-5.15.2-17.fc35.x86_64/src/client/qwaylandwindow.cpp:137
#10 0x00007f2882386426 in QtWaylandClient::QWaylandWindow::setVisible(bool)
(visible=<optimized out>, this=0x24e9a20)
at /usr/src/debug/qt5-qtwayland-5.15.2-17.fc35.x86_64/src/client/qwaylandwindow.cpp:435
#11 QtWaylandClient::QWaylandWindow::setVisible(bool) (this=0x24e9a20, visible=<optimized out>)
at /usr/src/debug/qt5-qtwayland-5.15.2-17.fc35.x86_64/src/client/qwaylandwindow.cpp:425
#12 0x00007f2893bc2feb in QWindowPrivate::setVisible(bool)
(this=0x1f32590, visible=<optimized out>) at kernel/qwindow.cpp:408
#13 0x000000000041a387 in InputMethod::show() ()
#14 0x00007f28935ce3e9 in QtPrivate::QSlotObjectBase::call(QObject*, void**)
(a=0x7ffffa4b63c0, r=<optimized out>, this=0x24f9a00)
at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#15 doActivate<false>(QObject*, int, void**)
(sender=0x1fcd180, signal_index=8, argv=0x7ffffa4b63c0) at kernel/qobject.cpp:3886
#16 0x00007f2894f7c321 in Maliit::Wayland::InputMethodContext::InputMethodContext(MInputContextConnection*, zwp_input_method_context_v1*)
(this=0x7f282416d800, connection=0x1fcd180, object=<optimized out>, this=<optimized out>, connection=<optimized out>, object=<optimized out>)
at /usr/src/debug/maliit-framework-2.0.0-4.fc35.x86_64/connection/waylandinputmethodconnection.cpp:514
#17 0x00007f2894f7cb82 in Maliit::Wayland::InputMethod::zwp_input_method_v1_activate(zwp_input_method_context_v1*) (this=0x24f5a20, id=0x7f2878005b70)
at /usr/src/debug/maliit-framework-2.0.0-4.fc35.x86_64/connection/waylandinputmethodconnection.cpp:488
#18 0x00007f2892c76c04 in ffi_call_unix64 () at ../src/x86/unix64.S:76
#19 0x00007f2892c76108 in ffi_call
(cif=cif@entry=0x7ffffa4b6630, fn=<optimized out>, rvalue=<optimized out>,
rvalue@entry=0x0, avalue=avalue@entry=0x7ffffa4b6700) at ../src/x86/ffi64.c:525
#20 0x00007f2892d14d10 in wl_closure_invoke
(closure=closure@entry=0x7f2878001c00, target=<optimized out>,
target@entry=0x255ba10, opcode=opcode@entry=0, data=<optimized out>, flags=<optimized out>)
at ../src/connection.c:1018
#21 0x00007f2892d1541b in dispatch_event
(display=display@entry=0x1f47770, queue=0x1f47840, queue=<optimized out>)
at ../src/wayland-client.c:1452
#22 0x00007f2892d1560c in dispatch_queue (queue=0x1f47840, display=0x1f47770)
at ../src/wayland-client.c:1598
#23 wl_display_dispatch_queue_pending (display=0x1f47770, queue=0x1f47840)
at ../src/wayland-client.c:1840
#24 0x00007f2882380025 in QtWaylandClient::QWaylandDisplay::flushRequests() (this=<optimized out>)
at /usr/src/debug/qt5-qtwayland-5.15.2-17.fc35.x86_64/src/client/qwaylanddisplay.cpp:253
#25 0x00007f28935c4f49 in QObject::event(QEvent*) (this=0x1f47580, e=0x7f2870004780)
at kernel/qobject.cpp:1314
#26 0x00007f289359a7d8 in QCoreApplication::notifyInternal2(QObject*, QEvent*)
(receiver=0x1f47580, event=0x7f2870004780) at kernel/qcoreapplication.cpp:1064
#27 0x00007f289359dd46 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*)
(receiver=0x0, event_type=0, data=0x1f39ff0) at kernel/qcoreapplication.cpp:1821
#28 0x00007f28935ec117 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x1f91b70)
at kernel/qeventdispatcher_glib.cpp:277
#29 0x00007f28941db05f in g_main_dispatch (context=0x1fa5870) at ../glib/gmain.c:3381
#30 g_main_context_dispatch (context=0x1fa5870) at ../glib/gmain.c:4099
#31 0x00007f28942302a8 in g_main_context_iterate.constprop.0
(context=context@entry=0x1fa5870, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4175
#32 0x00007f28941d8853 in g_main_context_iteration (context=0x1fa5870, may_block=1)
at ../glib/gmain.c:4240
#33 0x00007f28935ebbb8 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x1f999b0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#34 0x00007f28935991e2 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)
(this=this@entry=0x7ffffa4b6c90, flags=..., flags@entry=...)
at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#35 0x00007f28935a1724 in QCoreApplication::exec() ()
at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#36 0x000000000040f9a3 in main ()
Hrmm. Is there a specific thing you can do which triggers this? Or it just always happens? Does it just always happen when maliit-keyboard starts? Or randomly?
After I reboot, there are always 4 or 5 identical crashes. That's 100% reproducible for me. Thereafter, it happens seemingly randomly, when I focus all manner of text fields. I haven't found a pattern there yet.
Could you perhaps try running maliit-keyboard
under valgrind while reproducing the issue?
Can you ask fedora to rebuild the packages? For me, rebuilding locally fixed it. It seems maliit-framework uses private headers from QtWayland.
Can you ask fedora to rebuild the packages? For me, rebuilding locally fixed it. It seems maliit-framework uses private headers from QtWayland.
I sent PRs
https://src.fedoraproject.org/rpms/maliit-framework/pull-request/3 https://src.fedoraproject.org/rpms/maliit-keyboard/pull-request/3
I pushed for F37/F36/F35
F36 and F37 are in stable repo
F35 testing : https://bodhi.fedoraproject.org/updates/FEDORA-2022-3c82059415
Once you people test it, Please let me know so we can either close or do further action If we needed it.
Thank you.
No more crashes after upgrading to 2.2.0. Thanks everyone!
On Fedora 34 and 35, I commonly see crashes like this, seemingly randomly:
(And yes, I'm aware of the irony of using a treehugger search engine to look up information about naval warships)