-
Notifications
You must be signed in to change notification settings - Fork 93
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
Add unmet prerequisite dumping on stall. #1888
Conversation
|
||
# prune tree to ignore items that are elsewhere in it | ||
clean_keys = [] | ||
for item in prereq_tree.keys(): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You can just do for item in prereq_tree:
. There is no need to call the .keys()
methods.
@matthewrmshin - tweaked as requested. |
for unsatisfied in prereq_tree[item]['prereqs']: | ||
unsatisfied_id = unsatisfied.split()[0] | ||
# Clear out tasks with dependencies on other waiting tasks | ||
if unsatisfied_id in prereq_tree.keys(): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if unsatisfied_id in prereq_tree:
Some more comments. Otherwise looks OK. Tests OK in my environment. |
@matthewrmshin - addressed. |
(this will close #1585, right?) |
@hjoliver - that is my hope. Just with you for review now. |
Pruning doesn't seem to work downstream of an unmet family:
|
@hjoliver - fixed (I think). |
(also added a test to capture that kind of prereq filtering) |
Review 2 - good, tests pass here. |
Close #1585. Addresses this comment: #1585 (comment)
On stalling the suite will now print out a list of unmet prerequisites for waiting tasks. Where those prerequisites are transitive they will be pruned down as much as possible. i.e. for:
in the event of a stall due to failure of
foo
onlybar
will report unmet prerequisites.baz
won't as it is waiting on the completion of a waiting task (bar
) that hasn't got all its prereqs met.See the test for the slightly more awkward problem when a task proxy doesn't exist at a cycle, thus resulting in an unmet prerequisite which gets reported (not massively different from what you'd end up with from manually inspecting the task in gcylc).
@hjoliver - please review 1
@matthewrmshin - please review 2