aboutsummaryrefslogtreecommitdiff
path: root/weed/server/master_grpc_server_admin.go
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2022-08-22 14:11:48 -0700
committerchrislu <chris.lu@gmail.com>2022-08-22 14:11:48 -0700
commit601ba5fb680eb028080160c857feda9b7044ab56 (patch)
tree2aa2b7106d85618145da57579fc518f1bb76b2d9 /weed/server/master_grpc_server_admin.go
parent57e7582c36544c15be2f3873d4fea4e6404dce29 (diff)
downloadseaweedfs-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.go5
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) {