From 416dded86f2fed1f5b45552f7bbada65f4f88e58 Mon Sep 17 00:00:00 2001 From: Raja Subramanian Date: Wed, 22 Jan 2025 13:24:26 +0530 Subject: [PATCH] Clone pending tracks to prevent concurrent update. (#3359) --- pkg/rtc/participant.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/rtc/participant.go b/pkg/rtc/participant.go index 725953fef..cafcb4f95 100644 --- a/pkg/rtc/participant.go +++ b/pkg/rtc/participant.go @@ -685,7 +685,7 @@ func (p *ParticipantImpl) ToProtoWithVersion() (*livekit.ParticipantInfo, utils. } if !found { - pi.Tracks = append(pi.Tracks, pti.trackInfos[0]) + pi.Tracks = append(pi.Tracks, utils.CloneProto(pti.trackInfos[0])) } } @@ -2683,7 +2683,7 @@ func (p *ParticipantImpl) getPendingTrack(clientId string, kind livekit.TrackTyp return signalCid, nil, false, time.Time{} } - return signalCid, pendingInfo.trackInfos[0], pendingInfo.migrated, pendingInfo.createdAt + return signalCid, utils.CloneProto(pendingInfo.trackInfos[0]), pendingInfo.migrated, pendingInfo.createdAt } // setTrackID either generates a new TrackID for an AddTrackRequest