From 785d8992f1ac50097e9140accb05630e0eadfb5e Mon Sep 17 00:00:00 2001 From: Ian Milligan Date: Thu, 4 Jun 2020 09:23:33 -0700 Subject: [PATCH] Delete views from measure ref when unregistering (#1211) --- stats/view/worker.go | 7 +++++-- stats/view/worker_commands.go | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/stats/view/worker.go b/stats/view/worker.go index 74e4a90fa..09a208fc5 100644 --- a/stats/view/worker.go +++ b/stats/view/worker.go @@ -314,10 +314,13 @@ func (w *worker) tryRegisterView(v *View) (*viewInternal, error) { return vi, nil } -func (w *worker) unregisterView(viewName string) { +func (w *worker) unregisterView(v *viewInternal) { w.mu.Lock() defer w.mu.Unlock() - delete(w.views, viewName) + delete(w.views, v.view.Name) + if measure := w.measures[v.view.Measure.Name()]; measure != nil { + delete(measure.views, v) + } } func (w *worker) reportView(v *viewInternal, now time.Time) { diff --git a/stats/view/worker_commands.go b/stats/view/worker_commands.go index 8ec295d95..e4a2fbdea 100644 --- a/stats/view/worker_commands.go +++ b/stats/view/worker_commands.go @@ -103,7 +103,7 @@ func (cmd *unregisterFromViewReq) handleCommand(w *worker) { // The collected data can be cleared. vi.clearRows() } - w.unregisterView(name) + w.unregisterView(vi) } cmd.done <- struct{}{} }