]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd/PG: do not blindly roll forward to log.head
authorSage Weil <sage@redhat.com>
Wed, 11 Jul 2018 01:22:49 +0000 (20:22 -0500)
committerSage Weil <sage@redhat.com>
Wed, 11 Jul 2018 22:06:02 +0000 (17:06 -0500)
If we are told we can roll forward by the primary, we should only roll
forward as far as the primary says we can.

This probably came out of the similar case in append_log(), but notably
that roll_forward() only happens if !transaction_applied (i.e., backfill
target), and that condition is not checked here.

Fixes: http://tracker.ceph.com/issues/24597
Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit 858ff647ff7bd1f6277823b5185ead5ffebc05b0)

src/osd/PG.cc

index c0c5bf9fd3b1924890d190ebc12f5980d0ab3da2..faff080654a02bf2b39280c9f922c1ca52168198 100644 (file)
@@ -5564,9 +5564,6 @@ bool PG::append_log_entries_update_missing(
   assert(entries.begin()->version > info.last_update);
 
   PGLogEntryHandler rollbacker{this, &t};
-  if (roll_forward_to) {
-    pg_log.roll_forward(&rollbacker);
-  }
   bool invalidate_stats =
     pg_log.append_new_log_entries(info.last_backfill,
                                  info.last_backfill_bitwise,