Skip to content

uwsgi: Do not autoload modules

Mathieu Bridon requested to merge uwsgi into master

We used to use uWSGI in emperor mode, which would run Ideascube as follows:

/usr/bin/uwsgi --ini ideascube.ini

But with the latest packaging changes, we moved to using plain uWSGI as it is packaged in Debian, which runs Ideascube with this command:

/usr/bin/uwsgi --ini /usr/share/uwsgi/conf/default.ini
--ini /etc/uwsgi/apps-enabled/ideascube.ini

The default.ini configuration file has the following line:

autoload = true

What happens with this is that when uWSGI parses ideascube.ini, it finds this line first:

module = ideascube.wsgi

At this point, uWSGI doesn't know how to interpret this module option, so it searches for a plugin that knows. It finds the python plugin and loads it, even though later on we ask for the python3 plugin.

As a result, Ideascube gets started with Python 2, which obviously fails.

We'd rather not keep fighting with the Debian packaging of uWSGI by going to our own custom uwsgi.service file.

In addition, we can't use the uwsgi-emperor package from Debian because it runs uWSGI as the www-data user, and thus can't switch to the ideascube user for our application.

Therefore, this is the simplest solution: it respects the Debian packaging of uWSGI, and only keeps configuration in our own files.

Merge request reports