nurupo / ProjectTox-Qt-GUI

A cross-platform front end for ProjectTox Core library, written in C++11 with use of Qt5
GNU General Public License v3.0
341 stars 116 forks source link

Program freezes when trying to open settings dialog #130

Open haavard opened 9 years ago

haavard commented 9 years ago

When I try to open the settings dialog from the menu, the program instantly freezes, and has to be killed. Qt 5.3.2 on Arch Linux x86_64. Backtrace from GDB below.

#0  0x00007ff28e2430e4 in ?? () from /usr/lib/libfontconfig.so.1
#1  0x00007ff28e24328b in ?? () from /usr/lib/libfontconfig.so.1
#2  0x00007ff28e243c6d in FcFontMatch () from /usr/lib/libfontconfig.so.1
#3  0x00007ff28f9657ba in ?? () from /usr/lib/qt/plugins/platforms/libqxcb.so
#4  0x00007ff298d37c54 in ?? () from /usr/lib/libQt5Gui.so.5
#5  0x00007ff298d3a21e in QFontDatabase::findFont(int, QFontPrivate const*, QFontDef const&, bool, bool) () from /usr/lib/libQt5Gui.so.5
#6  0x00007ff298d3af91 in QFontDatabase::load(QFontPrivate const*, int) ()
   from /usr/lib/libQt5Gui.so.5
#7  0x00007ff298d165b9 in QFontPrivate::engineForScript(int) const ()
   from /usr/lib/libQt5Gui.so.5
#8  0x00007ff298d2fdcd in QFontMetrics::inFontUcs4(unsigned int) const ()
   from /usr/lib/libQt5Gui.so.5
#9  0x0000000000446373 in EmojiFontComboBox::EmojiFontComboBox(QWidget*) ()
#10 0x000000000044e9d4 in EmojiFontSettingsDialog::EmojiFontSettingsDialog(QWidget*) ()
#11 0x00000000004435d0 in GuiSettingsPage::buildSmileypackGroup() ()
#12 0x0000000000443d20 in GuiSettingsPage::buildGui() ()
#13 0x0000000000437421 in BasicSettingsDialog::addPage(QString const&, QString const&, AbstractSettingsPage*) ()
#14 0x000000000043c456 in SettingsDialog::SettingsDialog(QWidget*) ()
#15 0x000000000043c83b in SettingsDialog::showDialog(QWidget*) ()
#16 0x000000000043959c in Settings::executeSettingsDialog(QWidget*) ()
#17 0x000000000046dbd5 in MainWindow::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) ()
#18 0x00007ff29877640d in QMetaObject::activate(QObject*, int, int, void**) ()
   from /usr/lib/libQt5Core.so.5
#19 0x00007ff2993f7712 in QAction::triggered(bool) ()
   from /usr/lib/libQt5Widgets.so.5
#20 0x00007ff2993f9d98 in QAction::activate(QAction::ActionEvent) ()
   from /usr/lib/libQt5Widgets.so.5
#21 0x00007ff299576cea in ?? () from /usr/lib/libQt5Widgets.so.5
#22 0x00007ff29957c604 in ?? () from /usr/lib/libQt5Widgets.so.5
#23 0x00007ff299580d1e in QMenu::mouseReleaseEvent(QMouseEvent*) ()
   from /usr/lib/libQt5Widgets.so.5
#24 0x00007ff29943cfa8 in QWidget::event(QEvent*) ()
   from /usr/lib/libQt5Widgets.so.5
#25 0x00007ff299581533 in QMenu::event(QEvent*) ()
   from /usr/lib/libQt5Widgets.so.5
#26 0x00007ff2993fef4c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#27 0x00007ff299404be6 in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/libQt5Widgets.so.5
#28 0x00007ff29874770b in QCoreApplication::notifyInternal(QObject*, QEvent*)
    () from /usr/lib/libQt5Core.so.5
#29 0x00007ff2994030d3 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) ()
   from /usr/lib/libQt5Widgets.so.5
#30 0x00007ff29945b5e8 in ?? () from /usr/lib/libQt5Widgets.so.5
#31 0x00007ff29945dc73 in ?? () from /usr/lib/libQt5Widgets.so.5
#32 0x00007ff2993fef4c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#33 0x00007ff29940436e in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/libQt5Widgets.so.5
#34 0x00007ff29874770b in QCoreApplication::notifyInternal(QObject*, QEvent*)
    () from /usr/lib/libQt5Core.so.5
#35 0x00007ff298c70636 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () from /usr/lib/libQt5Gui.so.5
#36 0x00007ff298c71e75 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () from /usr/lib/libQt5Gui.so.5
#37 0x00007ff298c5758f in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Gui.so.5
#38 0x00007ff28f963800 in ?? () from /usr/lib/qt/plugins/platforms/libqxcb.so
#39 0x00007ff296d64a1d in g_main_context_dispatch ()
   from /usr/lib/libglib-2.0.so.0
#40 0x00007ff296d64d08 in ?? () from /usr/lib/libglib-2.0.so.0
#41 0x00007ff296d64dbc in g_main_context_iteration ()
   from /usr/lib/libglib-2.0.so.0
#42 0x00007ff29879f137 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#43 0x00007ff298745132 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#44 0x00007ff29957fc10 in QMenu::exec(QPoint const&, QAction*) ()
   from /usr/lib/libQt5Widgets.so.5
#45 0x00007ff2995c1f17 in ?? () from /usr/lib/libQt5Widgets.so.5
#46 0x00007ff29877640d in QMetaObject::activate(QObject*, int, int, void**) ()
   from /usr/lib/libQt5Core.so.5
#47 0x00007ff2994f9917 in ?? () from /usr/lib/libQt5Widgets.so.5
#48 0x00007ff2994f9afe in QAbstractButton::mousePressEvent(QMouseEvent*) ()
   from /usr/lib/libQt5Widgets.so.5
#49 0x00007ff2995c26ff in QToolButton::mousePressEvent(QMouseEvent*) ()
   from /usr/lib/libQt5Widgets.so.5
#50 0x00007ff29943d75f in QWidget::event(QEvent*) ()
   from /usr/lib/libQt5Widgets.so.5
#51 0x00007ff2995c29a9 in QToolButton::event(QEvent*) ()
   from /usr/lib/libQt5Widgets.so.5
#52 0x00007ff2993fef4c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#53 0x00007ff299404be6 in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/libQt5Widgets.so.5
#54 0x00007ff29874770b in QCoreApplication::notifyInternal(QObject*, QEvent*)
    () from /usr/lib/libQt5Core.so.5
#55 0x00007ff2994030d3 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) ()
   from /usr/lib/libQt5Widgets.so.5
#56 0x00007ff29945b85d in ?? () from /usr/lib/libQt5Widgets.so.5
#57 0x00007ff29945dc73 in ?? () from /usr/lib/libQt5Widgets.so.5
#58 0x00007ff2993fef4c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#59 0x00007ff29940436e in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/libQt5Widgets.so.5
#60 0x00007ff29874770b in QCoreApplication::notifyInternal(QObject*, QEvent*)
    () from /usr/lib/libQt5Core.so.5
#61 0x00007ff298c70636 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () from /usr/lib/libQt5Gui.so.5
#62 0x00007ff298c71e75 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () from /usr/lib/libQt5Gui.so.5
#63 0x00007ff298c5758f in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Gui.so.5
#64 0x00007ff28f963800 in ?? () from /usr/lib/qt/plugins/platforms/libqxcb.so
#65 0x00007ff296d64a1d in g_main_context_dispatch ()
   from /usr/lib/libglib-2.0.so.0
#66 0x00007ff296d64d08 in ?? () from /usr/lib/libglib-2.0.so.0
#67 0x00007ff296d64dbc in g_main_context_iteration ()
   from /usr/lib/libglib-2.0.so.0
#68 0x00007ff29879f137 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#69 0x00007ff298745132 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#70 0x00007ff29874caec in QCoreApplication::exec() ()
   from /usr/lib/libQt5Core.so.5
#71 0x000000000042458d in main ()
nurupo commented 9 years ago

It just tells that it freezes inside Qt when it calls libfontconfig. The QFontMetrics::inFontUcs4(unsigned int) const call from EmojiFontComboBox::EmojiFontComboBox(QWidget*) is correct according to Qt documentation, so it looks like that it's not fault of this program but fault of underlying libraries (Qt/libfontconfig).