[QGIS-Developer] Crash with QgsAuthManager() in 3.x

Richard Duivenvoorde rdmailings at duif.net
Fri Jun 1 12:39:21 PDT 2018


Hi Devs,

Coding a plugin which has to retrieve json from some services with Basis
Authentication I thought to use QgsAuthManager etc... Both to hold
username/password AND the service url, so users decide by choosing the
right profile which service url/username/password to use.

Created a small ui for it QgsAuthConfigSelect(), and used something like:

auth_man = QgsAuthManager()
uri = auth_man.availableAuthMethodConfigs()[conf_id].uri()

To search for a uri of a selected config..

BUT every time QGIS crashes.

To me it looks like QgsAuthManager() should(!) be a singleton, but
isn't. And QGIS crashes in the destructing of the QgsAuthManager...

Can somebody confirm? I'll create a ticket.

Easy test?
1) Start QGIS3/master
2) open python console
3) type 'QgsAuthManager()' and ENTER
4) do this again (and sometimes again)
5) if you still do not have a crash: stop QGIS: will stop with the
following (both on Linux and Windows):

QGIS died on signal 11[New LWP 2798]
[New LWP 2802]
[New LWP 2803]
[New LWP 2804]
[New LWP 2809]
[New LWP 2810]
[New LWP 2811]
[New LWP 2820]
[New LWP 2838]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
0x00007f16dbe88122 in __GI___waitpid (pid=2842, stat_loc=0x7ffefe576a54,
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 0x7f16e9b34380 (LWP 2797))]
#0  0x00007f16dbe88122 in __GI___waitpid (pid=2842,
stat_loc=0x7ffefe576a54, options=0) at
../sysdeps/unix/sysv/linux/waitpid.c:30
        resultvar = 18446744073709551104
        sc_cancel_oldtype = 0
#1  0x000056531be900e5 in qgisCrash(int) (signal=11) at
../src/app/main.cpp:326
        status = 32766
        pidstr = "--pid=2797\000
SV\000\000phW\376\376\177\000\000\000\027KYe\271", <incomplete sequence
\322>
        gdbpid = 2842
        exename =
"/home/richard/bin/qgis/master/debug/bin/qgis\000\177\000\000\260\344T
SV\000\000\347=\351\340\026\177\000\000\260mW\376\376\177\000\000 at 4\003\335\026\177\000\000\260\344T
SV\000\000\344\337\005\347\026\177\000\000\320hW\376\376\177\000\000\000\027KYe\271J\322 at iW\376\376\177\000\000^\266\005\347\026\177\000\000
iW\376\376\177\000\000\260\275b
SV\000\000\260mW\376\376\177\000\000 at 4\003\335\026\177\000\000\260\344T
SV\000\000^P\034\347\026\177\000\000\060iW\376\376\177\000\000\001\000\000\000
\000\000\000\020\257U SV\000\000"...
        len = 44
#2  0x00007f16dbdf8f00 in <signal handler called> () at
/lib/x86_64-linux-gnu/libc.so.6
#3  0x000056532063ed60 in  ()
#4  0x00007f16e5b7df6c in QgsAuthManager::~QgsAuthManager()
(this=0x5653205c5530, __in_chrg=<optimized out>) at
../src/core/auth/qgsauthmanager.cpp:2932
        authConn = {static defaultConnection = 0x7f16e53f7887
"qt_sql_default_connection", d = 0x7f1696b1aa00}
#5  0x00007f164e6935bf in sipQgsAuthManager::~sipQgsAuthManager()
(this=0x5653205c5530, __in_chrg=<optimized out>) at
python/core/sip_corepart2.cpp:174736
#6  0x00007f164e6935da in sipQgsAuthManager::~sipQgsAuthManager()
(this=0x5653205c5530, __in_chrg=<optimized out>) at
python/core/sip_corepart2.cpp:174739
#7  0x00007f164e69e7ee in release_QgsAuthManager(void*, int)
(sipCppV=0x5653205c5530) at python/core/sip_corepart2.cpp:179676
        _save = 0x56531e0dce60
        sipCpp = 0x5653205c5530
#8  0x00007f164e69e8c8 in dealloc_QgsAuthManager(sipSimpleWrapper*)
(sipSelf=0x7f163bb95708) at python/core/sip_corepart2.cpp:179692
#9  0x00007f1696b1a9f9 in  () at
/usr/lib/python3/dist-packages/sip.cpython-36m-x86_64-linux-gnu.so
#10 0x00007f1696b1aa09 in  () at
/usr/lib/python3/dist-packages/sip.cpython-36m-x86_64-linux-gnu.so
#11 0x00007f169710a004 in  () at /lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#12 0x00007f1697073425 in  () at /lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#13 0x00007f169719a39e in _PyObject_GenericSetAttrWithDict () at
/lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#14 0x00007f169719a78f in PyObject_SetAttr () at
/lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#15 0x00007f16970b78ad in  () at /lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#16 0x00007f169719e2a6 in _PyCFunction_FastCallDict () at
/lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#17 0x00007f169715214e in _PyObject_FastCallDict () at
/lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#18 0x00007f1697152238 in PyObject_CallFunctionObjArgs () at
/lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#19 0x00007f169718ab82 in _PyEval_EvalFrameDefault () at
/lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#20 0x00007f16971b9aea in  () at /lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#21 0x00007f16971ba4ae in PyEval_EvalCodeEx () at
/lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#22 0x00007f1697188dfb in PyEval_EvalCode () at
/lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#23 0x00007f1697193c2d in  () at /lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#24 0x00007f169719e325 in _PyCFunction_FastCallDict () at
/lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#25 0x00007f16971ba1b7 in  () at /lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#26 0x00007f169718c61f in _PyEval_EvalFrameDefault () at
/lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#27 0x00007f16971b865f in  () at /lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#28 0x00007f16971ba2e9 in  () at /lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#29 0x00007f169718c61f in _PyEval_EvalFrameDefault () at
/lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#30 0x00007f16971b9aea in  () at /lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#31 0x00007f16971ba03d in  () at /lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#32 0x00007f169718c61f in _PyEval_EvalFrameDefault () at
/lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#33 0x00007f16971b9aea in  () at /lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#34 0x00007f16971ba03d in  () at /lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#35 0x00007f169718c61f in _PyEval_EvalFrameDefault () at
/lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#36 0x00007f16971b865f in  () at /lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#37 0x00007f16971ba2e9 in  () at /lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#38 0x00007f169718c61f in _PyEval_EvalFrameDefault () at
/lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#39 0x00007f16971b865f in  () at /lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#40 0x00007f16971ba2e9 in  () at /lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#41 0x00007f169718c61f in _PyEval_EvalFrameDefault () at
/lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#42 0x00007f16971b865f in  () at /lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#43 0x00007f16971b9e50 in _PyFunction_FastCallDict () at
/lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#44 0x00007f169715212e in _PyObject_FastCallDict () at
/lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#45 0x00007f169715369d in _PyObject_Call_Prepend () at
/lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#46 0x00007f1697153708 in PyObject_Call () at
/lib/x86_64-linux-gnu/libpython3.6m.so.1.0
#47 0x00007f1696b17bab in  () at
/usr/lib/python3/dist-packages/sip.cpython-36m-x86_64-linux-gnu.so
#48 0x00007f1696b17c7f in  () at
/usr/lib/python3/dist-packages/sip.cpython-36m-x86_64-linux-gnu.so
#49 0x00007f16941fa054 in  () at
/usr/lib/python3/dist-packages/PyQt5/Qsci.cpython-36m-x86_64-linux-gnu.so
#50 0x00007f1694282744 in  () at
/usr/lib/python3/dist-packages/PyQt5/Qsci.cpython-36m-x86_64-linux-gnu.so
#51 0x00007f16e143dba7 in QWidget::event(QEvent*) () at
/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#52 0x00007f16e14de3de in QFrame::event(QEvent*) () at
/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#53 0x00007f16e14e74f3 in QAbstractScrollArea::event(QEvent*) () at
/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#54 0x00007f16e701db65 in QsciScintilla::event(QEvent*) () at
/lib/libqscintilla2_qt5.so.13
#55 0x00007f1694282ed2 in  () at
/usr/lib/python3/dist-packages/PyQt5/Qsci.cpython-36m-x86_64-linux-gnu.so
#56 0x00007f16e13fe6cc in QApplicationPrivate::notify_helper(QObject*,
QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#57 0x00007f16e14073c2 in QApplication::notify(QObject*, QEvent*) () at
/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#58 0x00007f16e5c9e1ff in QgsApplication::notify(QObject*, QEvent*)
(this=0x7ffefe579720, receiver=0x56531e1ab290, event=0x7ffefe579040) at
../src/core/qgsapplication.cpp:342
        done = true
        __FUNCTION__ = "notify"
#59 0x00007f16dcf89938 in QCoreApplication::notifyInternal2(QObject*,
QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#60 0x00007f16e145aaf4 in  () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#61 0x00007f16e13fe6cc in QApplicationPrivate::notify_helper(QObject*,
QEvent*) () at /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#62 0x00007f16e1405e84 in QApplication::notify(QObject*, QEvent*) () at
/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#63 0x00007f16e5c9e1ff in QgsApplication::notify(QObject*, QEvent*)
(this=0x7ffefe579720, receiver=0x56532015c360, event=0x7ffefe579040) at
../src/core/qgsapplication.cpp:342
        done = true
        __FUNCTION__ = "notify"
#64 0x00007f16dcf89938 in QCoreApplication::notifyInternal2(QObject*,
QEvent*) () at /lib/x86_64-linux-gnu/libQt5Core.so.5
#65 0x00007f16e0c0a090 in
QGuiApplicationPrivate::processKeyEvent(QWindowSystemInterfacePrivate::KeyEvent*)
() at /lib/x86_64-linux-gnu/libQt5Gui.so.5
#66 0x00007f16e0c0f0b5 in
QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*)
() at /lib/x86_64-linux-gnu/libQt5Gui.so.5
#67 0x00007f16e0be703b in
QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>)
() at /lib/x86_64-linux-gnu/libQt5Gui.so.5
#68 0x00007f16c21c82cb in  () at /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#69 0x00007f16dcf87b6a in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at
/lib/x86_64-linux-gnu/libQt5Core.so.5
#70 0x00007f16dcf90ed4 in QCoreApplication::exec() () at
/lib/x86_64-linux-gnu/libQt5Core.so.5
#71 0x000056531be9620f in main(int, char**) (argc=1,
argv=0x7ffefe57a748) at ../src/app/main.cpp:1434
        profile = 0x56531d4d8580
        presetStyle = {static null = {<No data fields>}, d = 0x56531d46ecf0}
        rootProfileFolder = {static null = {<No data fields>}, d =
0x56531d3faca0}
        myLocaleOverrideFlag = false
        qgistor = <incomplete type>
        w = 600
        mySplashPath = {static null = {<No data fields>}, d =
0x7f16e63ca840 <QgsApplication::splashPath()::{lambda()#1}::operator()()
const::qstring_literal>}
        h = 300
        mypSplash = 0x56531d741f20
        qgis = 0x56531d726910
        retval = 3
        manager = {<QObject> = {<No data fields>}, static
staticMetaObject = {d = {superdata = 0x7f16dd3e2a60
<QObject::staticMetaObject>, stringdata = 0x7f16e64cf680
<qt_meta_stringdata_QgsUserProfileManager>, data = 0x7f16e64cf700
<qt_meta_data_QgsUserProfileManager>, static_metacall = 0x7f16e635f030
<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 =
0x56531d3faca0}, mUserProfile = std::unique_ptr<QgsUserProfile> = {get()
= 0x0}, mSettings = std::unique_ptr<QSettings> = {get() = 0x56531d64c5a0}}
        profileFolder = {static null = {<No data fields>}, d =
0x56531d4dfa20}
        settings = {<QObject> = {<No data fields>}, static
staticMetaObject = {d = {superdata = 0x7f16dd3e2a60
<QObject::staticMetaObject>, stringdata = 0x7f16e64c0e60
<qt_meta_stringdata_QgsSettings>, data = 0x7f16e64c0ea0
<qt_meta_data_QgsSettings>, static_metacall = 0x7f16e634af12
<QgsSettings::qt_static_metacall(QObject*, QMetaObject::Call, int,
void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, static
sGlobalSettingsPath = {static null = {<No data fields>}, d =
0x7f16dd037a20 <QArrayData::shared_null>}, mUserSettings =
0x56531d4d8580, mGlobalSettings = 0x0, mUsingGlobalArray = false}
        mySettings = {<QObject> = {<No data fields>}, static
staticMetaObject = {d = {superdata = 0x7f16dd3e2a60
<QObject::staticMetaObject>, stringdata = 0x7f16e64c0e60
<qt_meta_stringdata_QgsSettings>, data = 0x7f16e64c0ea0
<qt_meta_data_QgsSettings>, static_metacall = 0x7f16e634af12
<QgsSettings::qt_static_metacall(QObject*, QMetaObject::Call, int,
void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, static
sGlobalSettingsPath = {static null = {<No data fields>}, d =
0x7f16dd037a20 <QArrayData::shared_null>}, mUserSettings =
0x56531d52a6f0, mGlobalSettings = 0x0, mUsingGlobalArray = false}
        systemEnvVars = {d = 0x56531d4676e0}
        activeStyleName = {static null = {<No data fields>}, d =
0x56531d7ce720}
        i18nPath = {static null = {<No data fields>}, d = 0x56531d7c4ca0}
        myUserLocale = {static null = {<No data fields>}, d =
0x56531d741dc0}
        qttor = <incomplete type>
        customizationsettings = 0x56531d52a6d0
        useCustomVars = false
        myPixmap = <incomplete type>
        __FUNCTION__ = "main"
        mySnapshotFileName = {static null = {<No data fields>}, d =
0x7f16dd037a20 <QArrayData::shared_null>}
        configLocalStorageLocation = {static null = {<No data fields>},
d = 0x56531d46af10}
        profileName = {static null = {<No data fields>}, d = 0x56531d4c0ad0}
        mySnapshotWidth = 800
        mySnapshotHeight = 600
        myHideSplash = false
        mySettingsMigrationForce = false
        mySkipVersionCheck = false
        myRestoreDefaultWindowState = false
        myRestorePlugins = true
        myCustomization = true
        dxfOutputFile = {static null = {<No data fields>}, d =
0x7f16dd037a20 <QArrayData::shared_null>}
        dxfSymbologyMode = QgsDxfExport::SymbolLayerSymbology
        dxfScale = 50000
        dxfEncoding = {static null = {<No data fields>}, d =
0x56531be9e0e0 <main::{lambda()#1}::operator()() const::qstring_literal>}
        dxfMapTheme = {static null = {<No data fields>}, d =
0x7f16dd037a20 <QArrayData::shared_null>}
        dxfExtent = {mXmin = 0, mYmin = 0, mXmax = 0, mYmax = 0}
        myInitialExtent = {static null = {<No data fields>}, d =
0x56531be9e120 <main::{lambda()#2}::operator()() const::qstring_literal>}
        myTranslationCode = {static null = {<No data fields>}, d =
0x56531d741ef0}
        configpath = {static null = {<No data fields>}, d =
0x7f16dd037a20 <QArrayData::shared_null>}
        authdbdirectory = {static null = {<No data fields>}, d =
0x7f16dd037a20 <QArrayData::shared_null>}
        pythonfile = {static null = {<No data fields>}, d =
0x7f16dd037a20 <QArrayData::shared_null>}
        customizationfile = {static null = {<No data fields>}, d =
0x56531d535a30}
        globalsettingsfile = {static null = {<No data fields>}, d =
0x7f16dd037a20 <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 = 0x56531d302650}, d = 0x56531d302650}}, <No data fields>}
        myUseGuiFlag = true
        myApp = {<QApplication> = {<No data fields>}, static
staticMetaObject = {d = {superdata = 0x7f16e1ac4a80
<QApplication::staticMetaObject>, stringdata = 0x7f16e64ad2c0
<qt_meta_stringdata_QgsApplication>, data = 0x7f16e64ad420
<qt_meta_data_QgsApplication>, static_metacall = 0x7f16e632f028
<QgsApplication::qt_static_metacall(QObject*, QMetaObject::Call, int,
void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, static
QGIS_ORGANIZATION_NAME = 0x7f16e63c9ba8 "QGIS", static
QGIS_ORGANIZATION_DOMAIN = 0x7f16e63c9bad "qgis.org", static
QGIS_APPLICATION_NAME = 0x7f16e63c9bb6 "QGIS3", static
mFileOpenEventReceiver30100 = 0x56531d726910, 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 = 0x7f16dd039b20
<QListData::shared_null>}, d = 0x7f16dd039b20
<QListData::shared_null>}}, <No data fields>}, static mProfilePath30100
= {static null = {<No data fields>}, d = 0x56531d4dfa20}, static
mUIThemeName30100 = {static null = <same as static member of an already
seen type>, d = 0x7f16dd037a20 <QArrayData::shared_null>}, static
mPrefixPath30100 = {static null = <same as static member of an already
seen type>, d = 0x56531d3ad700}, static mPluginPath30100 = {static null
= <same as static member of an already seen type>, d = 0x56531d4a0cf0},
static mPkgDataPath30100 = {static null = <same as static member of an
already seen type>, d = 0x56531d403d60}, static mLibraryPath30100 =
{static null = <same as static member of an already seen type>, d =
0x56531d44fc40}, static mLibexecPath30100 = {static null = <same as
static member of an already seen type>, d = 0x56531d408120}, static
mQmlImportPath30100 = {static null = <same as static member of an
already seen type>, d = 0x7f16dd037a20 <QArrayData::shared_null>},
static mThemeName30100 = {static null = <same as static member of an
already seen type>, d = 0x7f16e63ca3e0
<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 =
0x56531d467710}, d = 0x56531d467710}}, <No data fields>}, static
mSystemEnvVars30100 = {d = 0x56531d4676e0}, static mConfigPath30100 =
{static null = {<No data fields>}, d = 0x56531d4b9e50}, static
mInitialized30100 = true, static mRunningFromBuildDir30100 = false,
static mBuildSourcePath30100 = {static null = <same as static member of
an already seen type>, d = 0x7f16dd037a20 <QArrayData::shared_null>},
static mBuildOutputPath30100 = {static null = <same as static member of
an already seen type>, d = 0x7f16dd037a20 <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 = 0x7f16dd039b20
<QListData::shared_null>}, d = 0x7f16dd039b20
<QListData::shared_null>}}, <No data fields>}, static mMaxThreads30100 =
-1, static mAuthDbDirPath30100 = {static null = {<No data fields>}, d =
0x56531d4b9e50}, static sUserName = {static null = <same as static
member of an already seen type>, d = 0x56531dbdc3a0}, static
sUserFullName = {static null = <same as static member of an already seen
type>, d = 0x56531d4f87e0}, static sPlatformName = {static null = <same
as static member of an already seen type>, d = 0x56531d342a30},
mIconCache = {d = 0x56531da0ed40}, mCursorCache = {d = 0x56531da842a0},
mDataItemProviderRegistry = 0x56531d864670, mAuthManager =
0x56531d88c030, mApplicationMembers = 0x56531d3f66e0, static
sApplicationMembers = 0x0}
gdb returned 0
/home/richard/bin/qgis3: line 9:  2797 Aborted
/home/richard/bin/qgis/master/debug/bin/qgis "$@"







More information about the QGIS-Developer mailing list