From 601ba5fb680eb028080160c857feda9b7044ab56 Mon Sep 17 00:00:00 2001 From: chrislu Date: Mon, 22 Aug 2022 14:11:48 -0700 Subject: [PATCH] master: disable locking if not leader --- weed/server/master_grpc_server_admin.go | 5 +++++ 1 file changed, 5 insertions(+) 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) {