Comments (10)
I think we'll probably have to blank the canvas for a stopped suite unless we delay suite shut down long enough for any connected control GUIs to get in a final update request.
from cylc-flow.
At the moment it seems to be doing this - however, it actually seems not to be desirable! If a task fails and the suite shuts down (admittedly this shutdown option is not one everyone takes), the information disappears. Equally if the suite shuts down because it completed, the information disappears, and it's difficult to tell the difference between the two. Turning this on its head, should we allow gcylc to recover the last state of a suite after shutdown?
from cylc-flow.
Yes, I made the change (to blank the canvas if the GUI could no longer connect to the suite) when I put in the recent remote control changes. For gcylc to get the final pre-shutdown state it would have to spawn an ssh process (it could be a remote suite) to parse the suite state dump file - is this what you're suggesting?
By the way, there is no "shut down if a task fails" option - perhaps you've implemented this at the Met Office as a task event hook script?
Maybe a simpler way to handle this would be an option (perhaps the default) to never shut a suite down automatically, so the final state would always be visible (via the normal Pyro mechanism) until the operator shuts the suite down manually ...
from cylc-flow.
You're right that we've implemented the option to shut down a suite if a task fails via a hook script. For simple suites which, for instance, just compile & then run a model this seems the most sensible thing to do since the user will almost always want to fix the problem & then re-run the suite.
The problem with leaving a completed suite running is how do you ensure that the user shuts it down? We'd need a way to ensure that we didn't end up with lots of forgotten suites cluttering up our systems.
The best alternative we've thought of is a summary of the final state dump which, as you say, it would have to retrieve via ssh if necessary. Does this sound a sensible idea? One advantage might be that you would also see what state a suite is in before you do a restart.
from cylc-flow.
Yes, that sounds eminently sensible. The one complication I can think of is that the state dump file contains less information than the suite state summary structure accessed by the control GUIs. The best way to handle this may be to populate the same state summary structure from the state dump, with missing information defaulting to something sensible.
from cylc-flow.
Alternatively, we could get by without updating the GUI views by just recovering the 'number of failed tasks' information from the state and displaying it in the status bar or a dialog, or something. This would tell the user what they really need to know about the last run of their suite.
from cylc-flow.
Ben, that sounds good, at least as an interim measure.
from cylc-flow.
It might be quite nice to integrate the information into cylc dump as well - it's a near perfect match with the state file.
from cylc-flow.
Addressed for now by the above 'quick fix' in 4b39ed3 , and a0e8bf8
from cylc-flow.
I think this is sorted now.
from cylc-flow.
Related Issues (20)
- validate full workflow ID
- flake test: tests/i/reftests/test_cyclers.py::test_icp_fcp_notation
- Triggering parentless task in new flow caused it to spawn in later cycles HOT 1
- reload after xtrigger arg change HOT 1
- reload fails on adding a new xtrigger
- `cylc vr` - restart with no changes? HOT 5
- `cylc vr` bug with `initial cycle point = now` HOT 1
- trigger --flow=new doesn't trigger downstream tasks with off-flow dependencies HOT 27
- Cylc show output isn't sorted by cyclepoint HOT 1
- Intercycle Dependencies not honoured at FCP change & Restart HOT 6
- examples: irregular cycling HOT 1
- Workflow restart after it ran to completion - better UX HOT 1
- GH Actions MacOS performance issues HOT 1
- Improve log retrieval logging
- expire: expiry is ignored if retries are configured
- `cylc vr`: installed options are not applied before validate HOT 2
- Documentation for task name allowed characters is slightly incorrect
- should generate_graph_children() filter out abs deps from other cycles HOT 4
- sys.exit traceback running 8.3+ on MacOS HOT 5
- Error message when trying to reload on a remote VM when it can't find `cylc` wrapper HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cylc-flow.