Galaxy: Difference between revisions

From Leo's Notes
This page was last edited on 10 August 2020, at 22:02.
Created page with "Galaxy is an open source web platform for accessing and manipulating research data. == Troubleshooting == ==== Timeouts after 60 seconds ==== Long running HTTP requests tim..."
 
Line 8: Line 8:
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:
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 <code>config/galaxy.yml</code> and add under the uwsgi the <code>socket</code> and <code>harakiri</code> (not sure if this is needed...) values:  
# Edit <code>config/galaxy.yml</code> and add under the uwsgi the <code>socket</code> and <code>harakiri</code> (not sure if this is needed...) values: {{Highlight
{{Highlight
| code = uwsgi:
| code = uwsgi:
   socket: 0.0.0.0:8070
   socket: 0.0.0.0:8070
Line 15: Line 14:
| lang = text
| lang = text
}} Restart the galaxy service to apply.
}} Restart the galaxy service to apply.
# If using Nginx as a proxy, replace the proxy configs with:
# If using Nginx as a proxy, replace the proxy configs with:{{Highlight
{{Highlight
| code = uwsgi_pass galaxy-dev:8070;
| code = uwsgi_pass galaxy-dev:8070;
include uwsgi_params;
include uwsgi_params;

Revision as of 22:02, 10 August 2020

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:

  1. Edit config/galaxy.yml and add under the uwsgi the socket and harakiri (not sure if this is needed...) values:
    uwsgi:
      socket: 0.0.0.0:8070
      harakiri: 300
    
    Restart the galaxy service to apply.
  2. If using Nginx as a proxy, replace the proxy configs with:
    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;
    
    Reload Nginx to apply. (Eg. /usr/local/nginx/sbin/nginx -s reload).