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

Move logic for downloading resources from CS into main background process #7551

Merged
merged 7 commits into from
Mar 25, 2024

Conversation

Marishka17
Copy link
Contributor

Motivation and context

Looks like using dependent jobs for downloading resources from cloud storage gives more problems than benefits. With such architecture, it is possible to stop the import queue forever. E.g. RQ_1 process for downloading file from CS fails -> dependent RQ_2 process for importing file will not be started (1, 2) (it means that this process will be kept in the deferred registry forever since there is no code that cleans the deferred registry + for some reason such jobs are not moved to the failed registry after dependencies fail) -> next request for importing something creates new RQ job dependent from RQ_2. This PR fixes the described issue.

How has this been tested?

Manually

Checklist

  • I submit my changes into the develop branch
  • I have created a changelog fragment
  • I have updated the documentation accordingly
  • I have added tests to cover my changes
  • I have linked related issues (see GitHub docs)
    - [ ] I have increased versions of npm packages if it is necessary
    (cvat-canvas,
    cvat-core,
    cvat-data and
    cvat-ui)

License

  • I submit my code changes under the same MIT License that covers the project.
    Feel free to contact the maintainers if that's a concern.

@Marishka17 Marishka17 requested a review from azhavoro March 5, 2024 10:48
@Marishka17 Marishka17 force-pushed the mk/fix_logic_for_importing_resources_from_cs branch from d95cbce to df9690d Compare March 5, 2024 12:01
@Marishka17 Marishka17 changed the title Move logic for downloading resources from CS into main background process [WIP] Move logic for downloading resources from CS into main background process Mar 6, 2024
@Marishka17
Copy link
Contributor Author

/check

Copy link
Contributor

github-actions bot commented Mar 11, 2024

✔️ All checks completed successfully
📄 See logs here

@Marishka17 Marishka17 changed the title [WIP] Move logic for downloading resources from CS into main background process Move logic for downloading resources from CS into main background process Mar 12, 2024
Copy link

codecov bot commented Mar 12, 2024

Codecov Report

Merging #7551 (696c019) into develop (33f9cc2) will increase coverage by 0.00%.
The diff coverage is 96.55%.

Additional details and impacted files
@@           Coverage Diff            @@
##           develop    #7551   +/-   ##
========================================
  Coverage    83.44%   83.45%           
========================================
  Files          373      373           
  Lines        39724    39716    -8     
  Branches      3741     3741           
========================================
- Hits         33147    33144    -3     
+ Misses        6577     6572    -5     
Components Coverage Δ
cvat-ui 79.25% <ø> (+0.01%) ⬆️
cvat-server 87.33% <96.55%> (+<0.01%) ⬆️

@azhavoro azhavoro merged commit eb5b612 into develop Mar 25, 2024
34 checks passed
@Marishka17 Marishka17 deleted the mk/fix_logic_for_importing_resources_from_cs branch March 25, 2024 12:21
g-kartik pushed a commit to g-kartik/cvat that referenced this pull request Mar 29, 2024
…cess (cvat-ai#7551)

<!-- Raise an issue to propose your change
(https://github.com/opencv/cvat/issues).
It helps to avoid duplication of efforts from multiple independent
contributors.
Discuss your ideas with maintainers to be sure that changes will be
approved and merged.
Read the [Contribution
guide](https://opencv.github.io/cvat/docs/contributing/). -->

<!-- Provide a general summary of your changes in the Title above -->

### Motivation and context
<!-- Why is this change required? What problem does it solve? If it
fixes an open
issue, please link to the issue here. Describe your changes in detail,
add
screenshots. -->
Looks like using dependent jobs for downloading resources from cloud
storage gives more problems than benefits. With such architecture, it is
possible to stop the import queue forever. E.g. RQ_1 process for
downloading file from CS fails -> dependent RQ_2 process for importing
file will not be started
([1](https://github.dev/rq/rq/blob/3ad86083c33ec28b81a07f94dafdcf1cd56429ea/rq/worker.py#L1562),
[2](https://github.dev/rq/rq/blob/3ad86083c33ec28b81a07f94dafdcf1cd56429ea/rq/worker.py#L691-L692))
(it means that this process will be kept in the deferred registry
forever since there is no code that cleans the deferred registry + for
some reason such jobs are not moved to the failed registry after
dependencies fail) -> next request for importing something creates new
RQ job dependent from RQ_2. This PR fixes the described issue.

### How has this been tested?
<!-- Please describe in detail how you tested your changes.
Include details of your testing environment, and the tests you ran to
see how your change affects other areas of the code, etc. -->
Manually
### Checklist
<!-- Go over all the following points, and put an `x` in all the boxes
that apply.
If an item isn't applicable for some reason, then ~~explicitly
strikethrough~~ the whole
line. If you don't do that, GitHub will show incorrect progress for the
pull request.
If you're unsure about any of these, don't hesitate to ask. We're here
to help! -->
- [x] I submit my changes into the `develop` branch
- [ ] I have created a changelog fragment <!-- see top comment in
CHANGELOG.md -->
- [ ] I have updated the documentation accordingly
- [ ] I have added tests to cover my changes
- [ ] I have linked related issues (see [GitHub docs](

https://help.github.com/en/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword))
~~- [ ] I have increased versions of npm packages if it is necessary

([cvat-canvas](https://github.com/opencv/cvat/tree/develop/cvat-canvas#versioning),

[cvat-core](https://github.com/opencv/cvat/tree/develop/cvat-core#versioning),

[cvat-data](https://github.com/opencv/cvat/tree/develop/cvat-data#versioning)
and

[cvat-ui](https://github.com/opencv/cvat/tree/develop/cvat-ui#versioning))~~

### License

- [x] I submit _my code changes_ under the same [MIT License](
https://github.com/opencv/cvat/blob/develop/LICENSE) that covers the
project.
  Feel free to contact the maintainers if that's a concern.

---------

Co-authored-by: Andrey Zhavoronkov <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants