diff --git a/go/vt/vttablet/tabletmanager/vdiff/engine.go b/go/vt/vttablet/tabletmanager/vdiff/engine.go index d3a762a479b..7cd486a55e4 100644 --- a/go/vt/vttablet/tabletmanager/vdiff/engine.go +++ b/go/vt/vttablet/tabletmanager/vdiff/engine.go @@ -153,12 +153,12 @@ func (vde *Engine) openLocked(ctx context.Context) error { if err != nil { return err } + vde.ctx, vde.cancel = context.WithCancel(ctx) vde.isOpen = true // now we are open and have things to close if err := vde.initControllers(rows); err != nil { return err } - vde.updateStats() // At this point we've fully and successfully opened so begin // retrying error'd VDiffs until the engine is closed. @@ -400,16 +400,4 @@ func (vde *Engine) resetControllers() { ct.Stop() } vde.controllers = make(map[int64]*controller) - vde.updateStats() -} - -// updateStats must only be called while holding the engine lock. -func (vre *Engine) updateStats() { - globalStats.mu.Lock() - defer globalStats.mu.Unlock() - - globalStats.controllers = make(map[int64]*controller, len(vre.controllers)) - for id, ct := range vre.controllers { - globalStats.controllers[id] = ct - } } diff --git a/go/vt/vttablet/tabletmanager/vdiff/stats.go b/go/vt/vttablet/tabletmanager/vdiff/stats.go index 04cda6ac0c1..265f0407d89 100644 --- a/go/vt/vttablet/tabletmanager/vdiff/stats.go +++ b/go/vt/vttablet/tabletmanager/vdiff/stats.go @@ -49,6 +49,7 @@ func (vds *vdiffStats) register() { globalStats.ErrorCount = stats.NewCounter("", "") globalStats.RestartedTableDiffs = stats.NewCountersWithSingleLabel("", "", "Table") globalStats.RowsDiffedCount = stats.NewCounter("", "") + globalStats.controllers = make(map[int64]*controller) stats.NewGaugeFunc("VDiffCount", "Number of current vdiffs", vds.numControllers)