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

Ensure MSTransferor does not request more copies than RSEs available #11844

Merged
merged 1 commit into from
Jan 9, 2024

Conversation

amaltaro
Copy link
Contributor

@amaltaro amaltaro commented Jan 9, 2024

Fixes #11843

Status

ready

Description

Some input data placement policies request more than 1 replica copies (e.g. NANOAOD workflows), hence we need to ensure that a rule does not request more copies than the actual number of RSEs listed in the RSE expression, otherwise Rucio will fail the rule creation request.

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

YES

Related PRs

None

External dependencies / deployment changes

None

@amaltaro amaltaro requested a review from vkuznet January 9, 2024 15:55
@cmsdmwmbot
Copy link

Jenkins results:

  • Python3 Unit tests: succeeded
  • Python3 Pylint check: succeeded
    • 4 warnings
    • 46 comments to review
  • Pylint py3k check: succeeded
  • Pycodestyle check: succeeded
    • 18 comments to review

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

msg = f"Found only {len(rses)} RSEs listed, hence we need to lower "
msg += f"the number of copies from {copies} to {len(rses)}"
self.logger.warning(msg)
copies = len(rses)
Copy link
Contributor

Choose a reason for hiding this comment

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

Does sticking with rses is best approach in terms of distributing the load? I fear that such static behavior will only place wf to RSEs which are used by upstream providers rather to random set of copies. I rather suggest to use randomization of copies with size of rses list here. But of course it is not required per-se (just an observation).

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The current policy is that all input data placement is carried out with a single copy, with one exception to NANO workflows, which define 2 copies for each container. In practice, if this code gets executed, the number of copies will be > 0 and < 2 (hence, 1).

In other words, adding randomization will not have any effect unless we decide to change the policy (and having a random definition of copies might not be the best behavior as well).

Copy link
Contributor

Choose a reason for hiding this comment

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

thanks for explanation. Feel free to proceed.

@amaltaro amaltaro merged commit 350f8c4 into dmwm:master Jan 9, 2024
3 of 4 checks passed
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.

Workflow stuck in 'assigned' due to No. of copies greater than RSE set size.
3 participants