[QGIS-Developer] QgsO2 (OAuth2 ) crash in exitQgis() on uWSGI

Radim Blazek radim.blazek at gmail.com
Wed Apr 28 09:14:20 PDT 2021


Promemoria,
it is crashing whenever Q_GLOBAL_STATIC variable is accessed
because uwsgi is calling C/C++ libs atexit before python atexit.
https://github.com/unbit/uwsgi/issues/859
https://github.com/unbit/uwsgi/pull/1879

This workaround can clear project aux storage tmp file
os.remove(QgsProject.instance().auxiliaryStorage().currentFileName())
but there is also QgsProjectArchive tmp dir which is private.

BTW, what happens with old QgsProject instance when a new one is set?
void QgsProject::setInstance( QgsProject *project )
{
  sProject = project;
}

Radim


On Mon, Apr 26, 2021 at 4:23 PM Radim Blazek <radim.blazek at gmail.com> wrote:
> I forgot to say that QgsApplication.exitQgis() /  QgsProject.clear()
> is invoked by python atexit.register.

> > Now it crashes in QgsProject.clear() and again the last qgis function
> > does not have name in backtrace, is it macro?

> > /lib/x86_64-linux-gnu/libc.so.6(+0x37840) [0x7f06e03c9840]
> > /lib/libqgis_core.so.3.18.1(+0x3a2504) [0x7f06a43e5504]
> > /lib/libqgis_core.so.3.18.1(_ZN10QgsProject5clearEv+0xaa5) [0x7f06a4d5f235]


More information about the QGIS-Developer mailing list