From 47f78c88e035011134535f4032a88d5764e0ebad Mon Sep 17 00:00:00 2001 From: reesporte Date: Tue, 7 Dec 2021 16:41:54 -0600 Subject: [PATCH] check that translate store is not nil where it needs to be checked --- api.go | 5 ++++- cluster.go | 8 ++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/api.go b/api.go index 484960b92..95ae40f16 100644 --- a/api.go +++ b/api.go @@ -2343,7 +2343,10 @@ func (api *API) GetTranslateEntryReader(ctx context.Context, offsets TranslateOf if field == nil { return nil, newNotFoundError(ErrFieldNotFound, fieldName) } - + store := field.TranslateStore() + if store == nil { + return nil, ErrTranslateStoreNotFound + } r, err := field.TranslateStore().EntryReader(ctx, uint64(offset)) if err != nil { return nil, errors.Wrap(err, "field translate reader") diff --git a/cluster.go b/cluster.go index 9b161ea41..76910a4bb 100644 --- a/cluster.go +++ b/cluster.go @@ -1480,6 +1480,10 @@ func (c *cluster) matchField(ctx context.Context, field *Field, like string) ([] if c.Node.ID == primary.ID { // The local copy is the authoritative copy. plan := planLike(like) + store := field.TranslateStore() + if store == nil { + return nil, ErrTranslateStoreNotFound + } return field.TranslateStore().Match(func(key []byte) bool { return matchLike(key, plan...) }) @@ -1521,6 +1525,10 @@ func (c *cluster) translateFieldListIDs(field *Field, ids []uint64) (keys []stri } if c.Node.ID == primary.ID { + store := field.TranslateStore() + if store == nil { + return nil, ErrTranslateStoreNotFound + } keys, err = field.TranslateStore().TranslateIDs(ids) } else { keys, err = c.InternalClient.TranslateIDsNode(context.Background(), &primary.URI, field.Index(), field.Name(), ids)