diff --git a/CHANGELOG_PENDING.md b/CHANGELOG_PENDING.md index 2674a607b..c89646069 100644 --- a/CHANGELOG_PENDING.md +++ b/CHANGELOG_PENDING.md @@ -15,6 +15,7 @@ #### Transcoder ### Bug Fixes 🐞 +- #2747 Fixed a transcoding bug that occurred when remote transcoder was removed #### CLI @@ -22,7 +23,6 @@ - \#2713 Add support for keyfiles with -ethKeystorePath, update flag descriptions, flagset output to stdout #### Broadcaster -- \#2709 Add logging for high keyframe interval, reduce log level for discovery loop - \#2684 Fix transcode success rate metric #### Orchestrator diff --git a/core/orchestrator.go b/core/orchestrator.go index 73c59930f..a44fa49c7 100644 --- a/core/orchestrator.go +++ b/core/orchestrator.go @@ -913,25 +913,14 @@ func (rtm *RemoteTranscoderManager) Manage(stream net.Transcoder_RegisterTransco func removeFromRemoteTranscoders(rt *RemoteTranscoder, remoteTranscoders []*RemoteTranscoder) []*RemoteTranscoder { if len(remoteTranscoders) == 0 { - // No transocerds to remove, return + // No transcoders to remove, return return remoteTranscoders } - lastIndex := len(remoteTranscoders) - 1 - last := remoteTranscoders[lastIndex] - if rt == last { - return remoteTranscoders[:lastIndex] - } - newRemoteTs := make([]*RemoteTranscoder, 0) - for i, t := range remoteTranscoders { - if t == rt { - if i == 0 { - return remoteTranscoders[1:] - } - newRemoteTs = remoteTranscoders[:i] - newRemoteTs = append(newRemoteTs, remoteTranscoders[i+1:]...) - break + for _, t := range remoteTranscoders { + if t != rt { + newRemoteTs = append(newRemoteTs, t) } } return newRemoteTs