diff options
| author | chrislu <chris.lu@gmail.com> | 2023-06-25 15:28:01 -0700 |
|---|---|---|
| committer | chrislu <chris.lu@gmail.com> | 2023-06-25 15:28:01 -0700 |
| commit | 5149b3d07b7e3089f914d055c90129139ea0756b (patch) | |
| tree | 26a81dac34d40a9a29da4a7fa90de324d3be3cce /weed/cluster/lock_manager/lock_manager.go | |
| parent | 868f7875d7ccb211f52d189d8bd0669c85e24fe1 (diff) | |
| download | seaweedfs-5149b3d07b7e3089f914d055c90129139ea0756b.tar.xz seaweedfs-5149b3d07b7e3089f914d055c90129139ea0756b.zip | |
filer can proxy to peer filer holding the lock
Diffstat (limited to 'weed/cluster/lock_manager/lock_manager.go')
| -rw-r--r-- | weed/cluster/lock_manager/lock_manager.go | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/weed/cluster/lock_manager/lock_manager.go b/weed/cluster/lock_manager/lock_manager.go index 642c77772..57fb34819 100644 --- a/weed/cluster/lock_manager/lock_manager.go +++ b/weed/cluster/lock_manager/lock_manager.go @@ -42,7 +42,8 @@ func (lm *LockManager) Lock(path string, expiredAtNs int64, token string) (renew // not expired if oldValue.Token == token { // token matches, renew the lock - return &Lock{Token: token, ExpiredAtNs: expiredAtNs}, false + renewToken = uuid.New().String() + return &Lock{Token: renewToken, ExpiredAtNs: expiredAtNs}, false } else { err = fmt.Errorf("lock: token mismatch") return oldValue, false @@ -94,6 +95,9 @@ func (lm *LockManager) CleanUp() { time.Sleep(1 * time.Minute) now := time.Now().UnixNano() lm.locks.Range(func(key string, value *Lock) bool { + if value == nil { + return true + } if now > value.ExpiredAtNs { lm.locks.Delete(key) return true |
