[Qgis-developer] Segmentation fault when refreshing browser panel

Radim Blazek radim.blazek at gmail.com
Mon Aug 31 02:04:08 PDT 2015


Hi, thanks for debugging, I think that the problem is real.

On Fri, Aug 28, 2015 at 1:36 AM, Pedro Venâncio
<pedrongvenancio at gmail.com> wrote:
> Hi,
>
> I'm working with QGIS master, compiled the day before yesterday, and it
> crashed me (segmentation fault) several times when I was doing "Refresh" in
> the Browser Panel (inside QGIS), 3 or 4 times in a row.
>
> I have the backtrace of 3 of these crashes:

> Program received signal SIGSEGV, Segmentation fault.
> 0xb42c5a5e in QBasicAtomicInt::ref (this=0x65726f63)
>     at /usr/include/qt4/QtCore/qatomic_i386.h:120
> 120                     : "memory");
> (gdb) bt
> #0  0xb42c5a5e in QBasicAtomicInt::ref (this=0x65726f63)
>     at /usr/include/qt4/QtCore/qatomic_i386.h:120
> #1  0xb43e5cb7 in QVector<QgsDataItem*>::QVector (this=0xbfb9e1f4, v=...)
>     at /usr/include/qt4/QtCore/qvector.h:123
> #2  0xb43e5a6b in QgsDataItem::children (this=0x84a7d7a8)
>     at /home/pedro/qgis/QGIS-master/src/core/qgsdataitem.h:180
> #3  0xb43e45df in QgsBrowserModel::findItem (this=0x9410f30, item=0x8f010e8,


> Program received signal SIGSEGV, Segmentation fault.
> 0xb444b8c4 in QVector<QgsDataItem*>::size (this=0x80633914)
>     at /usr/include/qt4/QtCore/qvector.h:137
> 137        inline int size() const { return d->size; }
> (gdb) bt
> #0  0xb444b8c4 in QVector<QgsDataItem*>::size (this=0x80633914)
>     at /usr/include/qt4/QtCore/qvector.h:137
> #1  0xb448296e in QgsDataItem::rowCount (this=0x80633900)
>     at /home/pedro/qgis/QGIS-master/src/core/qgsdataitem.cpp:516
> #2  0xb4448ff6 in QgsBrowserModel::rowCount (this=0x9267f58, parent=...)
>     at /home/pedro/qgis/QGIS-master/src/core/qgsbrowsermodel.cpp:251

First two backtraces are identical, the third is different, but the
problem will be the same, a child item was probably deleted but
pointer to that item was left in children. Most probably it only
happens after some particular action in the browser, simple refresh
probably works. Do you remember what you had done before v.kernel and
refresh? For example: importing data via drag & drop, canceling
running import, renaming/deleting layers?

If you manage to get it crashed again (desirable), please send here
last few debug messages printed by QGIS, it should print the path to
an item it is refreshing, for example:

src/app/qgsbrowserdockwidget.cpp: 664: (refreshModel) [0ms] path =
favourites:/|home|radim|gdata|grass-plugin/grass:world_location_4326/import7/vector/polys

from the path, we could deduce at least for which item it happens.

Radim


More information about the Qgis-developer mailing list