CI failure: Task `riscv32 bare metal, static libbitcoin_consensus`: submodule cloning rate limited #35853

issue maflcko opened this issue on July 30, 2026
  1. maflcko commented at 7:37 PM on July 30, 2026: member

    Not sure what to do about this. Looks like some projects blocked CI machines from cloning their repos.

    🚧 At least one of the CI tasks failed. <sub>Task riscv32 bare metal, static libbitcoin_consensus: https://github.com/bitcoin/bitcoin/actions/runs/30046119080/job/90826618769</sub> <sub>LLM reason (✨ experimental): CI failed because submodule cloning of newlib-cygwin.git from sourceware.org was rate-limited (HTTP 429), causing the base install step to exit with code 2.</sub>

    Originally posted by @DrahtBot in #35762 (comment)

  2. maflcko added the label CI failed on Jul 30, 2026
  3. fanquake commented at 8:43 PM on July 30, 2026: member
  4. maflcko referenced this in commit fa06ea4244 on Aug 4, 2026
  5. fanquake referenced this in commit 75f024a84e on Aug 4, 2026
  6. maflcko commented at 9:46 AM on August 4, 2026: member

    The CI is now failing for more than a week, and it is unclear when it will be coming back. I think it makes sense to at least temporarily remove the config from the GHA matrix.

  7. maflcko commented at 9:47 AM on August 4, 2026: member
  8. willcl-ark commented at 11:18 AM on August 4, 2026: member

    I have managed (after a struggle) to mirror the sourceware repos on my own infra here: https://git.fish.foo/mirrors

    We could switch to that in CI with a rough patch like:

     ${CI_RETRY_EXE} git clone --depth=1 https://github.com/riscv-collab/riscv-gnu-toolchain -b 2026.06.06 /riscv/gcc
    +# Use a mirror for these submodules as sourceware blocks too many requests.
    +git config --global \
    +  url."https://git.fish.foo/mirrors/binutils-gdb.git".insteadOf \
    +  "https://sourceware.org/git/binutils-gdb.git"
    +
    +git config --global \
    +  url."https://git.fish.foo/mirrors/glibc.git".insteadOf \
    +  "https://sourceware.org/git/glibc.git"
    +
    +git config --global \
    +  url."https://git.fish.foo/mirrors/newlib-cygwin.git".insteadOf \
    +  "https://sourceware.org/git/newlib-cygwin.git"
    +
     ( cd /riscv/gcc;
       ./configure --prefix=/opt/riscv-ilp32 --with-arch=rv32gc --with-abi=ilp32 --disable-gdb;
       make "$MAKEJOBS"; )
    

    This of course only moves the potential source of flakiness from sourceware.org to myself. I have no plans to deprecate that forgejo instance and can probably be more responsive to fixing things that sourceware appear to be, but perhaps there is still another better solution...

    I have a local branch combining this with caching both the SDKs (a la #35722) and the riscv toolchain build more cleanly in CI, so I may close #35722 and open a "unified" approach, if using my mirror repos is deemed acceptable?

  9. maflcko commented at 2:06 PM on August 4, 2026: member

    Using fish foo seems fine. Should be trivial to remove the config (cherry-pick fa06ea42448d94c6e7ed9fad1adedb439ff6f78d) if something fails again.

    Waiting a few more weeks for upstream seems also fine.

    I wouldn't combine the change with other changes, though.


github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-08-08 03:51 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me