From fd3602e4b8820c5be4439a05a144ba627982bdb5 Mon Sep 17 00:00:00 2001 From: Zhi Zhang Date: Tue, 26 Nov 2019 12:49:21 +0800 Subject: [PATCH] tools/rados: update advisory lock break usage with --lock-cookie required Advisory lock break rados command actually needs --lock-cookie arg, otherwise it can't find correct locker and return ENOENT. So update its usgae and add some logs for debug. Signed-off-by: Zhi Zhang --- doc/man/8/rados.rst | 6 ++++++ src/cls/lock/cls_lock.cc | 2 ++ src/tools/rados/rados.cc | 4 ++-- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/doc/man/8/rados.rst b/doc/man/8/rados.rst index 7fef5a3728a..67e559d17bb 100644 --- a/doc/man/8/rados.rst +++ b/doc/man/8/rados.rst @@ -71,6 +71,12 @@ Options Set the object size for put/get ops and for write benchmarking +.. option:: --lock-cookie locker-cookie + + Will set the lock cookie for acquiring advisory lock (lock get command). + If the cookie is not empty, this option must be passed to lock break command + to find the correct lock when releasing lock. + Global commands =============== diff --git a/src/cls/lock/cls_lock.cc b/src/cls/lock/cls_lock.cc index 7488022536a..e9aab96936a 100644 --- a/src/cls/lock/cls_lock.cc +++ b/src/cls/lock/cls_lock.cc @@ -297,6 +297,8 @@ static int remove_lock(cls_method_context_t hctx, // remove named locker from set map::iterator iter = lockers.find(id); if (iter == lockers.end()) { // no such key + CLS_LOG(10, "locker %s [name: %s.%ld, cookie: %s] does not exist", name.c_str(), + locker.type_str(), locker.num(), cookie.c_str()); return -ENOENT; } lockers.erase(iter); diff --git a/src/tools/rados/rados.cc b/src/tools/rados/rados.cc index 1e3be30f17f..2a95a07b471 100644 --- a/src/tools/rados/rados.cc +++ b/src/tools/rados/rados.cc @@ -142,9 +142,9 @@ void usage(ostream& out) "ADVISORY LOCKS\n" " lock list \n" " List all advisory locks on an object\n" -" lock get \n" +" lock get [--lock-cookie locker-cookie] [--lock-tag locker-tag] [--lock-description locker-desc] [--lock-duration locker-dur] [--lock-type locker-type]\n" " Try to acquire a lock\n" -" lock break \n" +" lock break [--lock-cookie locker-cookie]\n" " Try to break a lock acquired by another client\n" " lock info \n" " Show lock information\n" -- 2.39.5