From bdcd142c0d951fecc92414958ed188ae3e5b4b42 Mon Sep 17 00:00:00 2001 From: Raja Subramanian Date: Mon, 25 Dec 2023 14:12:08 +0530 Subject: [PATCH] Adding some logs in subscribe path. (#2343) Trying to chase down an older client failing to subscribe some times. --- pkg/rtc/mediatracksubscriptions.go | 12 ++++++++++++ pkg/rtc/subscriptionmanager.go | 21 ++++++++++++++++++--- pkg/sfu/downtrack.go | 1 + 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/pkg/rtc/mediatracksubscriptions.go b/pkg/rtc/mediatracksubscriptions.go index 15db1a8a3..0a619bb99 100644 --- a/pkg/rtc/mediatracksubscriptions.go +++ b/pkg/rtc/mediatracksubscriptions.go @@ -207,6 +207,12 @@ func (t *MediaTrackSubscriptions) AddSubscriber(sub types.LocalParticipant, wr * replacedTrack := false existingTransceiver, dtState = sub.GetCachedDownTrack(trackID) if existingTransceiver != nil { + sub.GetLogger().Debugw( + "trying to use existing transceiver", + "publisher", subTrack.PublisherIdentity(), + "publisherID", subTrack.PublisherID(), + "trackID", trackID, + ) reusingTransceiver.Store(true) rtpSender := existingTransceiver.Sender() if rtpSender != nil { @@ -217,6 +223,12 @@ func (t *MediaTrackSubscriptions) AddSubscriber(sub types.LocalParticipant, wr * sender = rtpSender transceiver = existingTransceiver replacedTrack = true + sub.GetLogger().Debugw( + "track replaced", + "publisher", subTrack.PublisherIdentity(), + "publisherID", subTrack.PublisherID(), + "trackID", trackID, + ) } } diff --git a/pkg/rtc/subscriptionmanager.go b/pkg/rtc/subscriptionmanager.go index eec97e026..78ce71c6b 100644 --- a/pkg/rtc/subscriptionmanager.go +++ b/pkg/rtc/subscriptionmanager.go @@ -505,8 +505,17 @@ func (m *SubscriptionManager) subscribe(s *trackSubscription) error { subTrack, err := track.AddSubscriber(m.params.Participant) if err != nil && err != errAlreadySubscribed { // ignore already subscribed error + m.params.Logger.Warnw("add subscriber failed", err, "trackID", trackID) return err } + if err == errAlreadySubscribed { + m.params.Logger.Debugw( + "already subscribed to track", + "trackID", trackID, + "subscribedAudioCount", m.subscribedAudioCount.Load(), + "subscribedVideoCount", m.subscribedVideoCount.Load(), + ) + } if err == nil && subTrack != nil { // subTrack could be nil if already subscribed subTrack.OnClose(func(willBeResumed bool) { m.handleSubscribedTrackClose(s, willBeResumed) @@ -536,9 +545,14 @@ func (m *SubscriptionManager) subscribe(s *trackSubscription) error { } go m.params.OnTrackSubscribed(subTrack) - } - m.params.Logger.Debugw("subscribed to track", "trackID", trackID, "subscribedAudioCount", m.subscribedAudioCount.Load(), "subscribedVideoCount", m.subscribedVideoCount.Load()) + m.params.Logger.Debugw( + "subscribed to track", + "trackID", trackID, + "subscribedAudioCount", m.subscribedAudioCount.Load(), + "subscribedVideoCount", m.subscribedVideoCount.Load(), + ) + } // add mark the participant as someone we've subscribed to firstSubscribe := false @@ -596,7 +610,8 @@ func (m *SubscriptionManager) handleSourceTrackRemoved(trackID livekit.TrackID) // - UpTrack was closed // - publisher revoked permissions for the participant func (m *SubscriptionManager) handleSubscribedTrackClose(s *trackSubscription, willBeResumed bool) { - s.logger.Debugw("subscribed track closed", + s.logger.Debugw( + "subscribed track closed", "willBeResumed", willBeResumed, ) wasBound := s.isBound() diff --git a/pkg/sfu/downtrack.go b/pkg/sfu/downtrack.go index 57da4a30f..696b3a8c8 100644 --- a/pkg/sfu/downtrack.go +++ b/pkg/sfu/downtrack.go @@ -351,6 +351,7 @@ func NewDownTrack(params DowntrackParams) (*DownTrack, error) { go d.maxLayerNotifierWorker() go d.keyFrameRequester() } + d.params.Logger.Debugw("downtrack created") return d, nil }