]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
Merge pull request #20098 from ovh/bp-luminous-snaptrimq-visibility
authorJosh Durgin <jdurgin@redhat.com>
Fri, 2 Feb 2018 23:47:11 +0000 (15:47 -0800)
committerGitHub <noreply@github.com>
Fri, 2 Feb 2018 23:47:11 +0000 (15:47 -0800)
luminous: osd, pg, mgr: make snap trim queue problems visible

Reviewed-by: Josh Durgin <jdurgin@redhat.com>
1  2 
src/common/legacy_config_opts.h
src/common/options.cc
src/mon/PGMap.cc
src/osd/PG.cc
src/osd/PrimaryLogPG.cc
src/osd/osd_types.cc
src/osd/osd_types.h

Simple merge
Simple merge
Simple merge
diff --cc src/osd/PG.cc
index 968d457cc55c8e2912f93d5114d4a932a12a388d,255e0d3751552cdea01701ff43d60566d8f3f7c2..85f402df7473e6205388d2c36d8daa4f62b036b8
@@@ -2579,15 -2566,20 +2579,16 @@@ void PG::_update_calc_stats(
    info.stats.ondisk_log_size = info.stats.log_size;
    info.stats.log_start = pg_log.get_tail();
    info.stats.ondisk_log_start = pg_log.get_tail();
+   info.stats.snaptrimq_len = snap_trimq.size();
  
 -  // If actingset is larger then upset we will have misplaced,
 -  // so we will report based on actingset size.
 -
 -  // If upset is larger then we will have degraded,
 -  // so we will report based on upset size.
 +  unsigned num_shards = get_osdmap()->get_pg_size(info.pgid.pgid);
  
 -  // If target is the largest of them all, it will contribute to
 -  // the degraded count because num_object_copies is
 -  // computed using target and eventual used to get degraded total.
 -
 -  unsigned target = get_osdmap()->get_pg_size(info.pgid.pgid);
 -  unsigned nrep = MAX(actingset.size(), upset.size());
 +  // In rare case that upset is too large (usually transient), use as target
 +  // for calculations below.
 +  unsigned target = std::max(num_shards, (unsigned)upset.size());
 +  // Not sure this could ever happen, that actingset > upset
 +  // which only matters if actingset > num_shards.
 +  unsigned nrep = std::max(actingset.size(), upset.size());
    // calc num_object_copies
    info.stats.stats.calc_copies(MAX(target, nrep));
    info.stats.stats.sum.num_objects_degraded = 0;
Simple merge
Simple merge
Simple merge