Details
-
Bug
-
Resolution: Fixed
-
P1: Critical
-
5.8, 5.12.7
-
CentOs 7.4, QT5.8, Intel Driver, openGL Mesa
-
121cfa92daf310df382ddf3d1171ae0d94274f14 (qt/qtdeclarative/5.15.1) 8721196cc73021709ef13e1a6e74aedd34bcfc79 (qt/tqtc-qtdeclarative/5.12) 3df5ad9d247b194401d61c3ffb4b816ec239bded (qt/tqtc-qtdeclarative/6.0)
Description
Segfault occurs in the code below.
QT 5.8
int QSGOpaqueTextureMaterial::compare(const QSGMaterial *o) const { Q_ASSERT(o && type() == o->type()); const QSGOpaqueTextureMaterial *other = static_cast<const QSGOpaqueTextureMaterial *>(o); if (int diff = m_texture->textureId() - other->texture()->textureId()) return diff; return int(m_filtering) - int(other->m_filtering); }
#0 0x0000000000000000 in () #1 0x00007f963f4a0534 in QSGOpaqueTextureMaterial::compare(QSGMaterial const*) const (this=0x75c11d38, o=0x75c076f8) at /usr/src/debug/qtdeclarative-opensource-src-5.8.0/src/quick/scenegraph/util/qsgtexturematerial.cpp:315 #2 0x00007f963f4887a4 in QSGBatchRenderer::Batch::isMaterialCompatible(QSGBatchRenderer::Element*) const (this=<optimized out>, e=e@entry=0x2da8668) at /usr/src/debug/qtdeclarative-opensource-src-5.8.0/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp:627 #3 0x00007f963f498d91 in QSGBatchRenderer::Renderer::nodeChanged(QSGNode*, QFlags<QSGNode::DirtyStateBit>) (this=0x6f324d40, node=0x75c07530, state=...) at /usr/src/debug/qtdeclarative-opensource-src-5.8.0/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp:1232 #4 0x00007f963f4822e5 in QSGRootNode::notifyNodeChange(QSGNode*, QFlags<QSGNode::DirtyStateBit>) (this=this@entry=0x6f3225c0, node=node@entry=0x75c07530, state=state@entry=...) at /usr/src/debug/qtdeclarative-opensource-src-5.8.0/src/quick/scenegraph/coreapi/qsgnode.cpp:1285 #5 0x00007f963f482370 in QSGNode::markDirty(QFlags<QSGNode::DirtyStateBit>) (this=this@entry=0x75c07530, bits=..., bits@entry=...) at /usr/src/debug/qtdeclarative-opensource-src-5.8.0/src/quick/scenegraph/coreapi/qsgnode.cpp:678 #6 0x00007f963f4af3d6 in QSGBasicInternalImageNode::setTexture(QSGTexture*) (this=0x75c07530, texture=<optimized out>) at /usr/src/debug/qtdeclarative-opensource-src-5.8.0/src/quick/scenegraph/qsgbasicinternalimagenode.cpp:123 #7 0x00007f963f58391d in QQuickImage::updatePaintNode(QSGNode*, QQuickItem::UpdatePaintNodeData*) (this=<optimized out>, oldNode=<optimized out>) at /usr/src/debug/qtdeclarative-opensource-src-5.8.0/src/quick/items/qquickimage.cpp:731 #8 0x00007f963f516d07 in QQuickWindowPrivate::updateDirtyNode(QQuickItem*) (this=this@entry=0x6f827840, item=item@entry=0x72db2e30) at /usr/src/debug/qtdeclarative-opensource-src-5.8.0/src/quick/items/qquickwindow.cpp:3120 #9 0x00007f963f517691 in QQuickWindowPrivate::updateDirtyNodes() (this=this@entry=0x6f827840) at /usr/src/debug/qtdeclarative-opensource-src-5.8.0/src/quick/items/qquickwindow.cpp:2865 #10 0x00007f963f518632 in QQuickWindowPrivate::syncSceneGraph() (this=this@entry=0x6f827840) at /usr/src/debug/qtdeclarative-opensource-src-5.8.0/src/quick/items/qquickwindow.cpp:420 #11 0x00007f963f4b35e0 in QSGGuiThreadRenderLoop::renderWindow(QQuickWindow*) (this=0x2d917d0, window=0x6f827780) at /usr/src/debug/qtdeclarative-opensource-src-5.8.0/src/quick/scenegraph/qsgrenderloop.cpp:409 #12 0x00007f963f5211d7 in QQuickWindow::event(QEvent*) (this=0x6f827780, e=0x7ffedc699ce0) at /usr/src/debug/qtdeclarative-opensource-src-5.8.0/src/quick/items/qquickwindow.cpp:1577 #13 0x00007f963e7d9505 in doNotify(QObject*, QEvent*) (receiver=<optimized out>, event=<optimized out>) at kernel/qcoreapplication.cpp:1063 #14 0x000000000042cf12 in Evs::XOne::QmlApplication::notify(QObject*, QEvent*) (this=<optimized out>, object=<optimized out>, event=<optimized out>) at /home/teamcity/buildAgent/work/769f0b28d43491f7/Client/QmlApplication.cpp:24 #15 0x00007f963e7d95e6 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=receiver@entry=0x6f827780, event=event@entry=0x7ffedc699ce0) at kernel/qcoreapplication.cpp:988 #16 0x00007f963eb26d0e in QWindowPrivate::deliverUpdateRequest() (event=0x7ffedc699ce0, receiver=0x6f827780) at ../../src/corelib/kernel/qcoreapplication.h:231 #17 0x00007f963eb26d0e in QWindowPrivate::deliverUpdateRequest() (this=<optimized out>) at kernel/qwindow.cpp:2171 #18 0x00007f963eb2717d in QWindow::event(QEvent*) (this=this@entry=0x6f827780, ev=ev@entry=0x7ffedc69a080) at kernel/qwindow.cpp:2142 #19 0x00007f963f521185 in QQuickWindow::event(QEvent*) (this=0x6f827780, e=0x7ffedc69a080) at /usr/src/debug/qtdeclarative-opensource-src-5.8.0/src/quick/items/qquickwindow.cpp:1596 #20 0x00007f963e7d9505 in doNotify(QObject*, QEvent*) (receiver=<optimized out>, event=<optimized out>) at kernel/qcoreapplication.cpp:1063 #21 0x000000000042cf12 in Evs::XOne::QmlApplication::notify(QObject*, QEvent*) (this=<optimized out>, object=<optimized out>, event=<optimized out>) at /home/teamcity/buildAgent/work/769f0b28d43491f7/Client/QmlApplication.cpp:24 #22 0x00007f963e7d95e6 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x6f827780, event=event@entry=0x7ffedc69a080) at kernel/qcoreapplication.cpp:988 #23 0x00007f963e824dae in QTimerInfoList::activateTimers() (event=0x7ffedc69a080, receiver=<optimized out>) at ../../src/corelib/kernel/qcoreapplication.h:231 #24 0x00007f963e824dae in QTimerInfoList::activateTimers() (this=0x2838e60) at kernel/qtimerinfo_unix.cpp:643 #25 0x00007f963e825599 in idleTimerSourceDispatch(GSource*, GSourceFunc, gpointer) (source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:182 #26 0x00007f963e825599 in idleTimerSourceDispatch(GSource*, GSourceFunc, gpointer) (source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:229 #27 0x00007f9634c034c9 in g_main_context_dispatch () at /lib64/libglib-2.0.so.0 #28 0x00007f9634c03818 in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0 #29 0x00007f9634c038cc in g_main_context_iteration () at /lib64/libglib-2.0.so.0 #30 0x00007f963e8259ac in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x2835120, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #31 0x00007f963e7d829b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffedc69a2d0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:212 #32 0x00007f963e7dfd44 in QCoreApplication::exec() () at kernel/qcoreapplication.cpp:1261 #33 0x00007f963eb13cac in QGuiApplication::exec() () at kernel/qguiapplication.cpp:1657 #34 0x000000000042a1a4 in main(int32_t, char**) (argc=4, argv=<optimized out>) ---Type <return> to continue, or q <return> to quit--- at /home/teamcity/buildAgent/work/769f0b28d43491f7/Client/main.cpp:266
The segmentation fault is in Button id : moreActionsButton in the function onClicked
Here the "partial" code , see at the end.
we comment the use of property listviewHeader.showMoreActions
Rectangle { id: listviewHeader objectName: "listviewHeader" anchors.top: parent.top anchors.left: filterButtonsZone.right anchors.leftMargin: 1 anchors.right: parent.right height: screensProperties.getScaledHeight(52, libraryPage) color: Style.evsThemeColors.evs_gray clip: true property bool showMoreActions: false Button { id: multipleSelectionButton objectName: "multipleSelectionButton" visible: false //todo: set to true if deleting multiple medias is supported width: screensProperties.getScaledWidth(62, libraryPage) height: rootItem.adaptButtonHeightToEvsTheme(listviewHeader.height, libraryPage) anchors.verticalCenter: parent.verticalCenter anchors.left: parent.left flat: true Material.foreground: Style.evsThemeColors.evs_gray Material.background: Style.evsThemeColors.evs_gray onClicked: { mediaLibraryManager.invertMultipleSelectionState(); } Label { id: multipleSelectionButtonIcon objectName: "multipleSelectionButtonIcon" anchors.fill: parent elide: Text.ElideRight verticalAlignment: Text.AlignVCenter horizontalAlignment: Text.AlignHCenter text: mediaLibraryManager.multipleSelectionEnabled ? Style.icons.fa_check_square : Style.icons.fa_square_o font.family: "FontAwesome" font.pixelSize: screensProperties.getScaledHeight(14, libraryPage) } } Rectangle { id: separator visible: multipleSelectionButton.visible anchors.top: parent.top anchors.bottom: parent.bottom anchors.left: multipleSelectionButton.right width: screensProperties.getScaledWidth(1, libraryPage) color: Style.evsThemeColors.evs_gray_dark } Item { id: moreActionsButtonsRow anchors.top: parent.top anchors.bottom: parent.bottom visible: x < listviewHeader.width - moreActionsButton.width width: transitionButton.width + graphicsButton.width + highlightsButton.width + importButton.width + 3*internalProperties.margins QtObject { id: internalProperties readonly property real margins: screensProperties.getScaledWidth(1, libraryPage) } state: "hidden" states: [ State { name: "hidden" PropertyChanges { target: moreActionsButtonsRow; x: listviewHeader.width - moreActionsButton.width } }, State { name: "shown" PropertyChanges { target: moreActionsButtonsRow; x: listviewHeader.width - moreActionsButton.width - moreActionsButtonsRow.width } } ] transitions: [ Transition { NumberAnimation { properties: "x"; duration: 300; easing.type: Easing.InOutQuad; } } ] Button { id: transitionButton objectName: "transitionButton" width: listviewHeader.height height: rootItem.adaptButtonHeightToEvsTheme(listviewHeader.height, libraryPage) anchors.verticalCenter: parent.verticalCenter anchors.right: graphicsButton.left anchors.rightMargin: internalProperties.margins // enabled: listviewHeader.showMoreActions //to avoid clicks during animation flat: true Material.foreground: Style.evsThemeColors.evs_gray_lighter Material.background: Style.evsThemeColors.evs_gray_lighter onClicked: { var desiredFolder = mediaLibraryManager.getUsbLocationPath(); if (mediaLibraryManager.doesFolderExist(desiredFolder)) fileDialogTransitionSelection.folder = "file://" + desiredFolder; else fileDialogTransitionSelection.folder = fileDialogTransitionSelection.shortcuts.pictures; fileDialogTransitionSelection.open(); } Label { id: transitionButtonIcon anchors.fill: parent elide: Text.ElideRight verticalAlignment: Text.AlignVCenter horizontalAlignment: Text.AlignHCenter text: Style.icons.evs_fade_to font.family: "icons-set-evs" font.pixelSize: screensProperties.getScaledHeight(16, libraryPage) } } Button { id: graphicsButton objectName: "graphicsButton" width: listviewHeader.height height: rootItem.adaptButtonHeightToEvsTheme(listviewHeader.height, libraryPage) anchors.verticalCenter: parent.verticalCenter anchors.right: highlightsButton.left anchors.rightMargin: internalProperties.margins // enabled: listviewHeader.showMoreActions //to avoid clicks during animation flat: true Material.foreground: Style.evsThemeColors.evs_gray_lighter Material.background: Style.evsThemeColors.evs_gray_lighter onClicked: { operationViewQML.isEditingGraphics = true; } Label { id: graphicsButtonIcon anchors.fill: parent elide: Text.ElideRight verticalAlignment: Text.AlignVCenter horizontalAlignment: Text.AlignHCenter text: Style.icons.fa_picture font.family: "FontAwesome" font.pixelSize: screensProperties.getScaledHeight(16, libraryPage) } } Button { id: highlightsButton objectName: "highlightsButton" width: listviewHeader.height height: rootItem.adaptButtonHeightToEvsTheme(listviewHeader.height, libraryPage) anchors.verticalCenter: parent.verticalCenter anchors.right: importButton.left anchors.rightMargin: internalProperties.margins // enabled: listviewHeader.showMoreActions //to avoid clicks during animation flat: true Material.foreground: Style.evsThemeColors.evs_gray_lighter Material.background: Style.evsThemeColors.evs_gray_lighter onClicked: { mediaLibraryManager.createHighlight(); } Label { id: highlightsButtonIcon anchors.fill: parent elide: Text.ElideRight verticalAlignment: Text.AlignVCenter horizontalAlignment: Text.AlignHCenter text: Style.icons.fa_star font.family: "FontAwesome" font.pixelSize: screensProperties.getScaledHeight(16, libraryPage) } } Button { id: importButton objectName: "importButton" width: listviewHeader.height height: rootItem.adaptButtonHeightToEvsTheme(listviewHeader.height, libraryPage) anchors.verticalCenter: parent.verticalCenter anchors.right: parent.right // enabled: listviewHeader.showMoreActions //to avoid clicks during animation flat: true Material.foreground: Style.evsThemeColors.evs_gray_lighter Material.background: Style.evsThemeColors.evs_gray_lighter onClicked: { var desiredFolder = mediaLibraryManager.getUsbLocationPath(); if (mediaLibraryManager.doesFolderExist(desiredFolder)) fileDialogClipSelection.folder = "file://" + desiredFolder; else fileDialogClipSelection.folder = fileDialogClipSelection.shortcuts.movies; fileDialogClipSelection.open(); } Label { id: importButtonIcon anchors.fill: parent elide: Text.ElideRight verticalAlignment: Text.AlignVCenter horizontalAlignment: Text.AlignHCenter text: Style.icons.fa_sign_in font.family: "FontAwesome" font.pixelSize: screensProperties.getScaledHeight(16, libraryPage) } } } Button { id: moreActionsButton objectName: "moreActionsButton" width: parent.height height: rootItem.adaptButtonHeightToEvsTheme(parent.height, moreActionsButton) anchors.verticalCenter: parent.verticalCenter anchors.right: parent.right flat: true Material.foreground: "#455a64" Material.background: "#455a64" onClicked: { ---------> dump here when clicked <-------------------------------- // listviewHeader.showMoreActions = !listviewHeader.showMoreActions; } Label { id: moreActionsButtonIcon anchors.fill: parent elide: Text.ElideRight verticalAlignment: Text.AlignVCenter horizontalAlignment: Text.AlignHCenter // text: listviewHeader.showMoreActions ? Style.icons.fa_times : Style.icons.fa_plus font.family: "FontAwesome" font.pixelSize: screensProperties.getScaledHeight(24, libraryPage) } } }
Attachments
Issue Links
- relates to
-
QTBUG-100281 [ANGLE] Crash on QSGTexture::comparisonKey()
- Reported
-
QTBUG-84606 Crash on QSGTexture::comparisonKey()
- Closed