]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
crimson/osd/pg: discard watches' states after iterating all cached obcs 53127/head
authorXuehan Xu <xuxuehan@qianxin.com>
Thu, 24 Aug 2023 04:14:13 +0000 (12:14 +0800)
committerXuehan Xu <xxhdx1985126@gmail.com>
Thu, 24 Aug 2023 04:23:53 +0000 (12:23 +0800)
commit094af522c7062cb91c87991ec55cbf67ee1da4dc
tree6340abca37d94aea68b88d6da3cbb7bd1cb042ed
parentce9771bbebacbdaa00156429bc382aaa4d40ea61
crimson/osd/pg: discard watches' states after iterating all cached obcs

Discarding watches' states while iterating cached obcs might have the
following problem:

1. discard a watch's state
2. the corresponding object context's use_count drops to zero
3. the object context is unreferenced by obc lru
4. obc is deleted from obc lru by lru's evict()
5. obc iteration is corrupted

Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
src/crimson/osd/pg.cc