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

Add lifetime to RucioContainers shipping to disk sites #10950

Merged
merged 1 commit into from
Feb 16, 2022

Conversation

jhonatanamado
Copy link
Contributor

Add a new lifetime parameter for each RucioContainer rule that is subscribed to disk site

Fixes #10746

Status

Tested with a replay

Description

For a given dataset (Rucio Container rule) processed by Tier0 and shipping to disk sites, add a new attribute of lifetime to the rucio container rule only if its subscribed at Disk sites

Is it backward compatible (if not, which system it affects?)

MAYBE

Related PRs

First discussed in #10747

External dependencies / deployment changes

No

@cmsdmwmbot
Copy link

Jenkins results:

  • Python2 Unit tests: failed
    • 2 new failures
    • 1 changes in unstable tests
  • Python3 Unit tests: failed
    • 2 new failures
    • 4 changes in unstable tests
  • Python2 Pylint check: failed
    • 17 warnings and errors that must be fixed
    • 13 warnings
    • 89 comments to review
  • Python3 Pylint check: succeeded
  • Pylint py3k check: failed
    • 1 warnings
  • Pycodestyle check: succeeded

Details at https://cmssdt.cern.ch/dmwm-jenkins/view/All/job/DMWM-WMCore-PR-test/12716/artifact/artifacts/PullRequestReport.html

@cmsdmwmbot
Copy link

Jenkins results:

  • Python2 Unit tests: failed
    • 1 new failures
  • Python3 Unit tests: failed
    • 1 new failures
    • 1 tests no longer failing
    • 1 changes in unstable tests
  • Python2 Pylint check: failed
    • 18 warnings and errors that must be fixed
    • 13 warnings
    • 103 comments to review
  • Python3 Pylint check: succeeded
  • Pylint py3k check: failed
    • 1 warnings
  • Pycodestyle check: succeeded

Details at https://cmssdt.cern.ch/dmwm-jenkins/view/All/job/DMWM-WMCore-PR-test/12717/artifact/artifacts/PullRequestReport.html

@amaltaro
Copy link
Contributor

@jhonatanamado Jhonatan, can you please link the relevant T0 changes to this PR? This will allow us to see all the required changes to have this feature fully functional.

This unit test:
WMCore_t.WMSpec_t.StdSpecs_t.StepChain_t.StepChainTests:testSubscriptions changed from success to failure

need to be looked at as well.

@jhonatanamado
Copy link
Contributor Author

Hi @amaltaro, Sorry, indeed I forgot to add the relevant changes to the T0 code. Please check the following dmwm/T0#4642

About the unit test, I will look at it asap

@jhonatanamado jhonatanamado marked this pull request as draft January 21, 2022 03:14
@cmsdmwmbot
Copy link

Jenkins results:

  • Python2 Unit tests: succeeded
  • Python3 Unit tests: succeeded
    • 1 tests no longer failing
    • 2 changes in unstable tests
  • Python2 Pylint check: failed
    • 26 warnings and errors that must be fixed
    • 16 warnings
    • 169 comments to review
  • Python3 Pylint check: succeeded
  • Pylint py3k check: failed
    • 1 warnings
  • Pycodestyle check: succeeded

Details at https://cmssdt.cern.ch/dmwm-jenkins/view/All/job/DMWM-WMCore-PR-test/12723/artifact/artifacts/PullRequestReport.html

@jhonatanamado jhonatanamado marked this pull request as ready for review January 22, 2022 00:33
@jhonatanamado
Copy link
Contributor Author

Hi @amaltaro , Alan, the changes were tested with a replay without issues. Let me know if you have other suggestion.

@amaltaro
Copy link
Contributor

@jhonatanamado @germanfgv could you please clarify whether this issue is supposed to fix #10558 as well? Or is #10558 actually requesting some additional rucio rule parameters?

@jhonatanamado
Copy link
Contributor Author

jhonatanamado commented Jan 25, 2022

Hi @amaltaro ,I did not remember that issue because I installed a cronjob to clean those 'block-level' rules but indeed, with some minor modifications in WMAgentConfig.py , adding that parameter in this function and applying that parameter to only the account tier0_replay, I believe that with the changes in this PR we could solve #10558 too.
Do you like to see those modifications included in this PR or in a different PR?

@amaltaro
Copy link
Contributor

@jhonatanamado oh, I thought it was the same request. If it's slightly different, then I think working on that in a different PR will be the best.

Copy link
Contributor

@amaltaro amaltaro left a comment

Choose a reason for hiding this comment

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

@jhonatanamado these changes are looking good in general. However, I made some comments/requests along the code for your consideration. Thanks

@@ -49,6 +49,7 @@ def __init__(self, logger=None, dbi=None, params=None):
subscribed INTEGER DEFAULT 0,
phedex_group VARCHAR(100),
delete_blocks INTEGER,
dataset_lifetime INTEGER DEFAULT 46656000,
Copy link
Contributor

Choose a reason for hiding this comment

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

Jhonatan, if you are actually setting dataset_lifetime for every dataset from the RunConfigAPI, then having a default value of 0 looks more reasonable to me.
In the RucioInjector code, we could even have a check like:

if dataset_lifetime > 0:
  kwargs['lifetime'....

such that when it's 0, nothing happens. What do you think?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Indeed, is more reasonable. I also modified RucioInjector in the clause of add that parameter

@@ -1079,6 +1079,9 @@ def getWorkloadCreateArgs():
"MergedLFNBase": {"default": "/store/data"},
"UnmergedLFNBase": {"default": "/store/unmerged"},
"DeleteFromSource": {"default": False, "type": strToBool},

# Rucio rule subscription lifetime (used in ContainerRules by T0)
"DatasetLifetime": {"default": 18*30*24*60*60, "type": int, "optional": True},
Copy link
Contributor

Choose a reason for hiding this comment

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

Can we make it an assignment only parameter? Just like the other PhEDEx-related parameters that we have encoded in the wofkflow?

src/python/WMCore/WMSpec/StdSpecs/StdBase.py Outdated Show resolved Hide resolved
src/python/WMCore/WMSpec/WMTask.py Outdated Show resolved Hide resolved
@jhonatanamado jhonatanamado marked this pull request as draft February 15, 2022 06:48
@cmsdmwmbot
Copy link

Jenkins results:

  • Python3 Unit tests: failed
    • 1 new failures
    • 2 changes in unstable tests
  • Python3 Pylint check: succeeded
  • Pylint py3k check: failed
    • 1 warnings
  • Pycodestyle check: succeeded

Details at https://cmssdt.cern.ch/dmwm-jenkins/view/All/job/DMWM-WMCore-PR-test/12783/artifact/artifacts/PullRequestReport.html

@cmsdmwmbot
Copy link

Jenkins results:

  • Python3 Unit tests: succeeded
    • 2 changes in unstable tests
  • Python3 Pylint check: succeeded
  • Pylint py3k check: failed
    • 1 warnings
  • Pycodestyle check: succeeded

Details at https://cmssdt.cern.ch/dmwm-jenkins/view/All/job/DMWM-WMCore-PR-test/12784/artifact/artifacts/PullRequestReport.html

@jhonatanamado jhonatanamado marked this pull request as ready for review February 15, 2022 15:03
Copy link
Contributor

@amaltaro amaltaro left a comment

Choose a reason for hiding this comment

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

Jhonatan, thanks for providing these changes. There are still a few items that require attention, please check comments along the code. Thanks

src/python/WMComponent/DBS3Buffer/Oracle/Create.py Outdated Show resolved Hide resolved
src/python/WMCore/WMSpec/StdSpecs/StdBase.py Outdated Show resolved Hide resolved
src/python/WMCore/WMSpec/WMWorkload.py Outdated Show resolved Hide resolved
test/python/WMCore_t/WMSpec_t/StdSpecs_t/StepChain_t.py Outdated Show resolved Hide resolved
@jhonatanamado jhonatanamado marked this pull request as draft February 15, 2022 23:54
@cmsdmwmbot
Copy link

Jenkins results:

  • Python3 Unit tests: succeeded
    • 2 changes in unstable tests
  • Python3 Pylint check: succeeded
  • Pylint py3k check: failed
    • 1 warnings
  • Pycodestyle check: succeeded

Details at https://cmssdt.cern.ch/dmwm-jenkins/view/All/job/DMWM-WMCore-PR-test/12789/artifact/artifacts/PullRequestReport.html

Add a new lifetime parameter for each RucioContainer rule that is subscribed to disk site
@jhonatanamado jhonatanamado marked this pull request as ready for review February 16, 2022 06:22
@cmsdmwmbot
Copy link

Jenkins results:

  • Python3 Unit tests: succeeded
    • 3 changes in unstable tests
  • Python3 Pylint check: succeeded
  • Pylint py3k check: failed
    • 1 warnings
  • Pycodestyle check: succeeded

Details at https://cmssdt.cern.ch/dmwm-jenkins/view/All/job/DMWM-WMCore-PR-test/12790/artifact/artifacts/PullRequestReport.html

Copy link
Contributor

@amaltaro amaltaro left a comment

Choose a reason for hiding this comment

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

Thank you for applying those changes, Jhonatan. It looks good to go now.

@amaltaro amaltaro merged commit d7c04f3 into dmwm:master Feb 16, 2022
@amaltaro
Copy link
Contributor

@jhonatanamado Jhonatan, if you want to run a fresh and clean replay with this code, I have just cut tag 2.0.1.pre2.

@jhonatanamado
Copy link
Contributor Author

Great, thanks for the tag @amaltaro. I will do it and give to you a feedback on how it goes.

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.

Add a lifetime for a given dataset shipping to disk sites from Tier0
3 participants