From 52e10ea31569df5f2e27b8ea4987da464cb74ac6 Mon Sep 17 00:00:00 2001 From: David Zhao Date: Wed, 6 Oct 2021 22:24:09 -0700 Subject: [PATCH] handle nil MessageChannel --- pkg/routing/redisrouter.go | 3 +++ pkg/rtc/participant.go | 3 +++ 2 files changed, 6 insertions(+) diff --git a/pkg/routing/redisrouter.go b/pkg/routing/redisrouter.go index 0be9cdc81..51486e1eb 100644 --- a/pkg/routing/redisrouter.go +++ b/pkg/routing/redisrouter.go @@ -407,6 +407,9 @@ func (r *RedisRouter) handleRTCMessage(rm *livekit.RTCNodeMessage) error { r.lock.RLock() requestChan := r.requestChannels[pKey] r.lock.RUnlock() + if requestChan == nil { + return ErrChannelClosed + } if err := requestChan.WriteMessage(rmb.Request); err != nil { return err } diff --git a/pkg/rtc/participant.go b/pkg/rtc/participant.go index ebbe3129c..1e261f1da 100644 --- a/pkg/rtc/participant.go +++ b/pkg/rtc/participant.go @@ -748,6 +748,9 @@ func (p *ParticipantImpl) writeMessage(msg *livekit.SignalResponse) error { return nil } sink := p.params.Sink + if sink == nil { + return nil + } err := sink.WriteMessage(msg) if err != nil { logger.Warnw("could not send message to participant", err,