Bug report #8236

SIGABRT when removes an favourites item from browser

Added by Salvatore Larosa about 6 years ago. Updated about 6 years ago.

Status:Closed
Priority:Severe/Regression
Assignee:-
Category:Browser
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 #:17048

Description

Adding and removing a folder to favorites makes QGIS to crash.

Stacktrace:

Program received signal SIGABRT, Aborted.
0x00007ffff046a475 in raise () from /lib/x86_64-linux-gnu/libc.so.6
(gdb) bt
#0  0x00007ffff046a475 in raise () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007ffff046d6f0 in abort () from /lib/x86_64-linux-gnu/libc.so.6
#2  0x00000000005616ea in myMessageOutput (type=QtFatalMsg, msg=
    0x15395d8 "ASSERT: \\"i >= 0\\" in file /home/sam/pacchetti_gis/Quantum-GIS/src/core/qgsdataitem.cpp, line 260") at /home/sam/pacchetti_gis/Quantum-GIS/src/app/main.cpp:285
#3  0x00007ffff33e8630 in qt_message_output(QtMsgType, char const*) ()
   from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#4  0x00007ffff33e8a98 in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#5  0x00007ffff33e8c24 in qFatal(char const*, ...) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#6  0x00007ffff4913912 in QgsDataItem::deleteChildItem (this=0x1c1b0f0, child=0x4ef7f50)
    at /home/sam/pacchetti_gis/Quantum-GIS/src/core/qgsdataitem.cpp:260
#7  0x00007ffff4918217 in QgsFavouritesItem::removeDirectory (this=0x1c1b0f0, item=0x4ef7f50)
    at /home/sam/pacchetti_gis/Quantum-GIS/src/core/qgsdataitem.cpp:734
#8  0x00007ffff48ff572 in QgsBrowserModel::removeFavourite (this=0x4d47b30, index=...)
    at /home/sam/pacchetti_gis/Quantum-GIS/src/core/qgsbrowsermodel.cpp:462
#9  0x000000000060881d in QgsBrowserDockWidget::removeFavourite (this=0x1396f80)
    at /home/sam/pacchetti_gis/Quantum-GIS/src/app/qgsbrowserdockwidget.cpp:386
#10 0x00000000008ce79c in QgsBrowserDockWidget::qt_static_metacall (_o=0x1396f80, 
    _c=QMetaObject::InvokeMetaMethod, _id=4, _a=0x7fffffffc0b0)
    at /home/sam/pacchetti_gis/Quantum-GIS/build-master/src/app/moc_qgsbrowserdockwidget.cxx:72
#11 0x00007ffff350354f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) ()
   from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#12 0x00007ffff2891502 in QAction::triggered(bool) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
---Type <return> to continue, or q <return> to quit---
#13 0x00007ffff28916f0 in QAction::activate(QAction::ActionEvent) ()
   from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#14 0x00007ffff2ccb413 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#15 0x00007ffff2cd1729 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#16 0x00007ffff28e6e10 in QWidget::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#17 0x00007ffff2cd29db in QMenu::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#18 0x00007ffff289770c in QApplicationPrivate::notify_helper(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#19 0x00007ffff289c3eb in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#20 0x00007ffff48f2b58 in QgsApplication::notify (this=0x7fffffffd890, receiver=0x4eeab50, event=
    0x7fffffffcb50) at /home/sam/pacchetti_gis/Quantum-GIS/src/core/qgsapplication.cpp:242
#21 0x00007ffff34edb5e in QCoreApplication::notifyInternal(QObject*, QEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#22 0x00007ffff289854b in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#23 0x00007ffff2912e8c in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#24 0x00007ffff2911d51 in QApplication::x11ProcessEvent(_XEvent*) ()
   from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#25 0x00007ffff2938bc2 in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#26 0x00007fffeed77355 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#27 0x00007fffeed77688 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#28 0x00007fffeed77744 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
---Type <return> to continue, or q <return> to quit---
#29 0x00007ffff351c276 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#30 0x00007ffff293883e in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#31 0x00007ffff34ec8af in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#32 0x00007ffff34ecb38 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#33 0x00007ffff34f1cf8 in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#34 0x0000000000564349 in main (argc=1, argv=0x7fffffffe388)
    at /home/sam/pacchetti_gis/Quantum-GIS/src/app/main.cpp:1020

Associated revisions

Revision 83cf4be9
Added by Jürgen Fischer about 6 years ago

browser: fix crash when removing favourite items from the directory tree (fixes #8236)

History

#1 Updated by Daniel Vaz about 6 years ago

I can't replicate in qgis master.

#2 Updated by Jürgen Fischer about 6 years ago

  • Status changed from Open to Feedback

I can't either.

#3 Updated by Salvatore Larosa about 6 years ago

I am able to reproduce it using the right click and
selecting "Add as favourites" and then "Remove favourites" on the same directory.

I also tried it with 1.8 on the same machine and has worked fine.

#4 Updated by Salvatore Larosa about 6 years ago

...and I can confirm the crash even on Windows XP !

#5 Updated by Daniel Vaz about 6 years ago

Sorry, I was not able to reproduce it with these steps (right click -> add as favorite -> remove favorite)

I am using QGis (github) master compiled version.

#6 Updated by Salvatore Larosa about 6 years ago

Very strange, maybe a Qt issue ?

I don't think it is a local problem as I tried on different machine and I always got the crash.

We need other feedbacks !

Linux:

QGIS version    1.9.0-Master    
QGIS code revision    bf1d1b0
Compiled against Qt    4.8.2    
Running against Qt    4.8.2
Compiled against GDAL/OGR    1.10.0    
Running against GDAL/OGR    1.10.0
GEOS Version    3.3.8    
PostgreSQL Client Version    9.1.9
SpatiaLite Version    4.0.0    
QWT Version    5.2.2
PROJ.4 Version    470    
QScintilla2 Version    2.7.2

Windows XP (OSGeo4W):

QGIS version    1.9.0-Master    
QGIS code revision    d37e03b
Compiled against Qt    4.7.1    
Running against Qt    4.7.1
Compiled against GDAL/OGR    1.9.2    
Running against GDAL/OGR    1.9.2
GEOS Version    3.3.8    
PostgreSQL Client Version    8.3.10
SpatiaLite Version    3.0.1    
QWT Version    5.2.1
PROJ.4 Version    480    
QScintilla2 Version    2.6.2

#7 Updated by Matthias Kuhn about 6 years ago

It runs into a Q_ASSERT in qgsdataitem.cpp:260
If you could adjust the debug output to include messages of level 2, there would be some output just before ("mName = ....") which could help indicating which item is subject to being removed although not present in the tree.

#8 Updated by Salvatore Larosa about 6 years ago

Hi Matthias,
I did set QGIS_BEBUG=2 and I can see the mName var,
but I don't understand as it might helps !

I noticed the crash just occurs when I use the
'Remove favourites' by right clicking on the folder to remove.

#9 Updated by Giovanni Manghi about 6 years ago

We need other feedbacks !

O also get the crash, you must click on "remove favorite" on the actual folder you added as favorite, not in the folder in the "favorites" category.

#10 Updated by Jürgen Fischer about 6 years ago

  • Status changed from Feedback to Closed

Also available in: Atom PDF