@@ -41,6 +41,7 @@ const (
41
41
keepaliveTime = 10 * time.Second
42
42
keepaliveTimeout = 3 * time.Second
43
43
msgSize = 8 * units.MiB
44
+ retryInterval = time.Second
44
45
)
45
46
46
47
// StopSyncWithLeader stop to sync the region with leader.
@@ -150,7 +151,12 @@ func (s *RegionSyncer) StartSyncWithLeader(addr string) {
150
151
}
151
152
}
152
153
log.Error("server failed to establish sync stream with leader", zap.String("server", s.server.Name()), zap.String("leader", s.server.GetLeader().GetName()), errs.ZapError(err))
153
- time.Sleep(time.Second)
154
+ select {
155
+ case <-ctx.Done():
156
+ log.Info("stop synchronizing with leader due to context canceled")
157
+ return
158
+ case <-time.After(retryInterval):
159
+ }
154
160
continue
155
161
}
156
162
log.Info("server starts to synchronize with leader", zap.String("server", s.server.Name()), zap.String("leader", s.server.GetLeader().GetName()), zap.Uint64("request-index", s.history.GetNextIndex()))
@@ -162,7 +168,12 @@ func (s *RegionSyncer) StartSyncWithLeader(addr string) {
162
168
if err = stream.CloseSend(); err != nil {
163
169
log.Error("failed to terminate client stream", errs.ZapError(errs.ErrGRPCCloseSend, err))
164
170
}
165
- time.Sleep(time.Second)
171
+ select {
172
+ case <-ctx.Done():
173
+ log.Info("stop synchronizing with leader due to context canceled")
174
+ return
175
+ case <-time.After(retryInterval):
176
+ }
166
177
break
167
178
}
168
179
if s.history.GetNextIndex() != resp.GetStartIndex() {
@@ -206,7 +217,17 @@ func (s *RegionSyncer) StartSyncWithLeader(addr string) {
206
217
log.Debug("region is stale", zap.Stringer("origin", origin.GetMeta()), errs.ZapError(err))
207
218
continue
208
219
}
220
+ <<<<<<< HEAD
209
221
saveKV, _, _ := regionGuide(region, origin)
222
+ =======
223
+ cctx := &core.MetaProcessContext{
224
+ Context: ctx,
225
+ TaskRunner: ratelimit.NewSyncRunner(),
226
+ Tracer: core.NewNoopHeartbeatProcessTracer(),
227
+ // no limit for followers.
228
+ }
229
+ saveKV, _, _, _ := regionGuide(cctx, region, origin)
230
+ >>>>>>> 41ec8dced (syncer: exit watch leader immediately (#8824))
210
231
overlaps := bc.PutRegion(region)
211
232
212
233
if hasBuckets {
0 commit comments