From 195050e20c208335102436a1dd08b36ab943b92f Mon Sep 17 00:00:00 2001 From: Ben Johnson Date: Mon, 15 Mar 2021 12:19:43 -0600 Subject: [PATCH 1/2] CORE-334: Fix panic on field deletion --- dbshard.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/dbshard.go b/dbshard.go index 627361e27..6512bad9f 100644 --- a/dbshard.go +++ b/dbshard.go @@ -484,7 +484,7 @@ func (per *DBPerShard) DeleteFieldFromStore(index, field, fieldPath string) (err per.Mu.Lock() defer func() { if fieldPath != "" { - panicOn(os.RemoveAll(fieldPath)) + _ = os.RemoveAll(fieldPath) } per.Mu.Unlock() }() @@ -498,11 +498,12 @@ func (per *DBPerShard) DeleteFieldFromStore(index, field, fieldPath string) (err } for _, dbs := range dbi.Shard { for _, w := range dbs.W { - err := w.DeleteField(index, field, fieldPath) - panicOn(err) + if e := w.DeleteField(index, field, fieldPath); e != nil && err == nil { + err = errors.Wrap(e, "DeleteFieldFromStore()") + } } } - return + return err } func (per *DBPerShard) DeleteFragment(index, field, view string, shard uint64, frag *fragment) error { From 6e6eb962ee4f38190bafd451e40a4b51ce8783e6 Mon Sep 17 00:00:00 2001 From: Antonio Navarro Perez Date: Tue, 23 Mar 2021 14:20:14 +0100 Subject: [PATCH 2/2] Call cancel when we try to renew the lease after an error. Signed-off-by: Antonio Navarro Perez --- etcd/leasedkv.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/etcd/leasedkv.go b/etcd/leasedkv.go index 858c000d8..17a35ed0b 100644 --- a/etcd/leasedkv.go +++ b/etcd/leasedkv.go @@ -66,6 +66,11 @@ func (l *leasedKV) Start(initValue string) error { func (l *leasedKV) create(initValue string) (<-chan *clientv3.LeaseKeepAliveResponse, error) { ctx, cancel := context.WithCancel(context.Background()) + + if l.cancel != nil { + l.cancel() + } + l.cancel = cancel leaseResp, err := l.cli.Grant(ctx, l.ttlSeconds)