@@ -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
202213func (suite * tsoKeyspaceGroupManagerTestSuite ) TestKeyspacesServedByDefaultKeyspaceGroup () {
0 commit comments