-
Notifications
You must be signed in to change notification settings - Fork 177
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
Fix SIGSEGV in fra-ai #3346
Fix SIGSEGV in fra-ai #3346
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #3346 +/- ##
===================================================
- Coverage 33.73323% 33.72602% -0.00721%
===================================================
Files 141 141
Lines 37426 37434 +8
===================================================
Hits 12625 12625
- Misses 24080 24088 +8
Partials 721 721
Continue to review full report in Codecov by Sentry.
|
So purely running it as a separate binary fixes the problem? Or you think there's some bug fixed in a later version of ffmpeg which we're using when running it as a separate binary? |
It doesn't fix the SIGSEGV, but it makes it way better handled, because not the whole Gateway pod is restarted (which closes all streams). At the same time, I think we don't need to spend more time on that right now, because maybe the impact is really low or maybe it's even zero impact (e.g. it might have happened only while closing the stream or something). So, I'd wait and see if we need to still investigate it. |
VideoEncoder: ffmpeg.ComponentOptions{Name: "copy"}, | ||
Muxer: ffmpeg.ComponentOptions{Name: "segment"}, | ||
}}) | ||
cmd := exec.Command("ffmpeg", |
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.
@j0sh what were the reasons to use lpms transcode3 here? Guessing mostly ease of use since it was in go-livepeer already?
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.
correct - we don't want to require additional executables outside go-livepeer itself (but this fix is fine for now since it gets us out of a pickle)
FFMPEG causes SIGSEGV, which is very hard to analyze. The bug can be in LPMS or in the FFMPEG library itself. This PR extracts running ffmpeg to a separate process.
Notes:
ffmpeg
instead of the one from LPMS; We could switch to LPMS, but then we need to build an additional binary (which I find redundant)