From 174e03c36625afd4c3e4ffb44b6b0d4e49cab63b Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Fri, 21 Nov 2008 10:52:26 -0800 Subject: [PATCH] osd: ignore pushes if stray We need to verify a push is coming from the current primary if we are any non-primary, including a stray. Fixes bad assertion osd/ReplicatedPG.cc:2322: FAILED assert in 'void ReplicatedPG::sub_op_push(MOSDSubOp*)': log.complete_to != log.log.end() --- src/osd/ReplicatedPG.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index dafa1f2268a4b..cb1c1af1d089d 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -2201,8 +2201,8 @@ void ReplicatedPG::sub_op_push(MOSDSubOp *op) interval_set<__u64> data_subset; map > clone_subsets; - if (is_replica()) { - // replica should only accept pushes from the current primary. + if (!is_primary()) { + // non-primary should only accept pushes from the current primary. if (op->map_epoch < info.history.same_primary_since) { dout(10) << "sub_op_push discarding old sub_op from " << op->map_epoch << " < " << info.history.same_primary_since << dendl; -- 2.39.5