You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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

火山引擎 最新活动