fix(docker): clone ffmpeg from the github mirror - #4024
Conversation
git.ffmpeg.org intermittently returns HTTP 502 on clone, which fails the builder image with exit 128. It has failed from both GitHub hosted and self hosted runners while succeeding from a local machine minutes later. The cause on the server side is unconfirmed. All ffmpeg.org hostnames resolve to a single address with no failover, which is consistent with a proxy returning 502 under clone load, but we cannot verify that. github.com/FFmpeg/FFmpeg is not an official FFmpeg endorsed mirror; it self describes as a mirror and is current. This build already depends on github.com for grpc_health_probe and tasmodel.pb. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
ccfaaca to
9f55e7e
Compare
Verified on CIThe builder job normally skips its build step on PRs (it is gated on Run: https://github.com/livepeer/go-livepeer/actions/runs/31608535985
The ffmpeg layer cold built on the hosted runner, which is where the 502s were occurring: For comparison, the same layer against One further data point on the mirror question: this build already clones from The caveats in the description still stand: we have not confirmed the server side cause of the 502s, and |
Clones FFmpeg from
https://github.com/FFmpeg/FFmpeg.gitinstead ofhttps://git.ffmpeg.org/ffmpeg.git. One URL, nothing else.Why
git.ffmpeg.orgintermittently returns HTTP 502, which fails the clone withexit code: 128:It failed the v0.9.1 build three times today from GitHub hosted runners, once from a self hosted runner, and cloned fine from a local workstation in between. Details and timings in #4023.
We do not know for certain that this is the root cause. We have no visibility into the server. All ffmpeg.org hostnames resolve to a single address with no CDN or failover, which is consistent with a proxy returning 502 when the backend saturates under clone load, but that is a plausible explanation rather than a confirmed diagnosis. What we can say is that the 502s recur, that they are what breaks the build, and that they come from this host.
Caveat
github.com/FFmpeg/FFmpegis not an official, FFmpeg endorsed mirror. ffmpeg.org/git-howto.html does not mention GitHub or any mirror and directs git server problems toroot@ffmpeg.org. The repository self describes asMirror of https://git.ffmpeg.org/ffmpeg.git, is not a fork, and is current, but we are relying on its own claim.Two things reduce that risk:
github.comforgrpc_health_probe(line 30) andtasmodel.pb(line 57), so no new trust or availability dependency is introduced. If GitHub is down this build already fails earlier.If we would rather not depend on the mirror, the alternatives are a retry loop around the clone or vendoring the FFmpeg source. Happy to switch to either.
Scope
Deliberately only the URL, so it can be merged or reverted on its own. It does not change what gets built: the pin on this line does not work (see #4021), so the image tracks upstream master either way. That is fixed separately in #4022.
Refs #4023
🤖 Generated with Claude Code