diff options
| author | chrislu <chris.lu@gmail.com> | 2022-07-14 12:15:31 -0700 |
|---|---|---|
| committer | chrislu <chris.lu@gmail.com> | 2022-07-14 12:15:31 -0700 |
| commit | fbd8f868a124af47d1c91b742d587c4fab6f2a32 (patch) | |
| tree | 4c76fd270cc9b2a91d28dbf579ddfeac5d76bf95 | |
| parent | 957c9a2eb285bfccc7da11efc0d27571c5e90947 (diff) | |
| download | seaweedfs-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.go | 3 |
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) |
