From 9c6c4d8fef67380e2a6d93f6c101744c926d8b9b Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Wed, 6 Jul 2016 19:41:54 +0800 Subject: [PATCH] osd: increment stas on recovery pull also PGMap::recovery_rate_summary() summaries the recovery progress from a pool's pool_stat_t.stats.sum.num_{objects_recovered,bytes_recovered,keys_recovered}, now we only increment stats on completion of recovery push, but there are chances that a PG recovers by pulling data from replicas to primary. in that case, teuthology will erroneously consider recovery hung: a zero recovering_keys_per_sec or recovering_bytes_per_sec or recovering_objects_per_sec. so we should increment stats on pull as well. Fixes: http://tracker.ceph.com/issues/16277 Signed-off-by: Kefu Chai --- src/osd/ReplicatedBackend.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/osd/ReplicatedBackend.cc b/src/osd/ReplicatedBackend.cc index eb580144b7f1..f363d780a08f 100644 --- a/src/osd/ReplicatedBackend.cc +++ b/src/osd/ReplicatedBackend.cc @@ -1832,7 +1832,11 @@ bool ReplicatedBackend::handle_pull_response( pop.omap_entries, t); + pi.stat.num_keys_recovered += pop.omap_entries.size(); + pi.stat.num_bytes_recovered += data.length(); + if (complete) { + pi.stat.num_objects_recovered++; to_continue->push_back(hoid); get_parent()->on_local_recover( hoid, pi.recovery_info, pi.obc, t); -- 2.47.3