From: Edwin Rodriguez Date: Wed, 8 Oct 2025 15:59:48 +0000 (-0400) Subject: mds: Refactor cache dump path formatting and improve config lifetime handling X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=89f2e1f809c269c5fe9e30df1d8b9a25a406714f;p=ceph.git mds: Refactor cache dump path formatting and improve config lifetime handling Fixes: https://tracker.ceph.com/issues/73423 Fixes: https://tracker.ceph.com/issues/73424 Signed-off-by: Edwin Rodriguez --- diff --git a/src/mds/MDCache.cc b/src/mds/MDCache.cc index 98b566962b9..dc8abb912ce 100644 --- a/src/mds/MDCache.cc +++ b/src/mds/MDCache.cc @@ -13285,9 +13285,13 @@ int MDCache::dump_cache(std::string_view fn, Formatter *f, double timeout) } else { char path[PATH_MAX] = ""; if (fn.length()) { - snprintf(path, sizeof path, "%s", fn.data()); + auto [out, size] = fmt::format_to_n(path, sizeof(path) - 1, "{}", fn); + *out = '\0'; } else { - snprintf(path, sizeof path, "cachedump.%d.mds%d", (int)mds->mdsmap->get_epoch(), int(mds->get_nodeid())); + auto [out, size] = fmt::format_to_n( + path, sizeof(path) - 1, "cachedump.{}.mds{}", + (int)mds->mdsmap->get_epoch(), int(mds->get_nodeid())); + *out = '\0'; } dout(1) << "dump_cache to " << path << dendl; @@ -14639,9 +14643,11 @@ MDRequestRef MDCache::lock_path(LockPathConfig config, std::functioninternal_op_private = new LockPathState{std::move(config)}; - if (config.lifetime) { - mds->timer.add_event_after(*config.lifetime, new LambdaContext([this, mdr]() { + // config was just moved so is in an undefined state + if (config_lifetime) { + mds->timer.add_event_after(*config_lifetime, new LambdaContext([this, mdr]() { if (!mdr->result && !mdr->aborted && !mdr->killed && !mdr->dead) { mdr->result = -ECANCELED; request_kill(mdr);