4f4defa
--- ceph-18.0.0-2148-g9754cafc/src/osd/scrubber/scrub_backend.cc.orig	2023-02-08 16:01:53.800709761 -0500
4f4defa
+++ ceph-18.0.0-2148-g9754cafc/src/osd/scrubber/scrub_backend.cc	2023-02-11 05:06:14.954254050 -0500
4f4defa
@@ -507,11 +507,11 @@
4f4defa
     }
4f4defa
   }
4f4defa
 
4f4defa
-  dout(10) << fmt::format("{}: selecting osd {} for obj {} with oi {}",
4f4defa
+  dout(10) << fmt::format("{}: selecting osd {} for obj {} with oi {:p}",
4f4defa
                           __func__,
4f4defa
                           ret_auth.auth_shard,
4f4defa
                           ho,
4f4defa
-                          ret_auth.auth_oi)
4f4defa
+                          (void*)&ret_auth.auth_oi)
4f4defa
            << dendl;
4f4defa
 
4f4defa
   return ret_auth;
4f4defa
@@ -1171,23 +1171,23 @@
4f4defa
 
4f4defa
   if (auth.digest_present && candidate.digest_present &&
4f4defa
       auth.digest != candidate.digest) {
4f4defa
-    format_to(std::back_inserter(out),
4f4defa
-              "data_digest {:#x} != data_digest {:#x} from shard {}",
4f4defa
-              candidate.digest,
4f4defa
-              auth.digest,
4f4defa
-              auth_shard);
4f4defa
+    fmt::format_to(std::back_inserter(out),
4f4defa
+                   "data_digest {:#x} != data_digest {:#x} from shard {}",
4f4defa
+                   candidate.digest,
4f4defa
+                   auth.digest,
4f4defa
+                   auth_shard);
4f4defa
     error = true;
4f4defa
     obj_result.set_data_digest_mismatch();
4f4defa
   }
4f4defa
 
4f4defa
   if (auth.omap_digest_present && candidate.omap_digest_present &&
4f4defa
       auth.omap_digest != candidate.omap_digest) {
4f4defa
-    format_to(std::back_inserter(out),
4f4defa
-              "{}omap_digest {:#x} != omap_digest {:#x} from shard {}",
4f4defa
-              sep(error),
4f4defa
-              candidate.omap_digest,
4f4defa
-              auth.omap_digest,
4f4defa
-              auth_shard);
4f4defa
+    fmt::format_to(std::back_inserter(out),
4f4defa
+                   "{}omap_digest {:#x} != omap_digest {:#x} from shard {}",
4f4defa
+                   sep(error),
4f4defa
+                   candidate.omap_digest,
4f4defa
+                   auth.omap_digest,
4f4defa
+                   auth_shard);
4f4defa
     obj_result.set_omap_digest_mismatch();
4f4defa
   }
4f4defa
 
4f4defa
@@ -1195,24 +1195,24 @@
4f4defa
   if (m_is_replicated) {
4f4defa
     if (auth_oi.is_data_digest() && candidate.digest_present &&
4f4defa
         auth_oi.data_digest != candidate.digest) {
4f4defa
-      format_to(std::back_inserter(out),
4f4defa
-                "{}data_digest {:#x} != data_digest {:#x} from auth oi {}",
4f4defa
-                sep(error),
4f4defa
-                candidate.digest,
4f4defa
-                auth_oi.data_digest,
4f4defa
-                auth_oi);
4f4defa
+      fmt::format_to(std::back_inserter(out),
4f4defa
+                     "{}data_digest {:#x} != data_digest {:#x} from auth oi {:p}",
4f4defa
+                     sep(error),
4f4defa
+                     candidate.digest,
4f4defa
+                     auth_oi.data_digest,
4f4defa
+                     (void*)&auth_oi);
4f4defa
       shard_result.set_data_digest_mismatch_info();
4f4defa
     }
4f4defa
 
4f4defa
     // for replicated:
4f4defa
     if (auth_oi.is_omap_digest() && candidate.omap_digest_present &&
4f4defa
         auth_oi.omap_digest != candidate.omap_digest) {
4f4defa
-      format_to(std::back_inserter(out),
4f4defa
-                "{}omap_digest {:#x} != omap_digest {:#x} from auth oi {}",
4f4defa
-                sep(error),
4f4defa
-                candidate.omap_digest,
4f4defa
-                auth_oi.omap_digest,
4f4defa
-                auth_oi);
4f4defa
+      fmt::format_to(std::back_inserter(out),
4f4defa
+                     "{}omap_digest {:#x} != omap_digest {:#x} from auth oi {:p}",
4f4defa
+                     sep(error),
4f4defa
+                     candidate.omap_digest,
4f4defa
+                     auth_oi.omap_digest,
4f4defa
+                     (void*)&auth_oi);
4f4defa
       shard_result.set_omap_digest_mismatch_info();
4f4defa
     }
4f4defa
   }
4f4defa
@@ -1241,7 +1241,7 @@
4f4defa
     auth_bl.push_back(auth_attr->second);
4f4defa
 
4f4defa
     if (!can_bl.contents_equal(auth_bl)) {
4f4defa
-      format_to(std::back_inserter(out), "{}object info inconsistent ", sep(error));
4f4defa
+      fmt::format_to(std::back_inserter(out), "{}object info inconsistent ", sep(error));
4f4defa
       obj_result.set_object_info_inconsistency();
4f4defa
     }
4f4defa
   }
4f4defa
@@ -1261,7 +1261,7 @@
4f4defa
       auth_bl.push_back(auth_attr->second);
4f4defa
 
4f4defa
       if (!can_bl.contents_equal(auth_bl)) {
4f4defa
-        format_to(std::back_inserter(out), "{}snapset inconsistent ", sep(error));
4f4defa
+        fmt::format_to(std::back_inserter(out), "{}snapset inconsistent ", sep(error));
4f4defa
         obj_result.set_snapset_inconsistency();
4f4defa
       }
4f4defa
     }
4f4defa
@@ -1284,7 +1284,7 @@
4f4defa
       auth_bl.push_back(auth_hi->second);
4f4defa
 
4f4defa
       if (!can_bl.contents_equal(auth_bl)) {
4f4defa
-        format_to(std::back_inserter(out), "{}hinfo inconsistent ", sep(error));
4f4defa
+        fmt::format_to(std::back_inserter(out), "{}hinfo inconsistent ", sep(error));
4f4defa
         obj_result.set_hinfo_inconsistency();
4f4defa
       }
4f4defa
     }
4f4defa
@@ -1296,22 +1296,22 @@
4f4defa
 
4f4defa
   uint64_t oi_size = logical_to_ondisk_size(auth_oi.size);
4f4defa
   if (oi_size != candidate.size) {
4f4defa
-    format_to(std::back_inserter(out),
4f4defa
-              "{}size {} != size {} from auth oi {}",
4f4defa
-              sep(error),
4f4defa
-              candidate.size,
4f4defa
-              oi_size,
4f4defa
-              auth_oi);
4f4defa
+    fmt::format_to(std::back_inserter(out),
4f4defa
+                   "{}size {} != size {} from auth oi {:p}",
4f4defa
+                   sep(error),
4f4defa
+                   candidate.size,
4f4defa
+                   oi_size,
4f4defa
+                   (void*)&auth_oi);
4f4defa
     shard_result.set_size_mismatch_info();
4f4defa
   }
4f4defa
 
4f4defa
   if (auth.size != candidate.size) {
4f4defa
-    format_to(std::back_inserter(out),
4f4defa
-              "{}size {} != size {} from shard {}",
4f4defa
-              sep(error),
4f4defa
-              candidate.size,
4f4defa
-              auth.size,
4f4defa
-              auth_shard);
4f4defa
+    fmt::format_to(std::back_inserter(out),
4f4defa
+                   "{}size {} != size {} from shard {}",
4f4defa
+                   sep(error),
4f4defa
+                   candidate.size,
4f4defa
+                   auth.size,
4f4defa
+                   auth_shard);
4f4defa
     obj_result.set_size_mismatch();
4f4defa
   }
4f4defa
 
4f4defa
@@ -1320,11 +1320,11 @@
4f4defa
   if (candidate.size > m_conf->osd_max_object_size &&
4f4defa
       !obj_result.has_size_too_large()) {
4f4defa
 
4f4defa
-    format_to(std::back_inserter(out),
4f4defa
-              "{}size {} > {} is too large",
4f4defa
-              sep(error),
4f4defa
-              candidate.size,
4f4defa
-              m_conf->osd_max_object_size);
4f4defa
+    fmt::format_to(std::back_inserter(out),
4f4defa
+                   "{}size {} > {} is too large",
4f4defa
+                   sep(error),
4f4defa
+                   candidate.size,
4f4defa
+                   m_conf->osd_max_object_size);
4f4defa
     obj_result.set_size_too_large();
4f4defa
   }
4f4defa
 
4f4defa
@@ -1340,10 +1340,10 @@
4f4defa
 
4f4defa
     auto cand = candidate.attrs.find(k);
4f4defa
     if (cand == candidate.attrs.end()) {
4f4defa
-      format_to(std::back_inserter(out), "{}attr name mismatch '{}'", sep(error), k);
4f4defa
+      fmt::format_to(std::back_inserter(out), "{}attr name mismatch '{}'", sep(error), k);
4f4defa
       obj_result.set_attr_name_mismatch();
4f4defa
     } else if (cand->second.cmp(v)) {
4f4defa
-      format_to(std::back_inserter(out), "{}attr value mismatch '{}'", sep(error), k);
4f4defa
+      fmt::format_to(std::back_inserter(out), "{}attr value mismatch '{}'", sep(error), k);
4f4defa
       obj_result.set_attr_value_mismatch();
4f4defa
     }
4f4defa
   }
4f4defa
@@ -1356,7 +1356,7 @@
4f4defa
 
4f4defa
     auto in_auth = auth.attrs.find(k);
4f4defa
     if (in_auth == auth.attrs.end()) {
4f4defa
-      format_to(std::back_inserter(out), "{}attr name mismatch '{}'", sep(error), k);
4f4defa
+      fmt::format_to(std::back_inserter(out), "{}attr name mismatch '{}'", sep(error), k);
4f4defa
       obj_result.set_attr_name_mismatch();
4f4defa
     }
4f4defa
   }
4f4defa
@@ -1823,8 +1823,7 @@
4f4defa
   SnapMapReaderI& snaps_getter)
4f4defa
 {
4f4defa
   using result_t = Scrub::SnapMapReaderI::result_t;
4f4defa
-  dout(15) << fmt::format("{}: obj:{} snapset:{}", __func__, hoid, snapset)
4f4defa
-	   << dendl;
4f4defa
+  // dout(15) << fmt::format("{}: obj:{} snapset:{}", __func__, hoid, snapset) << dendl;
4f4defa
 
4f4defa
   auto p = snapset.clone_snaps.find(hoid.snap);
4f4defa
   if (p == snapset.clone_snaps.end()) {