]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
tools/rados: update advisory lock break usage with --lock-cookie required 31348/head
authorZhi Zhang <willzzhang@tencent.com>
Tue, 26 Nov 2019 04:49:21 +0000 (12:49 +0800)
committerZhi Zhang <willzzhang@tencent.com>
Tue, 26 Nov 2019 04:49:21 +0000 (12:49 +0800)
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 <zhangz.david@outlook.com>
doc/man/8/rados.rst
src/cls/lock/cls_lock.cc
src/tools/rados/rados.cc

index 7fef5a3728ab5d6e781c3dd968dd73c8d95183f9..67e559d17bb53d6ad434eb6b34bc9dda3ff79c13 100644 (file)
@@ -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
 ===============
index 7488022536a0b2b83a379cd6509f1699fdc03cf8..e9aab96936aae68c4a69da47c6571e5e7281fbd0 100644 (file)
@@ -297,6 +297,8 @@ static int remove_lock(cls_method_context_t hctx,
   // remove named locker from set
   map<locker_id_t, locker_info_t>::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);
index 1e3be30f17f1f5e8d43783bd7054bc17456d5a2b..2a95a07b47112709b3b78418e959e1da6351f116 100644 (file)
@@ -142,9 +142,9 @@ void usage(ostream& out)
 "ADVISORY LOCKS\n"
 "   lock list <obj-name>\n"
 "       List all advisory locks on an object\n"
-"   lock get <obj-name> <lock-name>\n"
+"   lock get <obj-name> <lock-name> [--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 <obj-name> <lock-name> <locker-name>\n"
+"   lock break <obj-name> <lock-name> <locker-name> [--lock-cookie locker-cookie]\n"
 "       Try to break a lock acquired by another client\n"
 "   lock info <obj-name> <lock-name>\n"
 "       Show lock information\n"