]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
osd rados command: Change "oi_attr" to "info" in scrub handling errors
authorDavid Zafman <dzafman@redhat.com>
Fri, 16 Mar 2018 00:09:43 +0000 (17:09 -0700)
committerDavid Zafman <dzafman@redhat.com>
Tue, 10 Apr 2018 20:26:08 +0000 (13:26 -0700)
oi_attr_missing -> info_missing
oi_attr_corrupted -> info_corrupted

Signed-off-by: David Zafman <dzafman@redhat.com>
doc/rados/command/list-inconsistent-obj.json
doc/rados/command/list-inconsistent-snap.json
qa/standalone/scrub/osd-scrub-repair.sh
qa/standalone/scrub/osd-scrub-snaps.sh
src/common/scrub_types.cc
src/common/scrub_types.h
src/include/rados/rados_types.hpp
src/osd/PGBackend.cc
src/osd/PrimaryLogPG.cc
src/tools/rados/rados.cc

index ba915b118092bea21456e9293bf51f499d9e11f5..6e7fd5f35068cfea7211c76d27955c9d051c6ba4 100644 (file)
@@ -65,8 +65,8 @@
                 "size_mismatch_oi",
                 "ec_hash_error",
                 "ec_size_error",
-                "oi_attr_missing",
-                "oi_attr_corrupted",
+                "info_missing",
+                "info_corrupted",
                 "obj_size_oi_mismatch",
                 "snapset_missing",
                 "snapset_corrupted",
                       "size_mismatch_oi",
                       "ec_hash_error",
                       "ec_size_error",
-                      "oi_attr_missing",
-                      "oi_attr_corrupted",
+                      "info_missing",
+                      "info_corrupted",
                       "obj_size_oi_mismatch",
                       "snapset_missing",
                       "snapset_corrupted",
index 30416c91b7774e26bd06d176fdf141543a7461e6..76bb478cfafbc3b4a12d780edcf20b9439361550 100644 (file)
@@ -42,8 +42,8 @@
               "enum": [
                 "snapset_missing",
                 "snapset_corrupted",
-                "oi_attr_missing",
-                "oi_attr_corrupted",
+                "info_missing",
+                "info_corrupted",
                 "snapset_mismatch",
                 "head_mismatch",
                 "headless",
index 592f0da1eae4676832e8b1569914dc20aeb9da85..bcfeb3712960eb25be6c96bd4d0dcc8cf1273322 100755 (executable)
@@ -740,7 +740,7 @@ function TEST_corrupt_scrub_replicated() {
             }
           ],
           "errors": [
-            "oi_attr_corrupted"
+            "info_corrupted"
           ],
           "osd": 0,
           "primary": false
@@ -755,15 +755,15 @@ function TEST_corrupt_scrub_replicated() {
             }
           ],
           "errors": [
-            "oi_attr_missing"
+            "info_missing"
           ],
           "osd": 1,
           "primary": true
         }
       ],
       "union_shard_errors": [
-        "oi_attr_missing",
-        "oi_attr_corrupted"
+        "info_missing",
+        "info_corrupted"
       ],
       "errors": [],
       "object": {
@@ -804,7 +804,7 @@ function TEST_corrupt_scrub_replicated() {
           ],
           "size": 7,
           "errors": [
-            "oi_attr_missing"
+            "info_missing"
           ],
           "osd": 1,
           "primary": true
@@ -812,7 +812,7 @@ function TEST_corrupt_scrub_replicated() {
       ],
       "selected_object_info": "3:30259878:::ROBJ15:head(47'46 osd.0.0:45 dirty|omap|data_digest s 7 uv 45 dd 2ddbf8f5 alloc_hint [0 0 0])",
       "union_shard_errors": [
-        "oi_attr_missing"
+        "info_missing"
       ],
       "errors": [],
       "object": {
@@ -1215,7 +1215,7 @@ EOF
           "omap_digest": "0x4f14f849",
           "size": 7,
           "errors": [
-            "oi_attr_corrupted"
+            "info_corrupted"
           ],
           "osd": 0,
           "primary": false
@@ -1232,15 +1232,15 @@ EOF
           "omap_digest": "0x4f14f849",
           "size": 7,
           "errors": [
-            "oi_attr_missing"
+            "info_missing"
           ],
           "osd": 1,
           "primary": true
         }
       ],
       "union_shard_errors": [
-        "oi_attr_missing",
-        "oi_attr_corrupted"
+        "info_missing",
+        "info_corrupted"
       ],
       "errors": [],
       "object": {
@@ -1285,7 +1285,7 @@ EOF
           "omap_digest": "0x2d2a4d6e",
           "size": 7,
           "errors": [
-            "oi_attr_missing"
+            "info_missing"
           ],
           "osd": 1,
           "primary": true
@@ -1293,7 +1293,7 @@ EOF
       ],
       "selected_object_info": "3:30259878:::ROBJ15:head(47'46 osd.0.0:45 dirty|omap|data_digest s 7 uv 45 dd 2ddbf8f5 alloc_hint [0 0 0])",
       "union_shard_errors": [
-        "oi_attr_missing"
+        "info_missing"
       ],
       "errors": [],
       "object": {
index ff0293e5b4fd09631d3887f489835adf29459e01..5c51fad31b198d23ae79cac3a393c9b3e2851310 100755 (executable)
@@ -271,7 +271,7 @@ function TEST_scrub_snaps() {
     },
     {
       "errors": [
-        "oi_attr_missing",
+        "info_missing",
         "headless"
       ],
       "snap": 7,
index 9198009176110fc1bdad6b67ccccf00c6e1d4f5c..11f0d8bcd9ad64b7b146ec24551fcf7fff59e8f5 100644 (file)
@@ -190,9 +190,9 @@ void inconsistent_snapset_wrapper::set_snapset_missing()
   errors |= inc_snapset_t::SNAPSET_MISSING;
 }
 
-void inconsistent_snapset_wrapper::set_oi_attr_missing()
+void inconsistent_snapset_wrapper::set_info_missing()
 {
-  errors |= inc_snapset_t::OI_MISSING;
+  errors |= inc_snapset_t::INFO_MISSING;
 }
 
 void inconsistent_snapset_wrapper::set_snapset_corrupted()
@@ -200,9 +200,9 @@ void inconsistent_snapset_wrapper::set_snapset_corrupted()
   errors |= inc_snapset_t::SNAPSET_CORRUPTED;
 }
 
-void inconsistent_snapset_wrapper::set_oi_attr_corrupted()
+void inconsistent_snapset_wrapper::set_info_corrupted()
 {
-  errors |= inc_snapset_t::OI_CORRUPTED;
+  errors |= inc_snapset_t::INFO_CORRUPTED;
 }
 
 void inconsistent_snapset_wrapper::set_clone_missing(snapid_t snap)
index e7c4ad97c219bbae16c65b8a9598e59906859b5b..2f79fac3e3fc39ec58670fceb5df8d3eef23806b 100644 (file)
@@ -68,11 +68,11 @@ public:
   void set_ec_size_mismatch() {
     errors |= err_t::SHARD_EC_SIZE_MISMATCH;
   }
-  void set_oi_attr_missing() {
-    errors |= err_t::OI_ATTR_MISSING;
+  void set_info_missing() {
+    errors |= err_t::INFO_MISSING;
   }
-  void set_oi_attr_corrupted() {
-    errors |= err_t::OI_ATTR_CORRUPTED;
+  void set_info_corrupted() {
+    errors |= err_t::INFO_CORRUPTED;
   }
   void set_snapset_missing() {
     errors |= err_t::SNAPSET_MISSING;
@@ -154,9 +154,9 @@ struct inconsistent_snapset_wrapper : public librados::inconsistent_snapset_t {
   // soid claims that it is a head or a snapdir, but its SS_ATTR
   // is missing.
   void set_snapset_missing();
-  void set_oi_attr_missing();
+  void set_info_missing();
   void set_snapset_corrupted();
-  void set_oi_attr_corrupted();
+  void set_info_corrupted();
   // snapset with missing clone
   void set_clone_missing(snapid_t);
   // Clones that are there
index f5d89e5f1e67dc5f2869f72d5d87fcae6d4af5ae..0f06e8157e0e0008f99c76fb0aa5e48d81e2dba9 100644 (file)
@@ -60,8 +60,10 @@ struct err_t {
     SIZE_MISMATCH_OI        = 1 << 11,
     SHARD_EC_HASH_MISMATCH  = 1 << 12,
     SHARD_EC_SIZE_MISMATCH  = 1 << 13,
-    OI_ATTR_MISSING         = 1 << 14,
-    OI_ATTR_CORRUPTED       = 1 << 15,
+    OI_ATTR_MISSING         = 1 << 14, // Old
+    INFO_MISSING         = 1 << 14,
+    OI_ATTR_CORRUPTED       = 1 << 15, // Old
+    INFO_CORRUPTED       = 1 << 15,
     SS_ATTR_MISSING         = 1 << 16, // Old
     SNAPSET_MISSING         = 1 << 16,
     SS_ATTR_CORRUPTED       = 1 << 17, // Old
@@ -72,7 +74,7 @@ struct err_t {
     // When adding more here add to either SHALLOW_ERRORS or DEEP_ERRORS
   };
   uint64_t errors = 0;
-  static constexpr uint64_t SHALLOW_ERRORS = SHARD_MISSING|SHARD_STAT_ERR|SIZE_MISMATCH_OI|OI_ATTR_MISSING|OI_ATTR_CORRUPTED|SNAPSET_MISSING|SNAPSET_CORRUPTED|OBJ_SIZE_OI_MISMATCH|HINFO_MISSING|HINFO_CORRUPTED;
+  static constexpr uint64_t SHALLOW_ERRORS = SHARD_MISSING|SHARD_STAT_ERR|SIZE_MISMATCH_OI|INFO_MISSING|INFO_CORRUPTED|SNAPSET_MISSING|SNAPSET_CORRUPTED|OBJ_SIZE_OI_MISMATCH|HINFO_MISSING|HINFO_CORRUPTED;
   static constexpr uint64_t DEEP_ERRORS = SHARD_READ_ERR|DATA_DIGEST_MISMATCH_OI|OMAP_DIGEST_MISMATCH_OI|SHARD_EC_HASH_MISMATCH|SHARD_EC_SIZE_MISMATCH;
   bool has_shard_missing() const {
     return errors & SHARD_MISSING;
@@ -98,12 +100,18 @@ struct err_t {
   bool has_ec_size_error() const {
     return errors & SHARD_EC_SIZE_MISMATCH;
   }
-  bool has_oi_attr_missing() const {
+  bool has_oi_attr_missing() const {    // Compatibility
     return errors & OI_ATTR_MISSING;
   }
-  bool has_oi_attr_corrupted() const {
+  bool has_info_missing() const {
+    return errors & INFO_MISSING;
+  }
+  bool has_oi_attr_corrupted() const {  // Compatibility
     return errors & OI_ATTR_CORRUPTED;
   }
+  bool has_info_corrupted() const {
+    return errors & INFO_CORRUPTED;
+  }
   bool has_ss_attr_missing() const {   // Compatibility
     return errors & SS_ATTR_MISSING;
   }
@@ -230,8 +238,10 @@ struct inconsistent_snapset_t {
     HEAD_MISMATCH  = 1 << 4,
     HEADLESS_CLONE = 1 << 5,
     SIZE_MISMATCH  = 1 << 6,
-    OI_MISSING   = 1 << 7,
-    OI_CORRUPTED = 1 << 8,
+    OI_MISSING   = 1 << 7,    // Old
+    INFO_MISSING   = 1 << 7,
+    OI_CORRUPTED = 1 << 8,    // Old
+    INFO_CORRUPTED = 1 << 8,
     EXTRA_CLONES = 1 << 9,
   };
   uint64_t errors = 0;
@@ -267,12 +277,18 @@ struct inconsistent_snapset_t {
   bool size_mismatch() const {
     return errors & SIZE_MISMATCH;
   }
-  bool oi_attr_missing() const {
+  bool oi_attr_missing() const {   // Compatibility
     return errors & OI_MISSING;
   }
-  bool oi_attr_corrupted() const {
+  bool info_missing() const {
+    return errors & INFO_MISSING;
+  }
+  bool oi_attr_corrupted() const {  // Compatibility
     return errors & OI_CORRUPTED;
   }
+  bool info_corrupted() const {
+    return errors & INFO_CORRUPTED;
+  }
   bool extra_clones() const {
     return errors & EXTRA_CLONES;
   }
index ff262c574421fc8dd8c8358c7c25972bf91397e7..8e5da9178d71cc429609ec62e758d483016d3230 100644 (file)
@@ -866,8 +866,8 @@ map<pg_shard_t, ScrubMap *>::const_iterator
     k = i->second.attrs.find(OI_ATTR);
     if (k == i->second.attrs.end()) {
       // no object info on object, probably corrupt
-      shard_info.set_oi_attr_missing();
-      error_string += " oi_attr_missing";
+      shard_info.set_info_missing();
+      error_string += " info_missing";
       goto out;
     }
     bl.push_back(k->second);
@@ -876,8 +876,8 @@ map<pg_shard_t, ScrubMap *>::const_iterator
       decode(oi, bliter);
     } catch (...) {
       // invalid object info, probably corrupt
-      shard_info.set_oi_attr_corrupted();
-      error_string += " oi_attr_corrupted";
+      shard_info.set_info_corrupted();
+      error_string += " info_corrupted";
       goto out;
     }
 
index 911863d4e3ac470bebdae9c65342f8ec0dd0fb87..d797c602bb5ca60fb8a06a72a07e6ebf2396ac37 100644 (file)
@@ -14400,7 +14400,7 @@ void PrimaryLogPG::scrub_snapshot_metadata(
       osd->clog->error() << mode << " " << info.pgid << " " << soid
                        << " no '" << OI_ATTR << "' attr";
       ++scrubber.shallow_errors;
-      soid_error.set_oi_attr_missing();
+      soid_error.set_info_missing();
     } else {
       bufferlist bv;
       bv.push_back(p->second.attrs[OI_ATTR]);
@@ -14412,8 +14412,8 @@ void PrimaryLogPG::scrub_snapshot_metadata(
        osd->clog->error() << mode << " " << info.pgid << " " << soid
                << " can't decode '" << OI_ATTR << "' attr " << e.what();
        ++scrubber.shallow_errors;
-       soid_error.set_oi_attr_corrupted();
-        soid_error.set_oi_attr_missing(); // Not available too
+       soid_error.set_info_corrupted();
+        soid_error.set_info_missing(); // Not available too
       }
     }
 
index 16e00a48acef7e0516954655726083e426db2607..37ef97f0cc738ae94cfd077ffdfd8fca55dedca8 100644 (file)
@@ -1340,10 +1340,10 @@ static void dump_errors(const err_t &err, Formatter &f, const char *name)
     f.dump_string("error", "ec_hash_error");
   if (err.has_ec_size_error())
     f.dump_string("error", "ec_size_error");
-  if (err.has_oi_attr_missing())
-    f.dump_string("error", "oi_attr_missing");
-  if (err.has_oi_attr_corrupted())
-    f.dump_string("error", "oi_attr_corrupted");
+  if (err.has_info_missing())
+    f.dump_string("error", "info_missing");
+  if (err.has_info_corrupted())
+    f.dump_string("error", "info_corrupted");
   if (err.has_obj_size_oi_mismatch())
     f.dump_string("error", "obj_size_oi_mismatch");
   if (err.has_snapset_missing())
@@ -1375,7 +1375,7 @@ static void dump_shard(const shard_info_t& shard,
     f.dump_format("data_digest", "0x%08x", shard.data_digest);
   }
 
-  if (!shard.has_oi_attr_missing() && !shard.has_oi_attr_corrupted() &&
+  if (!shard.has_info_missing() && !shard.has_info_corrupted() &&
       inc.has_object_info_inconsistency()) {
     object_info_t oi;
     bufferlist bl;
@@ -1406,8 +1406,8 @@ static void dump_shard(const shard_info_t& shard,
     f.dump_stream("hashinfo") << hi;
   }
   if (inc.has_attr_name_mismatch() || inc.has_attr_value_mismatch()
-     || inc.union_shards.has_oi_attr_missing()
-     || inc.union_shards.has_oi_attr_corrupted()
+     || inc.union_shards.has_info_missing()
+     || inc.union_shards.has_info_corrupted()
      || inc.union_shards.has_snapset_missing()
      || inc.union_shards.has_snapset_corrupted()
      || inc.union_shards.has_hinfo_missing()
@@ -1514,10 +1514,10 @@ static void dump_inconsistent(const inconsistent_snapset_t& inc,
     f.dump_string("error", "snapset_missing");
   if (inc.snapset_corrupted())
     f.dump_string("error", "snapset_corrupted");
-  if (inc.oi_attr_missing())
-    f.dump_string("error", "oi_attr_missing");
-  if (inc.oi_attr_corrupted())
-    f.dump_string("error", "oi_attr_corrupted");
+  if (inc.info_missing())
+    f.dump_string("error", "info_missing");
+  if (inc.info_corrupted())
+    f.dump_string("error", "info_corrupted");
   if (inc.snapset_mismatch())
     f.dump_string("error", "snapset_mismatch");
   if (inc.head_mismatch())