pool manager: retry request on pool up #7677
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation:
If a pool with the file is online and a tape copy available, then dCache will trigger stage and wait until file is restored on disk. However, if pool becomes available again, the stage request is not interrupted and client will wait for tape.
Modification:
Update request container 'onPoolUp' logic to retry the request if the file expected to be on that pool. Added unit test to validate the behavior.
Result:
pool selection succeeds then a pool with the file becomes online despite the on-going stage request.
NOTE (1): the stage request is not interrupted
NOTE (2): if newly enabled pool doesn't contains the expected file, then double stage is very likely.
Target: master
Acked-by: Lea Morschel
Require-book: no
Require-notes: yes
(cherry picked from commit f945c3d)