[Development] Fwd: [Qt bugreports] (QTBUG-46505) assertion failure (=> crash) in harfbuzz-shaper

René J.V. Bertin rjvbertin at gmail.com
Fri Jun 5 21:45:37 CEST 2015


Hi,

As asked in the bug report below: is it necessary to handle this situation with an assert/abort, instead of simply returning (with whatever error the void function in question can return)?

Thanks,
René

----------  Forwarded Message  ----------

Subject: [Qt bugreports] (QTBUG-46505) assertion failure (=> crash) in harfbuzz-shaper
Date: Friday June 05 2015, 17:12:15
From: René Bertin (via JIRA) <jira-noreply at qt-project.org>
To: rjvbertin at gmail.com

	René Bertin created an issue
 
Qt /  QTBUG-46505
assertion failure (=> crash) in harfbuzz-shaper
Issue Type:	 Bug
Affects Versions:	 4.8.7
Assignee:	Thiago Macieira
Components:	 Core: Other
Created:	 05/Jun/15 5:12 PM
Environment:	
OS X 10.9.5 with Qt 4.8.7 built through a custom MacPorts port
Priority:	 Not Evaluated
Reporter:	René Bertin
I've run twice in succession into an assertion failure in harfbuzz-shaper.cpp line 484 . Sadly I cannot determine what combination of text and font cause the issue.
Is it necessary to abort here, or are there more graceful ways to handle the error?
I'm using the harfbuzz library from MacPorts, version 0.9.40 .
Code Type:       X86-64 (Native)
Parent Process:  tcsh [95718]
Responsible:     Terminal [936]
User ID:         505

Date/Time:       2015-06-05 18:47:31.627 +0200
OS Version:      Mac OS X 10.9.5 (13F1077)
Report Version:  11
Anonymous UUID:  64B814D9-356F-6F85-8341-E17C1354A330

Sleep/Wake UUID: 69ABB6DD-3D80-4B02-9FCF-EF5D156F2919

Crashed Thread:  0  Dispatch queue: com.apple.main-thread

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000

Application Specific Information:
Assertion failed: (glyph_pos == item->num_glyphs), function HB_HeuristicSetGlyphAttributes, file ../3rdparty/harfbuzz/src/harfbuzz-shaper.cpp, line 484.
 

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libsystem_kernel.dylib        	0x00007fff8dcee292 __kill + 10
1   libkdeui.5.dylib              	0x0000000106a72706 KCrash::defaultCrashHandler(int) + 326 (kcrash.cpp:352)
2   libsystem_platform.dylib      	0x00007fff865665aa _sigtramp + 26
3   ???                           	000000000000000000 0 + 0
4   libsystem_c.dylib             	0x00007fff91d85b1a abort + 125
5   libsystem_c.dylib             	0x00007fff91d4f9bf __assert_rtn + 321
6   QtCore                        	0x0000000108206fee HB_HeuristicSetGlyphAttributes + 1102
7   QtCore                        	0x0000000108207092 HB_BasicShape + 82 (harfbuzz-shaper.cpp:618)
8   QtCore                        	0x00000001082082b1 HB_ShapeItem + 49 (harfbuzz-shaper.cpp:1420)
9   QtGui                         	0x0000000107228709 QTextEngine::shapeTextWithHarfbuzz(int) const + 3177 (qtextengine.cpp:1342)
10  QtGui                         	0x0000000107229b7a QTextEngine::shapeText(int) const + 186 (qtextengine.cpp:924)
11  QtGui                         	0x0000000107229ab0 QTextEngine::shape(int) const + 576 (qtextengine.cpp:1452)
12  QtGui                         	0x000000010722d4f9 QTextEngine::width(int, int) const + 537 (qtextengine.cpp:1687)
13  QtGui                         	0x000000010723016d QTextEngine::elidedText(Qt::TextElideMode, QFixed const&, int) const + 461 (qtextengine.cpp:2518)
14  QtGui                         	0x000000010720d7eb QFontMetrics::elidedText(QString const&, Qt::TextElideMode, int, int) const + 683 (qtextengine_p.h:653)
15  libmessagelist.4.dylib        	0x0000000115db1e56 paint_left_aligned_elided_text(QString const&, MessageList::Core::Theme::ContentItem*, QPainter*, int&, int, int&, Qt::LayoutDirection, QFont const&) + 118
16  libmessagelist.4.dylib        	0x0000000115daee1e MessageList::Core::ThemeDelegate::paint(QPainter*, QStyleOptionViewItem const&, QModelIndex const&) const + 22494
17  QtGui                         	0x00000001074cf275 QTreeView::drawRow(QPainter*, QStyleOptionViewItem const&, QModelIndex const&) const + 3813 (qtreeview.cpp:1685)
18  QtGui                         	0x00000001074cd2f3 QTreeView::drawTree(QPainter*, QRegion const&) const + 931 (qtreeview.cpp:1438)
19  QtGui                         	0x00000001074cce8a QTreeView::paintEvent(QPaintEvent*) + 346 (qabstractitemview_p.h:182)
20  QtGui                         	0x000000010708141e QWidget::event(QEvent*) + 1198 (qwidget.cpp:8546)
21  QtGui                         	0x000000010739c92d QFrame::event(QEvent*) + 45 (qframe.cpp:557)
22  QtGui                         	0x0000000107415f9c QAbstractScrollArea::viewportEvent(QEvent*) + 108 (qabstractscrollarea.cpp:1043)
23  QtGui                         	0x000000010748e0a4 QAbstractItemView::viewportEvent(QEvent*) + 1108 (qabstractitemview.cpp:1644)
24  QtGui                         	0x00000001074ccc1a QTreeView::viewportEvent(QEvent*) + 218 (qtreeview.cpp:1252)
25  QtGui                         	0x0000000107416775 QAbstractScrollAreaFilter::eventFilter(QObject*, QEvent*) + 37 (qabstractscrollarea_p.h:116)
26  QtCore                        	0x000000010829f3ec QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) + 124 (qcoreapplication.cpp:1065)
27  QtGui                         	0x0000000107031bcb QApplicationPrivate::notify_helper(QObject*, QEvent*) + 235 (qapplication.cpp:4561)
28  QtGui                         	0x0000000107034b7d QApplication::notify(QObject*, QEvent*) + 7693 (qapplication.cpp:4530)
29  QtCore                        	0x000000010829f0c6 QCoreApplication::notifyInternal(QObject*, QEvent*) + 118 (qcoreapplication.cpp:968)
30  QtGui                         	0x000000010707cb90 QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) + 1984 (qwidget.cpp:5601)
31  QtGui                         	0x00000001071f5dd9 QWidgetBackingStore::sync() + 3321 (qbackingstore.cpp:1367)
32  QtGui                         	0x0000000107075c7f QWidgetPrivate::syncBackingStore() + 239 (qwidget.cpp:1894)
33  QtGui                         	0x0000000107081749 QWidget::event(QEvent*) + 2009 (qwidget.cpp:8693)
34  QtGui                         	0x00000001073b4fb1 QMainWindow::event(QEvent*) + 993 (qmainwindow.cpp:1478)
35  libkdeui.5.dylib              	0x0000000106b3058a KXmlGuiWindow::event(QEvent*) + 26 (kxmlguiwindow.cpp:126)
36  QtGui                         	0x0000000107031bdb QApplicationPrivate::notify_helper(QObject*, QEvent*) + 251 (qapplication.cpp:4565)
37  QtGui                         	0x0000000107034b7d QApplication::notify(QObject*, QEvent*) + 7693 (qapplication.cpp:4530)
38  QtCore                        	0x000000010829f0c6 QCoreApplication::notifyInternal(QObject*, QEvent*) + 118 (qcoreapplication.cpp:968)
39  QtCore                        	0x000000010829fc2e QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) + 686 (qcoreapplication.h:231)
40  com.apple.CoreFoundation      	0x00007fff911925b1 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
41  com.apple.CoreFoundation      	0x00007fff91183c62 __CFRunLoopDoSources0 + 242
42  com.apple.CoreFoundation      	0x00007fff911833ef __CFRunLoopRun + 831
43  com.apple.CoreFoundation      	0x00007fff91182e75 CFRunLoopRunSpecific + 309
44  com.apple.HIToolbox           	0x00007fff8f138a0d RunCurrentEventLoopInMode + 226
45  com.apple.HIToolbox           	0x00007fff8f1387b7 ReceiveNextEventCommon + 479
46  com.apple.HIToolbox           	0x00007fff8f1385bc _BlockUntilNextEventMatchingListInModeWithFilter + 65
47  com.apple.AppKit              	0x00007fff8c47624e _DPSNextEvent + 1434
48  com.apple.AppKit              	0x00007fff8c47589b -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 122
49  com.apple.AppKit              	0x00007fff8c46999c -[NSApplication run] + 553
50  QtGui                         	0x0000000106fe6a7b QEventDispatcherMac::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 2059
51  QtCore                        	0x000000010829c45f QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 495 (qglobal.h:2434)
52  QtCore                        	0x000000010829f677 QCoreApplication::exec() + 199 (qcoreapplication.cpp:1227)
53  kontact                       	0x00000001049309ef main + 4175
54  libdyld.dylib                 	0x00007fff91ef75fd start + 1
 	Add Comment
 
This message was sent by Atlassian JIRA (v6.3.9#6339-sha1:46fa261)	


-----------------------------------------



More information about the Development mailing list