Skip to content

Commit a05cff6

Browse files
committed
link
Signed-off-by: 童剑 <[email protected]>
1 parent d7835d5 commit a05cff6

File tree

3 files changed

+27
-10
lines changed

3 files changed

+27
-10
lines changed

errors.toml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -566,11 +566,6 @@ error = '''
566566
keyspace group %v does not exist
567567
'''
568568

569-
["PD:keyspace:ErrKeyspaceGroupVersionStale"]
570-
error = '''
571-
keyspace group version is stale
572-
'''
573-
574569
["PD:keyspace:ErrKeyspaceGroupNotInMerging"]
575570
error = '''
576571
keyspace group %v is not in merging state
@@ -586,6 +581,11 @@ error = '''
586581
primary of keyspace group does not exist
587582
'''
588583

584+
["PD:keyspace:ErrKeyspaceGroupVersionStale"]
585+
error = '''
586+
keyspace group version is stale
587+
'''
588+
589589
["PD:keyspace:ErrKeyspaceGroupWithEmptyKeyspace"]
590590
error = '''
591591
keyspace group with empty keyspace

pkg/tso/keyspace_group_manager.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -542,6 +542,12 @@ func (kgm *KeyspaceGroupManager) InitializeGroupWatchLoop() error {
542542
delete(kgm.groupUpdateRetryList, id)
543543
kgm.updateKeyspaceGroup(group)
544544
}
545+
failpoint.Inject("SkipKeyspaceWatch", func(val failpoint.Value) {
546+
addr, ok := val.(string)
547+
if ok && addr == kgm.electionNamePrefix {
548+
failpoint.Return(nil)
549+
}
550+
})
545551
if len(event) > 0 {
546552
last := event[len(event)-1]
547553
kgm.SetModVersion(uint64(last.Kv.ModRevision))

tests/integrations/mcs/tso/keyspace_group_manager_test.go

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -165,8 +165,8 @@ func (suite *tsoKeyspaceGroupManagerTestSuite) TestWatchFailed() {
165165
},
166166
})
167167
suite.waitKeyspaceReady([]uint32{keyspaceGroupID}, keyspaceIDs)
168-
169-
checkFn := func(groupID uint32, keyspaceID uint32, addr string) {
168+
var version uint64
169+
checkFn := func(groupID uint32, keyspaceID uint32, addr string, terr *tsopb.Error) {
170170
conn, err := cli.GetServiceDiscovery().GetOrCreateGRPCConn(addr)
171171
re.NoError(err)
172172
req := tsopb.FindGroupByKeyspaceIDRequest{
@@ -176,15 +176,22 @@ func (suite *tsoKeyspaceGroupManagerTestSuite) TestWatchFailed() {
176176
KeyspaceGroupId: constants.DefaultKeyspaceGroupID,
177177
},
178178
KeyspaceId: keyspaceID,
179+
Version: version,
179180
}
180181
resp, err := tsopb.NewTSOClient(conn).FindGroupByKeyspaceID(suite.ctx, &req)
182+
if terr != nil {
183+
re.Equal(terr, resp.GetHeader().GetError())
184+
return
185+
}
181186
re.NoError(err)
182187
re.Nil(resp.GetHeader().GetError())
183188
re.Len(resp.KeyspaceGroup.Members, 2)
184189
re.Equal(groupID, resp.KeyspaceGroup.Id)
190+
re.GreaterOrEqual(resp.GetVersion(), version)
191+
version = resp.GetVersion()
185192
}
186193

187-
checkFn(keyspaceGroupID, keyspaceIDs[0], serverList[0].GetAddr())
194+
checkFn(keyspaceGroupID, keyspaceIDs[0], serverList[0].GetAddr(), nil)
188195
// split keyspaceID-0 into new keyspace group
189196
newGroupID := suite.allocID()
190197
handlersutil.MustSplitKeyspaceGroup(re, suite.pdLeaderServer, keyspaceGroupID, &handlers.SplitKeyspaceGroupByIDParams{
@@ -194,9 +201,13 @@ func (suite *tsoKeyspaceGroupManagerTestSuite) TestWatchFailed() {
194201
suite.waitKeyspaceReady([]uint32{newGroupID}, []uint32{keyspaceIDs[0]})
195202
handlersutil.MustFinishSplitKeyspaceGroup(re, suite.pdLeaderServer, newGroupID)
196203

197-
checkFn(newGroupID, keyspaceIDs[0], serverList[0].GetAddr())
204+
checkFn(newGroupID, keyspaceIDs[0], serverList[0].GetAddr(), nil)
198205
// tso-1 can't fetch the latest changes, so it should backport to the default keyspace group.
199-
checkFn(constants.DefaultKeyspaceGroupID, keyspaceIDs[0], serverList[1].GetAddr())
206+
terr := &tsopb.Error{
207+
Type: tsopb.ErrorType_INVALID_VALUE,
208+
Message: "[PD:keyspace:ErrKeyspaceGroupVersionStale]keyspace group version is stale",
209+
}
210+
checkFn(constants.DefaultKeyspaceGroupID, keyspaceIDs[0], serverList[1].GetAddr(), terr)
200211
}
201212

202213
func (suite *tsoKeyspaceGroupManagerTestSuite) TestKeyspacesServedByDefaultKeyspaceGroup() {

0 commit comments

Comments
 (0)