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

moved execution and submission items from [task][job] to [task] #3480

Closed
wants to merge 5 commits into from

Conversation

wxtim
Copy link
Member

@wxtim wxtim commented Jan 14, 2020

Part of the job platforms work:

A number of items currently held in the suite spec under runtime->task->job are to be moved to runtime->task.
These items are:

  • execution polling intervals,
  • execution retry delays,
  • execution time limit,
  • submission polling intervals,
  • submission retry delays

This PR

  • Moves these items in the config defined by cfgspec/suite.rc
  • Adds "upgraders" for each of these items in cfgspec/suite.rc so that users using Cylc7 syntax will get a warning message and have these items moved.
  • Adds a test for the deprecat

@wxtim wxtim changed the title moved execution and submission items from [task][job] to [task] [WIP] moved execution and submission items from [task][job] to [task] Jan 14, 2020
@wxtim wxtim self-assigned this Jan 14, 2020
@wxtim wxtim requested a review from datamel January 14, 2020 11:55
Copy link
Member

@hjoliver hjoliver left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(looks good, but currently too tired to think straight ... I'll look closer tomorrow)

@wxtim
Copy link
Member Author

wxtim commented Jan 15, 2020

(looks good, but currently too tired to think straight ... I'll look closer tomorrow)

it was 23:00 Local when you made that comment.

@wxtim wxtim changed the title [WIP] moved execution and submission items from [task][job] to [task] moved execution and submission items from [task][job] to [task] Jan 16, 2020
@wxtim wxtim force-pushed the plumbing_platforms_simple_upgrades branch from 86185f7 to 1289ae2 Compare January 16, 2020 14:57
@@ -149,6 +148,9 @@
},
'runtime': {
'__MANY__': {
'execution polling intervals': [VDR.V_INTERVAL_LIST, None],
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've attempted to put these items in alphabetical order. Given the level of alphabetism in the previous version this was tricky.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looked up "alphabetism", learned something new! http://www.glottopedia.org/index.php/Alphabetism (albeit not how you intended it, I guess).

@@ -39,6 +39,11 @@ cmp_ok val.out <<__END__
* (8.0.0) [cylc][reference test][suite shutdown event handler] - DELETED (OBSOLETE)
* (8.0.0) [cylc][abort if any task fails] -> [cylc][events][abort if any task fails] - value unchanged
* (8.0.0) [runtime][foo, cat, dog][job][shell] - DELETED (OBSOLETE)
* (8.0.0) [runtime][foo, cat, dog][job][execution polling intervals] -> [runtime][foo, cat, dog][execution polling intervals] - value unchanged
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This test checks that the deprecations have worked.

@@ -17,6 +17,9 @@
#-------------------------------------------------------------------------------
# Test that global config is used search for poll
. "$(dirname "${0}")/test_header"

# TODO - replace this with a Cylc 8 test
skip_all "This test is broken pending full implementation of platforms"
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We are not intending to have this sort of globalconfig work in Cylc 8. The best this test should give is a helpful warning, but that warning should already have been given elsewhere. More likely we need to re-write this in a platformsy way.

See issue #3481

@wxtim wxtim changed the title moved execution and submission items from [task][job] to [task] [Codacy Fail Only] moved execution and submission items from [task][job] to [task] Jan 16, 2020
fix test failing due to irrelevant upgrader warnign message

config['job']['execution time limit'] --> config['execution time limit']
@wxtim wxtim force-pushed the plumbing_platforms_simple_upgrades branch from 1289ae2 to a040fad Compare January 16, 2020 15:16
@oliver-sanders oliver-sanders changed the title [Codacy Fail Only] moved execution and submission items from [task][job] to [task] moved execution and submission items from [task][job] to [task] Jan 16, 2020
@hjoliver
Copy link
Member

@wxtim -

A number of items currently held in the suite spec under runtime->task->job are to be moved to runtime->task.

Out of curiosity, was this flagged in one of the related proposals or issues? @oliver-sanders and I were trying to remember, but couldn't so trying to guess the reason for this. Presumably it is: some important job settings are moving to the new platforms config, and there's not enough left to bother keeping a jobs section in the suite config - is that right?

Copy link
Member

@hjoliver hjoliver left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code looks fine, but still interested in clarifying the motivation.

@@ -149,6 +148,9 @@
},
'runtime': {
'__MANY__': {
'execution polling intervals': [VDR.V_INTERVAL_LIST, None],
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looked up "alphabetism", learned something new! http://www.glottopedia.org/index.php/Alphabetism (albeit not how you intended it, I guess).

@hjoliver
Copy link
Member

hjoliver commented Jan 17, 2020

Presumably it is: some important job settings are moving to the new platforms config, and there's not enough left to bother keeping a jobs section in the suite config - is that right?

I see from your global config PR, in the new job platforms section:

            # TODO ensure that it is possible to over-ride the following three
            # settings in suite config.
            'submission polling intervals': [VDR.V_INTERVAL_LIST],
            'submission retry delays': [VDR.V_INTERVAL_LIST, None],
            'execution polling intervals': [VDR.V_INTERVAL_LIST],

So that nixes my "not enough left to bother keeping a jobs section" argument.

(Sorry if I've just forgotten the motivating discussion for this change!).

Copy link
Member

@hjoliver hjoliver left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just un-approving again for clarity, because flakytests/events/01-task.t appears to be a genuine fail.

@hjoliver
Copy link
Member

          # TODO ensure that it is possible to over-ride the following three
          # settings in suite config.

(Although in an offline chat with @oliver-sanders, maybe we don't want to allow this suite override)

@wxtim
Copy link
Member Author

wxtim commented Jan 17, 2020

I'm concerned that I cannot find the reasoning behind this move. @dpmatthews can you remember. It was inserted, commented, in the original refactoring PR.
.

@wxtim
Copy link
Member Author

wxtim commented Jan 17, 2020

Just un-approving again for clarity, because flakytests/events/01-task.t appears to be a genuine fail.

I wish there was a groan and 🙄 emoji! I'm so frustrated that I forgot to run these!

@dpmatthews
Copy link
Contributor

dpmatthews commented Jan 17, 2020

I think the reason for this change is just to simplify the config. Does a [job] sub-section really make sense (especially now some items have been removed)?

I'm hoping we'll review the whole config at the workshop. I'm happy this change makes sense (and we can always change it again later) but I don't mind if others would prefer to delay.

@oliver-sanders
Copy link
Member

Some users will find it amusing that we got them to move these items into the job section only a short while back, and now we are getting them to move them back out again!

TODO ensure that it is possible to over-ride the following three

Just to clarify, we aren't thinking of allowing users to override polling settings in a task are we?

@hjoliver
Copy link
Member

hjoliver commented Jan 21, 2020

TODO ensure that it is possible to over-ride the following three

Just to clarify, we aren't thinking of allowing users to override polling settings in a task are we?

I guess the question is: is there any reason to allow task-specific polling?

A valid use case?: users have to work around a specific important task that is known to fail silently sometimes. (Technically that's a bug in the task implementation, but fixing it might be "out of scope" or difficult.

@hjoliver
Copy link
Member

Does a [job] sub-section really make sense (especially now some items have been removed)?

I agree IF "some items have been removed". But I think they haven't actually been removed, if we do allow task-specific override (see prev. comment).

@dpmatthews
Copy link
Contributor

I think we have to allow task specific polling for the csae where you are using the polling task communication method. You might need to tune the polling depending on the expected runtime / queuing time for the task.

@dpmatthews
Copy link
Contributor

Does a [job] sub-section really make sense (especially now some items have been removed)?

I agree IF "some items have been removed". But I think they haven't actually been removed, if we do allow task-specific override (see prev. comment).

runtime->task->job used to also contain batch system, batch submit command template and shell - these have all gone.

This PR isn't blocking anything so I suggest we put it on hold until we can discuss other potential config changes at the workshop.

@hjoliver
Copy link
Member

OK, I forgot about batch system moving. It occurs to me, we probably do need task-specific batch system sometimes (e.g. for testing, or ... do we want to force people to use a proper batch system for trivial long-running polling jobs, for instance) ... but (trying to remember) we decided for that purpose you would be expected to define a different platform? ... (hpc_pbs and hpc_background...) which seems reasonable.

(slightly off-topic, sorry 😬 )

@hjoliver
Copy link
Member

hjoliver commented Feb 4, 2020

(Did you mean to close this @wxtim? Thought we were just putting it on hold for a bit)

@wxtim wxtim reopened this Feb 4, 2020
@wxtim
Copy link
Member Author

wxtim commented Apr 7, 2020

Closing this PR because it's going on hold for a bit. Can be re-opened when we are ready to deal but makes things tidier in the meantime.

@wxtim wxtim closed this Apr 7, 2020
@wxtim wxtim deleted the plumbing_platforms_simple_upgrades branch May 27, 2020 08:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants