Bug report #17663

QGIS 2.99 crash while using "search box" in qgis options dialog

Added by Jan Lippmann almost 3 years ago. Updated almost 3 years ago.

Status:Closed
Priority:Normal
Assignee:-
Category:GUI
Affected QGIS version:master Regression?:No
Operating System: Easy fix?:No
Pull Request or Patch supplied:No Resolution:fixed/implemented
Crashes QGIS or corrupts data:Yes Copied to github as #:25560

Description

User Feedback

Report Details

Crash ID: e01f3b4ef2ecd13878792e00b9e4ca4e44960961

Stack Trace

QMetaObject::cast :
qobject_cast<QTreeView * __ptr64> qobject.h:515
QgsSearchHighlightOptionWidget::searchHighlight qgsoptionsdialogbase.cpp:443
QgsOptionsDialogBase::searchText qgsoptionsdialogbase.cpp:232
QtPrivate::FunctorCall<QtPrivate::IndexesList<0>,QtPrivate::List<QString const & __ptr64>,void,void (__cdecl QgsOptionsDialogBase::*)(QString const & __ptr64) __ptr64>::call qobjectdefs_impl.h:136
QtPrivate::FunctionPointer<void (__cdecl QgsOptionsDialogBase::*)(QString const & __ptr64) __ptr64>::call<QtPrivate::List<QString const & __ptr64>,void> qobjectdefs_impl.h:170
QtPrivate::QSlotObject<void (__cdecl QgsOptionsDialogBase::*)(QString const & __ptr64) __ptr64,QtPrivate::List<QString const & __ptr64>,void>::impl qobject_impl.h:121
QMetaObject::activate :
QLineEdit::qt_static_metacall :
QMetaObject::activate :
QWidgetLineControl::finishChange :
QWidgetLineControl::processKeyEvent :
QLineEdit::keyPressEvent :
QWidget::event :
QLineEdit::event :
QApplicationPrivate::notify_helper :
QApplication::notify :
QgsApplication::notify qgsapplication.cpp:317
QCoreApplication::notifyInternal2 :
QSizePolicy::QSizePolicy :
QSizePolicy::QSizePolicy :
QApplicationPrivate::notify_helper :
QApplication::notify :
QgsApplication::notify qgsapplication.cpp:317
QCoreApplication::notifyInternal2 :
QGuiApplicationPrivate::processKeyEvent :
QWindowSystemInterface::sendWindowSystemEvents :
QEventDispatcherWin32::processEvents :
TranslateMessageEx :
TranslateMessage :
QEventDispatcherWin32::processEvents :
qt_plugin_query_metadata :
QEventLoop::exec :
QDialog::exec :
QgisApp::showOptionsDialog qgisapp.cpp:9694
QgisApp::options qgisapp.cpp:9673
QtPrivate::FunctorCall<QtPrivate::IndexesList<>,QtPrivate::List<>,void,void (__cdecl QgisApp::*)(void) __ptr64>::call qobjectdefs_impl.h:136
QtPrivate::FunctionPointer<void (__cdecl QgisApp::*)(void) __ptr64>::call<QtPrivate::List<>,void> qobjectdefs_impl.h:170
QtPrivate::QSlotObject<void (__cdecl QgisApp::*)(void) __ptr64,QtPrivate::List<>,void>::impl qobject_impl.h:121
QMetaObject::activate :
QAction::activate :
QMenu::actionGeometry :
QMenu::actionGeometry :
QMenu::mouseReleaseEvent :
QWidget::event :
QMenu::event :
QApplicationPrivate::notify_helper :
QApplication::notify :
QgsApplication::notify qgsapplication.cpp:317
QCoreApplication::notifyInternal2 :
QApplicationPrivate::sendMouseEvent :
QSizePolicy::QSizePolicy :
QSizePolicy::QSizePolicy :
QApplicationPrivate::notify_helper :
QApplication::notify :
QgsApplication::notify qgsapplication.cpp:317
QCoreApplication::notifyInternal2 :
QGuiApplicationPrivate::processMouseEvent :
QWindowSystemInterface::sendWindowSystemEvents :
QEventDispatcherWin32::processEvents :
TranslateMessageEx :
TranslateMessage :
QEventDispatcherWin32::processEvents :
qt_plugin_query_metadata :
QEventLoop::exec :
QCoreApplication::exec :
main main.cpp:1398
WinMain mainwin.cpp:128
__scrt_common_main_seh exe_common.inl:253
BaseThreadInitThunk :
RtlUserThreadStart :

QGIS Info
QGIS Version: 2.99.0-Master
QGIS code revision: aa68a9faec
Compiled against Qt: 5.9.2
Running against Qt: 5.9.2
Compiled against GDAL: 2.2.3
Running against GDAL: 2.2.3

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

09-12-2017 20-19-38.png (89.8 KB) Jan Lippmann, 2017-12-09 08:20 PM

History

#1 Updated by Alessandro Pasotti almost 3 years ago

  • Status changed from Open to Feedback

I cannot reproduce in current master on Linux

#2 Updated by Patrick Dunford almost 3 years ago

I can make it happen with master fb28adf on Debian

The first search you type in works, when you delete the characters for another search, as soon as you type the first character for the new search it crashes then.

#3 Updated by Richard Duivenvoorde almost 3 years ago

Confirmed here on Debian testing:

QGIS version
2.99.0-Master
QGIS code revision
3da5ab6996
Compiled against Qt
5.9.2
Running against Qt
5.9.2
Compiled against GDAL/OGR
2.2.2
Running against GDAL/OGR
2.2.2
Compiled against GEOS
3.5.1-CAPI-1.9.1
Running against GEOS
3.5.1-CAPI-1.9.1 r4246
PostgreSQL Client Version
10.1
SpatiaLite Version
4.3.0a
QWT Version
6.1.2
PROJ.4 Version
493
QScintilla2 Version
2.9.3
This copy of QGIS writes debugging output.

First search for 'proxy' is fine, but then deleting one or two chars from it it crashes.

Running with gdb:

src/gui/qgsoptionsdialogbase.cpp: 237: (searchText) [104ms] Found proxy in mTypeLabel (tab: Network)
src/gui/qgsoptionsdialogbase.cpp: 237: (searchText) [1ms] Found proxy in label_41 (tab: Network)
src/gui/qgsoptionsdialogbase.cpp: 237: (searchText) [7ms] Found proxy in mAdvancedSettingsEditor (tab: Advanced)
src/gui/qgsoptionsdialogbase.cpp: 237: (searchText) [1465ms] Found prox in mTypeLabel (tab: Network)
src/gui/qgsoptionsdialogbase.cpp: 237: (searchText) [0ms] Found prox in label_41 (tab: Network)
src/gui/qgsoptionsdialogbase.cpp: 237: (searchText) [6ms] Found prox in mAdvancedSettingsEditor (tab: Advanced)
src/gui/qgsoptionsdialogbase.cpp: 237: (searchText) [6ms] Found prox in tree (tab: Processing)
src/gui/qgsoptionsdialogbase.cpp: 237: (searchText) [1384ms] Found pro in groupBox_11 (tab: General)
src/gui/qgsoptionsdialogbase.cpp: 237: (searchText) [0ms] Found pro in label_54 (tab: General)
src/gui/qgsoptionsdialogbase.cpp: 237: (searchText) [1ms] Found pro in cbxProjectDefaultNew (tab: General)
src/gui/qgsoptionsdialogbase.cpp: 237: (searchText) [0ms] Found pro in pbnProjectDefaultSetCurrent (tab: General)
src/gui/qgsoptionsdialogbase.cpp: 237: (searchText) [1ms] Found pro in chbAskToSaveProjectChanges (tab: General)
src/gui/qgsoptionsdialogbase.cpp: 237: (searchText) [0ms] Found pro in mLayerDeleteConfirmationChkBx (tab: General)
src/gui/qgsoptionsdialogbase.cpp: 237: (searchText) [1ms] Found pro in chbWarnOldProjectVersion (tab: General)
src/gui/qgsoptionsdialogbase.cpp: 237: (searchText) [0ms] Found pro in textLabel1_13 (tab: Data Sources)
src/gui/qgsoptionsdialogbase.cpp: 237: (searchText) [1ms] Found pro in mSimplifyDrawingAtProvider (tab: Rendering)
src/gui/qgsoptionsdialogbase.cpp: 237: (searchText) [2ms] Found pro in groupBox_9 (tab: Canvas & Legend)
src/gui/qgsoptionsdialogbase.cpp: 237: (searchText) [0ms] Found pro in label_16 (tab: CRS)
src/gui/qgsoptionsdialogbase.cpp: 237: (searchText) [1ms] Found pro in radPromptForProjection (tab: CRS)
src/gui/qgsoptionsdialogbase.cpp: 237: (searchText) [0ms] Found pro in radUseProjectProjection (tab: CRS)

Thread 1 "qgis" received signal SIGSEGV, Segmentation fault.
0x00007fffef5042d0 in QWidget::styleSheet() const () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
(gdb) bt
#0  0x00007fffef5042d0 in QWidget::styleSheet() const () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#1  0x00007ffff6655488 in QgsSearchHighlightOptionWidget::reset (this=0x55555bdc9c80) at /home/richard/dev/qgis/git/qgis/src/gui/qgsoptionsdialogbase.cpp:476
#2  0x00007ffff6653d08 in QgsOptionsDialogBase::searchText (this=0x55555b3443f0, text=...) at /home/richard/dev/qgis/git/qgis/src/gui/qgsoptionsdialogbase.cpp:231
#3  0x00007ffff665808b in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<QString const&>, void, void (QgsOptionsDialogBase::*)(QString const&)>::call (f=
    (void (QgsOptionsDialogBase::*)(QgsOptionsDialogBase * const, const QString &)) 0x7ffff6653b5e <QgsOptionsDialogBase::searchText(QString const&)>, o=0x55555b3443f0, arg=0x7fffffffaba0) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:136
#4  0x00007ffff6657de1 in QtPrivate::FunctionPointer<void (QgsOptionsDialogBase::*)(QString const&)>::call<QtPrivate::List<QString const&>, void> (f=
    (void (QgsOptionsDialogBase::*)(QgsOptionsDialogBase * const, const QString &)) 0x7ffff6653b5e <QgsOptionsDialogBase::searchText(QString const&)>, o=0x55555b3443f0, arg=0x7fffffffaba0) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:169
#5  0x00007ffff6657901 in QtPrivate::QSlotObject<void (QgsOptionsDialogBase::*)(QString const&), QtPrivate::List<QString const&>, void>::impl (which=1, this_=0x55555ba6ca50, r=0x55555b3443f0, a=0x7fffffffaba0, ret=0x0)
    at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobject_impl.h:120
#6  0x00007fffea6c3e6f in QMetaObject::activate(QObject*, int, int, void**) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007fffef61f0d2 in QLineEdit::textChanged(QString const&) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#8  0x00007fffef625509 in ?? () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#9  0x00007fffea6c3d55 in QMetaObject::activate(QObject*, int, int, void**) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#10 0x00007fffef626065 in QWidgetLineControl::textChanged(QString const&) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#11 0x00007fffef6293a1 in QWidgetLineControl::finishChange(int, bool, bool) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#12 0x00007fffef62c5b8 in QWidgetLineControl::processKeyEvent(QKeyEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#13 0x00007fffef61f22a in QLineEdit::keyPressEvent(QKeyEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#14 0x00007fffef51d3c7 in QWidget::event(QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#15 0x00007fffef624d92 in QLineEdit::event(QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#16 0x00007fffef4de59c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#17 0x00007fffef4e73a2 in QApplication::notify(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#18 0x00007ffff3f627d7 in QgsApplication::notify (this=0x7fffffffcd90, receiver=0x555556a34910, event=0x7fffffffb570) at /home/richard/dev/qgis/git/qgis/src/core/qgsapplication.cpp:317
#19 0x00007fffea695258 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#20 0x00007fffef539ee5 in ?? () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#21 0x00007fffef4de59c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#22 0x00007fffef4e5e64 in QApplication::notify(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#23 0x00007ffff3f627d7 in QgsApplication::notify (this=0x7fffffffcd90, receiver=0x55555ba6fda0, event=0x7fffffffb570) at /home/richard/dev/qgis/git/qgis/src/core/qgsapplication.cpp:317
#24 0x00007fffea695258 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#25 0x00007fffeaf7dcf0 in QGuiApplicationPrivate::processKeyEvent(QWindowSystemInterfacePrivate::KeyEvent*) () from /lib/x86_64-linux-gnu/libQt5Gui.so.5
#26 0x00007fffeaf82c45 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () from /lib/x86_64-linux-gnu/libQt5Gui.so.5
#27 0x00007fffeaf5acab in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Gui.so.5
#28 0x00007fffcd5fbd50 in ?? () from /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#29 0x00007fffe4cb1f67 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#30 0x00007fffe4cb21a0 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#31 0x00007fffe4cb222c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#32 0x00007fffea6ee0ef in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#33 0x00007fffea6932aa in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#34 0x00007fffef6c8007 in QDialog::exec() () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#35 0x00007ffff7003cd1 in QgisApp::showOptionsDialog (this=0x555555fba6b0, parent=0x555555fba6b0, currentPage=...) at /home/richard/dev/qgis/git/qgis/src/app/qgisapp.cpp:9804
#36 0x00007ffff7003926 in QgisApp::options (this=0x555555fba6b0) at /home/richard/dev/qgis/git/qgis/src/app/qgisapp.cpp:9783
#37 0x00007ffff7086d53 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (QgisApp::*)()>::call(void (QgisApp::*)(), QgisApp*, void**) (f=(void (QgisApp::*)(QgisApp * const)) 0x7ffff70038f6 <QgisApp::options()>, o=0x555555fba6b0, 
    arg=0x7fffffffbcf0) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:136
#38 0x00007ffff7081149 in QtPrivate::FunctionPointer<void (QgisApp::*)()>::call<QtPrivate::List<>, void>(void (QgisApp::*)(), QgisApp*, void**) (f=(void (QgisApp::*)(QgisApp * const)) 0x7ffff70038f6 <QgisApp::options()>, o=0x555555fba6b0, arg=0x7fffffffbcf0)
    at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:169
#39 0x00007ffff7075d23 in QtPrivate::QSlotObject<void (QgisApp::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x555556316590, r=0x555555fba6b0, a=0x7fffffffbcf0, ret=0x0)
    at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobject_impl.h:120
#40 0x00007fffea6c3e6f in QMetaObject::activate(QObject*, int, int, void**) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#41 0x00007fffef4d7eb2 in QAction::triggered(bool) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#42 0x00007fffef4da59c in QAction::activate(QAction::ActionEvent) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#43 0x00007fffef65619c in ?? () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#44 0x00007fffef65d68b in ?? () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#45 0x00007fffef65e553 in QMenu::mouseReleaseEvent(QMouseEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#46 0x00007fffef51cb98 in QWidget::event(QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#47 0x00007fffef66080b in QMenu::event(QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#48 0x00007fffef4de59c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#49 0x00007fffef4e63bf in QApplication::notify(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#50 0x00007ffff3f627d7 in QgsApplication::notify (this=0x7fffffffcd90, receiver=0x555555f7e9e0, event=0x7fffffffc3e0) at /home/richard/dev/qgis/git/qgis/src/core/qgsapplication.cpp:317
#51 0x00007fffea695258 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#52 0x00007fffef4e5392 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#53 0x00007fffef5375c5 in ?? () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#54 0x00007fffef539efa in ?? () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#55 0x00007fffef4de59c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#56 0x00007fffef4e5e64 in QApplication::notify(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#57 0x00007ffff3f627d7 in QgsApplication::notify (this=0x7fffffffcd90, receiver=0x55555b1a48b0, event=0x7fffffffc8b0) at /home/richard/dev/qgis/git/qgis/src/core/qgsapplication.cpp:317
#58 0x00007fffea695258 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#59 0x00007fffeaf81183 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () from /lib/x86_64-linux-gnu/libQt5Gui.so.5
#60 0x00007fffeaf82c65 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () from /lib/x86_64-linux-gnu/libQt5Gui.so.5
#61 0x00007fffeaf5acab in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Gui.so.5
---Type <return> to continue, or q <return> to quit--- 
#62 0x00007fffcd5fbd50 in ?? () from /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#63 0x00007fffe4cb1f67 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#64 0x00007fffe4cb21a0 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#65 0x00007fffe4cb222c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#66 0x00007fffea6ee0ef in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#67 0x00007fffea6932aa in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#68 0x00007fffea69c214 in QCoreApplication::exec() () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#69 0x0000555555565eec in main (argc=1, argv=0x7fffffffe0e8) at /home/richard/dev/qgis/git/qgis/src/app/main.cpp:1401
(gdb) 

#4 Updated by Mathieu Pellerin - nIRV almost 3 years ago

Jan, a fix was committed to master yesterday which hopefully has dealt with this crash. Can you confirm the crash you suffered from his gone? Thanks.

#5 Updated by Jan Lippmann almost 3 years ago

hi mathieu,

crash is gone!

thanks

#6 Updated by Mathieu Pellerin - nIRV almost 3 years ago

  • Resolution set to fixed/implemented
  • Status changed from Feedback to Closed

Also available in: Atom PDF