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

Avoid a potential race condition #1156

Merged

Conversation

bmclaughlin
Copy link
Contributor

Description 🛠

When calling orphan_cleanup setting the parameter orphan_protection_time to zero has the potential to create race conditions.

This PR adds a check in CI to ensure we don't forget and sets orphan_protection_time to 10 per a discussion in slack.

Issue: AAH-1384

Reviewer Checklists 👀

Developer reviewer:

  • Code looks sound, good architectural decisions, no code smells
  • There is a Jira issue associated (note that "No-Issue" should be rarely used)
  • Tests are included in galaxy_ng/tests/integration or galaxy_ng/tests/functional, and they fully cover necessary test scenarios… or tests not needed

QE reviewer (exceptions):

  • Tests are included in galaxy_ng/tests/integration or galaxy_ng/tests/functional, and they fully cover necessary test scenarios… or tests not needed
  • PR meets applicable Acceptance Criteria for associated Jira issue

Note: when merging, include the Jira issue link in the squashed commit

@bmclaughlin bmclaughlin force-pushed the AAH-1384-orphan-protection-time branch 6 times, most recently from 36c0121 to d24779a Compare March 3, 2022 15:00
@bmclaughlin bmclaughlin changed the title Avoid a potential race condition DO NOT MERGE - Avoid a potential race condition Mar 3, 2022
@bmclaughlin bmclaughlin marked this pull request as ready for review March 3, 2022 15:41
@bmclaughlin bmclaughlin force-pushed the AAH-1384-orphan-protection-time branch 2 times, most recently from b1f905f to e526b95 Compare March 3, 2022 16:02
- Add extra_linting.sh to check for orphan_protection_time=0 in extra_linting
Issue: AAH-1384
@bmclaughlin bmclaughlin force-pushed the AAH-1384-orphan-protection-time branch from e526b95 to df2b8de Compare March 3, 2022 16:28
@bmclaughlin
Copy link
Contributor Author

Galaxy CI / lint (pull_request) failed on orphan_protection_time set to 0:

Run [ -x .ci/scripts/extra_linting.sh ] && .ci/scripts/extra_linting.sh
galaxy_ng/app/tasks/deletion.py:    orphan_cleanup(content_pks=None, orphan_protection_time=0)
galaxy_ng/app/tasks/deletion.py:    orphan_cleanup(content_pks=None, orphan_protection_time=0)
galaxy_ng/app/tasks/deletion.py:    orphan_cleanup(content_pks=None, orphan_protection_time=0)
Setting 'orphan_protection_time' to 0 can lead to a race condition.\n
Error: Process completed with exit code 1.

@bmclaughlin bmclaughlin changed the title DO NOT MERGE - Avoid a potential race condition Avoid a potential race condition Mar 3, 2022
@@ -91,7 +91,7 @@ def delete_container_distribution(instance_ids):
general_multi_delete(instance_ids=instance_ids)

log.info("Running orphan_cleanup to delete Container objects and artifacts")
orphan_cleanup(content_pks=None, orphan_protection_time=0)
orphan_cleanup(content_pks=None, orphan_protection_time=10)
Copy link
Member

Choose a reason for hiding this comment

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

is 10a reasonable number to protect? is this number in seconds?

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 value is in minutes. The default setting in pulpcore is here.

@rochacbruno rochacbruno merged commit 5770462 into ansible:master Mar 4, 2022
@bmclaughlin bmclaughlin deleted the AAH-1384-orphan-protection-time branch March 4, 2022 19:16
@bmclaughlin bmclaughlin added the backport-4.4 This PR should be backported to stable-4.4 (2.1) label Mar 4, 2022
@patchback
Copy link

patchback bot commented Mar 4, 2022

Backport to stable-4.4: 💔 cherry-picking failed — conflicts found

❌ Failed to cleanly apply 5770462 on top of patchback/backports/stable-4.4/57704621a25b8d384e7f120605c77132b4a8d2d1/pr-1156

Backporting merged PR #1156 into master

  1. Ensure you have a local repo clone of your fork. Unless you cloned it
    from the upstream, this would be your origin remote.
  2. Make sure you have an upstream repo added as a remote too. In these
    instructions you'll refer to it by the name upstream. If you don't
    have it, here's how you can add it:
    $ git remote add upstream https://github.com/ansible/galaxy_ng.git
  3. Ensure you have the latest copy of upstream and prepare a branch
    that will hold the backported code:
    $ git fetch upstream
    $ git checkout -b patchback/backports/stable-4.4/57704621a25b8d384e7f120605c77132b4a8d2d1/pr-1156 upstream/stable-4.4
  4. Now, cherry-pick PR Avoid a potential race condition #1156 contents into that branch:
    $ git cherry-pick -x 57704621a25b8d384e7f120605c77132b4a8d2d1
    If it'll yell at you with something like fatal: Commit 57704621a25b8d384e7f120605c77132b4a8d2d1 is a merge but no -m option was given., add -m 1 as follows intead:
    $ git cherry-pick -m1 -x 57704621a25b8d384e7f120605c77132b4a8d2d1
  5. At this point, you'll probably encounter some merge conflicts. You must
    resolve them in to preserve the patch from PR Avoid a potential race condition #1156 as close to the
    original as possible.
  6. Push this branch to your fork on GitHub:
    $ git push origin patchback/backports/stable-4.4/57704621a25b8d384e7f120605c77132b4a8d2d1/pr-1156
  7. Create a PR, ensure that the CI is green. If it's not — update it so that
    the tests and any other checks pass. This is it!
    Now relax and wait for the maintainers to process your pull request
    when they have some cycles to do reviews. Don't worry — they'll tell you if
    any improvements are necessary when the time comes!

🤖 @patchback
I'm built with octomachinery and
my source is open — https://github.com/sanitizers/patchback-github-app.

bmclaughlin added a commit to bmclaughlin/galaxy_ng that referenced this pull request Mar 4, 2022
Issue: AAH-1384
(cherry picked from commit 5770462)
newswangerd pushed a commit that referenced this pull request Mar 4, 2022
@github-actions github-actions bot added the backported-4.4 This PR has been backported to stable-4.4 (2.1) label Mar 4, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport-4.4 This PR should be backported to stable-4.4 (2.1) backported-4.4 This PR has been backported to stable-4.4 (2.1)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants