Fix deadlock caused by subscription manager test (#1563)

We held the lock if subscription length check fails
This commit is contained in:
David Zhao
2023-03-30 17:10:32 -07:00
committed by GitHub
parent 59961c1992
commit 82fd3e865e

View File

@@ -225,14 +225,20 @@ func TestUnsubscribe(t *testing.T) {
require.False(t, s.isDesired())
require.Eventually(t, func() bool {
return !s.needsUnsubscribe()
if s.needsUnsubscribe() {
return false
}
sm.lock.RLock()
subLen := len(sm.subscriptions)
sm.lock.RUnlock()
if subLen != 0 {
return false
}
return true
}, subSettleTimeout, subCheckInterval, "Track was not unsubscribed")
// no traces should be left
require.Len(t, sm.GetSubscribedTracks(), 0)
sm.lock.RLock()
require.Len(t, sm.subscriptions, 0)
sm.lock.RUnlock()
require.False(t, res.TrackChangedNotifier.HasObservers())
tm := sm.params.Telemetry.(*telemetryfakes.FakeTelemetryService)