From 919355c873a35afe3aa5e0fc3add2d17431d82ad Mon Sep 17 00:00:00 2001 From: David Zhao Date: Thu, 6 Jul 2023 23:38:01 -0700 Subject: [PATCH] Log additional details when updating participant permissions (#1855) To help track down sporadic updateParticipant failures --- pkg/rtc/participant.go | 2 ++ pkg/service/roomservice.go | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/pkg/rtc/participant.go b/pkg/rtc/participant.go index a89315c10..2d2f43fc4 100644 --- a/pkg/rtc/participant.go +++ b/pkg/rtc/participant.go @@ -370,6 +370,8 @@ func (p *ParticipantImpl) SetPermission(permission *livekit.ParticipantPermissio return false } + p.GetLogger().Infow("updating participant permission", "permission", permission) + video.UpdateFromPermission(permission) p.dirty.Store(true) diff --git a/pkg/service/roomservice.go b/pkg/service/roomservice.go index 749e367de..31b368cf0 100644 --- a/pkg/service/roomservice.go +++ b/pkg/service/roomservice.go @@ -2,6 +2,7 @@ package service import ( "context" + "fmt" "strconv" "time" @@ -14,6 +15,7 @@ import ( "github.com/livekit/livekit-server/pkg/routing" "github.com/livekit/livekit-server/pkg/rtc" "github.com/livekit/protocol/livekit" + "github.com/livekit/protocol/logger" "github.com/livekit/protocol/rpc" ) @@ -273,20 +275,24 @@ func (s *RoomService) UpdateParticipant(ctx context.Context, req *livekit.Update } var participant *livekit.ParticipantInfo + var detailedError error err = s.confirmExecution(func() error { participant, err = s.roomStore.LoadParticipant(ctx, livekit.RoomName(req.Room), livekit.ParticipantIdentity(req.Identity)) if err != nil { return err } if req.Metadata != "" && participant.Metadata != req.Metadata { + detailedError = fmt.Errorf("metadata does not match") return ErrOperationFailed } if req.Permission != nil && !proto.Equal(req.Permission, participant.Permission) { + detailedError = fmt.Errorf("permissions do not match, expected: %v, actual: %v", req.Permission, participant.Permission) return ErrOperationFailed } return nil }) if err != nil { + logger.Warnw("could not confirm participant update", detailedError) return nil, err }