diff --git a/go.mod b/go.mod index faa00237c..2897150c1 100644 --- a/go.mod +++ b/go.mod @@ -14,12 +14,12 @@ require ( github.com/google/uuid v1.1.1 github.com/pingcap/check v0.0.0-20200212061837-5e12011dc712 github.com/pingcap/errors v0.11.5-0.20190809092503-95897b64e011 - github.com/pingcap/failpoint v0.0.0-20200506114213-c17f16071c53 - github.com/pingcap/kvproto v0.0.0-20200509065137-6a4d5c264a8b - github.com/pingcap/log v0.0.0-20200117041106-d28c14d3b1cd - github.com/pingcap/parser v0.0.0-20200512060642-fa8905763928 - github.com/pingcap/pd/v4 v4.0.0-rc.1.0.20200511074607-3bb650739add - github.com/pingcap/tidb v1.1.0-beta.0.20200512142211-0623e4d44563 + github.com/pingcap/failpoint v0.0.0-20200603062251-b230c36c413c + github.com/pingcap/kvproto v0.0.0-20200518112156-d4aeb467de29 + github.com/pingcap/log v0.0.0-20200511115504-543df19646ad + github.com/pingcap/parser v0.0.0-20200603032439-c4ecb4508d2f + github.com/pingcap/pd/v4 v4.0.0-rc.2.0.20200520083007-2c251bd8f181 + github.com/pingcap/tidb v1.1.0-beta.0.20200606093724-b5b4da0e6a90 github.com/pingcap/tidb-tools v4.0.0-rc.1.0.20200514040632-f76b3e428e19+incompatible github.com/pingcap/tipb v0.0.0-20200417094153-7316d94df1ee github.com/prometheus/client_golang v1.5.1 diff --git a/go.sum b/go.sum index 9dbee1282..c9fa3500b 100644 --- a/go.sum +++ b/go.sum @@ -64,6 +64,7 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/blacktear23/go-proxyprotocol v0.0.0-20180807104634-af7a81e8dd0d h1:rQlvB2AYWme2bIB18r/SipGiMEVJYE9U0z+MGoU/LtQ= github.com/blacktear23/go-proxyprotocol v0.0.0-20180807104634-af7a81e8dd0d/go.mod h1:VKt7CNAQxpFpSDz3sXyj9hY/GbVsQCr0sB3w59nE7lU= +github.com/cenkalti/backoff/v4 v4.0.2/go.mod h1:eEew/i+1Q6OrCDZh3WiXYv3+nJwBASZ8Bog/87DQnVg= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= @@ -423,8 +424,9 @@ github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5/go.mod h1:jvVRKCr github.com/phf/go-queue v0.0.0-20170504031614-9abe38d0371d h1:U+PMnTlV2tu7RuMK5etusZG3Cf+rpow5hqQByeCzJ2g= github.com/phf/go-queue v0.0.0-20170504031614-9abe38d0371d/go.mod h1:lXfE4PvvTW5xOjO6Mba8zDPyw8M93B6AQ7frTGnMlA8= github.com/pingcap-incubator/tidb-dashboard v0.0.0-20200407064406-b2b8ad403d01/go.mod h1:77fCh8d3oKzC5ceOJWeZXAS/mLzVgdZ7rKniwmOyFuo= -github.com/pingcap-incubator/tidb-dashboard v0.0.0-20200424032813-662fb05948e7/go.mod h1:DwotQY91ds7eiwnY6QrQX9t5iimDtsJVIjI9tZYMaUM= +github.com/pingcap-incubator/tidb-dashboard v0.0.0-20200514075710-eecc9a4525b5/go.mod h1:8q+yDx0STBPri8xS4A2duS1dAf+xO0cMtjwe0t6MWJk= github.com/pingcap/br v0.0.0-20200426093517-dd11ae28b885/go.mod h1:4w3meMnk7HDNpNgjuRAxavruTeKJvUiXxoEWTjzXPnA= +github.com/pingcap/br v0.0.0-20200521085655-53201addd4ad/go.mod h1:SlSUHWY7QUoooiYxOKuJ8kUh2KjI29ogBh89YXz2dLA= github.com/pingcap/check v0.0.0-20190102082844-67f458068fc8 h1:USx2/E1bX46VG32FIw034Au6seQ2fY9NEILmNh/UlQg= github.com/pingcap/check v0.0.0-20190102082844-67f458068fc8/go.mod h1:B1+S9LNcuMyLH/4HMTViQOJevkGiik3wW2AN9zb2fNQ= github.com/pingcap/check v0.0.0-20191107115940-caf2b9e6ccf4 h1:iRtOAQ6FXkY/BGvst3CDfTva4nTqh6CL8WXvanLdbu0= @@ -445,39 +447,44 @@ github.com/pingcap/failpoint v0.0.0-20200210140405-f8f9fb234798 h1:6DMbRqPI1qzQ8 github.com/pingcap/failpoint v0.0.0-20200210140405-f8f9fb234798/go.mod h1:DNS3Qg7bEDhU6EXNHF+XSv/PGznQaMJ5FWvctpm6pQI= github.com/pingcap/failpoint v0.0.0-20200506114213-c17f16071c53 h1:8sC8OLinmaw24xLeeJlYBFvUBsOiOYBtNqTuVOTnynQ= github.com/pingcap/failpoint v0.0.0-20200506114213-c17f16071c53/go.mod h1:w4PEZ5y16LeofeeGwdgZB4ddv9bLyDuIX+ljstgKZyk= +github.com/pingcap/failpoint v0.0.0-20200603062251-b230c36c413c h1:cm0zAj+Tab94mp4OH+VoLJiSNQvZO4pWDGJ8KEk2a0c= +github.com/pingcap/failpoint v0.0.0-20200603062251-b230c36c413c/go.mod h1:w4PEZ5y16LeofeeGwdgZB4ddv9bLyDuIX+ljstgKZyk= github.com/pingcap/fn v0.0.0-20191016082858-07623b84a47d h1:rCmRK0lCRrHMUbS99BKFYhK9YxJDNw0xB033cQbYo0s= github.com/pingcap/fn v0.0.0-20191016082858-07623b84a47d/go.mod h1:fMRU1BA1y+r89AxUoaAar4JjrhUkVDt0o0Np6V8XbDQ= github.com/pingcap/goleveldb v0.0.0-20191226122134-f82aafb29989 h1:surzm05a8C9dN8dIUmo4Be2+pMRb6f55i+UIYrluu2E= github.com/pingcap/goleveldb v0.0.0-20191226122134-f82aafb29989/go.mod h1:O17XtbryoCJhkKGbT62+L2OlrniwqiGLSqrmdHCMzZw= github.com/pingcap/kvproto v0.0.0-20191211054548-3c6b38ea5107/go.mod h1:WWLmULLO7l8IOcQG+t+ItJ3fEcrL5FxF0Wu+HrMy26w= github.com/pingcap/kvproto v0.0.0-20200214064158-62d31900d88e/go.mod h1:IOdRDPLyda8GX2hE/jO7gqaCV/PNFh8BZQCQZXfIOqI= +github.com/pingcap/kvproto v0.0.0-20200411081810-b85805c9476c/go.mod h1:IOdRDPLyda8GX2hE/jO7gqaCV/PNFh8BZQCQZXfIOqI= github.com/pingcap/kvproto v0.0.0-20200417092353-efbe03bcffbd/go.mod h1:IOdRDPLyda8GX2hE/jO7gqaCV/PNFh8BZQCQZXfIOqI= github.com/pingcap/kvproto v0.0.0-20200420075417-e0c6e8842f22/go.mod h1:IOdRDPLyda8GX2hE/jO7gqaCV/PNFh8BZQCQZXfIOqI= github.com/pingcap/kvproto v0.0.0-20200423020121-038e31959c2a/go.mod h1:IOdRDPLyda8GX2hE/jO7gqaCV/PNFh8BZQCQZXfIOqI= github.com/pingcap/kvproto v0.0.0-20200424032552-6650270c39c3/go.mod h1:IOdRDPLyda8GX2hE/jO7gqaCV/PNFh8BZQCQZXfIOqI= -github.com/pingcap/kvproto v0.0.0-20200509065137-6a4d5c264a8b h1:lzOE8Z3TnbgpK8d1h4Jze/SKJrQ7gHgLeUVy0vi0l6o= -github.com/pingcap/kvproto v0.0.0-20200509065137-6a4d5c264a8b/go.mod h1:IOdRDPLyda8GX2hE/jO7gqaCV/PNFh8BZQCQZXfIOqI= +github.com/pingcap/kvproto v0.0.0-20200518112156-d4aeb467de29 h1:NpW1OuYrIl+IQrSsVbtyHpHpazmSCHy+ysrOixY0xY4= +github.com/pingcap/kvproto v0.0.0-20200518112156-d4aeb467de29/go.mod h1:IOdRDPLyda8GX2hE/jO7gqaCV/PNFh8BZQCQZXfIOqI= github.com/pingcap/log v0.0.0-20191012051959-b742a5d432e9 h1:AJD9pZYm72vMgPcQDww9rkZ1DnWfl0pXV3BOWlkYIjA= github.com/pingcap/log v0.0.0-20191012051959-b742a5d432e9/go.mod h1:4rbK1p9ILyIfb6hU7OG2CiWSqMXnp3JMbiaVJ6mvoY8= github.com/pingcap/log v0.0.0-20200117041106-d28c14d3b1cd h1:CV3VsP3Z02MVtdpTMfEgRJ4T9NGgGTxdHpJerent7rM= github.com/pingcap/log v0.0.0-20200117041106-d28c14d3b1cd/go.mod h1:4rbK1p9ILyIfb6hU7OG2CiWSqMXnp3JMbiaVJ6mvoY8= +github.com/pingcap/log v0.0.0-20200511115504-543df19646ad h1:SveG82rmu/GFxYanffxsSF503SiQV+2JLnWEiGiF+Tc= +github.com/pingcap/log v0.0.0-20200511115504-543df19646ad/go.mod h1:4rbK1p9ILyIfb6hU7OG2CiWSqMXnp3JMbiaVJ6mvoY8= github.com/pingcap/parser v0.0.0-20200424075042-8222d8b724a4 h1:1dFbm4zVXWvdwjEdyjMlu1PCxnlxK+JfNq+HhbGjDtc= github.com/pingcap/parser v0.0.0-20200424075042-8222d8b724a4/go.mod h1:9v0Edh8IbgjGYW2ArJr19E+bvL8zKahsFp+ixWeId+4= -github.com/pingcap/parser v0.0.0-20200427031542-879c7bd4f27d h1:iXKcmBOj5v8Vw4jbiWdY0LKyhJinSwqd1Hwyi0NvxBY= -github.com/pingcap/parser v0.0.0-20200427031542-879c7bd4f27d/go.mod h1:9v0Edh8IbgjGYW2ArJr19E+bvL8zKahsFp+ixWeId+4= -github.com/pingcap/parser v0.0.0-20200512060642-fa8905763928 h1:p3DZPoeZ10O0fODtvSKhupaGbtvgdb6HKoF+ValeYu8= -github.com/pingcap/parser v0.0.0-20200512060642-fa8905763928/go.mod h1:vQdbJqobJAgFyiRNNtXahpMoGWwPEuWciVEK5A20NS0= +github.com/pingcap/parser v0.0.0-20200507022230-f3bf29096657/go.mod h1:9v0Edh8IbgjGYW2ArJr19E+bvL8zKahsFp+ixWeId+4= +github.com/pingcap/parser v0.0.0-20200603032439-c4ecb4508d2f h1:tdjuYfon3J2Wae1g6ya72No+x+329SiWoENoVIS/HJY= +github.com/pingcap/parser v0.0.0-20200603032439-c4ecb4508d2f/go.mod h1:9v0Edh8IbgjGYW2ArJr19E+bvL8zKahsFp+ixWeId+4= github.com/pingcap/pd/v4 v4.0.0-rc.1.0.20200422143320-428acd53eba2 h1:JTzYYukREvxVSKW/ncrzNjFitd8snoQ/Xz32pw8i+s8= github.com/pingcap/pd/v4 v4.0.0-rc.1.0.20200422143320-428acd53eba2/go.mod h1:s+utZtXDznOiL24VK0qGmtoHjjXNsscJx3m1n8cC56s= -github.com/pingcap/pd/v4 v4.0.0-rc.1.0.20200511074607-3bb650739add h1:a/H871xZl++EjOvYmFLXBVKcV75dCj5GQfuHMA8tQHk= -github.com/pingcap/pd/v4 v4.0.0-rc.1.0.20200511074607-3bb650739add/go.mod h1:lEf22fUhISqUo2/TCJL7fTfFgG+VXjOfDCd2s8q0BRU= +github.com/pingcap/pd/v4 v4.0.0-rc.2.0.20200520083007-2c251bd8f181 h1:FM+PzdoR3fmWAJx3ug+p5aOgs5aZYwFkoDL7Potdsz0= +github.com/pingcap/pd/v4 v4.0.0-rc.2.0.20200520083007-2c251bd8f181/go.mod h1:q4HTx/bA8aKBa4S7L+SQKHvjRPXCRV0tA0yRw0qkZSA= github.com/pingcap/sysutil v0.0.0-20200206130906-2bfa6dc40bcd/go.mod h1:EB/852NMQ+aRKioCpToQ94Wl7fktV+FNnxf3CX/TTXI= github.com/pingcap/sysutil v0.0.0-20200408114249-ed3bd6f7fdb1 h1:PI8YpTl45F8ilNkrPtT4IdbcZB1SCEa+gK/U5GJYl3E= github.com/pingcap/sysutil v0.0.0-20200408114249-ed3bd6f7fdb1/go.mod h1:EB/852NMQ+aRKioCpToQ94Wl7fktV+FNnxf3CX/TTXI= github.com/pingcap/tidb v1.1.0-beta.0.20200424154252-5ede18f10eed h1:5mKxIq52K8pZaoKay6K6MLWIcOza8ok+kEyzOk4jYvU= github.com/pingcap/tidb v1.1.0-beta.0.20200424154252-5ede18f10eed/go.mod h1:m2VDlJDbUeHPCXAfKPajqLmB1uLvWpkKk3zALNqDYdw= -github.com/pingcap/tidb v1.1.0-beta.0.20200512142211-0623e4d44563 h1:86eXq0nKFRoum9ERtW9pJ/Viz/UvqCOBhpJU9K47qjU= -github.com/pingcap/tidb v1.1.0-beta.0.20200512142211-0623e4d44563/go.mod h1:Ie9gC7tgjgGQYg3qtIvb5DYWKaOR2Gp7BXdqXD6kjv4= +github.com/pingcap/tidb v1.1.0-beta.0.20200509133407-a9dc72cf2558/go.mod h1:cXNbVSQAkwwmjFQmEnEPI00Z2/Y/KOhouttUPERiInE= +github.com/pingcap/tidb v1.1.0-beta.0.20200606093724-b5b4da0e6a90 h1:fH0MbXxR4HbEyDmVxDqZmw0ouV5kFGWb3EXQGPX6Tns= +github.com/pingcap/tidb v1.1.0-beta.0.20200606093724-b5b4da0e6a90/go.mod h1:aaBBi3OJmYjENWY31YYOY8K6UoZZYgjZVZH56D0QIdE= github.com/pingcap/tidb-tools v4.0.0-beta.1.0.20200306084441-875bd09aa3d5+incompatible h1:84F7MFMfdAYObrznvRslmVu43aoihrlL+7mMyMlOi0o= github.com/pingcap/tidb-tools v4.0.0-beta.1.0.20200306084441-875bd09aa3d5+incompatible/go.mod h1:XGdcy9+yqlDSEMTpOXnwf3hiTeqrV6MN/u1se9N8yIM= github.com/pingcap/tidb-tools v4.0.0-rc.1.0.20200421113014-507d2bb3a15e+incompatible h1:+K5bqDYG5HT+GqLdx4GH5VmS84+xHgpHbGg6Xt6qQec= diff --git a/pkg/backup/client.go b/pkg/backup/client.go index d6f1b382d..83966e524 100644 --- a/pkg/backup/client.go +++ b/pkg/backup/client.go @@ -523,16 +523,16 @@ func (bc *Client) findRegionLeader( key = codec.EncodeBytes([]byte{}, key) for i := 0; i < 5; i++ { // better backoff. - _, leader, err := bc.mgr.GetPDClient().GetRegion(ctx, key) + region, err := bc.mgr.GetPDClient().GetRegion(ctx, key) if err != nil { log.Error("find leader failed", zap.Error(err)) time.Sleep(time.Millisecond * time.Duration(100*i)) continue } - if leader != nil { + if region.Leader != nil { log.Info("find leader", - zap.Reflect("Leader", leader), zap.Binary("Key", key)) - return leader, nil + zap.Reflect("Leader", region.Leader), zap.Binary("Key", key)) + return region.Leader, nil } log.Warn("no region found", zap.Binary("Key", key)) time.Sleep(time.Millisecond * time.Duration(100*i)) diff --git a/pkg/restore/split_client.go b/pkg/restore/split_client.go index 84de58214..4dca78209 100755 --- a/pkg/restore/split_client.go +++ b/pkg/restore/split_client.go @@ -100,7 +100,7 @@ func (c *pdClient) GetStore(ctx context.Context, storeID uint64) (*metapb.Store, } func (c *pdClient) GetRegion(ctx context.Context, key []byte) (*RegionInfo, error) { - region, leader, err := c.client.GetRegion(ctx, key) + region, err := c.client.GetRegion(ctx, key) if err != nil { return nil, err } @@ -108,13 +108,13 @@ func (c *pdClient) GetRegion(ctx context.Context, key []byte) (*RegionInfo, erro return nil, nil } return &RegionInfo{ - Region: region, - Leader: leader, + Region: region.Meta, + Leader: region.Leader, }, nil } func (c *pdClient) GetRegionByID(ctx context.Context, regionID uint64) (*RegionInfo, error) { - region, leader, err := c.client.GetRegionByID(ctx, regionID) + region, err := c.client.GetRegionByID(ctx, regionID) if err != nil { return nil, err } @@ -122,8 +122,8 @@ func (c *pdClient) GetRegionByID(ctx context.Context, regionID uint64) (*RegionI return nil, nil } return &RegionInfo{ - Region: region, - Leader: leader, + Region: region.Meta, + Leader: region.Leader, }, nil } diff --git a/tests/br_key_locked/codec.go b/tests/br_key_locked/codec.go index 39ff110e5..16360cb32 100644 --- a/tests/br_key_locked/codec.go +++ b/tests/br_key_locked/codec.go @@ -30,23 +30,23 @@ type codecPDClient struct { // GetRegion encodes the key before send requests to pd-server and decodes the // returned StartKey && EndKey from pd-server. -func (c *codecPDClient) GetRegion(ctx context.Context, key []byte) (*metapb.Region, *metapb.Peer, error) { +func (c *codecPDClient) GetRegion(ctx context.Context, key []byte) (*pd.Region, error) { encodedKey := codec.EncodeBytes(nil, key) - region, peer, err := c.Client.GetRegion(ctx, encodedKey) - return processRegionResult(region, peer, err) + region, err := c.Client.GetRegion(ctx, encodedKey) + return processRegionResult(region, err) } -func (c *codecPDClient) GetPrevRegion(ctx context.Context, key []byte) (*metapb.Region, *metapb.Peer, error) { +func (c *codecPDClient) GetPrevRegion(ctx context.Context, key []byte) (*pd.Region, error) { encodedKey := codec.EncodeBytes(nil, key) - region, peer, err := c.Client.GetPrevRegion(ctx, encodedKey) - return processRegionResult(region, peer, err) + region, err := c.Client.GetPrevRegion(ctx, encodedKey) + return processRegionResult(region, err) } // GetRegionByID encodes the key before send requests to pd-server and decodes the // returned StartKey && EndKey from pd-server. -func (c *codecPDClient) GetRegionByID(ctx context.Context, regionID uint64) (*metapb.Region, *metapb.Peer, error) { - region, peer, err := c.Client.GetRegionByID(ctx, regionID) - return processRegionResult(region, peer, err) +func (c *codecPDClient) GetRegionByID(ctx context.Context, regionID uint64) (*pd.Region, error) { + region, err := c.Client.GetRegionByID(ctx, regionID) + return processRegionResult(region, err) } func (c *codecPDClient) ScanRegions( @@ -75,18 +75,18 @@ func (c *codecPDClient) ScanRegions( return regions, peers, nil } -func processRegionResult(region *metapb.Region, peer *metapb.Peer, err error) (*metapb.Region, *metapb.Peer, error) { +func processRegionResult(region *pd.Region, err error) (*pd.Region, error) { if err != nil { - return nil, nil, errors.Trace(err) + return nil, errors.Trace(err) } if region == nil { - return nil, nil, nil + return nil, nil } - err = decodeRegionMetaKey(region) + err = decodeRegionMetaKey(region.Meta) if err != nil { - return nil, nil, errors.Trace(err) + return nil, errors.Trace(err) } - return region, peer, nil + return region, nil } func decodeRegionMetaKey(r *metapb.Region) error {