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
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
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>
927db63
to
479a926
Compare
Tracker issue created: https://tracker.ceph.com/issues/57162, PTAL @mattbenjamin |
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. |
@cbodley how can we restart this one? |
jenkins test api |
@5cs @mattbenjamin Does this need backports? It reads like a bug but I don't know when it was introduced. |
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>
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>
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>
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>
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>
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>
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>
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>
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)
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
To sign and title your commits, please refer to Submitting Patches to Ceph.
If you are submitting a fix for a stable branch (e.g. "pacific"), please refer to Submitting Patches to Ceph - Backports for the proper workflow.
Checklist
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