diff options
| author | chrislu <chris.lu@gmail.com> | 2022-08-22 14:11:48 -0700 |
|---|---|---|
| committer | chrislu <chris.lu@gmail.com> | 2022-08-22 14:11:48 -0700 |
| commit | 601ba5fb680eb028080160c857feda9b7044ab56 (patch) | |
| tree | 2aa2b7106d85618145da57579fc518f1bb76b2d9 /weed/server/master_grpc_server_admin.go | |
| parent | 57e7582c36544c15be2f3873d4fea4e6404dce29 (diff) | |
| download | seaweedfs-601ba5fb680eb028080160c857feda9b7044ab56.tar.xz seaweedfs-601ba5fb680eb028080160c857feda9b7044ab56.zip | |
master: disable locking if not leader
Diffstat (limited to 'weed/server/master_grpc_server_admin.go')
| -rw-r--r-- | weed/server/master_grpc_server_admin.go | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/weed/server/master_grpc_server_admin.go b/weed/server/master_grpc_server_admin.go index 2eb25c10b..1dd89ad60 100644 --- a/weed/server/master_grpc_server_admin.go +++ b/weed/server/master_grpc_server_admin.go @@ -3,6 +3,7 @@ package weed_server import ( "context" "fmt" + "github.com/seaweedfs/raft" "github.com/seaweedfs/seaweedfs/weed/cluster" "github.com/seaweedfs/seaweedfs/weed/glog" "github.com/seaweedfs/seaweedfs/weed/pb" @@ -122,6 +123,10 @@ func (locks *AdminLocks) deleteLock(lockName string) { func (ms *MasterServer) LeaseAdminToken(ctx context.Context, req *master_pb.LeaseAdminTokenRequest) (*master_pb.LeaseAdminTokenResponse, error) { resp := &master_pb.LeaseAdminTokenResponse{} + if !ms.Topo.IsLeader() { + return resp, raft.NotLeaderError + } + if lastClient, lastMessage, isLocked := ms.adminLocks.isLocked(req.LockName); isLocked { glog.V(4).Infof("LeaseAdminToken %v", lastClient) if req.PreviousToken != 0 && ms.adminLocks.isValidToken(req.LockName, time.Unix(0, req.PreviousLockTime), req.PreviousToken) { |
