Bug report #18118

Right-clicking on a recent project that has been moved/deleted causes a crash

Added by Damien Smith over 6 years ago. Updated over 6 years ago.

Status:Closed
Priority:Low
Assignee:-
Category:GUI
Affected QGIS version:master Regression?:No
Operating System:Windows 10 x64 1511 10586.962 Easy fix?:Yes
Pull Request or Patch supplied:No Resolution:fixed/implemented
Crashes QGIS or corrupts data:Yes Copied to github as #:26012

Description

User Feedback

I was right-clicking on the recent projects screen to remove a project from the list. I suspect the project had been moved in the file system.

Report Details

Crash ID: 8e2cbf6318ed8bfa6a441c736087d8057d3ac7e8

Stack Trace

QString::indexOf :
QDir::fromNativeSeparators :
QFileSystemWatcher::trUtf8 :
QFileInfo::exists :
QgsWelcomePageItemsModel::flags qgswelcomepageitemsmodel.cpp:211
QModelIndex::flags :
QAbstractItemView::focusInEvent :
QWidget::event :
QFrame::event :
QAbstractScrollArea::event :
QApplicationPrivate::notify_helper :
QApplication::notify :
QgsApplication::notify qgsapplication.cpp:317
QCoreApplication::notifyInternal2 :
QApplicationPrivate::setFocusWidget :
QWidget::setFocus :
QApplication::setActiveWindow :
QApplicationPrivate::notifyActiveWindowChange :
QGuiApplicationPrivate::processActivatedEvent :
QWindowSystemInterface::sendWindowSystemEvents :
QEventDispatcherWin32::processEvents :
DispatchMessageW :
DispatchMessageW :
QEventDispatcherWin32::processEvents :
qt_plugin_query_metadata :
QEventLoop::exec :
QCoreApplication::exec :
main main.cpp:1431
WinMain mainwin.cpp:156
__scrt_common_main_seh exe_common.inl:253
BaseThreadInitThunk :
RtlUserThreadStart :

QGIS Info
QGIS Version: 2.99.0-Master
QGIS code revision: b6ad920404
Compiled against Qt: 5.9.2
Running against Qt: 5.9.2
Compiled against GDAL: 2.2.3
Running against GDAL: 2.2.3

System Info
CPU Type: x86_64
Kernel Type: winnt
Kernel Version: 10.0.10586

Associated revisions

Revision 4b5fc403
Added by Salvatore Larosa over 6 years ago

[welcomepage] fixes #18118 remove last item causes a crash

Revision da7ccf7d
Added by Nyall Dawson over 6 years ago

Merge pull request #6369 from slarosa/fix_18118_crash

[welcomepage] fixes #18118 remove last item causes a crash

History

#1 Updated by Richard Duivenvoorde over 6 years ago

Is this reproducible by you on your machine?

Here I tried to test this by creating 3 projects in /tmp, then remove one of the project files of it and then reopening QGIS.
While the removed project is grayed out, I can happily use the right click menu there and remove it from the list...

Mmm, I had a crash at a certain moment, just after removing an (excisting) project from the projectlist:

Fatal: ASSERT failure in QList<T>::at: "index out of range", file /usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h, line 541
QGIS died on signal -1[New LWP 16353]
[New LWP 16354]
[New LWP 16355]

Will try with gdb

#2 Updated by Richard Duivenvoorde over 6 years ago

QGIS code revision
3836cd32f0

Just after removing (a last) item from the last projects list (via right click menu):

src/core/qgscoordinatetransform_p.cpp: 210: (initialize) [1050ms] Source/Dest CRS not equal, shortcircuit is not set.
Fatal: ASSERT failure in QList<T>::at: "index out of range", file /usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h, line 541
QGIS died on signal -1warning: process 17194 is already traced by process 17169
ptrace: Operation not permitted.
No thread selected
No stack.
gdb returned 0

Thread 1 "qgis" received signal SIGABRT, Aborted.
__GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
51    ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
#1  0x00007fffe96b9cf7 in __GI_abort () at abort.c:90
#2  0x000055555556081a in qgisCrash (signal=-1) at /home/richard/dev/qgis/git/qgis/src/app/main.cpp:337
#3  0x0000555555560a6c in myMessageOutput (type=QtFatalMsg, 
    msg=0x7fffc800b708 "ASSERT failure in QList<T>::at: \"index out of range\", file /usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h, line 541")
    at /home/richard/dev/qgis/git/qgis/src/app/main.cpp:390
#4  0x00007fffea6005da in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007fffea6020ae in QMessageLogger::fatal(char const*, ...) const () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007fffea5fd5fa in qt_assert_x(char const*, char const*, char const*, int) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007ffff711e109 in QList<QgsWelcomePageItemsModel::RecentProjectData>::at (this=0x55555630d690, i=0) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h:541
#8  0x00007ffff72d7239 in QgsWelcomePageItemsModel::flags (this=0x55555630d680, index=...) at /home/richard/dev/qgis/git/qgis/src/app/qgswelcomepageitemsmodel.cpp:206
#9  0x00007fffefaa5553 in QAbstractItemView::focusInEvent(QFocusEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#10 0x00007fffef8914ff in QWidget::event(QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#11 0x00007fffef931b9e in QFrame::event(QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#12 0x00007fffef93abc3 in QAbstractScrollArea::event(QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#13 0x00007fffefaa4dcb in QAbstractItemView::event(QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#14 0x00007fffef85263c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#15 0x00007fffef859f04 in QApplication::notify(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#16 0x00007ffff40b702b in QgsApplication::notify (this=0x7fffffffcd40, receiver=0x55555630b610, event=0x7fffffffc710)
    at /home/richard/dev/qgis/git/qgis/src/core/qgsapplication.cpp:317
#17 0x00007fffea7f5258 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#18 0x00007fffef857abe in QApplicationPrivate::setFocusWidget(QWidget*, Qt::FocusReason) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#19 0x00007fffef88b4ef in QWidget::setFocus(Qt::FocusReason) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#20 0x00007fffef857f4b in QApplication::setActiveWindow(QWidget*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#21 0x00007fffef858043 in QApplicationPrivate::notifyActiveWindowChange(QWindow*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#22 0x00007fffeb0e3af5 in QGuiApplicationPrivate::processActivatedEvent(QWindowSystemInterfacePrivate::ActivatedWindowEvent*) () from /lib/x86_64-linux-gnu/libQt5Gui.so.5
#23 0x00007fffeb0e3d4d in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () from /lib/x86_64-linux-gnu/libQt5Gui.so.5
#24 0x00007fffeb0bbcab in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Gui.so.5
#25 0x00007fffd09fad50 in ?? () from /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#26 0x00007fffe4dbdf67 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#27 0x00007fffe4dbe1a0 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#28 0x00007fffe4dbe22c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#29 0x00007fffea84e0ef in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#30 0x00007fffea7f32aa in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#31 0x00007fffea7fc214 in QCoreApplication::exec() () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#32 0x000055555556683f in main (argc=1, argv=0x7fffffffe0f8) at /home/richard/dev/qgis/git/qgis/src/app/main.cpp:1431
(gdb) 

#3 Updated by Salvatore Larosa over 6 years ago

  • % Done changed from 0 to 100
  • Status changed from Open to Closed

#4 Updated by Giovanni Manghi over 6 years ago

  • Resolution set to fixed/implemented

Also available in: Atom PDF