Bug report #14164

crasher: cycling through the symbology renderers back and forth crashes QGIS

Added by Mathieu Pellerin - nIRV over 1 year ago. Updated over 1 year ago.

Status:Closed Start Date:01/24/2016
Priority:Severe/Regression Due date:
Assigned to:Martin Dobias % Done:

0%

Category:Symbology
Target version:Version 2.14
Platform: Pull Request or Patch supplied:No
Platform version: Affected version:master
Status info: Causes crash or corruption:Yes
Resolution: Tag:

Description

Under master, cycling through the symbology renderers will very quickly crash QGIS.

Steps to reproduce
  1. Launch QGIS, and add a vector layer to the empty project
  2. Open the layer properties window, and go to the style panel
  3. Focus on the renderer dropdown list box (but make sure the list isn't expanded, and move to the last item using the keyboard down arrow (each renderer's configuration panel has to show up as you go down the list)
  4. Once you have reached the last item, move all the way back to the top using the keyboard up arrow
  5. boom QGIS dies

Associated revisions

Revision 82eabb197623236ab0f8844f537473fd7bcc9b98
Added by Martin Dobias over 1 year ago

Fix crash in vector layer properties when changing renderer type (fixes #14164)

History

Updated by Mathieu Pellerin - nIRV over 1 year ago

Here's the gdb output:

#1  0x00007ffff61a5483 in QgsFeatureRequest::OrderBy::operator= (this=0x30) at /home/webmaster/dev/cpp/QGIS/src/core/qgsfeaturerequest.h:177
#2  0x00007ffff61a42b7 in QgsFeatureRendererV2::setOrderBy (this=0x0, orderBy=...)
    at /home/webmaster/dev/cpp/QGIS/src/core/symbology-ng/qgsrendererv2.cpp:633
#3  0x00007ffff6d27a06 in QgsSingleSymbolRendererV2Widget::QgsSingleSymbolRendererV2Widget (this=0x9a92800, layer=0x99180c0, style=0x9aca710, 
    renderer=0xb711d40) at /home/webmaster/dev/cpp/QGIS/src/gui/symbology-ng/qgssinglesymbolrendererv2widget.cpp:42
#4  0x00007ffff6d27921 in QgsSingleSymbolRendererV2Widget::create (layer=0x99180c0, style=0x9aca710, renderer=0xb711d40)
    at /home/webmaster/dev/cpp/QGIS/src/gui/symbology-ng/qgssinglesymbolrendererv2widget.cpp:29
#5  0x00007ffff61a72b2 in QgsRendererV2Metadata::createRendererWidget (this=0x1f32880, layer=0x99180c0, style=0x9aca710, renderer=0xb711d40)
    at /home/webmaster/dev/cpp/QGIS/src/core/symbology-ng/qgsrendererv2registry.h:110
#6  0x00007ffff6d10820 in QgsRendererV2PropertiesDialog::rendererChanged (this=0xafff970)
    at /home/webmaster/dev/cpp/QGIS/src/gui/symbology-ng/qgsrendererv2propertiesdialog.cpp:212
#7  0x00007ffff7006eaa in QgsRendererV2PropertiesDialog::qt_static_metacall (_o=0xafff970, _c=QMetaObject::InvokeMetaMethod, _id=1, 
    _a=0x7fffffffaff0) at /home/webmaster/dev/cpp/QGIS/bm/src/gui/symbology-ng/moc_qgsrendererv2propertiesdialog.cxx:59
#8  0x00007ffff5c34f60 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#9  0x00007ffff535c181 in QComboBox::currentIndexChanged(int) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#10 0x00007ffff535c21e in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#11 0x00007ffff535c4d6 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#12 0x00007ffff535c81f in QComboBox::setCurrentIndex(int) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4

Mathias, it seems to be related to the order by feature you've cooked (thanks!) for 2.14.

Updated by Mathieu Pellerin - nIRV over 1 year ago

Also, here's a simplified steps to reproduce:
  1. Open QGIS, add a vector layer
  2. Open the layer properties window, go to the style panel
  3. Click on the renderer dropdown list, selected categorized
  4. Click on the renderer dropdown list, select single symbol
  5. boom QGIS dies

Updated by Martin Dobias over 1 year ago

  • Assigned to set to Martin Dobias

Updated by Martin Dobias over 1 year ago

  • Status changed from Open to Closed

Also available in: Atom