How do I increase the time limit on Mailman 3 REST requests?
The Mailman 3 REST API uses Gunicorn servers to serve the requests. These are separate from any possible Gunicorn servers (as opposed to mod_wsgi or uWSGI) configured in the web server.
There are some settings that can be configured for these servers. A full list is at https://docs.gunicorn.org/en/stable/settings.html, but most of these are not things you need to set.
The webservice section of mailman.cfg contains the following:
[webservice] # The hostname at which admin web service resources are exposed. hostname: localhost # The port at which the admin web service resources are exposed. port: 8001 # Whether or not requests to the web service are secured through SSL. use_https: no # Whether or not to show tracebacks in an HTTP response for a request that # raised an exception. show_tracebacks: yes # The API version number for the current (highest) API. api_version: 3.1 # The administrative username. admin_user: restadmin # The administrative password. admin_pass: restpass # Number of workers to start. workers: 2 # Configuration for webservice. configuration: python:mailman.config.gunicorn
The configuration setting refers to additional gunicorn settings in the file `mailman/config/gunicorn.cfg which contains:
[gunicorn] # All the options that can be put here are available at # http://docs.gunicorn.org/en/stable/settings.html#settings # No of seconds to wait before killing the worker processes. graceful_timeout = 30
If you want to add additional Gunicorn settings such as timeout, the best way to do that is in your mailman.cfg, put
[webservice] configuration: /path/to/your/gunicorn.cfg
and in /path/to/your/gunicorn.cfg put
[gunicorn] timeout = xxx
where xxx is the increased timeout (the default is 30 seconds). If you want to increase the number of workers, you can do that either in the webservice section of your mailman.cfg, which overrides the default or in the gunicorn section of your gunicorn.cfg which overrides all the mailman.cfg webservice settings.