Details
-
Bug
-
Resolution: Unresolved
-
P2: Important
-
None
-
5.15, 6.8
-
None
-
Qt 6.8 up-to-date as provided by Fedora 41
Description
Hello,
simple repro:
#include <QApplication> #include <QPlainTextEdit> int main(int argc, char *argv[]) { QApplication a(argc, argv); QPlainTextEdit w; w.setPlainText("hello"); w.setTextInteractionFlags(Qt::TextInteractionFlag::TextBrowserInteraction); w.show(); return a.exec(); }
When I unzoom, things get entirely stuck. It happens here after 12 "unzoom" steps with my mouse wheel & Ctrl pressed.
Here are some stacktraces it's looping on - my repro has stacktrace with Qt 5 as this is what QtC went with for building by default it seems but I see the same on 6.8:
1 match(int, QFontDef const&, QString const&, QString const&, QtFontDesc *, QList<int> const&, unsigned int *) (aarch64) /lib64/libQt5Gui.so.5 0xfffff7417e24 2 QFontDatabase::findFont(QFontDef const&, int, bool) (aarch64) /lib64/libQt5Gui.so.5 0xfffff741a8a4 3 QFontEngineMulti::loadEngine(int) (aarch64) /lib64/libQt5Gui.so.5 0xfffff7400ae0 4 QFontEngineMulti::ensureEngineAt(int) (aarch64) /lib64/libQt5Gui.so.5 0xfffff7401f5c 5 QFontEngineMulti::stringToCMap(QChar const *, int, QGlyphLayout *, int *, QFlags<QFontEngine::ShaperFlag>) const (aarch64) /lib64/libQt5Gui.so.5 0xfffff740246c 6 QTextEngine::shapeText(int) const (aarch64) /lib64/libQt5Gui.so.5 0xfffff7422c04 7 QTextLine::layout_helper(int) (aarch64) /lib64/libQt5Gui.so.5 0xfffff7433e74 8 QPlainTextDocumentLayout::layoutBlock(QTextBlock const&) (aarch64) /lib64/libQt5Widgets.so.5 0xfffff7ba8660 9 QPlainTextDocumentLayout::documentChanged(int, int, int) (aarch64) /lib64/libQt5Widgets.so.5 0xfffff7ba8eb0 10 QWidget::event(QEvent *) (aarch64) /lib64/libQt5Widgets.so.5 0xfffff7a19884 11 QFrame::event(QEvent *) (aarch64) /lib64/libQt5Widgets.so.5 0xfffff7ac0770 12 QApplicationPrivate::notify_helper(QObject *, QEvent *) (aarch64) /lib64/libQt5Widgets.so.5 0xfffff79d3598 13 QCoreApplication::notifyInternal2(QObject *, QEvent *) (aarch64) /lib64/libQt5Core.so.5 0xfffff6efb0cc 14 QWidgetPrivate::updateFont(QFont const&) (aarch64) /lib64/libQt5Widgets.so.5 0xfffff7a0a084 15 QWidget::setFont(QFont const&) (aarch64) /lib64/libQt5Widgets.so.5 0xfffff7a0c998 16 QPlainTextEdit::zoomInF(float) (aarch64) /lib64/libQt5Widgets.so.5 0xfffff7baab98 17 QWidget::event(QEvent *) (aarch64) /lib64/libQt5Widgets.so.5 0xfffff7a198b0 18 QFrame::event(QEvent *) (aarch64) /lib64/libQt5Widgets.so.5 0xfffff7ac0770 19 QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject *, QEvent *) (aarch64) /lib64/libQt5Core.so.5 0xfffff6efadcc 20 QApplicationPrivate::notify_helper(QObject *, QEvent *) (aarch64) /lib64/libQt5Widgets.so.5 0xfffff79d3580 21 QApplication::notify(QObject *, QEvent *) (aarch64) /lib64/libQt5Widgets.so.5 0xfffff79dc2f4 22 QCoreApplication::notifyInternal2(QObject *, QEvent *) (aarch64) /lib64/libQt5Core.so.5 0xfffff6efb0cc 23 QWidgetWindow::handleWheelEvent(QWheelEvent *) (aarch64) /lib64/libQt5Widgets.so.5 0xfffff7a36878 24 QWidgetWindow::event(QEvent *) (aarch64) /lib64/libQt5Widgets.so.5 0xfffff7a38230 25 QApplicationPrivate::notify_helper(QObject *, QEvent *) (aarch64) /lib64/libQt5Widgets.so.5 0xfffff79d3598 26 QCoreApplication::notifyInternal2(QObject *, QEvent *) (aarch64) /lib64/libQt5Core.so.5 0xfffff6efb0cc 27 QGuiApplicationPrivate::processWheelEvent(QWindowSystemInterfacePrivate::WheelEvent *) (aarch64) /lib64/libQt5Gui.so.5 0xfffff734517c 28 QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) (aarch64) /lib64/libQt5Gui.so.5 0xfffff73233d8 29 xcbSourceDispatch(_GSource *, int ( *)(void *), void *) (aarch64) /lib64/libQt5XcbQpa.so.5 0xfffff33290cc 30 g_main_context_dispatch_unlocked.lto_priv.0 (aarch64) /lib64/libglib-2.0.so.0 0xfffff5a3e1f4 31 g_main_context_iterate_unlocked.isra.0 (aarch64) /lib64/libglib-2.0.so.0 0xfffff5aa17b0 32 g_main_context_iteration (aarch64) /lib64/libglib-2.0.so.0 0xfffff5a3f8c4 33 QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (aarch64) /lib64/libQt5Core.so.5 0xfffff6f5b1d8 34 QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (aarch64) /lib64/libQt5Core.so.5 0xfffff6ef9264 35 QCoreApplication::exec() (aarch64) /lib64/libQt5Core.so.5 0xfffff6f02b40 36 main main.cpp 11 0x402a64 37 __libc_start_call_main (aarch64) /lib64/libc.so.6 0xfffff672629c 38 __libc_start_main * *GLIBC_2.34 (aarch64) /lib64/libc.so.6 0xfffff672637c 39 _start (aarch64) /home/jcelerier/projets/bugreports/bug-plaintextedit-infinite-loop/build/Desktop-Debug/bug-plaintextedit-infinite-loop 0x402770
1 FcPatternObjectPosition.lto_priv.0 (aarch64) /lib64/libfontconfig.so.1 0xfffff3269910 2 FcPatternObjectGetWithBinding.part.0 (aarch64) /lib64/libfontconfig.so.1 0xfffff3269e40 3 FcPatternGetString (aarch64) /lib64/libfontconfig.so.1 0xfffff326a95c 4 QFontconfigDatabase::setupFontEngine(QFontEngineFT *, QFontDef const&) const (aarch64) /lib64/libQt5XcbQpa.so.5 0xfffff3375270 5 QFontconfigDatabase::fontEngine(QFontDef const&, void *) (aarch64) /lib64/libQt5XcbQpa.so.5 0xfffff3375bb8 6 loadEngine(int, QFontDef const&, QtFontFamily *, QtFontFoundry *, QtFontStyle *, QtFontSize *) (.isra.0) (aarch64) /lib64/libQt5Gui.so.5 0xfffff7419cb8 7 QFontDatabase::findFont(QFontDef const&, int, bool) (aarch64) /lib64/libQt5Gui.so.5 0xfffff741a930 8 QFontEngineMulti::loadEngine(int) (aarch64) /lib64/libQt5Gui.so.5 0xfffff7400ae0 9 QFontEngineMulti::ensureEngineAt(int) (aarch64) /lib64/libQt5Gui.so.5 0xfffff7401f5c 10 QFontEngineMulti::stringToCMap(QChar const *, int, QGlyphLayout *, int *, QFlags<QFontEngine::ShaperFlag>) const (aarch64) /lib64/libQt5Gui.so.5 0xfffff740246c 11 QTextEngine::shapeText(int) const (aarch64) /lib64/libQt5Gui.so.5 0xfffff7422c04 12 QTextLine::layout_helper(int) (aarch64) /lib64/libQt5Gui.so.5 0xfffff7433e74 13 QPlainTextDocumentLayout::layoutBlock(QTextBlock const&) (aarch64) /lib64/libQt5Widgets.so.5 0xfffff7ba8660 14 QPlainTextDocumentLayout::documentChanged(int, int, int) (aarch64) /lib64/libQt5Widgets.so.5 0xfffff7ba8eb0 15 QWidget::event(QEvent *) (aarch64) /lib64/libQt5Widgets.so.5 0xfffff7a19884 16 QFrame::event(QEvent *) (aarch64) /lib64/libQt5Widgets.so.5 0xfffff7ac0770 17 QApplicationPrivate::notify_helper(QObject *, QEvent *) (aarch64) /lib64/libQt5Widgets.so.5 0xfffff79d3598 18 QCoreApplication::notifyInternal2(QObject *, QEvent *) (aarch64) /lib64/libQt5Core.so.5 0xfffff6efb0cc 19 QWidgetPrivate::updateFont(QFont const&) (aarch64) /lib64/libQt5Widgets.so.5 0xfffff7a0a084 20 QWidget::setFont(QFont const&) (aarch64) /lib64/libQt5Widgets.so.5 0xfffff7a0c998 21 QPlainTextEdit::zoomInF(float) (aarch64) /lib64/libQt5Widgets.so.5 0xfffff7baab98 22 QWidget::event(QEvent *) (aarch64) /lib64/libQt5Widgets.so.5 0xfffff7a198b0 23 QFrame::event(QEvent *) (aarch64) /lib64/libQt5Widgets.so.5 0xfffff7ac0770 24 QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject *, QEvent *) (aarch64) /lib64/libQt5Core.so.5 0xfffff6efadcc 25 QApplicationPrivate::notify_helper(QObject *, QEvent *) (aarch64) /lib64/libQt5Widgets.so.5 0xfffff79d3580 26 QApplication::notify(QObject *, QEvent *) (aarch64) /lib64/libQt5Widgets.so.5 0xfffff79dc2f4 27 QCoreApplication::notifyInternal2(QObject *, QEvent *) (aarch64) /lib64/libQt5Core.so.5 0xfffff6efb0cc 28 QWidgetWindow::handleWheelEvent(QWheelEvent *) (aarch64) /lib64/libQt5Widgets.so.5 0xfffff7a36878 29 QWidgetWindow::event(QEvent *) (aarch64) /lib64/libQt5Widgets.so.5 0xfffff7a38230 30 QApplicationPrivate::notify_helper(QObject *, QEvent *) (aarch64) /lib64/libQt5Widgets.so.5 0xfffff79d3598 31 QCoreApplication::notifyInternal2(QObject *, QEvent *) (aarch64) /lib64/libQt5Core.so.5 0xfffff6efb0cc 32 QGuiApplicationPrivate::processWheelEvent(QWindowSystemInterfacePrivate::WheelEvent *) (aarch64) /lib64/libQt5Gui.so.5 0xfffff734517c 33 QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) (aarch64) /lib64/libQt5Gui.so.5 0xfffff73233d8 34 xcbSourceDispatch(_GSource *, int ( *)(void *), void *) (aarch64) /lib64/libQt5XcbQpa.so.5 0xfffff33290cc 35 g_main_context_dispatch_unlocked.lto_priv.0 (aarch64) /lib64/libglib-2.0.so.0 0xfffff5a3e1f4 36 g_main_context_iterate_unlocked.isra.0 (aarch64) /lib64/libglib-2.0.so.0 0xfffff5aa17b0 37 g_main_context_iteration (aarch64) /lib64/libglib-2.0.so.0 0xfffff5a3f8c4 38 QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (aarch64) /lib64/libQt5Core.so.5 0xfffff6f5b1d8 39 QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (aarch64) /lib64/libQt5Core.so.5 0xfffff6ef9264 40 QCoreApplication::exec() (aarch64) /lib64/libQt5Core.so.5 0xfffff6f02b40 41 main main.cpp 11 0x402a64 42 __libc_start_call_main (aarch64) /lib64/libc.so.6 0xfffff672629c 43 __libc_start_main * *GLIBC_2.34 (aarch64) /lib64/libc.so.6 0xfffff672637c 44 _start (aarch64) /home/jcelerier/projets/bugreports/bug-plaintextedit-infinite-loop/build/Desktop-Debug/bug-plaintextedit-infinite-loop 0x402770