qgis / QGIS

QGIS is a free, open source, cross platform (lin/win/mac) geographical information system (GIS)
https://qgis.org
GNU General Public License v2.0
10.59k stars 3k forks source link

Open expression dialog crash on windows qt6 build #59003

Open nicogodet opened 1 month ago

nicogodet commented 1 month ago

What is the bug or the crash?

[0x0] qgis_core!QgsLazInfo::parseExtrabyteAttributes+0x651e7 0x1ad04dd088 0x7ff8bc2525c0
[0x1] qgis_core!QgsExpression::initFunctionHelp+0xe0 0x1ad04dd0a0 0x7ff8bc3a7ca3
[0x2] qgis_core!QgsExpression::initFunctionHelp+0x1557c3 0x1ad04dd0b0 0x7ff8bc3a6e03
[0x3] qgis_core!QgsExpression::initFunctionHelp+0x154923 0x1ad04dd0e0 0x7ff8bc252508
[0x4] qgis_core!QgsExpression::initFunctionHelp+0x28 0x1ad04dd130 0x7ff8bad8ec94
[0x5] qgis_core!QgsExpression::tags+0x44 0x1ad04dd170 0x7ff8bf3b5376
[0x6] qgis_gui!QgsExpressionTreeView::updateFunctionTree+0x2896 0x1ad04dd1e0 0x7ff8bf3ad924
[0x7] qgis_gui!QgsExpressionTreeView::QgsExpressionTreeView+0x464 0x1ad04df300 0x7ff8bf3983ef
[0x8] qgis_gui!QgsExpressionBuilderWidget::expressionContextUpdated+0x99bf 0x1ad04df4a0 0x7ff8bf381bcf
[0x9] qgis_gui!QgsExpressionBuilderWidget::QgsExpressionBuilderWidget+0x1bf 0x1ad04e1e20 0x7ff8bf3810b2
[0xa] qgis_gui!QgsExpressionBuilderDialog::syncOkButtonEnabledState+0x812 0x1ad04e3360 0x7ff8bf37fb9f
[0xb] qgis_gui!QgsExpressionBuilderDialog::QgsExpressionBuilderDialog+0xdf 0x1ad04e36d0 0x7ff895c8e5e6

Don't know how to show exact line instead of offset...

Steps to reproduce the issue

Install qgis-qt6-dev through OSGeo4W Debug with winDbg

  1. open any alg in batch mode
  2. for output path "Compute with expression"
  3. Crash

Versions

Version de QGIS3.39.0-Master
Révision du code699c004a5d
 
Libraries
Version de Qt6.6.3
Version de Python3.12.6
Version de GDAL/OGR3.10.0dev-417845e129 (Compiled)
3.10.0dev-46ad0f1fd1 (Running)
Version de Proj9.4.0
Version de la base de données du registre EPSGv11.004 (2024-02-24)
Version de GEOS3.12.2-CAPI-1.18.2
Version de SQLite3.45.1
Version de PDAL2.6.3
Version du client PostgreSQL16.2
Version de SpatiaLite5.1.0
Version de QWT6.2.0
Version de QScintilla22.14.1
Version de l'OSWindows 10 Version 22H2
Cette copie de QGIS dispose d'une sortie de débogage.
 
Extensions Python actives
db_manager0.1.20
grassprovider2.12.99
MetaSearch0.3.6
processing2.12.99

Supported QGIS version

New profile

Additional context

No response

nicogodet commented 1 week ago

QGIS crash handler stack trace

Report Details

Python Stack Trace

Windows fatal exception: stack overflow

Current thread 0x000043dc (most recent call first):
  File "C:\OSGeo4W/apps/qgis-qt6-dev/./python/plugins\processing\gui\BatchPanel.py", line 394 in populateByExpression
    dlg = QgsExpressionBuilderDialog(layer=None, context=context.expressionContext())
  File "C:\OSGeo4W/apps/qgis-qt6-dev/./python/plugins\processing\gui\BatchPanel.py", line 358 in calculateByExpression
    self.populateByExpression(adding=False)
  File "C:\OSGeo4W/apps/qgis-qt6-dev/./python/plugins\processing\gui\AlgorithmDialog.py", line 99 in runAsBatch
    dlg.exec()
  File "C:\OSGeo4W/apps/qgis-qt6-dev/./python/plugins\processing\gui\AlgorithmLocatorFilter.py", line 122 in triggerResult
    dlg.exec()

Stack Trace


__chkstk chkstk.asm:109
`QgsExpression::initFunctionHelp'::`2'::<lambda_1>::operator() qgsexpression_texts.cpp:9
std::invoke<`QgsExpression::initFunctionHelp'::`2'::<lambda_1> > type_traits:1732
std::call_once<`QgsExpression::initFunctionHelp'::`2'::<lambda_1> > xcall_once.h:113
QgsExpression::initFunctionHelp qgsexpression_texts.cpp:8248
QgsExpression::tags qgsexpression.cpp:706
QgsExpressionTreeView::updateFunctionTree qgsexpressiontreeview.cpp:291
QgsExpressionTreeView::QgsExpressionTreeView qgsexpressiontreeview.cpp:129
Ui_QgsExpressionBuilderWidgetBase::setupUi ui_qgsexpressionbuilder.h:370
QgsExpressionBuilderWidget::QgsExpressionBuilderWidget qgsexpressionbuilderwidget.cpp:78
Ui_QgsExpressionBuilderDialogBase::setupUi ui_qgsexpressionbuilderdialogbase.h:37
QgsExpressionBuilderDialog::QgsExpressionBuilderDialog qgsexpressionbuilderdialog.cpp:28
sipQgsExpressionBuilderDialog::sipQgsExpressionBuilderDialog sip_guipart21.cpp:107352
init_type_QgsExpressionBuilderDialog sip_guipart21.cpp:111516
PyInit_sip :
PyObject_Vectorcall :
PyObject_Vectorcall :
PyEval_EvalFrameDefault :
PyFunction_Vectorcall :
PyArg_CheckPositional :
PyObject_Call :
PyObject_Call :
PyInit_QtCore :
PyInit_QtCore :
PyInit_QtCore :
PyInit_QtCore :
QMetaObject::metacall :
QObject::qt_static_metacall :
QMetaObject::activate :
QAction::activate :
QMenu::actionGeometry :
QMenu::actionGeometry :
QMenu::mouseReleaseEvent :
PyInit_QtWidgets :
QWidget::event :
PyInit_QtWidgets :
QApplicationPrivate::notify_helper :
QApplication::notify :
QgsApplication::notify qgsapplication.cpp:627
QCoreApplication::notifyInternal2 :
QApplicationPrivate::sendMouseEvent :
QWidgetRepaintManager::updateStaticContentsSize :
QWidgetRepaintManager::updateStaticContentsSize :
QApplicationPrivate::notify_helper :
QApplication::notify :
QgsApplication::notify qgsapplication.cpp:627
QCoreApplication::notifyInternal2 :
QGuiApplicationPrivate::processMouseEvent :
QWindowSystemInterface::sendWindowSystemEvents :
QEventDispatcherWin32::processEvents :
QWindowsGuiEventDispatcher::processEvents :
QEventLoop::exec :
QMenu::exec :
QToolButton::popupMode :
QToolButton::showMenu :
QObject::qt_static_metacall :
QMetaObject::activate :
QAbstractButton::clicked :
QAbstractButton::mousePressEvent :
QToolButton::mousePressEvent :
PyInit_QtWidgets :
QWidget::event :
PyInit_QtWidgets :
QApplicationPrivate::notify_helper :
QApplication::notify :
QgsApplication::notify qgsapplication.cpp:627
QCoreApplication::notifyInternal2 :
QApplicationPrivate::sendMouseEvent :
QWidgetRepaintManager::updateStaticContentsSize :
QWidgetRepaintManager::updateStaticContentsSize :
QApplicationPrivate::notify_helper :
QApplication::notify :
QgsApplication::notify qgsapplication.cpp:627
QCoreApplication::notifyInternal2 :
QGuiApplicationPrivate::processMouseEvent :
QWindowSystemInterface::sendWindowSystemEvents :
QEventDispatcherWin32::processEvents :
QWindowsGuiEventDispatcher::processEvents :
QEventLoop::exec :
QDialog::exec :
PyInit_QtWidgets :
PyLong_FromString :
PyObject_Vectorcall :
PyObject_Vectorcall :
PyEval_EvalFrameDefault :
PyFunction_Vectorcall :
PyArg_CheckPositional :
PyObject_Call :
PyObject_Call :
PyInit_QtCore :
PyInit_QtCore :
PyInit_QtCore :
PyInit_QtCore :
QMetaObject::metacall :
QObject::qt_static_metacall :
QMetaObject::activate :
QAbstractButton::clicked :
QAbstractButton::click :
QAbstractButton::mouseReleaseEvent :
PyInit_QtWidgets :
QWidget::event :
PyInit_QtWidgets :
QApplicationPrivate::notify_helper :
QApplication::notify :
QgsApplication::notify qgsapplication.cpp:627
QCoreApplication::notifyInternal2 :
QApplicationPrivate::sendMouseEvent :
QWidgetRepaintManager::updateStaticContentsSize :
QWidgetRepaintManager::updateStaticContentsSize :
QApplicationPrivate::notify_helper :
QApplication::notify :
QgsApplication::notify qgsapplication.cpp:627
QCoreApplication::notifyInternal2 :
QGuiApplicationPrivate::processMouseEvent :
QWindowSystemInterface::sendWindowSystemEvents :
QEventDispatcherWin32::processEvents :
QWindowsGuiEventDispatcher::processEvents :
QEventLoop::exec :
QDialog::exec :
PyInit_QtWidgets :
PyLong_FromString :
PyObject_Vectorcall :
PyObject_Vectorcall :
PyEval_EvalFrameDefault :
PyFunction_Vectorcall :
PyArg_CheckPositional :
PyObject_Call :
PyObject_Call :
PyInit_sip :
PyInit_sip :
sipVH__core_462 sip_corepart0.cpp:26953
sipQgsLocatorFilter::triggerResult sip_corepart17.cpp:17241
QgsLocatorModelBridge::triggerResult qgslocatormodelbridge.cpp:52
QgsLocatorWidget::acceptCurrentEntry qgslocatorwidget.cpp:375
QtPrivate::FunctorCall<QtPrivate::IndexesList<>,QtPrivate::List<>,void,void (__cdecl QgsActionMenu::*)(void)>::call qobjectdefs_impl.h:145
QtPrivate::FunctionPointer<void (__cdecl QgsActionMenu::*)(void)>::call<QtPrivate::List<>,void> qobjectdefs_impl.h:183
QtPrivate::QCallableObject<void (__cdecl QgsActionMenu::*)(void),QtPrivate::List<>,void>::impl qobjectdefs_impl.h:523
QObject::qt_static_metacall :
QMetaObject::activate :
QAbstractItemView::activated :
QTreeView::mouseDoubleClickEvent :
QWidget::event :
QFrame::event :
QAbstractItemView::viewportEvent :
QCoreApplicationPrivate::sendThroughObjectEventFilters :
QApplicationPrivate::notify_helper :
QApplication::notify :
QgsApplication::notify qgsapplication.cpp:627
QCoreApplication::notifyInternal2 :
QApplicationPrivate::sendMouseEvent :
QWidgetRepaintManager::updateStaticContentsSize :
QWidgetRepaintManager::updateStaticContentsSize :
QApplicationPrivate::notify_helper :
QApplication::notify :
QgsApplication::notify qgsapplication.cpp:627
QCoreApplication::notifyInternal2 :
QGuiApplicationPrivate::processMouseEvent :
QWindowSystemInterface::sendWindowSystemEvents :
QEventDispatcherWin32::processEvents :
QWindowsGuiEventDispatcher::processEvents :
QEventLoop::exec :
QCoreApplication::exec :
main main.cpp:1845
WinMain mainwin.cpp:214
__scrt_common_main_seh exe_common.inl:288
BaseThreadInitThunk :
RtlUserThreadStart :

QGIS Info QGIS Version: 3.39.0-Master QGIS code revision: c17d7a1d99 Compiled against Qt: 6.6.3 Running against Qt: 6.6.3 Compiled against GDAL: 3.11.0dev-a97bee835b Running against GDAL: 3.11.0dev-a8117d90bf

System Info CPU Type: x86_64 Kernel Type: winnt Kernel Version: 10.0.19045