aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2022-07-14 12:15:31 -0700
committerchrislu <chris.lu@gmail.com>2022-07-14 12:15:31 -0700
commitfbd8f868a124af47d1c91b742d587c4fab6f2a32 (patch)
tree4c76fd270cc9b2a91d28dbf579ddfeac5d76bf95
parent957c9a2eb285bfccc7da11efc0d27571c5e90947 (diff)
downloadseaweedfs-fbd8f868a124af47d1c91b742d587c4fab6f2a32.tar.xz
seaweedfs-fbd8f868a124af47d1c91b742d587c4fab6f2a32.zip
filer may have trouble to re-connect
clientId is used twice: one for local metadata subscription, one for combined metadata subscription.
-rw-r--r--weed/server/filer_grpc_server_sub_meta.go3
1 files changed, 3 insertions, 0 deletions
diff --git a/weed/server/filer_grpc_server_sub_meta.go b/weed/server/filer_grpc_server_sub_meta.go
index 745379e7c..6a4a5bb17 100644
--- a/weed/server/filer_grpc_server_sub_meta.go
+++ b/weed/server/filer_grpc_server_sub_meta.go
@@ -90,6 +90,9 @@ func (fs *FilerServer) SubscribeLocalMetadata(req *filer_pb.SubscribeMetadataReq
peerAddress := findClientAddress(stream.Context(), 0)
+ // use negative client id to differentiate from addClient()/deleteClient() used in SubscribeMetadata()
+ req.ClientId = -req.ClientId
+
alreadyKnown, clientName := fs.addClient(req.ClientName, peerAddress, req.ClientId)
if alreadyKnown {
return fmt.Errorf("duplicated local subscription detected for client %s id %d", clientName, req.ClientId)