]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: SnapSet::dump() handle snapid_t not in clone_overlap or clone_size
authorDavid Zafman <dzafman@redhat.com>
Wed, 4 Apr 2018 23:07:09 +0000 (16:07 -0700)
committerDavid Zafman <dzafman@redhat.com>
Wed, 11 Apr 2018 16:36:02 +0000 (09:36 -0700)
Signed-off-by: David Zafman <dzafman@redhat.com>
(cherry picked from commit 866a52e5673e296a66dfa9407dcf9375f80b7f73)

src/osd/osd_types.cc

index 14549ba2a6b5cceb6a22bfd81b59cf23317f5383..8de69a82119892bdb8ba04e69e4789725bfc4639 100644 (file)
@@ -4883,8 +4883,16 @@ void SnapSet::dump(Formatter *f) const
   for (vector<snapid_t>::const_iterator p = clones.begin(); p != clones.end(); ++p) {
     f->open_object_section("clone");
     f->dump_unsigned("snap", *p);
-    f->dump_unsigned("size", clone_size.find(*p)->second);
-    f->dump_stream("overlap") << clone_overlap.find(*p)->second;
+    auto cs = clone_size.find(*p);
+    if (cs != clone_size.end())
+      f->dump_unsigned("size", cs->second);
+    else
+      f->dump_string("size", "????");
+    auto co = clone_overlap.find(*p);
+    if (co != clone_overlap.end())
+      f->dump_stream("overlap") << co->second;
+    else
+      f->dump_stream("overlap") << "????";
     auto q = clone_snaps.find(*p);
     if (q != clone_snaps.end()) {
       f->open_array_section("snaps");