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

rgwlc: fix lc head marker point to non-exist lc entry #47595

Merged
merged 1 commit into from Jun 30, 2023

Conversation

5cs
Copy link
Contributor

@5cs 5cs commented Aug 15, 2022

After a single-bucket run and its lc entry is removed since the
bucket is deleted, we will have lc shard object's head marker
point to a non-exist lc entry. Finally, buckets that are hashed
to this lc shard can not have any lifecycle progress. Fix it
by skipping the non-exist marker.

Fixes: https://tracker.ceph.com/issues/57162

Signed-off-by: Tongliang Deng dengtongliang@gmail.com

Contribution Guidelines

Checklist

  • Tracker (select at least one)
    • References tracker ticket
    • Very recent bug; references commit where it was introduced
    • New feature (ticket optional)
    • Doc update (no ticket needed)
    • Code cleanup (no ticket needed)
  • Component impact
    • Affects Dashboard, opened tracker ticket
    • Affects Orchestrator, opened tracker ticket
    • No impact that needs to be tracked
  • Documentation (select at least one)
    • Updates relevant documentation
    • No doc update is appropriate
  • Tests (select at least one)
Show available Jenkins commands
  • jenkins retest this please
  • jenkins test classic perf
  • jenkins test crimson perf
  • jenkins test signed
  • jenkins test make check
  • jenkins test make check arm64
  • jenkins test submodules
  • jenkins test dashboard
  • jenkins test dashboard cephadm
  • jenkins test api
  • jenkins test docs
  • jenkins render docs
  • jenkins test ceph-volume all
  • jenkins test ceph-volume tox
  • jenkins test windows

@github-actions github-actions bot added the rgw label Aug 15, 2022
Copy link
Contributor

@mattbenjamin mattbenjamin left a comment

Choose a reason for hiding this comment

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

lgtm

@mattbenjamin
Copy link
Contributor

A tracker issue would be appreciated.

@5cs
Copy link
Contributor Author

5cs commented Aug 17, 2022

A tracker issue would be appreciated.

will create one when my newly created tracker account is approved

After a single-bucket run and its lc entry is removed since the
bucket is deleted, we will have lc shard object's head marker
point to a non-exist lc entry. Finally, buckets that are hashed
to this lc shard can not have any lifecycle progress. Fix it
by skipping the non-exist marker.

Fixes: https://tracker.ceph.com/issues/57162

Signed-off-by: Tongliang Deng <dengtongliang@gmail.com>
@5cs
Copy link
Contributor Author

5cs commented Aug 17, 2022

Tracker issue created: https://tracker.ceph.com/issues/57162, PTAL @mattbenjamin

@github-actions
Copy link

This pull request has been automatically marked as stale because it has not had any activity for 60 days. It will be closed if no further activity occurs for another 30 days.
If you are a maintainer or core committer, please follow-up on this pull request to identify what steps should be taken by the author to move this proposed change forward.
If you are the author of this pull request, thank you for your proposed contribution. If you believe this change is still appropriate, please ensure that any feedback has been addressed and ask for a code review.

@github-actions github-actions bot added the stale label May 18, 2023
@mattbenjamin
Copy link
Contributor

@cbodley how can we restart this one?

@mattbenjamin mattbenjamin requested review from cbodley and a team May 18, 2023 17:30
@github-actions github-actions bot removed the stale label May 18, 2023
@ivancich
Copy link
Member

ivancich commented Jun 7, 2023

jenkins test api

@ivancich ivancich added the wip-eric-testing-1 for ivancich testing label Jun 21, 2023
@ivancich ivancich merged commit 892fd71 into ceph:main Jun 30, 2023
1 check passed
@ivancich ivancich removed needs-qa wip-eric-testing-1 for ivancich testing labels Jun 30, 2023
@ivancich
Copy link
Member

ivancich commented Jul 2, 2023

@5cs @mattbenjamin Does this need backports? It reads like a bug but I don't know when it was introduced.

soumyakoduri added a commit to soumyakoduri/ceph that referenced this pull request Mar 26, 2024
This is extension to ceph#47595.

When skipping the non-exist LC entry, instead of get_next_entry(),
use advance_head() to fetch the next entry. In case the cycle
is finished for that shard, head should be reset to avoid lc process
being stuck in indefinite loop.

Signed-off-by: Soumya Koduri <skoduri@redhat.com>
soumyakoduri added a commit to soumyakoduri/ceph that referenced this pull request Mar 26, 2024
This is extension to ceph#47595.

When skipping the non-exist LC entry, instead of get_next_entry(),
use advance_head() to fetch the next entry. In case the cycle
is finished for that shard, head should be reset to avoid lc process
being stuck in indefinite loop.

Fixes: https://tracker.ceph.com/issues/65160
Signed-off-by: Soumya Koduri <skoduri@redhat.com>
soumyakoduri added a commit to soumyakoduri/ceph that referenced this pull request Mar 26, 2024
This is extension to ceph#47595.

When skipping the non-exist LC entry, instead of get_next_entry(),
use advance_head() to fetch the next entry. In case the cycle
is finished for that shard, head should be reset to avoid lc process
being stuck in indefinite loop.

Fixes: https://tracker.ceph.com/issues/65160
Signed-off-by: Soumya Koduri <skoduri@redhat.com>
soumyakoduri added a commit to soumyakoduri/ceph that referenced this pull request Apr 3, 2024
This is extension to ceph#47595.

When skipping the non-exist LC entry, instead of get_next_entry(),
use advance_head() to fetch the next entry. In case the cycle
is finished for that shard, head should be reset to avoid lc process
being stuck in indefinite loop.

Fixes: https://tracker.ceph.com/issues/65160
Signed-off-by: Soumya Koduri <skoduri@redhat.com>
leonid-s-usov pushed a commit to ceph/ceph-ci that referenced this pull request Apr 8, 2024
This is extension to ceph/ceph#47595.

When skipping the non-exist LC entry, instead of get_next_entry(),
use advance_head() to fetch the next entry. In case the cycle
is finished for that shard, head should be reset to avoid lc process
being stuck in indefinite loop.

Fixes: https://tracker.ceph.com/issues/65160
Resolves: rhbz#2270334

Signed-off-by: Soumya Koduri <skoduri@redhat.com>
soumyakoduri added a commit to ceph/ceph-ci that referenced this pull request Apr 10, 2024
This is extension to ceph/ceph#47595.

When skipping the non-exist LC entry, instead of get_next_entry(),
use advance_head() to fetch the next entry. In case the cycle
is finished for that shard, head should be reset to avoid lc process
being stuck in indefinite loop.

Fixes: https://tracker.ceph.com/issues/65160
Signed-off-by: Soumya Koduri <skoduri@redhat.com>
soumyakoduri added a commit to ceph/ceph-ci that referenced this pull request Apr 10, 2024
This is extension to ceph/ceph#47595.

When skipping the non-exist LC entry, instead of get_next_entry(),
use advance_head() to fetch the next entry. In case the cycle
is finished for that shard, head should be reset to avoid lc process
being stuck in indefinite loop.

Fixes: https://tracker.ceph.com/issues/65160
Signed-off-by: Soumya Koduri <skoduri@redhat.com>
soumyakoduri added a commit to soumyakoduri/ceph that referenced this pull request Apr 23, 2024
This is extension to ceph#47595.

When skipping the non-exist LC entry, instead of get_next_entry(),
use advance_head() to fetch the next entry. In case the cycle
is finished for that shard, head should be reset to avoid lc process
being stuck in indefinite loop.

Fixes: https://tracker.ceph.com/issues/65160
Signed-off-by: Soumya Koduri <skoduri@redhat.com>
soumyakoduri added a commit to soumyakoduri/ceph that referenced this pull request Apr 26, 2024
This is extension to ceph#47595.

When skipping the non-exist LC entry, instead of get_next_entry(),
use advance_head() to fetch the next entry. In case the cycle
is finished for that shard, head should be reset to avoid lc process
being stuck in indefinite loop.

Fixes: https://tracker.ceph.com/issues/65160
Signed-off-by: Soumya Koduri <skoduri@redhat.com>
(cherry picked from commit 86a8709)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
4 participants