From 8027cccadd760bd6588ba7a0c699f80b9fda1f09 Mon Sep 17 00:00:00 2001 From: danm Date: Tue, 7 Feb 2023 15:06:15 -0700 Subject: [PATCH] let panics crash --- pkg/rtc/participant.go | 4 ---- pkg/rtc/utils.go | 23 ----------------------- pkg/service/roommanager.go | 1 - pkg/service/rtcservice.go | 2 +- 4 files changed, 1 insertion(+), 29 deletions(-) diff --git a/pkg/rtc/participant.go b/pkg/rtc/participant.go index 41e049358..1e9147836 100644 --- a/pkg/rtc/participant.go +++ b/pkg/rtc/participant.go @@ -1054,7 +1054,6 @@ func (p *ParticipantImpl) updateState(state livekit.ParticipantInfo_State) { p.lock.RUnlock() if onStateChange != nil { go func() { - defer Recover(p.GetLogger()) onStateChange(p, oldState) }() } @@ -1228,7 +1227,6 @@ func (p *ParticipantImpl) onAnyTransportFailed() { // subscriberRTCPWorker sends SenderReports periodically when the participant is subscribed to // other publishedTracks in the room. func (p *ParticipantImpl) subscriberRTCPWorker() { - defer Recover(p.GetLogger()) for { if p.IsDisconnected() { return @@ -1821,8 +1819,6 @@ func (p *ParticipantImpl) getPublishedTrackBySdpCid(clientId string) types.Media } func (p *ParticipantImpl) publisherRTCPWorker() { - defer Recover(p.GetLogger()) - // read from rtcpChan for pkts := range p.rtcpCh { if pkts == nil { diff --git a/pkg/rtc/utils.go b/pkg/rtc/utils.go index 388e12520..2ac4cb1b7 100644 --- a/pkg/rtc/utils.go +++ b/pkg/rtc/utils.go @@ -2,7 +2,6 @@ package rtc import ( "encoding/json" - "errors" "io" "strings" @@ -108,28 +107,6 @@ func IsEOF(err error) bool { return err == io.ErrClosedPipe || err == io.EOF } -func RecoverSilent() { - recover() -} - -func Recover(l logger.Logger) { - if l == nil { - l = logger.GetLogger() - } - if r := recover(); r != nil { - var err error - switch e := r.(type) { - case string: - err = errors.New(e) - case error: - err = e - default: - err = errors.New("unknown panic") - } - l.Errorw("recovered panic", err, "panic", r) - } -} - // logger helpers func LoggerWithParticipant(l logger.Logger, identity livekit.ParticipantIdentity, sid livekit.ParticipantID, isRemote bool) logger.Logger { values := make([]interface{}, 0, 4) diff --git a/pkg/service/roommanager.go b/pkg/service/roommanager.go index b89dc8ae8..8da2d5199 100644 --- a/pkg/service/roommanager.go +++ b/pkg/service/roommanager.go @@ -479,7 +479,6 @@ func (r *RoomManager) rtcSessionWorker(room *rtc.Room, participant types.LocalPa pLogger.Debugw("RTC session finishing") requestSource.Close() }() - defer rtc.Recover(pLogger) // send first refresh for cases when client token is close to expiring _ = r.refreshToken(participant) diff --git a/pkg/service/rtcservice.go b/pkg/service/rtcservice.go index fb52611dd..93bce8b46 100644 --- a/pkg/service/rtcservice.go +++ b/pkg/service/rtcservice.go @@ -263,7 +263,7 @@ func (s *RTCService) ServeHTTP(w http.ResponseWriter, r *http.Request) { // we would terminate the signal connection as well _ = conn.Close() }() - defer rtc.Recover(pLogger) + for { select { case <-done: