From 75674545dc45b87bb452bcaea2d95d9a5156ea92 Mon Sep 17 00:00:00 2001 From: Vitaliy Filippov Date: Mon, 13 Nov 2023 01:05:03 +0300 Subject: [PATCH] Limit the number of printed object versions in slow op dump (otherwise it may overflow the fixed buffer) --- src/osd.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/osd.cpp b/src/osd.cpp index d4ab0ef2..e025de32 100644 --- a/src/osd.cpp +++ b/src/osd.cpp @@ -541,11 +541,15 @@ void osd_t::print_slow() } else if (op->req.hdr.opcode == OSD_OP_SEC_STABILIZE || op->req.hdr.opcode == OSD_OP_SEC_ROLLBACK) { - for (uint64_t i = 0; i < op->req.sec_stab.len; i += sizeof(obj_ver_id)) + for (uint64_t i = 0; i < op->req.sec_stab.len && i < sizeof(obj_ver_id)*12; i += sizeof(obj_ver_id)) { obj_ver_id *ov = (obj_ver_id*)((uint8_t*)op->buf + i); bufprintf(i == 0 ? " %lx:%lx v%lu" : ", %lx:%lx v%lu", ov->oid.inode, ov->oid.stripe, ov->version); } + if (op->req.sec_stab.len > sizeof(obj_ver_id)*12) + { + bufprintf(", ... (%d items)", op->req.sec_stab.len/sizeof(obj_ver_id)); + } } else if (op->req.hdr.opcode == OSD_OP_SEC_LIST) {