Bug report #18530
Removing project item from Welcome screen crashes QGIS
Status: | Closed | ||
---|---|---|---|
Priority: | Normal | ||
Assignee: | - | ||
Category: | Project Loading/Saving | ||
Affected QGIS version: | 3.1(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 #: | 26418 |
Description
Having a very recent master version of QGIS: 4c4e8ac18a
Only having one (valid) project in the Recent project welcome screen.
Removing that one project (immidiatly after opening QGIS) QGIS crashes.
Looks like #18118
But not sure if it is the same.
This is the stacktrace:
../src/app/qgisapp.cpp: 1322: (QgisApp) [0ms] - qgisapp/startup/New project - 0.129 ../src/core/qgsscalecalculator.cpp: 129: (calculateGeographicDistance) [1ms] Distance across map extent (m): 774097 ../src/core/qgsscalecalculator.cpp: 86: (calculate) [0ms] scale = 2.98543e+7 conversionFactor = 39.3701 ../src/core/geometry/qgsrectangle.cpp: 350: (toString) [0ms] Extents : -1.0000000000000000,-1.0000000000000000 : 1.0000000000000000,1.0000000000000000 ../src/core/qgscoordinatetransform_p.cpp: 210: (initialize) [958ms] 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 -1[New LWP 7192] [New LWP 7193] [New LWP 7201] [New LWP 7202] [New LWP 7255] [New LWP 7432] [New LWP 7461] [New LWP 7618] [New LWP 7746] [New LWP 7747] [New LWP 7749] [New LWP 7750] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". 0x00007f9928166122 in __GI___waitpid (pid=7847, stat_loc=0x7ffc13143ee4, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:30 30 ../sysdeps/unix/sysv/linux/waitpid.c: No such file or directory. [Current thread is 1 (Thread 0x7f9936a95380 (LWP 7174))] #0 0x00007f9928166122 in __GI___waitpid (pid=7847, stat_loc=0x7ffc13143ee4, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:30 resultvar = 18446744073709551104 sc_cancel_oldtype = 0 #1 0x000055c515210885 in qgisCrash (signal=-1) at ../src/app/main.cpp:326 status = 0 pidstr = "--pid=7174\000\066\231\177\000\000\005\000\000\000\000\000\000\000\b\000\000\000\000\000\000" gdbpid = 7847 exename = "/home/richard/bin/qgis/master/debug/bin/qgis\000\177\000\000\360=\024\023\374\177\000\000\360>\024\023\374\177\000\000\001\000\000\000\000\000\000\000\312$\016)\231\177\000\000\006\000\000\000\000\000\000\000\000{yQ\242̠K\320d6\030\305U\000\000\340S\341\026\305U\000\000@>\024\023\374\177\000\000\000{yQ\242̠K0\267\343\026\305U\000\000Ѕ\001\027\305U\000\000\340\206\001\027\305U\000\000\000{yQ\242̠K\000\000\000\000\000\000\000\000\340>B\035\305U\000\000`@B\035\305U\000\000@lE(\231\177\000\000\000\000\000\000\000\000\000\000\020\001\000\000\000\000\000\000"... len = 44 #2 0x000055c515210b2c in myMessageOutput (type=QtFatalMsg, msg=0x55c51d423f08 "ASSERT failure in QList<T>::at: \"index out of range\", file /usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h, line 541") at ../src/app/main.cpp:390 No locals. #3 0x00007f992906a5da in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5 No symbol table info available. #4 0x00007f992906c0ae in QMessageLogger::fatal(char const*, ...) const () from /lib/x86_64-linux-gnu/libQt5Core.so.5 No symbol table info available. #5 0x00007f99290675fa in qt_assert_x(char const*, char const*, char const*, int) () from /lib/x86_64-linux-gnu/libQt5Core.so.5 No symbol table info available. #6 0x00007f9935c23e55 in QList<QgsWelcomePageItemsModel::RecentProjectData>::at (this=0x55c517513820, i=0) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h:541 No locals. #7 0x00007f9935de3a13 in QgsWelcomePageItemsModel::flags (this=0x55c517513810, index=...) at ../src/app/qgswelcomepageitemsmodel.cpp:206 flags = {i = 161} projectData = @0x7ffc13144150: {path = {static null = {<No data fields>}, d = 0x0}, title = {static null = {<No data fields>}, d = 0x0}, previewImagePath = {static null = {<No data fields>}, d = 0x55c517513810}, crs = {static null = {<No data fields>}, d = 0x4ba0cca251797b00}, pin = false, checkedExists = 72, exists = 81} #8 0x00007f992e514553 in QAbstractItemView::focusInEvent(QFocusEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5 No symbol table info available. #9 0x00007f992e3004ff in QWidget::event(QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5 No symbol table info available. #10 0x00007f992e3a0b9e in QFrame::event(QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5 No symbol table info available. #11 0x00007f992e3a9bc3 in QAbstractScrollArea::event(QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5 No symbol table info available. #12 0x00007f992e513dcb in QAbstractItemView::event(QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5 No symbol table info available. #13 0x00007f992e2c163c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5 No symbol table info available. #14 0x00007f992e2c8f04 in QApplication::notify(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5 No symbol table info available. #15 0x00007f9932b3f0d5 in QgsApplication::notify (this=0x7ffc13145010, receiver=0x55c517514800, event=0x7ffc13144640) at ../src/core/qgsapplication.cpp:333 done = true __FUNCTION__ = "notify" #16 0x00007f992925f258 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5 No symbol table info available. #17 0x00007f992e2c6abe in QApplicationPrivate::setFocusWidget(QWidget*, Qt::FocusReason) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5 No symbol table info available. #18 0x00007f992e2fa4ef in QWidget::setFocus(Qt::FocusReason) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5 No symbol table info available. #19 0x00007f992e2c6f4b in QApplication::setActiveWindow(QWidget*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5 No symbol table info available. #20 0x00007f992e2c7043 in QApplicationPrivate::notifyActiveWindowChange(QWindow*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5 No symbol table info available. #21 0x00007f9929b4daf5 in QGuiApplicationPrivate::processActivatedEvent(QWindowSystemInterfacePrivate::ActivatedWindowEvent*) () from /lib/x86_64-linux-gnu/libQt5Gui.so.5 No symbol table info available. #22 0x00007f9929b4dd4d in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () from /lib/x86_64-linux-gnu/libQt5Gui.so.5 No symbol table info available. #23 0x00007f9929b25cab in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Gui.so.5 No symbol table info available. #24 0x00007f990f3face0 in ?? () from /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5 No symbol table info available. #25 0x00007f99237b8287 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 No symbol table info available. #26 0x00007f99237b84c0 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 No symbol table info available. #27 0x00007f99237b854c in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 No symbol table info available. #28 0x00007f99292b80ef in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5 No symbol table info available. #29 0x00007f992925d2aa in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5 No symbol table info available. #30 0x00007f9929266214 in QCoreApplication::exec() () from /lib/x86_64-linux-gnu/libQt5Core.so.5 No symbol table info available. #31 0x000055c5152169f4 in main (argc=1, argv=0x7ffc13146038) at ../src/app/main.cpp:1436 profile = 0x55c516e67690 presetStyle = {static null = {<No data fields>}, d = 0x55c517039e00} globalSettings = 0x55c516f631b0 rootProfileFolder = {static null = {<No data fields>}, d = 0x55c516f3a770} myLocaleOverrideFlag = false qgistor = <incomplete type> w = 600 mySplashPath = {static null = {<No data fields>}, d = 0x7f993323db40 <QgsApplication::splashPath()::{lambda()#1}::operator()() const::qstring_literal>} h = 300 mypSplash = 0x55c5172d32a0 qgis = 0x55c517199b00 retval = 1088 manager = {<QObject> = {<No data fields>}, static staticMetaObject = {d = {superdata = 0x7f99296b0bc0 <QObject::staticMetaObject>, stringdata = 0x7f99333399c0 <qt_meta_stringdata_QgsUserProfileManager>, data = 0x7f9933339a40 <qt_meta_data_QgsUserProfileManager>, static_metacall = 0x7f99331d6c42 <QgsUserProfileManager::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, mWatchProfiles = false, mWatcher = std::unique_ptr<QFileSystemWatcher> = {get() = 0x0}, mRootProfilePath = {static null = {<No data fields>}, d = 0x55c516f3a770}, mUserProfile = std::unique_ptr<QgsUserProfile> = {get() = 0x0}, mSettings = std::unique_ptr<QSettings> = {get() = 0x55c516f631b0}} profileFolder = {static null = {<No data fields>}, d = 0x55c516ee3a70} settings = {<QObject> = {<No data fields>}, static staticMetaObject = {d = {superdata = 0x7f99296b0bc0 <QObject::staticMetaObject>, stringdata = 0x7f993332b7e0 <qt_meta_stringdata_QgsSettings>, data = 0x7f993332b820 <qt_meta_data_QgsSettings>, static_metacall = 0x7f99331c376a <QgsSettings::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, static sGlobalSettingsPath = {static null = {<No data fields>}, d = 0x7f992930b9e0 <QArrayData::shared_null>}, mUserSettings = 0x55c516e67690, mGlobalSettings = 0x0, mUsingGlobalArray = false} mySettings = {<QObject> = {<No data fields>}, static staticMetaObject = {d = {superdata = 0x7f99296b0bc0 <QObject::staticMetaObject>, stringdata = 0x7f993332b7e0 <qt_meta_stringdata_QgsSettings>, data = 0x7f993332b820 <qt_meta_data_QgsSettings>, static_metacall = 0x7f99331c376a <QgsSettings::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, static sGlobalSettingsPath = {static null = {<No data fields>}, d = 0x7f992930b9e0 <QArrayData::shared_null>}, mUserSettings = 0x55c516f89cf0, mGlobalSettings = 0x0, mUsingGlobalArray = false} systemEnvVars = {d = 0x55c516f75b90} activeStyleName = {static null = {<No data fields>}, d = 0x55c5171a8cc0} i18nPath = {static null = {<No data fields>}, d = 0x55c5171fc790} myUserLocale = {static null = {<No data fields>}, d = 0x55c517301890} qttor = <incomplete type> customizationsettings = 0x55c516fa9900 useCustomVars = false myPixmap = <incomplete type> __FUNCTION__ = "main" mySnapshotFileName = {static null = {<No data fields>}, d = 0x7f992930b9e0 <QArrayData::shared_null>} configLocalStorageLocation = {static null = {<No data fields>}, d = 0x55c516f5f000} profileName = {static null = {<No data fields>}, d = 0x55c516f5f150} mySnapshotWidth = 800 mySnapshotHeight = 600 myHideSplash = false mySettingsMigrationForce = false mySkipVersionCheck = false myRestoreDefaultWindowState = false myRestorePlugins = true myCustomization = true dxfOutputFile = {static null = {<No data fields>}, d = 0x7f992930b9e0 <QArrayData::shared_null>} dxfSymbologyMode = QgsDxfExport::SymbolLayerSymbology dxfScale = 50000 dxfEncoding = {static null = {<No data fields>}, d = 0x55c51521eb40 <main::{lambda()#1}::operator()() const::qstring_literal>} dxfMapTheme = {static null = {<No data fields>}, d = 0x7f992930b9e0 <QArrayData::shared_null>} dxfExtent = {mXmin = 0, mYmin = 0, mXmax = 0, mYmax = 0} myInitialExtent = {static null = {<No data fields>}, d = 0x55c51521eb80 <main::{lambda()#2}::operator()() const::qstring_literal>} myTranslationCode = {static null = {<No data fields>}, d = 0x55c5172d4e30} configpath = {static null = {<No data fields>}, d = 0x7f992930b9e0 <QArrayData::shared_null>} authdbdirectory = {static null = {<No data fields>}, d = 0x7f992930b9e0 <QArrayData::shared_null>} pythonfile = {static null = {<No data fields>}, d = 0x7f992930b9e0 <QArrayData::shared_null>} customizationfile = {static null = {<No data fields>}, d = 0x55c517045000} globalsettingsfile = {static null = {<No data fields>}, d = 0x7f992930b9e0 <QArrayData::shared_null>} args = {<QList<QString>> = {<QListSpecialMethods<QString>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, <No data fields>}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x55c516e18800}, d = 0x55c516e18800}}, <No data fields>} myUseGuiFlag = true myApp = {<QApplication> = {<No data fields>}, static staticMetaObject = {d = {superdata = 0x7f992e984040 <QApplication::staticMetaObject>, stringdata = 0x7f99333183a0 <qt_meta_stringdata_QgsApplication>, data = 0x7f9933318500 <qt_meta_data_QgsApplication>, static_metacall = 0x7f99331a93f0 <QgsApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, static QGIS_ORGANIZATION_NAME = 0x7f993323cea8 "QGIS", static QGIS_ORGANIZATION_DOMAIN = 0x7f993323cead "qgis.org", static QGIS_APPLICATION_NAME = 0x7f993323ceb6 "QGIS3", static mFileOpenEventReceiver30100 = 0x55c517199b00, static mFileOpenEventList30100 = {<QList<QString>> = {<QListSpecialMethods<QString>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, <No data fields>}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f992930dac0 <QListData::shared_null>}, d = 0x7f992930dac0 <QListData::shared_null>}}, <No data fields>}, static mProfilePath30100 = {static null = {<No data fields>}, d = 0x55c516ee3a70}, static mUIThemeName30100 = {static null = <same as static member of an already seen type>, d = 0x7f992930b9e0 <QArrayData::shared_null>}, static mPrefixPath30100 = {static null = <same as static member of an already seen type>, d = 0x55c516fcdf70}, static mPluginPath30100 = {static null = <same as static member of an already seen type>, d = 0x55c516f97150}, static mPkgDataPath30100 = {static null = <same as static member of an already seen type>, d = 0x55c516ff6b50}, static mLibraryPath30100 = {static null = <same as static member of an already seen type>, d = 0x55c516f69c20}, static mLibexecPath30100 = {static null = <same as static member of an already seen type>, d = 0x55c516f0d5a0}, static mThemeName30100 = {static null = <same as static member of an already seen type>, d = 0x7f993323d6e0 <QgsApplication::setUITheme(QString const&)::{lambda()#2}::operator()() const::qstring_literal>}, static mDefaultSvgPaths30100 = {<QList<QString>> = {<QListSpecialMethods<QString>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, <No data fields>}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x55c516fb0f60}, d = 0x55c516fb0f60}}, <No data fields>}, static mSystemEnvVars30100 = {d = 0x55c516f75b90}, static mConfigPath30100 = {static null = {<No data fields>}, d = 0x55c516ff0a50}, static mInitialized30100 = true, static mRunningFromBuildDir30100 = false, static mBuildSourcePath30100 = {static null = <same as static member of an already seen type>, d = 0x7f992930b9e0 <QArrayData::shared_null>}, static mBuildOutputPath30100 = {static null = <same as static member of an already seen type>, d = 0x7f992930b9e0 <QArrayData::shared_null>}, static mGdalSkipList30100 = {<QList<QString>> = {<QListSpecialMethods<QString>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, <No data fields>}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7f992930dac0 <QListData::shared_null>}, d = 0x7f992930dac0 <QListData::shared_null>}}, <No data fields>}, static mMaxThreads30100 = -1, static mAuthDbDirPath30100 = {static null = {<No data fields>}, d = 0x55c516ff0a50}, static sUserName = {static null = <same as static member of an already seen type>, d = 0x55c517707700}, static sUserFullName = {static null = <same as static member of an already seen type>, d = 0x55c516f76ad0}, static sPlatformName = {static null = <same as static member of an already seen type>, d = 0x55c516e664f0}, mIconCache = {d = 0x55c51753da50}, mCursorCache = {d = 0x55c517522a10}, mDataItemProviderRegistry = 0x55c516eeb110, mAuthManager = 0x55c5172513d0, mApplicationMembers = 0x55c516ed06d0, static sApplicationMembers = 0x0} gdb returned 0
History
#1 Updated by Richard Duivenvoorde over 6 years ago
- Crashes QGIS or corrupts data changed from No to Yes
Easy reproducible even in fresh profile:
- create fresh profile
- open osm layer
- make this (unsaved) project your default project (Settings/general)
- now save the project
- close qgis
- open qgis
- seeing the osm project as only project, delete it from the list in welcome page
- not sure if needed, but move your mouse of canvas/layerlist/browser
#2 Updated by Salvatore Larosa over 6 years ago
- Status changed from Open to In Progress
I can confirm it. I am going to submit a Pull request
#3 Updated by Salvatore Larosa over 6 years ago
- % Done changed from 0 to 100
- Status changed from In Progress to Closed
Applied in changeset qgis|af6ad23048e50308bb6b3ee7cc9bff130c20a210.
#4 Updated by Salvatore Larosa over 6 years ago
- Resolution set to fixed/implemented
#5 Updated by Jürgen Fischer over 6 years ago
- Description updated (diff)