From c72ade53271c1708a63c0de4e6e4b6ee4a21fbec Mon Sep 17 00:00:00 2001 From: MyonKeminta <9948422+MyonKeminta@users.noreply.github.com> Date: Thu, 5 Nov 2020 14:35:31 +0800 Subject: [PATCH] cherry pick #20808 to release-3.0 Signed-off-by: ti-srebot cherry pick #20808 to release-3.0 Signed-off-by: MyonKeminta --- store/tikv/kv.go | 4 ++++ store/tikv/safepoint.go | 11 +++++++++++ 2 files changed, 15 insertions(+) diff --git a/store/tikv/kv.go b/store/tikv/kv.go index e7081ab58e685..933d99c82b27f 100644 --- a/store/tikv/kv.go +++ b/store/tikv/kv.go @@ -305,6 +305,10 @@ func (s *tikvStore) Close() error { s.txnLatches.Close() } s.regionCache.Close() + + if err := s.kv.Close(); err != nil { + return errors.Trace(err) + } return nil } diff --git a/store/tikv/safepoint.go b/store/tikv/safepoint.go index a976dfb10ae83..e032a4d86fcf6 100644 --- a/store/tikv/safepoint.go +++ b/store/tikv/safepoint.go @@ -43,6 +43,7 @@ const ( type SafePointKV interface { Put(k string, v string) error Get(k string) (string, error) + Close() error } // MockSafePointKV implements SafePointKV at mock test @@ -74,6 +75,11 @@ func (w *MockSafePointKV) Get(k string) (string, error) { return elem, nil } +// Close implements the Close method for SafePointKV +func (w *MockSafePointKV) Close() error { + return nil +} + // EtcdSafePointKV implements SafePointKV at runtime type EtcdSafePointKV struct { cli *clientv3.Client @@ -113,6 +119,11 @@ func (w *EtcdSafePointKV) Get(k string) (string, error) { return "", nil } +// Close implements the Close for SafePointKV +func (w *EtcdSafePointKV) Close() error { + return errors.Trace(w.cli.Close()) +} + func saveSafePoint(kv SafePointKV, key string, t uint64) error { s := strconv.FormatUint(t, 10) err := kv.Put(GcSavedSafePoint, s)