Ubuntu 22.04下使用DevStack安装OpenStack执行./stack.sh时遇到Git克隆TLS错误求助
Ubuntu 22.04下使用DevStack安装OpenStack执行./stack.sh时遇到Git克隆TLS错误求助
我之前在Ubuntu 22.04用DevStack部署OpenStack时也碰到过一模一样的问题,这个报错核心是Git通过HTTPS克隆OpenStack仓库时,GnuTLS解码TLS数据包失败,进而导致RPC调用失败、早到EOF这类连锁问题。大概率是网络波动、Git的加密库兼容性或者仓库克隆超时导致的,给你几个亲测有效的解决办法:
解决办法
1. 调整Git网络超时配置,增强容错性
网络不稳定是最常见的诱因,先给Git设置更大的缓冲区和更长的超时阈值,降低因网络波动触发错误的概率:
git config --global http.postBuffer 524288000 git config --global http.lowSpeedLimit 0 git config --global http.lowSpeedTime 999999
设置完之后重新运行./stack.sh试试。
2. 替换Git的加密库为OpenSSL
Ubuntu 22.04默认给Git搭配的GnuTLS有时候会有兼容性问题,换成OpenSSL通常能解决TLS解码错误:
# 安装OpenSSL依赖 sudo apt-get install libcurl4-openssl-dev # 重新安装Git,让它链接OpenSSL sudo apt-get remove -y git sudo apt-get install -y git
安装完成后可以用git config --system http.sslBackend查看是否切换成功,输出应该是openssl。
3. 手动克隆报错的仓库,跳过DevStack的自动克隆
如果上面两种方法都不行,直接手动把报错的requirements.git克隆到指定路径,DevStack检测到仓库已存在就不会再重复执行克隆操作了:
git clone https://opendev.org/openstack/requirements.git /opt/stack/requirements --branch master
确保克隆成功后,再重新运行./stack.sh即可。
附上你遇到的完整错误信息,方便其他开发者参考:
error: RPC failed; curl 56 GnuTLS recv error (-9): Error decoding the received TLS packet. fatal: early EOF fatal: fetch-pack: invalid index-pack output +functions-common:git_timed:729 [[ 128 -ne 124 ]] +functions-common:git_timed:730 die 730 'git call failed: [git clone' https://opendev.org/openstack/requirements.git /opt/stack/requirements --branch 'master]' +functions-common:die:264 local exitcode=0 +functions-common:die:265 set +o xtrace [Call Trace] ./stack.sh:774:git_clone /opt/stack/devstack/functions-common:654:git_timed /opt/stack/devstack/functions-common:730:die [ERROR] /opt/stack/devstack/functions-common:730 git call failed: [git clone https://opendev.org/openstack/requirements.git /opt/stack/requirements --branch master] Error on exit /opt/stack/devstack/tools/worlddump.py:22: DeprecationWarning: The distutils package is deprecated and slated for removal in Python 3.12. Use setuptools or check PEP 632 for potential alternatives from distutils import spawn World dumping... see /opt/stack/logs/worlddump-2022-12-29-234955.txt for details
备注:内容来源于stack exchange,提问作者Claude Mutela




