]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: Output Base64 encoding of CRC header if binary data present 28504/head
authorDavid Zafman <dzafman@redhat.com>
Sat, 4 May 2019 18:32:40 +0000 (11:32 -0700)
committerPrashant D <pdhange@redhat.com>
Wed, 12 Jun 2019 01:20:58 +0000 (21:20 -0400)
Add optional paramter so cleanbin() for bufferlist can include "Base64:"

Fixes: https://tracker.ceph.com/issues/39582
Signed-off-by: David Zafman <dzafman@redhat.com>
(cherry picked from commit eea239c03ca8aeb9a1da742b07d8627fbe2317e2)

Conflicts:
src/include/util.h : Resolved for cleanbin

src/common/util.cc
src/include/util.h
src/osd/ReplicatedBackend.cc

index dc79648b7a049f2fcce854872970bb47bd94d351..3448eb2bfa37bd028ff8ef190d33c63788640018 100644 (file)
@@ -329,7 +329,7 @@ void dump_services(Formatter* f, const map<string, list<string> >& services, con
 
 // If non-printable characters found then convert bufferlist to
 // base64 encoded string indicating whether it did.
-string cleanbin(bufferlist &bl, bool &base64)
+string cleanbin(bufferlist &bl, bool &base64, bool show)
 {
   bufferlist::iterator it;
   for (it = bl.begin(); it != bl.end(); ++it) {
@@ -345,6 +345,8 @@ string cleanbin(bufferlist &bl, bool &base64)
   bufferlist b64;
   bl.encode_base64(b64);
   string encoded(b64.c_str(), b64.length());
+  if (show)
+    encoded = "Base64:" + encoded;
   base64 = true;
   return encoded;
 }
@@ -356,9 +358,7 @@ string cleanbin(string &str)
   bool base64;
   bufferlist bl;
   bl.append(str);
-  string result = cleanbin(bl, base64);
-  if (base64)
-    result = "Base64:" + result;
+  string result = cleanbin(bl, base64, true);
   return result;
 }
 
index 9c377aa1413da7fefe2bf58396f9e2e403216247..18aa51adad4cb042858c7f8f33deff82b031893a 100644 (file)
@@ -90,7 +90,7 @@ void dump_services(Formatter* f, const map<string, list<int> >& services, const
 /// @param type the service type of given @p services, for example @p osd or @p mon.
 void dump_services(Formatter* f, const map<string, list<string> >& services, const char* type);
 
-string cleanbin(bufferlist &bl, bool &b64);
+string cleanbin(bufferlist &bl, bool &b64, bool show = false);
 string cleanbin(string &str);
 
 namespace ceph::util {
index 269adf64b1191875ddf79f0094a325954ec4d143..550dc848d82dd71fa45faa740f84ec2be240af88 100644 (file)
@@ -21,6 +21,7 @@
 #include "messages/MOSDPGPushReply.h"
 #include "common/EventTrace.h"
 #include "include/random.h"
+#include "include/util.h"
 #include "OSD.h"
 
 #define dout_context cct
@@ -659,8 +660,8 @@ int ReplicatedBackend::be_deep_scrub(
       return 0;
     }
     if (r == 0 && hdrbl.length()) {
-      dout(25) << "CRC header " << string(hdrbl.c_str(), hdrbl.length())
-              << dendl;
+      bool encoded = false;
+      dout(25) << "CRC header " << cleanbin(hdrbl, encoded, true) << dendl;
       pos.omap_hash << hdrbl;
     }
   }