Bug report #14988

style dock: QGIS dies when switching back and forth between symbology and other panels

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

Status:Closed
Priority:Severe/Regression
Assignee:Nathan Woodrow
Category:Unknown
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 #:22936

Description

Steps to reproduce:
  1. Create a new QGIS project
  2. Open the style dock panel
  3. Add a vector layer
  4. Switch the style dock panel to label
  5. Switch the style dock panel back to symbology
  6. boom QGIS dies

GDB output:

#0  QMutex::lock (this=this@entry=0xb298338) at thread/qmutex.cpp:153
#1  0x00007ffff59a6849 in QCoreApplication::postEvent (receiver=0xb530a70, event=0xbf6e7d0, priority=0)
    at kernel/qcoreapplication.cpp:1360
#2  0x00007ffff7743f96 in QgsMapStylingWidget::updateCurrentWidgetLayer (this=0x172f710)
    at ../src/app/qgsmapstylingwidget.cpp:281
#3  0x00007ffff799be87 in QgsMapStylingWidget::qt_static_metacall (_o=0x172f710, _c=QMetaObject::InvokeMetaMethod, _id=6, 
    _a=0x7fffffffbff0) at src/app/moc_qgsmapstylingwidget.cxx:68
#4  0x00007ffff59b7010 in QMetaObject::activate (sender=sender@entry=0x17345c0, 
    m=m@entry=0x7ffff57f9000 <QListWidget::staticMetaObject>, local_signal_index=local_signal_index@entry=8, 
    argv=argv@entry=0x7fffffffbff0) at kernel/qobject.cpp:3567
#5  0x00007ffff528c7c1 in QListWidget::currentRowChanged (this=this@entry=0x17345c0, _t1=0)
    at .moc/release-shared/moc_qlistwidget.cpp:260
#6  0x00007ffff528c904 in QListWidgetPrivate::_q_emitCurrentItemChanged (this=0x173a510, current=..., previous=...)
    at itemviews/qlistwidget.cpp:1121
#7  0x00007ffff59b7010 in QMetaObject::activate (sender=sender@entry=0x17390f0, 
    m=m@entry=0x7ffff57f8900 <QItemSelectionModel::staticMetaObject>, local_signal_index=local_signal_index@entry=1, 
    argv=argv@entry=0x7fffffffc180) at kernel/qobject.cpp:3567
#8  0x00007ffff527a1ca in QItemSelectionModel::currentChanged (this=this@entry=0x17390f0, _t1=..., _t2=...)
    at .moc/release-shared/moc_qitemselectionmodel.cpp:172
#9  0x00007ffff527a33f in QItemSelectionModel::setCurrentIndex (this=0x17390f0, index=..., command=...)
    at itemviews/qitemselectionmodel.cpp:1175
#10 0x00007ffff52284cc in QAbstractItemView::mousePressEvent (this=0x17345c0, event=<optimized out>)
    at itemviews/qabstractitemview.cpp:1682
#11 0x00007ffff4d40490 in QWidget::event (this=this@entry=0x17345c0, event=event@entry=0x7fffffffca10)
    at kernel/qwidget.cpp:8385
#12 0x00007ffff5108cee in QFrame::event (this=0x17345c0, e=0x7fffffffca10) at widgets/qframe.cpp:557
#13 0x00007ffff522e663 in QAbstractItemView::viewportEvent (this=0x17345c0, event=0x7fffffffca10)
    at itemviews/qabstractitemview.cpp:1644
#14 0x00007ffff59a2a76 in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=this@entry=0x8f9c10, 
    receiver=receiver@entry=0x17347f0, event=event@entry=0x7fffffffca10) at kernel/qcoreapplication.cpp:1065
#15 0x00007ffff4ce8fbc in QApplicationPrivate::notify_helper (this=this@entry=0x8f9c10, receiver=receiver@entry=0x17347f0, 
    e=e@entry=0x7fffffffca10) at kernel/qapplication.cpp:4566
#16 0x00007ffff4cf00d6 in QApplication::notify (this=<optimized out>, receiver=0x17347f0, e=0x7fffffffca10)
    at kernel/qapplication.cpp:4113
#17 0x00007ffff603a0e3 in QgsApplication::notify (this=0x7fffffffdad0, receiver=0x17347f0, event=0x7fffffffca10)
    at ../src/core/qgsapplication.cpp:281


Related issues

Related to QGIS Application - Bug report #15003: Map Styling Dock Closed 2016-06-11

History

#1 Updated by Mathieu Pellerin - nIRV almost 8 years ago

You might have to switch back and forth a couple of times (e.g., symbology -> history -> symboogy -> history -> symbology boom death) for the crash to appear depending on the initial state of the style dock.

#2 Updated by Mathieu Pellerin - nIRV almost 8 years ago

The crash occurs at the line which calls Qt's deleteLater() function:

    switch ( row )
    {
      case 0: // Style
      {
        mVectorStyleWidget->deleteLater();

Edit: simply removing the line takes care of the crash, but obviously it must have been there for a reason :) the line was added in commit 31c572f0ad93f1cb90d8b9f7d6956090f4661261

#3 Updated by Matthias Kuhn almost 8 years ago

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

Fixed in c6cba65

#4 Updated by Jürgen Fischer over 6 years ago

  • Category set to Unknown

Also available in: Atom PDF