Project

General

Profile

Feature #9779

libceph: sync up with objecter

Added by Ilya Dryomov almost 6 years ago. Updated over 4 years ago.

Status:
Resolved
Priority:
Urgent
Assignee:
Category:
libceph
Target version:
-
% Done:

0%

Source:
other
Tags:
Backport:
Reviewed:
Affected Versions:

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


Related issues

Related to Linux kernel client - Bug #8568: libceph: kernel BUG at net/ceph/osd_client.c:885 Closed 06/10/2014
Related to Linux kernel client - Bug #11960: Kernel panic when deleting a pool, which contains a mapped RBD Closed 06/11/2015
Related to Linux kernel client - Bug #12254: krbd image watch Closed 07/09/2015
Related to Linux kernel client - Bug #13081: data on rbd image get corrupted when pool quota is smaller than the size of the rbd image Resolved 09/14/2015
Related to Linux kernel client - Feature #14201: cope with a pool being removed from under a mapped image Resolved 12/30/2015
Blocks Linux kernel client - Feature #10585: use new, more reliable version of watch/notify Resolved 01/20/2015

History

#1 Updated by Ilya Dryomov almost 6 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.

#2 Updated by Ilya Dryomov almost 6 years ago

  • Subject changed from sync up with objecter to libceph: sync up with objecter

#3 Updated by Ilya Dryomov over 5 years ago

  • Status changed from New to In Progress
  • Assignee set to Ilya Dryomov
  • Priority changed from Normal to Urgent

#4 Updated by Ilya Dryomov over 4 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

#5 Updated by Ilya Dryomov over 4 years ago

  • Related to Feature #14201: cope with a pool being removed from under a mapped image added

#6 Updated by Ilya Dryomov over 4 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.

Also available in: Atom PDF