Details
-
Bug
-
Resolution: Duplicate
-
P1: Critical
-
None
-
6.2.4
-
None
-
Windows 10
Description
Crash on QFontEngineMulti::ascent()
Unhandled exception at 0x00007FFFFE4C5D43 (Qt6Gui.dll) in minidump (41).dmp: 0xC0000005: Access violation reading location 0xFFFFFFFFFFFFFFFF.
I see a lot of such crashes on Qt 6.2.4 among users crash reports.
It's never reproduced for me locally and I have no idea how to simulate this.
Stack trace:
> Qt6Gui.dll!QFontEngineMulti::ascent() Line 2156 C++ Qt6Gui.dll!QFontMetricsF::height() Line 1138 C++ Qt6Quick.dll!QQuickTextPrivate::lineHeightOffset() Line 1407 C++ Qt6Quick.dll!QQuickText::updatePaintNode(QSGNode * oldNode, QQuickItem::UpdatePaintNodeData * data) Line 2608 C++ Qt6Quick.dll!QQuickWindowPrivate::updateDirtyNode(QQuickItem * item) Line 2141 C++ Qt6Quick.dll!QQuickWindowPrivate::updateDirtyNodes() Line 1886 C++ Qt6Quick.dll!QQuickWindowPrivate::syncSceneGraph() Line 566 C++ Qt6Quick.dll!QSGRenderThread::sync(bool inExpose) Line 595 C++ Qt6Quick.dll!QSGRenderThread::syncAndRender() Line 734 C++ Qt6Quick.dll!QSGRenderThread::run() Line 984 C++ Qt6Core.dll!QThreadPrivate::start(void * arg) Line 328 C++ [External Code]
At the same time UI thread is waiting on a mutex in QSGThreadedRenderLoop::polishAndSync()
[External Code] > [Inline Frame] Qt6Core.dll!QWaitConditionPrivate::wait(QWaitConditionEvent *) Line 111 C++ Qt6Core.dll!QWaitCondition::wait(QMutex * mutex, unsigned long time) Line 169 C++ Qt6Core.dll!QWaitCondition::wait(QMutex * mutex, QDeadlineTimer deadline) Line 180 C++ Qt6Quick.dll!QSGThreadedRenderLoop::polishAndSync(QSGThreadedRenderLoop::Window * w, bool inExpose) Line 1550 C++ Qt6Quick.dll!QSGThreadedRenderLoop::handleUpdateRequest(QQuickWindow * window) Line 1363 C++ Qt6Quick.dll!QQuickWindow::event(QEvent * e) Line 1543 C++ Qt6Widgets.dll!QApplicationPrivate::notify_helper(QObject * receiver, QEvent * e) Line 3411 C++ Qt6Widgets.dll!QApplication::notify(QObject * receiver, QEvent * e) Line 3363 C++ Qt6Core.dll!QCoreApplication::notifyInternal2(QObject * receiver, QEvent * event) Line 1067 C++ Qt6Gui.dll!QPlatformWindow::deliverUpdateRequest() Line 811 C++ Qt6Gui.dll!QPlatformWindow::windowEvent(QEvent * event) Line 491 C++ Qt6Widgets.dll!QApplication::notify(QObject * receiver, QEvent * e) Line 2667 C++ Qt6Core.dll!QCoreApplication::notifyInternal2(QObject * receiver, QEvent * event) Line 1067 C++ Qt6Core.dll!QEventDispatcherWin32Private::sendTimerEvent(int timerId) Line 409 C++ Qt6Core.dll!QEventDispatcherWin32::event(QEvent * e) Line 891 C++ Qt6Widgets.dll!QApplicationPrivate::notify_helper(QObject * receiver, QEvent * e) Line 3411 C++ Qt6Widgets.dll!QApplication::notify(QObject * receiver, QEvent * e) Line 3363 C++ Qt6Core.dll!QCoreApplication::notifyInternal2(QObject * receiver, QEvent * event) Line 1067 C++ [Inline Frame] Qt6Core.dll!QCoreApplication::sendEvent(QObject *) Line 1475 C++ Qt6Core.dll!QCoreApplicationPrivate::sendPostedEvents(QObject * receiver, int event_type, QThreadData * data) Line 1834 C++ Qt6Gui.dll!QWindowsGuiEventDispatcher::sendPostedEvents() Line 80 C++ Qt6Core.dll!QEventDispatcherWin32::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags) Line 476 C++ Qt6Gui.dll!QWindowsGuiEventDispatcher::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags) Line 73 C++ [Inline Frame] Qt6Core.dll!QEventLoop::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag>) Line 139 C++ Qt6Core.dll!QEventLoop::exec(QFlags<enum QEventLoop::ProcessEventsFlag> flags) Line 230 C++ Qt6Core.dll!QCoreApplication::exec() Line 1382 C++
At first glance it looks like a some race condition and probably has the same root cause as QTBUG-103267.
Attachments
Issue Links
- duplicates
-
QTBUG-103267 [Windows] Crash on QFontCache::clear()
-
- Closed
-
- relates to
-
QTBUG-38800 Segmentation fault in QFontEngineFT::init when filling a model asynchronously
-
- Closed
-