Feature #9779
closedlibceph: sync up with objecter
0%
Description
- the way we resend lingering requests isn't quite the same
- __map_request() is too aggressive about resending:
If the primary does not change, and it is a non-linger request, then we do not need to resend (the OSD will requeue internally). It's mostly harmless to resend as far as correctness goes... just additional bandwidth.
- probably more
Updated by Ilya Dryomov over 9 years ago
Make sure not to break existing (correct!) behavior: we need to resent watch or notify when any member of the acting set changes, not just the primary (#9220).
Make sure this fixes reproducers http://tracker.ceph.com/issues/11960#note-7 and http://tracker.ceph.com/issues/8568#note-8.
Updated by Ilya Dryomov over 9 years ago
- Subject changed from sync up with objecter to libceph: sync up with objecter
Updated by Ilya Dryomov almost 9 years ago
- Status changed from New to In Progress
- Assignee set to Ilya Dryomov
- Priority changed from Normal to Urgent
Updated by Ilya Dryomov almost 8 years ago
- Related to Bug #13081: data on rbd image get corrupted when pool quota is smaller than the size of the rbd image added
Updated by Ilya Dryomov almost 8 years ago
- Related to Feature #14201: cope with a pool being removed from under a mapped image added
Updated by Ilya Dryomov almost 8 years ago
- Category set to libceph
- Status changed from In Progress to Resolved
Done in 4.7. Highlights:
- per-session request trees (vs a global per-client tree)
- per-session locking (vs a global per-client rwlock)
- homeless OSD session
- no ad-hoc global per-client lists
- support for pool quotas
- watch/notify v2 support
- map check (pool deletion detection) support
Also fixes #9806 (corresponding fix for the kernel client), #11960, #12254.
Effectively closes out-of-order/misdirected issues #10889, #12691, #14901 and map_sem/request_mutex issues #14022, #15891.