Summary: | Crashing in QAccessible after playing the ‘Counties by Flag’ activity | ||
---|---|---|---|
Product: | [Applications] kgeography | Reporter: | Karl Ove Hufthammer <karl> |
Component: | general | Assignee: | Albert Astals Cid <aacid> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | gladhorn, larrosa, lauranger |
Priority: | NOR | Keywords: | drkonqi |
Version: | 20.12.3 | ||
Target Milestone: | --- | ||
Platform: | openSUSE | ||
OS: | Linux | ||
Latest Commit: | https://invent.kde.org/education/kgeography/commit/954c1a2d5664beb605925c0f7ca4045150e077d1 | Version Fixed In: | |
Sentry Crash Report: |
Description
Karl Ove Hufthammer
2021-04-09 18:59:34 UTC
Can not reproduce it. Do you run some kind of accessibility app like a screen reader or similar? (In reply to Albert Astals Cid from comment #1) > Can not reproduce it. > > Do you run some kind of accessibility app like a screen reader or similar? No, I don’t. It looks the crash happens with the following four activities: Counties by Capital Capital of Counties Counties by Flag Flags of Counties But it does *not* happen for Location of Counties Place Counties in the Map (And I don’t have to select all 11 questions for the crash to happen.) It's crashing in qaccessible, that is the thing that makes Qt apps work with screen readers etc. but i can't reproduce it here even with orca running :/ Can you run valgrind kgeography and attach the log of when you make it crash? (In reply to Albert Astals Cid from comment #4) > It's crashing in qaccessible, that is the thing that makes Qt apps work with > screen readers etc. but i can't reproduce it here even with orca running :/ > > Can you run valgrind kgeography and attach the log of when you make it crash? Hmm, when I use valgrind to start kgeography, it doesn’t crash anymore. :( It does crash when I run gdb, though. Here is the result of the bt command. I don’t know if it is useful (it looks similar to the one from drkonqi). (gdb) bt #0 0x00007ffff7be5020 in vtable for QWidgetItemV2 () from /usr/lib64/libQt5Widgets.so.5 #1 0x00007ffff6f728c7 in QAccessible::queryAccessibleInterface (object=0x555555a185c0) at accessible/qaccessible.cpp:683 #2 0x00007ffff6f733cf in QAccessibleEvent::accessibleInterface (this=0x7ffffffee8b0) at accessible/qaccessible.cpp:1764 #3 0x00007ffff6f738fd in QAccessible::updateAccessibility (event=0x7ffffffee8b0) at accessible/qaccessible.cpp:862 #4 0x00007ffff77dbdaa in QAbstractButton::setChecked (this=0x7ffffffee8b0, checked=<optimized out>) at widgets/qabstractbutton.cpp:689 #5 0x00007ffff77dc736 in QAbstractButton::nextCheckState (this=0x555555a185c0) at widgets/qabstractbutton.cpp:941 #6 QAbstractButton::nextCheckState (this=0x555555a185c0) at widgets/qabstractbutton.cpp:938 #7 QAbstractButtonPrivate::click (this=this@entry=0x555555a16cc0) at widgets/qabstractbutton.cpp:398 #8 0x00007ffff77dc861 in QAbstractButton::mouseReleaseEvent (this=0x555555a185c0, e=0x7ffffffeee60) at widgets/qabstractbutton.cpp:1044 #9 0x00007ffff772d34e in QWidget::event (this=0x555555a185c0, event=0x7ffffffeee60) at kernel/qwidget.cpp:9019 #10 0x00007ffff76ed4ff in QApplicationPrivate::notify_helper (this=this@entry=0x5555555c9d00, receiver=receiver@entry=0x555555a185c0, e=e@entry=0x7ffffffeee60) at kernel/qapplication.cpp:3632 #11 0x00007ffff76f43eb in QApplication::notify (this=0x7ffffffeeb60, receiver=0x555555a185c0, e=0x7ffffffeee60) at kernel/qapplication.cpp:3076 #12 0x00007ffff6a4832a in QCoreApplication::notifyInternal2 (receiver=0x555555a185c0, event=0x7ffffffeee60) at kernel/qcoreapplication.cpp:1063 #13 0x00007ffff76f3416 in QApplicationPrivate::sendMouseEvent (receiver=receiver@entry=0x555555a185c0, event=event@entry=0x7ffffffeee60, alienWidget=alienWidget@entry=0x555555a185c0, --Type <RET> for more, q to quit, c to continue without paging-- nativeWidget=0x55555570fa00, buttonDown=buttonDown@entry=0x7ffff7c1b670 <qt_button_down>, lastMouseReceiver=..., spontaneous=true, onlyDispatchEnterLeave=false) at kernel/qapplication.cpp:2614 #14 0x00007ffff77453b1 in QWidgetWindow::handleMouseEvent (this=0x5555557c9250, event=0x7ffffffef120) at kernel/qwidgetwindow.cpp:683 #15 0x00007ffff77488be in QWidgetWindow::event (this=0x5555557c9250, event=0x7ffffffef120) at kernel/qwidgetwindow.cpp:300 #16 0x00007ffff76ed4ff in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x5555557c9250, e=0x7ffffffef120) at kernel/qapplication.cpp:3632 #17 0x00007ffff6a4832a in QCoreApplication::notifyInternal2 (receiver=0x5555557c9250, event=0x7ffffffef120) at kernel/qcoreapplication.cpp:1063 #18 0x00007ffff6fa8d03 in QGuiApplicationPrivate::processMouseEvent (e=0x555555a407e0) at kernel/qguiapplication.cpp:2282 #19 0x00007ffff6f7ec5c in QWindowSystemInterface::sendWindowSystemEvents (flags=flags@entry=...) at kernel/qwindowsysteminterface.cpp:1169 #20 0x00007ffff2786faa in xcbSourceDispatch (source=source@entry=0x5555556a2d70) at qxcbeventdispatcher.cpp:105 #21 0x00007ffff527bf57 in g_main_dispatch (context=0x7fffec005000) at ../glib/gmain.c:3325 #22 g_main_context_dispatch (context=0x7fffec005000) at ../glib/gmain.c:4043 #23 0x00007ffff527c2d8 in g_main_context_iterate (context=context@entry=0x7fffec005000, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4119 #24 0x00007ffff527c38f in g_main_context_iteration (context=0x7fffec005000, may_block=may_block@entry=1) at ../glib/gmain.c:4184 #25 0x00007ffff6a9f8bf in QEventDispatcherGlib::processEvents (this=0x5555556b6910, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #26 0x00007ffff6a46ceb in QEventLoop::exec (this=this@entry=0x7ffffffef450, flags=..., flags@entry=...) --Type <RET> for more, q to quit, c to continue without paging-- at ../../include/QtCore/../../src/corelib/global/qflags.h:69 #27 0x00007ffff6a4ef60 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #28 0x000055555556c98b in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/kgeography-20.12.3-1.2.x86_64/src/main.cpp:47 with valgrind doesn't crash, but does it output something to the command line? Long shot guess, Is it possible that you have two different Qt in your system? One self compiled and one from the distribution? (In reply to Albert Astals Cid from comment #7) > with valgrind doesn't crash, but does it output something to the command > line? > > Long shot guess, Is it possible that you have two different Qt in your > system? One self compiled and one from the distribution? No, I don’t have two different Qt versions installed. Yes, Valgrind does output something at the point where KGeography would normally crash: ==11779== Invalid read of size 8 ==11779== at 0x54118BE: QAccessible::queryAccessibleInterface(QObject*) (in /usr/lib64/libQt5Gui.so.5.15.2) ==11779== by 0x54123CE: QAccessibleEvent::accessibleInterface() const (in /usr/lib64/libQt5Gui.so.5.15.2) ==11779== by 0x54128FC: QAccessible::updateAccessibility(QAccessibleEvent*) (in /usr/lib64/libQt5Gui.so.5.15.2) ==11779== by 0x4E8CDA9: QAbstractButton::setChecked(bool) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4E8D735: ??? (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4E8D860: QAbstractButton::mouseReleaseEvent(QMouseEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4DDE34D: QWidget::event(QEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4D9E4FE: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4DA53EA: QApplication::notify(QObject*, QEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x5DB2329: QCoreApplication::notifyInternal2(QObject*, QEvent*) (in /usr/lib64/libQt5Core.so.5.15.2) ==11779== by 0x4DA4415: QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4DF63B0: ??? (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== Address 0xb00b4b0 is 0 bytes inside a block of size 48 free'd ==11779== at 0x484291B: operator delete(void*, unsigned long) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==11779== by 0x5DDBF3D: QObjectPrivate::deleteChildren() (in /usr/lib64/libQt5Core.so.5.15.2) ==11779== by 0x4DD9AD5: QWidget::~QWidget() (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4ECE018: QGroupBox::~QGroupBox() (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x5DDBF3D: QObjectPrivate::deleteChildren() (in /usr/lib64/libQt5Core.so.5.15.2) ==11779== by 0x4DD9AD5: QWidget::~QWidget() (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x137CDC: ??? (in /usr/bin/kgeography) ==11779== by 0x1226CC: ??? (in /usr/bin/kgeography) ==11779== by 0x12983A: ??? (in /usr/bin/kgeography) ==11779== by 0x5DE8945: ??? (in /usr/lib64/libQt5Core.so.5.15.2) ==11779== by 0x12EBF7: ??? (in /usr/bin/kgeography) ==11779== by 0x5DE8945: ??? (in /usr/lib64/libQt5Core.so.5.15.2) ==11779== Block was alloc'd at ==11779== at 0x483FF2F: operator new(unsigned long) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==11779== by 0x133105: ??? (in /usr/bin/kgeography) ==11779== by 0x12A40B: ??? (in /usr/bin/kgeography) ==11779== by 0x5DE8945: ??? (in /usr/lib64/libQt5Core.so.5.15.2) ==11779== by 0x4E8B3D1: QAbstractButton::clicked(bool) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4E8BD39: ??? (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4E8D68E: ??? (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4E8D860: QAbstractButton::mouseReleaseEvent(QMouseEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4DDE34D: QWidget::event(QEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4D9E4FE: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4DA53EA: QApplication::notify(QObject*, QEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x5DB2329: QCoreApplication::notifyInternal2(QObject*, QEvent*) (in /usr/lib64/libQt5Core.so.5.15.2) ==11779== ==11779== Invalid read of size 8 ==11779== at 0x5DDAED0: QObject::metaObject() const (in /usr/lib64/libQt5Core.so.5.15.2) ==11779== by 0x54118C6: QAccessible::queryAccessibleInterface(QObject*) (in /usr/lib64/libQt5Gui.so.5.15.2) ==11779== by 0x54123CE: QAccessibleEvent::accessibleInterface() const (in /usr/lib64/libQt5Gui.so.5.15.2) ==11779== by 0x54128FC: QAccessible::updateAccessibility(QAccessibleEvent*) (in /usr/lib64/libQt5Gui.so.5.15.2) ==11779== by 0x4E8CDA9: QAbstractButton::setChecked(bool) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4E8D735: ??? (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4E8D860: QAbstractButton::mouseReleaseEvent(QMouseEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4DDE34D: QWidget::event(QEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4D9E4FE: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4DA53EA: QApplication::notify(QObject*, QEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x5DB2329: QCoreApplication::notifyInternal2(QObject*, QEvent*) (in /usr/lib64/libQt5Core.so.5.15.2) ==11779== by 0x4DA4415: QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== Address 0xb00b4b8 is 8 bytes inside a block of size 48 free'd ==11779== at 0x484291B: operator delete(void*, unsigned long) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==11779== by 0x5DDBF3D: QObjectPrivate::deleteChildren() (in /usr/lib64/libQt5Core.so.5.15.2) ==11779== by 0x4DD9AD5: QWidget::~QWidget() (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4ECE018: QGroupBox::~QGroupBox() (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x5DDBF3D: QObjectPrivate::deleteChildren() (in /usr/lib64/libQt5Core.so.5.15.2) ==11779== by 0x4DD9AD5: QWidget::~QWidget() (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x137CDC: ??? (in /usr/bin/kgeography) ==11779== by 0x1226CC: ??? (in /usr/bin/kgeography) ==11779== by 0x12983A: ??? (in /usr/bin/kgeography) ==11779== by 0x5DE8945: ??? (in /usr/lib64/libQt5Core.so.5.15.2) ==11779== by 0x12EBF7: ??? (in /usr/bin/kgeography) ==11779== by 0x5DE8945: ??? (in /usr/lib64/libQt5Core.so.5.15.2) ==11779== Block was alloc'd at ==11779== at 0x483FF2F: operator new(unsigned long) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==11779== by 0x133105: ??? (in /usr/bin/kgeography) ==11779== by 0x12A40B: ??? (in /usr/bin/kgeography) ==11779== by 0x5DE8945: ??? (in /usr/lib64/libQt5Core.so.5.15.2) ==11779== by 0x4E8B3D1: QAbstractButton::clicked(bool) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4E8BD39: ??? (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4E8D68E: ??? (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4E8D860: QAbstractButton::mouseReleaseEvent(QMouseEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4DDE34D: QWidget::event(QEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4D9E4FE: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4DA53EA: QApplication::notify(QObject*, QEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x5DB2329: QCoreApplication::notifyInternal2(QObject*, QEvent*) (in /usr/lib64/libQt5Core.so.5.15.2) ==11779== ==11779== Invalid read of size 8 ==11779== at 0x5DDAED4: QObject::metaObject() const (in /usr/lib64/libQt5Core.so.5.15.2) ==11779== by 0x54118C6: QAccessible::queryAccessibleInterface(QObject*) (in /usr/lib64/libQt5Gui.so.5.15.2) ==11779== by 0x54123CE: QAccessibleEvent::accessibleInterface() const (in /usr/lib64/libQt5Gui.so.5.15.2) ==11779== by 0x54128FC: QAccessible::updateAccessibility(QAccessibleEvent*) (in /usr/lib64/libQt5Gui.so.5.15.2) ==11779== by 0x4E8CDA9: QAbstractButton::setChecked(bool) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4E8D735: ??? (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4E8D860: QAbstractButton::mouseReleaseEvent(QMouseEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4DDE34D: QWidget::event(QEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4D9E4FE: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4DA53EA: QApplication::notify(QObject*, QEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x5DB2329: QCoreApplication::notifyInternal2(QObject*, QEvent*) (in /usr/lib64/libQt5Core.so.5.15.2) ==11779== by 0x4DA4415: QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== Address 0xb00b548 is 40 bytes inside a block of size 520 free'd ==11779== at 0x484291B: operator delete(void*, unsigned long) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==11779== by 0x4F2BA78: QRadioButton::~QRadioButton() (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x5DDBF3D: QObjectPrivate::deleteChildren() (in /usr/lib64/libQt5Core.so.5.15.2) ==11779== by 0x4DD9AD5: QWidget::~QWidget() (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4ECE018: QGroupBox::~QGroupBox() (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x5DDBF3D: QObjectPrivate::deleteChildren() (in /usr/lib64/libQt5Core.so.5.15.2) ==11779== by 0x4DD9AD5: QWidget::~QWidget() (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x137CDC: ??? (in /usr/bin/kgeography) ==11779== by 0x1226CC: ??? (in /usr/bin/kgeography) ==11779== by 0x12983A: ??? (in /usr/bin/kgeography) ==11779== by 0x5DE8945: ??? (in /usr/lib64/libQt5Core.so.5.15.2) ==11779== by 0x12EBF7: ??? (in /usr/bin/kgeography) ==11779== Block was alloc'd at ==11779== at 0x483FF2F: operator new(unsigned long) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==11779== by 0x4F2BB83: QRadioButton::QRadioButton(QWidget*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x133117: ??? (in /usr/bin/kgeography) ==11779== by 0x12A40B: ??? (in /usr/bin/kgeography) ==11779== by 0x5DE8945: ??? (in /usr/lib64/libQt5Core.so.5.15.2) ==11779== by 0x4E8B3D1: QAbstractButton::clicked(bool) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4E8BD39: ??? (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4E8D68E: ??? (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4E8D860: QAbstractButton::mouseReleaseEvent(QMouseEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4DDE34D: QWidget::event(QEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4D9E4FE: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4DA53EA: QApplication::notify(QObject*, QEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== ==11779== Invalid read of size 8 ==11779== at 0x4FDAA82: ??? (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x541197F: QAccessible::queryAccessibleInterface(QObject*) (in /usr/lib64/libQt5Gui.so.5.15.2) ==11779== by 0x54123CE: QAccessibleEvent::accessibleInterface() const (in /usr/lib64/libQt5Gui.so.5.15.2) ==11779== by 0x54128FC: QAccessible::updateAccessibility(QAccessibleEvent*) (in /usr/lib64/libQt5Gui.so.5.15.2) ==11779== by 0x4E8CDA9: QAbstractButton::setChecked(bool) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4E8D735: ??? (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4E8D860: QAbstractButton::mouseReleaseEvent(QMouseEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4DDE34D: QWidget::event(QEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4D9E4FE: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4DA53EA: QApplication::notify(QObject*, QEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x5DB2329: QCoreApplication::notifyInternal2(QObject*, QEvent*) (in /usr/lib64/libQt5Core.so.5.15.2) ==11779== by 0x4DA4415: QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== Address 0xb00b4b8 is 8 bytes inside a block of size 48 free'd ==11779== at 0x484291B: operator delete(void*, unsigned long) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==11779== by 0x5DDBF3D: QObjectPrivate::deleteChildren() (in /usr/lib64/libQt5Core.so.5.15.2) ==11779== by 0x4DD9AD5: QWidget::~QWidget() (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4ECE018: QGroupBox::~QGroupBox() (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x5DDBF3D: QObjectPrivate::deleteChildren() (in /usr/lib64/libQt5Core.so.5.15.2) ==11779== by 0x4DD9AD5: QWidget::~QWidget() (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x137CDC: ??? (in /usr/bin/kgeography) ==11779== by 0x1226CC: ??? (in /usr/bin/kgeography) ==11779== by 0x12983A: ??? (in /usr/bin/kgeography) ==11779== by 0x5DE8945: ??? (in /usr/lib64/libQt5Core.so.5.15.2) ==11779== by 0x12EBF7: ??? (in /usr/bin/kgeography) ==11779== by 0x5DE8945: ??? (in /usr/lib64/libQt5Core.so.5.15.2) ==11779== Block was alloc'd at ==11779== at 0x483FF2F: operator new(unsigned long) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==11779== by 0x133105: ??? (in /usr/bin/kgeography) ==11779== by 0x12A40B: ??? (in /usr/bin/kgeography) ==11779== by 0x5DE8945: ??? (in /usr/lib64/libQt5Core.so.5.15.2) ==11779== by 0x4E8B3D1: QAbstractButton::clicked(bool) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4E8BD39: ??? (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4E8D68E: ??? (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4E8D860: QAbstractButton::mouseReleaseEvent(QMouseEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4DDE34D: QWidget::event(QEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4D9E4FE: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4DA53EA: QApplication::notify(QObject*, QEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x5DB2329: QCoreApplication::notifyInternal2(QObject*, QEvent*) (in /usr/lib64/libQt5Core.so.5.15.2) ==11779== ==11779== Invalid read of size 1 ==11779== at 0x4FDAA89: ??? (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x541197F: QAccessible::queryAccessibleInterface(QObject*) (in /usr/lib64/libQt5Gui.so.5.15.2) ==11779== by 0x54123CE: QAccessibleEvent::accessibleInterface() const (in /usr/lib64/libQt5Gui.so.5.15.2) ==11779== by 0x54128FC: QAccessible::updateAccessibility(QAccessibleEvent*) (in /usr/lib64/libQt5Gui.so.5.15.2) ==11779== by 0x4E8CDA9: QAbstractButton::setChecked(bool) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4E8D735: ??? (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4E8D860: QAbstractButton::mouseReleaseEvent(QMouseEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4DDE34D: QWidget::event(QEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4D9E4FE: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4DA53EA: QApplication::notify(QObject*, QEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x5DB2329: QCoreApplication::notifyInternal2(QObject*, QEvent*) (in /usr/lib64/libQt5Core.so.5.15.2) ==11779== by 0x4DA4415: QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== Address 0xb00b540 is 32 bytes inside a block of size 520 free'd ==11779== at 0x484291B: operator delete(void*, unsigned long) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==11779== by 0x4F2BA78: QRadioButton::~QRadioButton() (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x5DDBF3D: QObjectPrivate::deleteChildren() (in /usr/lib64/libQt5Core.so.5.15.2) ==11779== by 0x4DD9AD5: QWidget::~QWidget() (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4ECE018: QGroupBox::~QGroupBox() (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x5DDBF3D: QObjectPrivate::deleteChildren() (in /usr/lib64/libQt5Core.so.5.15.2) ==11779== by 0x4DD9AD5: QWidget::~QWidget() (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x137CDC: ??? (in /usr/bin/kgeography) ==11779== by 0x1226CC: ??? (in /usr/bin/kgeography) ==11779== by 0x12983A: ??? (in /usr/bin/kgeography) ==11779== by 0x5DE8945: ??? (in /usr/lib64/libQt5Core.so.5.15.2) ==11779== by 0x12EBF7: ??? (in /usr/bin/kgeography) ==11779== Block was alloc'd at ==11779== at 0x483FF2F: operator new(unsigned long) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==11779== by 0x4F2BB83: QRadioButton::QRadioButton(QWidget*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x133117: ??? (in /usr/bin/kgeography) ==11779== by 0x12A40B: ??? (in /usr/bin/kgeography) ==11779== by 0x5DE8945: ??? (in /usr/lib64/libQt5Core.so.5.15.2) ==11779== by 0x4E8B3D1: QAbstractButton::clicked(bool) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4E8BD39: ??? (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4E8D68E: ??? (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4E8D860: QAbstractButton::mouseReleaseEvent(QMouseEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4DDE34D: QWidget::event(QEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4D9E4FE: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4DA53EA: QApplication::notify(QObject*, QEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== ==11779== Invalid read of size 1 ==11779== at 0x4FDAA93: ??? (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x541197F: QAccessible::queryAccessibleInterface(QObject*) (in /usr/lib64/libQt5Gui.so.5.15.2) ==11779== by 0x54123CE: QAccessibleEvent::accessibleInterface() const (in /usr/lib64/libQt5Gui.so.5.15.2) ==11779== by 0x54128FC: QAccessible::updateAccessibility(QAccessibleEvent*) (in /usr/lib64/libQt5Gui.so.5.15.2) ==11779== by 0x4E8CDA9: QAbstractButton::setChecked(bool) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4E8D735: ??? (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4E8D860: QAbstractButton::mouseReleaseEvent(QMouseEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4DDE34D: QWidget::event(QEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4D9E4FE: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4DA53EA: QApplication::notify(QObject*, QEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x5DB2329: QCoreApplication::notifyInternal2(QObject*, QEvent*) (in /usr/lib64/libQt5Core.so.5.15.2) ==11779== by 0x4DA4415: QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== Address 0xb00b652 is 306 bytes inside a block of size 520 free'd ==11779== at 0x484291B: operator delete(void*, unsigned long) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==11779== by 0x4F2BA78: QRadioButton::~QRadioButton() (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x5DDBF3D: QObjectPrivate::deleteChildren() (in /usr/lib64/libQt5Core.so.5.15.2) ==11779== by 0x4DD9AD5: QWidget::~QWidget() (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4ECE018: QGroupBox::~QGroupBox() (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x5DDBF3D: QObjectPrivate::deleteChildren() (in /usr/lib64/libQt5Core.so.5.15.2) ==11779== by 0x4DD9AD5: QWidget::~QWidget() (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x137CDC: ??? (in /usr/bin/kgeography) ==11779== by 0x1226CC: ??? (in /usr/bin/kgeography) ==11779== by 0x12983A: ??? (in /usr/bin/kgeography) ==11779== by 0x5DE8945: ??? (in /usr/lib64/libQt5Core.so.5.15.2) ==11779== by 0x12EBF7: ??? (in /usr/bin/kgeography) ==11779== Block was alloc'd at ==11779== at 0x483FF2F: operator new(unsigned long) (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so) ==11779== by 0x4F2BB83: QRadioButton::QRadioButton(QWidget*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x133117: ??? (in /usr/bin/kgeography) ==11779== by 0x12A40B: ??? (in /usr/bin/kgeography) ==11779== by 0x5DE8945: ??? (in /usr/lib64/libQt5Core.so.5.15.2) ==11779== by 0x4E8B3D1: QAbstractButton::clicked(bool) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4E8BD39: ??? (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4E8D68E: ??? (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4E8D860: QAbstractButton::mouseReleaseEvent(QMouseEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4DDE34D: QWidget::event(QEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4D9E4FE: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== by 0x4DA53EA: QApplication::notify(QObject*, QEvent*) (in /usr/lib64/libQt5Widgets.so.5.15.2) ==11779== Yeah, same issue inside Qt/QAccessible Frederik, any idea why i can't reproduce this? How do i force/test QAccessible properly? I've tried to reproduce this on Tumbleweed 20210401 and also on another system with 20210408 (the latest version at this time). In both cases following the "steps to reproduce" worked fine and kgeography didn't crash. I also tried using kgeography with LANGUAGE=nn just in case it's related to translations but couldn't reproduce the problem either. I also tried running kgeography on wayland just in case there was a mistake in the bug report which mentions it happened in X11. Karl, can you give us the full output of running `rpm -qi libQt5Gui5 kgeography` to check if I'm using exactly the same versions that fail for you? (In reply to Antonio Larrosa from comment #10) > Karl, can you give us the full output of running `rpm -qi libQt5Gui5 > kgeography` to check if I'm using exactly the same versions that fail for > you? Here’s the output: Name : libQt5Gui5 Version : 5.15.2 Release : 4.3 Architecture: x86_64 Install Date: la. 13. mars 2021 kl. 11.17 +0100 Group : Development/Libraries/C and C++ Size : 12441530 License : LGPL-3.0-only or GPL-3.0-with-Qt-Company-Qt-exception-1.1 Signature : RSA/SHA256, ty. 09. mars 2021 kl. 08.28 +0100, Key ID b88b2fd43dbdc284 Source RPM : libqt5-qtbase-5.15.2-4.3.src.rpm Build Date : ty. 09. mars 2021 kl. 08.09 +0100 Build Host : sheep83 Packager : https://bugs.opensuse.org Vendor : openSUSE URL : https://www.qt.io Summary : Qt 5 GUI related libraries Description : The Qt GUI module provides classes for windowing system integration, event handling, OpenGL and OpenGL ES integration, 2D graphics, basic imaging, fonts and text. These classes are used internally by Qt's user interface code and can also be used directly, for instance, to write applications using low-level OpenGL ES graphics APIs. For application developers writing user interfaces, Qt provides higher level APIs, like Qt Quick, which are much more suitable than the enablers found in the Qt GUI module. Distribution: openSUSE Tumbleweed Name : kgeography Version : 20.12.3 Release : 1.2 Architecture: x86_64 Install Date: la. 10. april 2021 kl. 11.56 +0200 Group : Amusements/Teaching/Other Size : 7119286 License : GPL-2.0-or-later Signature : RSA/SHA256, fr. 26. mars 2021 kl. 07.50 +0100, Key ID b88b2fd43dbdc284 Source RPM : kgeography-20.12.3-1.2.src.rpm Build Date : fr. 26. mars 2021 kl. 07.49 +0100 Build Host : wildcard2 Packager : https://bugs.opensuse.org Vendor : openSUSE URL : https://edu.kde.org Summary : Geography Trainer Description : KGeography is a geography learning program. Distribution: openSUSE Tumbleweed (But the bug also occurs if I compile kgeography from master.)) BTW, the bug also occurs if I use older versions of KGeography from Git. And it didn’t in the past. Which makes me think this is just a Qt bug. But it *also* only occurs for the bottom four activities in KGeography, not the top two. So KGeography is obviously doing something different for the bottom four and the top two activities to trigger the Qt bug. I tested with exactly the same packages here. Can you create a new user in your system, log in with it and try to run kgeography within that user's session? Just to check if using the default desktop settings as a new user makes any difference. (In reply to Antonio Larrosa from comment #13) > I tested with exactly the same packages here. > > Can you create a new user in your system, log in with it and try to run > kgeography within that user's session? Just to check if using the default > desktop settings as a new user makes any difference. I have now tested it with a different user, with different locale settings. And initially, it did *not* crash. But I noticed that the behaviour in KGeography was different. There was now an ‘Accept’ button for each question, which was not present for my original user. It turns out that if the ‘Wait for validation’ option is enabled in the settings (which is the default), KGeography does *not* crash. But it if is disabled, it does crash. Sorry for not mentioning this setting. I wasn’t aware that I had changed any of the default settings. 😳 Now we're talking :) A possibly relevant merge request was started @ https://invent.kde.org/education/kgeography/-/merge_requests/11 Git commit 954c1a2d5664beb605925c0f7ca4045150e077d1 by Albert Astals Cid. Committed on 13/04/2021 at 21:15. Pushed by aacid into branch 'release/21.04'. Fix crash when "Wait for validation" is not enabled Qt is not happy that we're deleting a radio button from a slot connected to QAbstractButton::toggled, which makes sense, since it's probably not finished internally, so now we do a delayed invokation of boxAsker::checkAnswer that is the method that may ultimately end up deleting the radio button, but this way it runs when Qt is finished processing the toggled change M +1 -1 src/boxasker.cpp https://invent.kde.org/education/kgeography/commit/954c1a2d5664beb605925c0f7ca4045150e077d1 |