多个 android 回购同步致命错误

multiple android repo sync fatal errors

我正在使用 repo sync 将 Lineage OS 15.1 与

同步
repo init -u https://github.com/LineageOS/android.git -b lineage-15.1

我在不同的存储库中重复出现以下错误

1:

curl: (22) The requested URL returned error: 404 Not Found
Server does not provide clone.bundle; ignoring.

2:

Cannot fetch LineageOS/android_external_lineage-sdk-api-coverage
warn: --force-broken, continuing to sync

3:

fatal: unable to access 'https://github.com/LineageOS/android_external_lineage-sdk-api-coverage/': Could not resolve host: github.com

4:

fatal: unable to access 'https://android.googlesource.com/platform/system/tpm/': gnutls_handshake() failed: The TLS connection was non-properly terminated.

5:

fatal: unable to access 'https://github.com/LineageOS/android_external_lineage-sdk-api-coverage/': gnutls_handshake() failed: Error in the pull function.

6:

fatal: unable to access 'https://android.googlesource.com/platform/external/libcap/': gnutls_handshake() failed: Error in the pull function.

7:

error: RPC failed; curl 56 GnuTLS recv error (-110): The TLS connection was non-properly terminated.
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

8:

error: RPC failed; curl 56 GnuTLS recv error (-54): Error in the pull function.
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

9:

fatal: unable to access 'https://github.com/LineageOS/android_hardware_broadcom_libbt/': Empty reply from server

10:

fatal: unable to access 'https://gerrit.googlesource.com/git-repo/': Failed to connect to gerrit.googlesource.com port 443: Connection timed out

并且由于这些错误,repo 同步在 error: Exited sync due to fetch errors 时停止,因此我使用了 repo sync -f(--force broken 标志),它应该可以修复网络错误(不确定)。我的回购协议仍在同步(以及错误),我不知道最后是否会得到正确的同步文件。有人可以告诉我这些错误是什么吗?为什么会发生以及如何解决?我可以看到其中一些与网络相关,但我不确定有多少。请帮我解决这些问题。

我在 SE 上搜索了一些问题,但这些错误有不同的背景并且与 repo 无关(尽管显然与 git 相关)。

我的网络速度:最大 1MBps(这就是为什么我对那些通常不应该发生的网络问题更加困惑)

我意识到高速连接是不够的,它必须高度稳定并与其速度保持一致。

这次网络更改解决了除 GnuTLS 问题之外的大部分问题。看起来 gnutls 要求我提供企业级互联网连接(我负担不起),因为它 对网络波动高度敏感 .

git config --global http.postBuffer 1048576000 方法无效。

我用 openssl (guide) 重建了 git降低了波动敏感度很多(与 gnutls 相比)。

之后,剩余的错误由 运行 repo sync -f 一次又一次地修复。这不是一个很好的解决方案,但教训是 openssl 在不稳定和低带宽的情况下效果更好 (如果你调用 1- 2MBps 低带宽连接)连接。

我 运行 以下命令调整 TCP 设置并使用非并行命令。之后,我成功下载了所有源代码:

sudo sysctl -w net.ipv4.tcp_window_scaling=0
repo sync -j1

来源:https://source.android.com/setup/build/downloading#troubleshooting-network-issues