From 062d12197fa925a918fa94464d0b3c46f021ac5d Mon Sep 17 00:00:00 2001 From: Raja Subramanian Date: Thu, 21 May 2026 23:00:51 +0530 Subject: [PATCH] Use NACKQuueInterface type. (#4538) And some extra logging for subscription permission when it fails. --- go.mod | 2 +- go.sum | 4 ++-- pkg/rtc/uptrackmanager.go | 19 ++++++++++++++++--- pkg/sfu/buffer/buffer_base.go | 2 +- 4 files changed, 20 insertions(+), 7 deletions(-) diff --git a/go.mod b/go.mod index 2474cd9d8..acba029a4 100644 --- a/go.mod +++ b/go.mod @@ -20,7 +20,7 @@ require ( github.com/jellydator/ttlcache/v3 v3.4.0 github.com/jxskiss/base62 v1.1.0 github.com/livekit/mageutil v0.0.0-20250511045019-0f1ff63f7731 - github.com/livekit/mediatransportutil v0.0.0-20260501135216-8818f1b77e59 + github.com/livekit/mediatransportutil v0.0.0-20260521171458-ef117e280447 github.com/livekit/protocol v1.45.9-0.20260519061926-8381f2180c45 github.com/livekit/psrpc v0.7.1 github.com/mackerelio/go-osstat v0.2.7 diff --git a/go.sum b/go.sum index 637e7e97e..41cfe1273 100644 --- a/go.sum +++ b/go.sum @@ -179,8 +179,8 @@ github.com/lithammer/shortuuid/v4 v4.2.0 h1:LMFOzVB3996a7b8aBuEXxqOBflbfPQAiVzkI github.com/lithammer/shortuuid/v4 v4.2.0/go.mod h1:D5noHZ2oFw/YaKCfGy0YxyE7M0wMbezmMjPdhyEFe6Y= github.com/livekit/mageutil v0.0.0-20250511045019-0f1ff63f7731 h1:9x+U2HGLrSw5ATTo469PQPkqzdoU7be46ryiCDO3boc= github.com/livekit/mageutil v0.0.0-20250511045019-0f1ff63f7731/go.mod h1:Rs3MhFwutWhGwmY1VQsygw28z5bWcnEYmS1OG9OxjOQ= -github.com/livekit/mediatransportutil v0.0.0-20260501135216-8818f1b77e59 h1:lWRMrb4ReRJu/e/BAp1kpT6fQOjS8WjCxdp0PGjgrBc= -github.com/livekit/mediatransportutil v0.0.0-20260501135216-8818f1b77e59/go.mod h1:RCd46PT+6sEztld6XpkCrG1xskb0u3SqxIjy4G897Ss= +github.com/livekit/mediatransportutil v0.0.0-20260521171458-ef117e280447 h1:AwzxgDnzGVVLZuSYDdgo7ETdpHzQPagyjtJOTrhQduY= +github.com/livekit/mediatransportutil v0.0.0-20260521171458-ef117e280447/go.mod h1:RCd46PT+6sEztld6XpkCrG1xskb0u3SqxIjy4G897Ss= github.com/livekit/protocol v1.45.9-0.20260519061926-8381f2180c45 h1:gJQFJNjHuxeKroI6KTtVeXVcUMOaK8ksdiB6FoiDWmE= github.com/livekit/protocol v1.45.9-0.20260519061926-8381f2180c45/go.mod h1:KEPIJ/ZdMFQ9tmmfv/uT9TjQEuEcZupCZBabuRGEC1k= github.com/livekit/psrpc v0.7.1 h1:ms37az0QTD3UXIWuUC5D/SkmKOlRMVRsI261eBWu/Vw= diff --git a/pkg/rtc/uptrackmanager.go b/pkg/rtc/uptrackmanager.go index 1964d68f9..f75f501c8 100644 --- a/pkg/rtc/uptrackmanager.go +++ b/pkg/rtc/uptrackmanager.go @@ -311,7 +311,11 @@ func (u *UpTrackManager) parseSubscriptionPermissionsLocked( sub := resolver(livekit.ParticipantID(trackPerms.ParticipantSid)) if sub == nil { - u.params.Logger.Warnw("could not find subscriber for permissions update", nil, "subscriberID", trackPerms.ParticipantSid) + u.params.Logger.Warnw( + "could not find subscriber for permissions update", nil, + "subscriberID", trackPerms.ParticipantSid, + "subscriptionPermission", logger.Proto(subscriptionPermission), + ) continue } @@ -320,10 +324,19 @@ func (u *UpTrackManager) parseSubscriptionPermissionsLocked( if trackPerms.ParticipantSid != "" { sub := resolver(livekit.ParticipantID(trackPerms.ParticipantSid)) if sub != nil && sub.Identity() != subscriberIdentity { - u.params.Logger.Errorw("participant identity mismatch", nil, "expected", subscriberIdentity, "got", sub.Identity()) + u.params.Logger.Errorw( + "participant identity mismatch", nil, + "expected", subscriberIdentity, + "got", sub.Identity(), + "subscriptionPermission", logger.Proto(subscriptionPermission), + ) } if sub == nil { - u.params.Logger.Warnw("could not find subscriber for permissions update", nil, "subscriberID", trackPerms.ParticipantSid) + u.params.Logger.Warnw( + "could not find subscriber for permissions update", nil, + "subscriberID", trackPerms.ParticipantSid, + "subscriptionPermission", logger.Proto(subscriptionPermission), + ) } } } diff --git a/pkg/sfu/buffer/buffer_base.go b/pkg/sfu/buffer/buffer_base.go index a7f0ef8b0..b94326cff 100644 --- a/pkg/sfu/buffer/buffer_base.go +++ b/pkg/sfu/buffer/buffer_base.go @@ -154,7 +154,7 @@ type BufferBase struct { bucket *bucket.Bucket[uint64, uint16] lastBucketCapCheckAt int64 - nacker *nack.NackQueue + nacker nack.NackQueueInterface rtpStatsLite *rtpstats.RTPStatsReceiverLite liteStatsSnapshotId uint32