Skip to content
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

[20.09] Fix random-ish workflow error with maximum_workflow_jobs_per_scheduling_iteration #11513

Merged
merged 5 commits into from
Mar 2, 2021

Conversation

mvdbeek
Copy link
Member

@mvdbeek mvdbeek commented Mar 1, 2021

If we reach maximum_workflow_jobs_per_scheduling_iteration in https://github.com/mvdbeek/galaxy/blob/1f82927ace979075dbd1540cad3493700889492a/lib/galaxy/tools/execute.py#L100 without having executed a single job for a new step we write out an empty step_outputs dict, which leads to

Traceback (most recent call last):
  File "/Users/mvandenb/src/galaxy/lib/galaxy/workflow/run.py", line 82, in __invoke
    outputs = invoker.invoke()
  File "/Users/mvandenb/src/galaxy/lib/galaxy/workflow/run.py", line 190, in invoke
    incomplete_or_none = self._invoke_step(workflow_invocation_step)
  File "/Users/mvandenb/src/galaxy/lib/galaxy/workflow/run.py", line 263, in _invoke_step
    incomplete_or_none = invocation_step.workflow_step.module.execute(self.trans,
  File "/Users/mvandenb/src/galaxy/lib/galaxy/workflow/modules.py", line 1659, in execute
    collection_info = self.compute_collection_info(progress, step, all_inputs)
  File "/Users/mvandenb/src/galaxy/lib/galaxy/workflow/modules.py", line 335, in compute_collection_info
    collections_to_match = self._find_collections_to_match(
  File "/Users/mvandenb/src/galaxy/lib/galaxy/workflow/modules.py", line 354, in _find_collections_to_match
    data = progress.replacement_for_input(step, input_dict)
  File "/Users/mvandenb/src/galaxy/lib/galaxy/workflow/run.py", line 328, in replacement_for_input
    replacement = [self.replacement_for_connection(c) for c in connection]
  File "/Users/mvandenb/src/galaxy/lib/galaxy/workflow/run.py", line 328, in <listcomp>
    replacement = [self.replacement_for_connection(c) for c in connection]
  File "/Users/mvandenb/src/galaxy/lib/galaxy/workflow/run.py", line 358, in replacement_for_connection
    raise Exception(message)
Exception: Workflow evaluation problem - failed to find output_name list_output in step_outputs {}
galaxy.workflow.scheduling_manager DEBUG 2021-03-01 19:58:59,493 Workflow invocation [1] scheduled

…g max_num_jobs

This should recapitulate the error seen when running workflow tests
against galaxyproject/iwc#23.
Fixes
```
Traceback (most recent call last):
  File "/Users/mvandenb/src/galaxy/lib/galaxy/workflow/run.py", line 82, in __invoke
    outputs = invoker.invoke()
  File "/Users/mvandenb/src/galaxy/lib/galaxy/workflow/run.py", line 190, in invoke
    incomplete_or_none = self._invoke_step(workflow_invocation_step)
  File "/Users/mvandenb/src/galaxy/lib/galaxy/workflow/run.py", line 263, in _invoke_step
    incomplete_or_none = invocation_step.workflow_step.module.execute(self.trans,
  File "/Users/mvandenb/src/galaxy/lib/galaxy/workflow/modules.py", line 1659, in execute
    collection_info = self.compute_collection_info(progress, step, all_inputs)
  File "/Users/mvandenb/src/galaxy/lib/galaxy/workflow/modules.py", line 335, in compute_collection_info
    collections_to_match = self._find_collections_to_match(
  File "/Users/mvandenb/src/galaxy/lib/galaxy/workflow/modules.py", line 354, in _find_collections_to_match
    data = progress.replacement_for_input(step, input_dict)
  File "/Users/mvandenb/src/galaxy/lib/galaxy/workflow/run.py", line 328, in replacement_for_input
    replacement = [self.replacement_for_connection(c) for c in connection]
  File "/Users/mvandenb/src/galaxy/lib/galaxy/workflow/run.py", line 328, in <listcomp>
    replacement = [self.replacement_for_connection(c) for c in connection]
  File "/Users/mvandenb/src/galaxy/lib/galaxy/workflow/run.py", line 358, in replacement_for_connection
    raise Exception(message)
Exception: Workflow evaluation problem - failed to find output_name list_output in step_outputs {}
galaxy.workflow.scheduling_manager DEBUG 2021-03-01 19:58:59,493 Workflow invocation [1] scheduled
```
@jmchilton
Copy link
Member

This seems easier to believe is a serious issue than the not recording the outputs. Thanks for tracking this down!

@nsoranzo
Copy link
Member

nsoranzo commented Mar 1, 2021

nsoranzo and others added 3 commits March 1, 2021 21:50
Partially revert commit efa9e0f
which broke tools which use `interpreter` and `&&` or environment
variables in the `<command />`.

xref.: galaxyproject@efa9e0f#r573844945
@jmchilton jmchilton merged commit dcb48bd into galaxyproject:release_20.09 Mar 2, 2021
@mvdbeek mvdbeek added this to the 21.01 milestone Mar 10, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants