From 496656627e3f5afa4ef562cc6f871c48c03354e0 Mon Sep 17 00:00:00 2001 From: Raja Subramanian Date: Fri, 30 Jun 2023 11:59:53 +0530 Subject: [PATCH] Logging more to understand layer transition leak better. (#1840) --- pkg/sfu/connectionquality/connectionstats.go | 27 ++++++++++++++++++-- pkg/sfu/connectionquality/scorer.go | 5 ++++ 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/pkg/sfu/connectionquality/connectionstats.go b/pkg/sfu/connectionquality/connectionstats.go index 5acc6c0da..107be9678 100644 --- a/pkg/sfu/connectionquality/connectionstats.go +++ b/pkg/sfu/connectionquality/connectionstats.go @@ -81,18 +81,42 @@ func (cs *ConnectionStats) OnStatsUpdate(fn func(cs *ConnectionStats, stat *live } func (cs *ConnectionStats) UpdateMute(isMuted bool, at time.Time) { + /* TODO-RESTORE + if cs.done.IsBroken() { + return + } + */ + cs.scorer.UpdateMute(isMuted, at) } func (cs *ConnectionStats) AddBitrateTransition(bitrate int64, at time.Time) { + /* TODO-RESTORE + if cs.done.IsBroken() { + return + } + */ + cs.scorer.AddBitrateTransition(bitrate, at) } func (cs *ConnectionStats) UpdateLayerMute(isMuted bool, at time.Time) { + /* TODO-RESTORE + if cs.done.IsBroken() { + return + } + */ + cs.scorer.UpdateLayerMute(isMuted, at) } func (cs *ConnectionStats) AddLayerTransition(distance float64, at time.Time) { + /* TODO-RESTORE + if cs.done.IsBroken() { + return + } + */ + cs.scorer.AddLayerTransition(distance, at) } @@ -253,10 +277,9 @@ func (cs *ConnectionStats) updateStatsWorker() { tk := time.NewTicker(interval) defer tk.Stop() - done := cs.done.Watch() for { select { - case <-done: + case <-cs.done.Watch(): return case <-tk.C: diff --git a/pkg/sfu/connectionquality/scorer.go b/pkg/sfu/connectionquality/scorer.go index 4d333e005..b84d27777 100644 --- a/pkg/sfu/connectionquality/scorer.go +++ b/pkg/sfu/connectionquality/scorer.go @@ -252,6 +252,8 @@ func (q *qualityScorer) AddLayerTransition(distance float64, at time.Time) { q.lock.Lock() defer q.lock.Unlock() + // TODO-REMOVE-AFTER-DEBUG + q.params.Logger.Debugw("adding layer transition", "at", at, "distance", distance) q.layerTransitions = append(q.layerTransitions, layerTransition{ startedAt: at, distance: distance, @@ -262,6 +264,9 @@ func (q *qualityScorer) Update(stat *windowStat, at time.Time) { q.lock.Lock() defer q.lock.Unlock() + // TODO-REMOVE-AFTER-DEBUG + q.params.Logger.Debugw("running update", "at", at, "stat", stat) + // always update transitions expectedBitrate := q.getExpectedBitsAndUpdateTransitions(at) expectedDistance := q.getExpectedDistanceAndUpdateTransitions(at)