From dfb882228eaed127b5b073e5ffa67ee84a7872fd Mon Sep 17 00:00:00 2001 From: Xuezhao Liu Date: Wed, 25 Feb 2026 07:00:24 +0000 Subject: [PATCH] DAOS-18487 utils: refine ddb_iov_to_printable_buf Current code may cause some keys' output not-readable, for example dkey 10, 60 printed by ddb as - DKEY: (/[4]/[2]/[0]) /b2b37b1a-2894-4970-b51c-1a964526bb02/948289433254841843.256.535.2/ {8} DKEY: (/[4]/[2]/[2]) /b2b37b1a-2894-4970-b51c-1a964526bb02/948289433254841843.256.535.2/<{8} That cause confuse and misunderstanding of ddb output. Signed-off-by: Xuezhao Liu --- src/utils/ddb/ddb_printer.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/utils/ddb/ddb_printer.c b/src/utils/ddb/ddb_printer.c index dd78efbb481..cf598449650 100644 --- a/src/utils/ddb/ddb_printer.c +++ b/src/utils/ddb/ddb_printer.c @@ -45,9 +45,6 @@ ddb_iov_to_printable_buf(d_iov_t *iov, char buf[], uint32_t buf_len) if (iov->iov_len == 0 || iov->iov_buf == NULL) return 0; - if (ddb_can_print(iov)) - return snprintf(buf, buf_len, "%.*s", (int)iov->iov_len, (char *)iov->iov_buf); - switch (iov->iov_len) { case sizeof(uint8_t): return snprintf(buf, buf_len, "uint8:0x%x", ((uint8_t *)iov->iov_buf)[0]); @@ -64,6 +61,10 @@ ddb_iov_to_printable_buf(d_iov_t *iov, char buf[], uint32_t buf_len) uint32_t result = 0; int i; + if (ddb_can_print(iov)) + return snprintf(buf, buf_len, "%.*s", (int)iov->iov_len, + (char *)iov->iov_buf); + result += snprintf(buf, buf_len, "bin(%lu):0x", iov->iov_len); for (i = 0; i < iov->iov_len; i++) {