Bug report #14164

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

Added by Mathieu Pellerin - nIRV over 8 years ago. Updated over 8 years ago.

Status:Closed
Priority:Severe/Regression
Assignee:Martin Dobias
Category:Symbology
Affected QGIS version:master Regression?:No
Operating System: Easy fix?:No
Pull Request or Patch supplied:No Resolution:
Crashes QGIS or corrupts data:Yes Copied to github as #:22166

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 82eabb19
Added by Martin Dobias over 8 years ago

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

History

#1 Updated by Mathieu Pellerin - nIRV over 8 years 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.

#2 Updated by Mathieu Pellerin - nIRV over 8 years 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

#3 Updated by Martin Dobias over 8 years ago

  • Assignee set to Martin Dobias

#4 Updated by Martin Dobias over 8 years ago

  • Status changed from Open to Closed

Also available in: Atom PDF