Galaxy
Galaxy is an open source web platform for accessing and manipulating research data.
Troubleshooting
Timeouts after 60 seconds
Long running HTTP requests time out after 60 seconds. This is evident by looking at HTTP requests made by the browser where pending requests timeout after exactly 1 minute. This is a problem for requests that are long running such generating a .zip file when a user wants to multiple files. As stated in their documentation:
By default, uWSGI will wait up to 60 seconds for web workers and mules to terminate.—Galaxy Project 19.09 Admin Documentation, https://docs.galaxyproject.org/en/release_19.09/admin/scaling.html
The documentation doesn't explain how to change this default and there doesn't appear to be any way to change it based on the existing documentation. After some trial and error, the 60 seconds only appear to take effect on the http listener. As a workaround, you can make a separate uWSGI socket and have nginx proxy that instead of the uWSGI http listener. To do so:
- Edit
config/galaxy.yml
and add under the uwsgi thesocket
andharakiri
(not sure if this is needed...) values:Restart the galaxy service to apply.uwsgi: socket: 0.0.0.0:8070 harakiri: 300
- If using Nginx as a proxy, replace the proxy configs with:Reload Nginx to apply. (Eg.
uwsgi_pass galaxy-dev:8070; include uwsgi_params; uwsgi_param REMOTE_USER $remote_user; uwsgi_param X-Forwarded-Host $host; uwsgi_param X-Forwarded-For $proxy_add_x_forwarded_for; uwsgi_read_timeout 1800; uwsgi_send_timeout 1800;
/usr/local/nginx/sbin/nginx -s reload
).