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
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;
// ***********************************************
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));