-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Workflows not being scheduled when workflow handlers set to db-skip-locked #8209
Comments
Ok, so, same issue I saw @natefoo. Cool, glad it's a bug and not just our weird setup. |
@afgane for an interim solution I just have the following bash script running which makes things work well enough. #!/bin/bash
while true; do
psql -c "update workflow_invocation set handler = 'handler_main_' || (random() * 10)::integer where state = 'new' and handler = '_default_';" | grep -v 'UPDATE 0'
sleep 1;
done |
I've added this to |
bump this issue again. It seems to be a severe bug or we need to pull this option from the documentation. |
Is it safe to use |
apparently the same happens when using |
Ok, I'm using the gxadmin call. However, I wonder, if this is being called from multiple hosts at the same time (because handler prefixes are host dependent) so that the workflows are balanced to handlers in different host, is this transactionally safe from the database point of view? Thanks! |
I thought I did a better job documenting the deal with workflow schedulers and assignment methods but the only thing I see is what's in the sample config.
That said, this bug ought to be addressed, and I'll try to find the time this week to look at it. |
I walked into this trap when doing the update to 20.01 and following the documentation
|
So then with a job conf like this:
this is wrong? There should only be a single workflow scheduler? Then it works or?
still an issue for EU |
@natefoo do you have any ideas here? Is the following a valid and recommended config?
|
Use @hexylena we figured out in Barcelona what the issue was but I am not sure if we recorded that revelation - do you recall? Is the issue that a |
Here is .org's workflow scheduler conf, job conf handlers section (individual handlers are only defined here for plugin loading restrictions), and the workflow scheduler and handler supervisor configs. |
Oh gosh, that revelation is lost to the 11 weeks of quarantine I've been in since barcelona, sorry @natefoo. So your workflow schedulers, matches ours., i.e. we have not specified db-self. But it works for you? likewise we're db-skip-lock in our job conf handlers section. So our configuration matches yours currently. Do we need to set it explicitly, like @bgruening did in usegalaxy-eu/infrastructure-playbook#187 ? are the workflow handlers detecting that job handksr are db-skip-locked and choosing to do the same? Which wouldn't make sense, given your configuration. |
The code should default it to One thing I mentioned to Björn on Gitter yesterday - the web workers (uwsgi) must have the same workflow schedulers conf as the workflow schedulers and job handlers. Just as they do with jobs, the web workers create the invocation and set the |
I am not sure I understand how everything is working but I get the following exception:
job_conf.xml:
I have a uwsgi + webless setup. |
Use only db-preassign like:
|
How do I get this to work without listing the handlers? My handlers autoscale and I can't explicitly declare them. |
I don't think that's a scenario we support (#8209 (comment)). The only mode(s) that would work without knowing the available workers are
That would be one solution that should allow you to scale workflow handlers between 0 and 1. |
and db-transaction-isolation. Closes galaxyproject#8209. Needs some tests and the grabbing logic should be its own class.
and db-transaction-isolation. Closes galaxyproject#8209. Needs some tests and the grabbing logic should be its own class.
and db-transaction-isolation. Closes galaxyproject#8209. Needs some tests and the grabbing logic should be its own class.
and db-transaction-isolation. Closes galaxyproject#8209.
and db-transaction-isolation. Closes galaxyproject#8209.
and db-transaction-isolation. Closes galaxyproject#8209.
and db-transaction-isolation. Closes galaxyproject#8209.
Running web (calling
uwsgi
directly) and job handlers (usingscripts/galaxy-main
) separately and having the followingconfig/workflow_schedulers.xml
(or not having that file at all), leads to workflow invocations never being scheduled (they remain innew
state):Changing the handlers assignment method as follows triggers job scheduling.
Pouring through the logs with @natefoo, everything looks like is should, including the database values in the
workflow_invocations
table (which is_default_
) the missing link is somewhere deeper.The text was updated successfully, but these errors were encountered: