]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
cls_lock: expired lock before unlock and start check 59272/head
authorNitzanMordhai <nmordech@redhat.com>
Sun, 17 Jul 2022 08:01:30 +0000 (08:01 +0000)
committerKonstantin Shalygin <k0ste@k0ste.ru>
Mon, 19 Aug 2024 07:47:50 +0000 (14:47 +0700)
If the lock expired, the stat check shouldn't return -ENOENT,
We will change the lock duration to prevent lock expired before the
stat check.

Fixes: https://tracker.ceph.com/issues/56575
Signed-off-by: Nitzan Mordechai <nmordec@redhat.com>
(cherry picked from commit d3457c64b1bdc26a4379197ae206019a615d2ebc)

Comment from @idryomov:

There is a delta between the original commit and the backport due
to #45762 [1] not getting backported to quincy.

[1] https://github.com/ceph/ceph/pull/45762

src/test/cls_lock/test_cls_lock.cc

index bf09ec592cff0f85520dc7f74156fd35b9532f04..b915de9c2362fa95c51cef1e3c5f2c2f6497ba39 100644 (file)
@@ -476,7 +476,7 @@ TEST(ClsLock, TestExclusiveEphemeralBasic) {
   string lock_name2 = "mylock2";
 
   Lock l1(lock_name1);
-  l1.set_duration(utime_t(5, 0));
+  l1.set_duration(utime_t(300, 0));
 
   uint64_t size;
   time_t mod_time;
@@ -491,8 +491,7 @@ TEST(ClsLock, TestExclusiveEphemeralBasic) {
   // ***********************************************
 
   Lock l2(lock_name2);
-  utime_t lock_duration2(5, 0);
-  l2.set_duration(utime_t(5, 0));
+  l2.set_duration(utime_t(300, 0));
 
   ASSERT_EQ(0, l2.lock_exclusive(&ioctx, oid2));
   ASSERT_EQ(0, ioctx.stat(oid2, &size, &mod_time));