-
Notifications
You must be signed in to change notification settings - Fork 5.9k
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
crimson/osd/pg: reset the snap mapper's backend when pg interval changes #57125
base: main
Are you sure you want to change the base?
Conversation
Can you please explain how this assert relates to the stale cache? |
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 other than removing the ifdef's
src/common/map_cacher.hpp
Outdated
@@ -85,6 +85,12 @@ class MapCacher { | |||
public: | |||
MapCacher(StoreDriver<K, V> *driver) : driver(driver) {} | |||
|
|||
#ifdef WITH_SEASTAR |
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.
This behavior is not specific to seastar, remove the ifdef.
src/common/sharedptr_registry.hpp
Outdated
@@ -61,6 +61,13 @@ class SharedPtrRegistry { | |||
waiting(0) | |||
{} | |||
|
|||
#ifdef WITH_SEASTAR |
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.
This behavior is not specific to seastar, remove the ifdef.
src/osd/SnapMapper.h
Outdated
@@ -356,6 +356,13 @@ class SnapMapper : public Scrub::SnapMapReaderI { | |||
return prefix_itr; | |||
} | |||
|
|||
#ifdef WITH_SEASTAR |
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.
This behavior is not specific to seastar, remove the ifdef.
This is a little bit tricky.
|
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.
This is a little bit tricky.
- Snaps
snap1
andsnap2
on objectobj1
maps to the same clonec
- Snap
snap1
is being trimmed on PGP
;- Before
snap1
ofobj1
is trimmed and after theobj1 <-> snap1
mapping is removed from the snap mapper,P
's interval changed;- Snap
snap2
is trimmed onobj1
and caused thec
to be removed- The osd gets restarted and find that
snap1
ofobj1
hasn't been trimmed- The osd tries to trim
snap1
onobj1
and meet the assertioncit != std::end(ss.clones)
Ah, thanks! LGTM besides comments left by @athanatos
All done:-) |
Fixes: https://tracker.ceph.com/issues/65679 Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
jenkins test windows |
Fixes: https://tracker.ceph.com/issues/65679
Signed-off-by: Xuehan Xu xuxuehan@qianxin.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. "quincy"), please refer to Submitting Patches to Ceph - Backports for the proper workflow.
When filling out the below checklist, you may click boxes directly in the GitHub web UI. When entering or editing the entire PR message in the GitHub web UI editor, you may also select a checklist item by adding an
x
between the brackets:[x]
. Spaces and capitalization matter when checking off items this way.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
jenkins test rook e2e