This forum has been archived. All content is frozen. Please use KDE Discuss instead.

KCharSelect Bug: Closes unexpectedly

Tags: None
(comma "," separated)
NoNameNoBlame
Karma
0
How to reproduce:

1. Open Application: Utilities => Character Selector
2. Select (Left): Other
3. Select (Right): Private Use Area
4. Application closes <== THE BUG

Plasma: 5.9.3
KCharSelect: 1.13


Maybe, this should be moved into the 'System & Utilities' Forum.
On the other hand, font management is the X server's/desktop's duty.

Let the Forum's administrators decide.
kde-cfeck
Registered Member
Posts
93
Karma
0
If this is reproducible, could you get a backtrace with 'gdb'? Basically, it is

gdb kcharselect
run
(use it until it crashes)
bt
NoNameNoBlame
Karma
0
As You wish. Here it is:

Code: Select all
$ gdb kcharselect
GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.04) 7.11.1
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from kcharselect...(no debugging symbols found)...done.
(gdb) run
Starting program: /usr/bin/kcharselect
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7fffe6a94700 (LWP 3630)]
[New Thread 0x7fffdce17700 (LWP 3631)]
[New Thread 0x7fffd4524700 (LWP 3632)]

Thread 1 "kcharselect" received signal SIGSEGV, Segmentation fault.
0x00007ffff693f7c0 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
(gdb) bt
#0  0x00007ffff693f7c0 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#1  0x00007ffff693feac in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#2  0x00007fffe9671c26 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#3  0x00007ffff698dae6 in QTableView::selectionChanged(QItemSelection const&, QItemSelection const&) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#4  0x00007ffff6959591 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#5  0x00007ffff5bc3e89 in QMetaObject::activate(QObject*, int, int, void**) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007ffff5b487e7 in QItemSelectionModel::selectionChanged(QItemSelection const&, QItemSelection const&) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007ffff5b4d01b in QItemSelectionModel::emitSelectionChanged(QItemSelection const&, QItemSelection const&) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#8  0x00007ffff5b50af2 in QItemSelectionModel::select(QItemSelection const&, QFlags<QItemSelectionModel::SelectionFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#9  0x00007ffff5b4a56c in QItemSelectionModel::select(QModelIndex const&, QFlags<QItemSelectionModel::SelectionFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#10 0x00007ffff5b48c34 in QItemSelectionModel::setCurrentIndex(QModelIndex const&, QFlags<QItemSelectionModel::SelectionFlag>) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#11 0x00007ffff6952d29 in QAbstractItemView::setCurrentIndex(QModelIndex const&) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#12 0x00007ffff7103168 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libKF5WidgetsAddons.so.5
---Type <return> to continue, or q <return> to quit---
#13 0x00007ffff71046d3 in KCharSelect::KCharSelectPrivate::_k_blockSelected(int) ()
   from /usr/lib/x86_64-linux-gnu/libKF5WidgetsAddons.so.5
#14 0x00007ffff71098cf in ?? ()
   from /usr/lib/x86_64-linux-gnu/libKF5WidgetsAddons.so.5
#15 0x00007ffff5bc3e89 in QMetaObject::activate(QObject*, int, int, void**) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#16 0x00007ffff6808261 in QComboBox::currentIndexChanged(int) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#17 0x00007ffff680a621 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#18 0x00007ffff680cd9d in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#19 0x00007ffff680ce86 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#20 0x00007ffff6811ecd in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#21 0x00007ffff5bc3e89 in QMetaObject::activate(QObject*, int, int, void**) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#22 0x00007ffff6808726 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#23 0x00007ffff5b98e32 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#24 0x00007ffff670bea5 in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#25 0x00007ffff6714165 in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#26 0x00007ffff5b990c8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
---Type <return> to continue, or q <return> to quit---
#27 0x00007ffff6712e8f in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#28 0x00007ffff676d646 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#29 0x00007ffff676fc83 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#30 0x00007ffff670becc in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#31 0x00007ffff67138c6 in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#32 0x00007ffff5b990c8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#33 0x00007ffff61705a0 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#34 0x00007ffff61724a5 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#35 0x00007ffff615032b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#36 0x00007fffe9655270 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#37 0x00007ffff17c5197 in g_main_context_dispatch ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#38 0x00007ffff17c53f0 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#39 0x00007ffff17c549c in g_main_context_iteration ()
---Type <return> to continue, or q <return> to quit---
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#40 0x00007ffff5bec73f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#41 0x00007ffff5b970ba in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#42 0x00007ffff5b9f6cc in QCoreApplication::exec() ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#43 0x000000000040765b in ?? ()
#44 0x00007ffff51f2830 in __libc_start_main (main=0x406e40, argc=1,
    argv=0x7fffffffdca8, init=<optimized out>, fini=<optimized out>,
    rtld_fini=<optimized out>, stack_end=0x7fffffffdc98) at ../csu/libc-start.c:291
#45 0x00000000004076d9 in _start ()
(gdb) q
A debugging session is active.

        Inferior 1 [process 3626] will be killed.

Quit anyway? (y or n) y
kde-cfeck
Registered Member
Posts
93
Karma
0
NoNameNoBlame
Karma
0
I installed:
$ sudo apt install libqt5widgets5-dbgsym



$ apt list -a 'libqt5widgets5*' | grep installed

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

libqt5widgets5/xenial,now 5.7.1+dfsg-3+16.04+build13 amd64 [installed,automatic]
libqt5widgets5-dbgsym/xenial,now 5.7.1+dfsg-3+16.04+build13 amd64 [installed]



And repeated the backtrace.

I don't think, it's the same, known bug.

Are You sure?

Any advice?

Code: Select all
$ gdb kcharselect
GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.04) 7.11.1
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from kcharselect...(no debugging symbols found)...done.
(gdb) run
Starting program: /usr/bin/kcharselect
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7fffe6a94700 (LWP 7761)]
[New Thread 0x7fffdce17700 (LWP 7762)]
[New Thread 0x7fffd4524700 (LWP 7763)]

Thread 1 "kcharselect" received signal SIGSEGV, Segmentation fault.
QWeakPointer<QObject>::data (this=0x75eb28)
    at ../../include/QtCore/../../src/corelib/tools/qsharedpointer_impl.h:604
604     ../../include/QtCore/../../src/corelib/tools/qsharedpointer_impl.h: No such file or directory.
(gdb) bt
#0  QWeakPointer<QObject>::data (this=0x75eb28)
    at ../../include/QtCore/../../src/corelib/tools/qsharedpointer_impl.h:604
#1  QPointer<QAbstractItemView>::data (this=0x75eb28)
    at ../../include/QtCore/../../src/corelib/kernel/qpointer.h:86
#2  QPointer<QAbstractItemView>::operator QAbstractItemView* (this=0x75eb28)
    at ../../include/QtCore/../../src/corelib/kernel/qpointer.h:92
#3  QAccessibleTableCell::rect (this=0x75eb10) at accessible/itemviews.cpp:1038
#4  0x00007ffff693feac in QAccessibleTableCell::state (this=0x75eb10)
    at accessible/itemviews.cpp:1002
#5  0x00007fffe9671c26 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#6  0x00007ffff698dae6 in QTableView::selectionChanged (this=0x79ad90, selected=...,
    deselected=...) at itemviews/qtableview.cpp:3335
#7  0x00007ffff6959591 in QAbstractItemView::qt_static_metacall (_o=<optimized out>,
    _c=<optimized out>, _id=<optimized out>, _a=<optimized out>)
    at .moc/moc_qabstractitemview.cpp:412
#8  0x00007ffff5bc3e89 in QMetaObject::activate(QObject*, int, int, void**) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#9  0x00007ffff5b487e7 in QItemSelectionModel::selectionChanged(QItemSelection const&, QItemSelection const&) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#10 0x00007ffff5b4d01b in QItemSelectionModel::emitSelectionChanged(QItemSelection const&, QItemSelection const&) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#11 0x00007ffff5b50af2 in QItemSelectionModel::select(QItemSelection const&, QFlags<QItemSelectionModel::SelectionFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
---Type <return> to continue, or q <return> to quit---
#12 0x00007ffff5b4a56c in QItemSelectionModel::select(QModelIndex const&, QFlags<QItemSelectionModel::SelectionFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#13 0x00007ffff5b48c34 in QItemSelectionModel::setCurrentIndex(QModelIndex const&, QFlags<QItemSelectionModel::SelectionFlag>) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#14 0x00007ffff6952d29 in QAbstractItemView::setCurrentIndex (this=<optimized out>,
    index=...) at itemviews/qabstractitemview.cpp:1085
#15 0x00007ffff7103168 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libKF5WidgetsAddons.so.5
#16 0x00007ffff71046d3 in KCharSelect::KCharSelectPrivate::_k_blockSelected(int) ()
   from /usr/lib/x86_64-linux-gnu/libKF5WidgetsAddons.so.5
#17 0x00007ffff71098cf in ?? ()
   from /usr/lib/x86_64-linux-gnu/libKF5WidgetsAddons.so.5
#18 0x00007ffff5bc3e89 in QMetaObject::activate(QObject*, int, int, void**) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#19 0x00007ffff6808261 in QComboBox::currentIndexChanged (this=this@entry=0x7d22c0,
    _t1=5) at .moc/moc_qcombobox.cpp:502
#20 0x00007ffff680a621 in QComboBoxPrivate::_q_emitCurrentIndexChanged (
    this=this@entry=0x7fec60, index=...) at widgets/qcombobox.cpp:1314
#21 0x00007ffff680cd9d in QComboBoxPrivate::setCurrentIndex (
    this=this@entry=0x7fec60, mi=...) at widgets/qcombobox.cpp:2121
#22 0x00007ffff680ce86 in QComboBoxPrivate::_q_itemSelected (this=0x7fec60, item=...)
    at widgets/qcombobox.cpp:1282
---Type <return> to continue, or q <return> to quit---
#23 0x00007ffff6811ecd in QComboBox::qt_static_metacall (_o=<optimized out>,
    _c=<optimized out>, _id=<optimized out>, _a=0x7fffffffce60)
    at .moc/moc_qcombobox.cpp:283
#24 0x00007ffff5bc3e89 in QMetaObject::activate(QObject*, int, int, void**) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#25 0x00007ffff6808726 in QComboBoxPrivateContainer::itemSelected (_t1=...,
    this=0x92b9b0) at .moc/moc_qcombobox_p.cpp:331
#26 QComboBoxPrivateContainer::eventFilter (this=0x92b9b0, o=0x9233e0,
    e=0x7fffffffd290) at widgets/qcombobox.cpp:718
#27 0x00007ffff5b98e32 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#28 0x00007ffff670bea5 in QApplicationPrivate::notify_helper (this=<optimized out>,
    receiver=0x9233e0, e=0x7fffffffd290) at kernel/qapplication.cpp:3795
#29 0x00007ffff6714165 in QApplication::notify (this=<optimized out>,
    receiver=0x9233e0, e=0x7fffffffd290) at kernel/qapplication.cpp:3273
#30 0x00007ffff5b990c8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#31 0x00007ffff6712e8f in QCoreApplication::sendEvent (event=<optimized out>,
    receiver=<optimized out>)
    at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#32 QApplicationPrivate::sendMouseEvent (receiver=receiver@entry=0x9233e0,
    event=event@entry=0x7fffffffd290, alienWidget=alienWidget@entry=0x9233e0,
    nativeWidget=0x92b9b0,
---Type <return> to continue, or q <return> to quit---
    buttonDown=buttonDown@entry=0x7ffff6c0fc80 <qt_button_down>,
    lastMouseReceiver=..., spontaneous=true) at kernel/qapplication.cpp:2771
#33 0x00007ffff676d646 in QWidgetWindow::handleMouseEvent (this=this@entry=0xb9ff90,
    event=event@entry=0x7fffffffd6a0) at kernel/qwidgetwindow.cpp:511
#34 0x00007ffff676fc83 in QWidgetWindow::event (this=0xb9ff90, event=0x7fffffffd6a0)
    at kernel/qwidgetwindow.cpp:239
#35 0x00007ffff670becc in QApplicationPrivate::notify_helper (this=<optimized out>,
    receiver=0xb9ff90, e=0x7fffffffd6a0) at kernel/qapplication.cpp:3799
#36 0x00007ffff67138c6 in QApplication::notify (this=0x7fffffffdb80,
    receiver=0xb9ff90, e=0x7fffffffd6a0) at kernel/qapplication.cpp:3556
#37 0x00007ffff5b990c8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#38 0x00007ffff61705a0 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#39 0x00007ffff61724a5 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#40 0x00007ffff615032b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#41 0x00007fffe9655270 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#42 0x00007ffff17c5197 in g_main_context_dispatch ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#43 0x00007ffff17c53f0 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
---Type <return> to continue, or q <return> to quit---
#44 0x00007ffff17c549c in g_main_context_iteration ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#45 0x00007ffff5bec73f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#46 0x00007ffff5b970ba in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#47 0x00007ffff5b9f6cc in QCoreApplication::exec() ()
   from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#48 0x000000000040765b in ?? ()
#49 0x00007ffff51f2830 in __libc_start_main (main=0x406e40, argc=1,
    argv=0x7fffffffdcb8, init=<optimized out>, fini=<optimized out>,
    rtld_fini=<optimized out>, stack_end=0x7fffffffdca8) at ../csu/libc-start.c:291
#50 0x00000000004076d9 in _start ()
(gdb) q
A debugging session is active.

        Inferior 1 [process 7757] will be killed.

Quit anyway? (y or n) y
kde-cfeck
Registered Member
Posts
93
Karma
0
The backtraces look slightly different, but if you compare the flow of control, they are the same:

.. -> QTableView::selectionChanged -> AtSpiAdaptor::notify -> QAccessibleTableCell::state -> QAccessibleTableCell::rect

It then causes a segfault, because the QAccessibleTableCell pointer is no longer valid (Qt accessibility probably does some caching).
NoNameNoBlame
Karma
0
I close this topic. Thanks for explanation.

Problem must be solved by QT.
Not caused by KDE, seemingly.


Bookmarks



Who is online

Registered users: Bing [Bot], Google [Bot], Yahoo [Bot]