obd升级2.3.0存在bug

【 使用环境 】测试环境
【 OB or 其他组件 】
系统环境:龙蜥8.8
ob 4.2
obd 2.2.0 → 2.3.0
【 使用版本 】obd 2.2.0
【问题描述】obd升级2.3.0存在问题,可能是程序没有创建/root/.obd/repository/ob-deploy/2.3.0/578ebe3dc40884d2e0a72b2cd9a9a6e6a0e5a94f/usr/lib/.build-id/的子目录,直接做链接引起的升级失败问题
【复现路径】
提前装好依赖

pip3 install pydantic
pip3 install Crypto

执行obd update -v

提示:

但是再次执行obd update -v显示extract mode: paraller时立马手动创建目录/root/.obd/repository/ob-deploy/2.3.0/578ebe3dc40884d2e0a72b2cd9a9a6e6a0e5a94f/usr/lib/.build-id/04/时候,这一步错误会过,但是产生了新的错误:

【问题现象及影响】

【附件】

@谐云, 帮忙看看

麻烦把obd的日志附件发一下,默认在 执行 obd update命令所在的用户下: ~/.obd/log/obd 文件。

obd.txt (1.1 MB)

看日志是升级成功了

执行一下 obd --version看看呢

没有成功还是显示2.2.0

[root@o1 .build-id]# obd --version
OceanBase Deploy: 2.2.0
REVISION: a2aa84d6ed5c4dc7dbfb77251baabb46e10607c6
BUILD_BRANCH: HEAD
BUILD_TIME: Jul 30 2023 11:48:17OURCE
Copyright (C) 2021 OceanBase
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

el8 刚才我复现了这个问题。需要等一下了 看下具体什么问题,然后给你提供对应的方案。 el7是正常的。

目前我的解决方法如下:
系统中默认没有两个python依赖安装一下

pip3 install pydantic
pip3 install Crypto

当看到extract mode: paraller

...
- mkdir /root/.obd/repository
- exclusive lock `/root/.obd/lock/mirror_and_repo`, count 4
- mkdir /root/.obd/repository/ob-deploy/2.3.0/578ebe3dc40884d2e0a72b2cd9a9a6e6a0e5a94f
- rm /root/.obd/repository/ob-deploy/2.3.0/578ebe3dc40884d2e0a72b2cd9a9a6e6a0e5a94f
- mkdir /root/.obd/repository/ob-deploy/2.3.0/578ebe3dc40884d2e0a72b2cd9a9a6e6a0e5a94f
- extract mode: paraller

立刻执行命令:

mkdir -p /root/.obd/repository/ob-deploy/2.3.0/578ebe3dc40884d2e0a72b2cd9a9a6e6a0e5a94f/usr/lib/.build-id/ && cd /root/.obd/repository/ob-deploy/2.3.0/578ebe3dc40884d2e0a72b2cd9a9a6e6a0e5a94f/usr/lib/.build-id/ &&  mkdir -p 04 0a 0f 11 16 17 19 1b 1c 20 23 24 26 29 2c 2d 31 32 35 3b 3c 3f 41 42 43 45 48 4f 53 59 62 6a 78 7e 82 88 89 8b 93 96 97 98 99 a9 ae b0 b9 c4 c5 c6 cd d2 d3 d8 dc e4 e5 e7 ec f1 f6 fc fd

等待安装完成之后查看版本

[root@o1 ~]# obd --version
OceanBase Deploy: 2.3.0
REVISION: a8aa91d817e9cd9b7f0521d91b80e0a510e30b19
BUILD_BRANCH: HEAD
BUILD_TIME: Sep 15 2023 13:23:09OURCE
Copyright (C) 2021 OceanBase
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

经过排查 obd el8打包 el8操作系统写入的非预期文件 /usr/lib/.build-id 和obd 升级逻辑不兼容导致的。这个问题会在obd的下个版本修复。