]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
osd,mon: keep last_epoch_started along with last_epoch_clean premerge 24566/head
authorSage Weil <sage@redhat.com>
Fri, 12 Oct 2018 21:10:45 +0000 (16:10 -0500)
committerSage Weil <sage@redhat.com>
Fri, 12 Oct 2018 21:18:22 +0000 (16:18 -0500)
commit450f337d6fd048c8c95a0ec0dec0d97f5474922e
tree8586c7d84e53a582da3c36c8cb674f3a3843cb52
parent9e58faf4a515925abf2973d75acd228fde24f379
osd,mon: keep last_epoch_started along with last_epoch_clean premerge

We need to populate both the last_epoch_clean and last_epoch_started
accurately when fabricating a pg merge target.  In the case where the
premerge PG peers, recovers (e.g., backfill), then becomes ready to
merge, the last_epoch_clean may be > the last_epoch_started, and using
the later last_epoch_clean will prevent the PG from subsequently
peering (it'll go to incomplete state instead).

Fix by keeping both values, separately.

Signed-off-by: Sage Weil <sage@redhat.com>
src/messages/MOSDPGReadyToMerge.h
src/mon/OSDMonitor.cc
src/osd/OSD.cc
src/osd/OSD.h
src/osd/PG.cc
src/osd/PG.h
src/osd/osd_types.cc
src/osd/osd_types.h