-
Notifications
You must be signed in to change notification settings - Fork 94
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
graphql: wishlist #3223
Comments
In the past, we have avoided making too much change to the task state internal representation mainly due to compatibility issue with the GUI representation. Now that the old GUI is gone, we should be in a much better position to work on this... For You are right about I also can't remember if |
Presumably that's
They can't as far as I'm aware so we are safe there. |
No, I did mean (I am sure there are many ways to look at this problem. 😄) |
I kinda get what you mean but a held state won't make sense to the user, might make some sense as an xtrigger though. This kinda comes down to data representation / UI so I'll leak some
|
The (submission) retry state is only applicable while the task is waiting for the clock. Once submitted, the multiple job icons should make it obvious that the task has been retried or re-triggered. Perhaps the job icons should display whether it is an automatic retry or a manual re-trigger? E.g. nothing for automatic retry and an M in the job icon for a manual re-trigger? |
A little ✋ badge for manual? Note we also discussed in Exeter modifying edge style in the graph view (I think??), to indicate manual intervention (e.g. task was manually triggered despite prerequisites not being satisfied). |
I think this would be good, something else we have been asked for is if we could display the retry number e.g:
|
It would be also good to tell apart normally succeeded tasks from manually succeeded ones. This is helpful for troubleshooting operational suites in the heat of failures, where actions were taken by operators and the support team is called in after the fact. Or more generally, having a clear, visual indication at a glance of where user interaction happened in the suite (manual task trigger, succeed, insertion/deletion, etc.) would be quite useful. |
@dwsutherland asked for thoughts in a comment that I will cross-post to leave as a question for those following this Issue (it doesn't strictly relate to this Issue, but I was looking for a suitable enough one on
I guess this relates to cylc-flow/cylc/flow/job_pool.py Lines 33 to 45 in aae3112
|
@sadielbartholomew - Correct, jobs are usually submitted soon after creation, but there is a space between job file creation (where/when I create the data element alongside).. So |
Not sure I understand the "ready" state discussion above. The "ready" state means "ready to run" ... i.e. prerequisites satisfied and queued to the subprocess pool for job submission. If the subprocess pool is small and/or you have a bunch of long-running processes executing in it (e.g. slow event handlers) then tasks can stay in the "ready" state for a while. The moment of job file creation doesn't really have task state implications. |
(The |
Jobs have states too... Job file creation has job state implications "ready to submit".. |
And we can even complicate matters by adding the (future) trigger-edit workflow to the mix:
(What's the status at the various stages?) |
At the moment, the job data element is:
So job states are a subset of task states, although |
Hmmm. Not necessarily. I would have thought that a job does not exist until the moment it is submitted (and job file creation is something that the task does before that). |
I'm really talking about task and job states that users need to be aware of. Which doesn't necessarily mean we don't need job-related stuff in the back end beyond those states. But I don't think we should refer to those as "job states" ... in the interest of avoiding confusion. |
Options for dealing with the "retry" state.
|
I like wallclock xtrigger idea. In that case, if a task fails and has a retry delay lined up can we just do this:
So there's really no need for a special retry attribute or use of the "held" state (the trouble with held is, it would need to be a self-releasing hold, which is weird). We could use a special variant of the wallclock xtrigger, that takes an absolute time instead of a cycle point offset, then we could easily tell the difference (for display purposes) between a normal clock trigger and a retry one. |
Ha, I'm suggesting going back to that cylc/cylc-admin#47 |
On "retry" again: if we just use waiting state plus clock trigger, the new job status icons will show definitively that the task is going to retry (you'll see the previous failed job, but the task state is waiting, not failed). Nice 👍 |
What if the task state is |
@dwsutherland - submitting not submitted The idea is that once a task's prerequisites are satisfied, we go through the process of submitting it (which may take some time), after which it is indeed submitted (to the batch system). |
(I think the original change of terminology from "submitting" to "ready" was because technically we are submitting the job only when running the |
Still, do you want job state |
?? I don't follow you. Submitting (aka ready) and queued are two different task states. |
Oh, sorry, you said job state, not task state. |
There is no job state until the task is submitted. |
So you think the respective data element created before should have an empty state field? |
I'm just talking about the official set of task and job status names that will be exposed to users, and what they mean, exactly. Presumably you already have null job states alongside other task states like "waiting", or is your question really about when the job "data element" should be created? (If the latter, then I guess it should be created when the task achieves the "submitted" state). |
The requested fields have either been implemented or superseded so closing this issue. |
Data which we would like available in the GraphQL schema:
(do it client side)progress
dt
field.isHeld
- hold_swap => is_held #3230superseded by re-implement the task retry state using xtriggers #3423isRetry
execution retry delays
orsubmission retry delays
not to user intervention.status
/status_msg
- separate status and status message #3267Note: these fields might not have a direct mapping onto data which is currently available to Cylc Flow internally. They might be awkward or not really possible at the moment.
Pull requests welcome!
This is an Open Source project - please consider contributing code yourself
(please read
CONTRIBUTING.md
before starting any work though).The text was updated successfully, but these errors were encountered: