-
Notifications
You must be signed in to change notification settings - Fork 171
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Disconnect broadcaster in case of a segmentation error. #457
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
-
Let's add the commit hash from LPMS.
-
Is there any other places we should close the RTMP connection? Feels almost like we should do this every time we are returning an error.
It is already there (see c488b62), but prior to merging this, I'll update the commit message with the final commit hash after merging with LPMS, since fast-forward merges change the hash.
Returning a non-nil go-livepeer/server/mediaserver.go Lines 299 to 302 in dabcc64
Once we have #429 in then this might not be relevant anymore. Also, given the OBS reconnect behavior, I'm not sure about the implications of re-trying the job submission every time it fails. (Although I should mention that this bit of code becomes more complex with the new networking system; see 482db44#diff-236217e7f473dfbde9134c6a391f3408L313) go-livepeer/server/mediaserver.go Lines 275 to 290 in dabcc64
If updating the master playlist fails, do we want to disconnect the incoming stream? (Right now, with the current basicnet implementation, it doesn't look like it can ever fail.) Since this isn't actually operating on the incoming/segmented stream, perhaps it's best to leave it alone? Although if we do add other types of non-recoverable errors from the transcoder later on, we could special-case a disconnect here. Are there any other places that might need to be checked? |
Updated the LPMS commit to the final hash of 6466ec3 , 9e50061 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agree that masterPlaylist update failure shouldn't necessarily drop RTMP connection. 🚢
@ericxtang Can we roll livepeer/lpms#82 into this change set? |
@j0sh Yep! |
This resolves the immediate issue of broadcast nodes hanging after OBS does not cleanly disconnect. The segmenter already has a built-in timeout which is typically triggered by idle RTMP ingest connections, so use that as a signal to kill the ingest connection.