【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】使用的是oceanbase-all-in-one-4.3.5_20250115.el7.aarch64.tar.gz安装包
【问题描述】obd cluster start报错obshell连接obagent返回401认证失败报错
【复现路径】问题出现前后相关操作
【附件及日志】
[2025-07-31 11:02:53.162] [9038b68e-6dba-11f0-802f-52540090a3e7] [ERROR] Traceback (most recent call last):
[2025-07-31 11:02:53.162] [9038b68e-6dba-11f0-802f-52540090a3e7] [ERROR] File “core.py”, line 2090, in start_cluster
[2025-07-31 11:02:53.162] [9038b68e-6dba-11f0-802f-52540090a3e7] [ERROR] File “core.py”, line 2140, in _start_cluster
[2025-07-31 11:02:53.162] [9038b68e-6dba-11f0-802f-52540090a3e7] [ERROR] File “core.py”, line 228, in run_workflow
[2025-07-31 11:02:53.162] [9038b68e-6dba-11f0-802f-52540090a3e7] [ERROR] File “core.py”, line 270, in run_plugin_template
[2025-07-31 11:02:53.162] [9038b68e-6dba-11f0-802f-52540090a3e7] [ERROR] File “core.py”, line 315, in call_plugin
[2025-07-31 11:02:53.162] [9038b68e-6dba-11f0-802f-52540090a3e7] [ERROR] File “_plugin.py”, line 347, in call
[2025-07-31 11:02:53.162] [9038b68e-6dba-11f0-802f-52540090a3e7] [ERROR] File “_plugin.py”, line 304, in _new_func
[2025-07-31 11:02:53.162] [9038b68e-6dba-11f0-802f-52540090a3e7] [ERROR] File “/root/.obd/plugins/oceanbase-ce/4.2.1.4/obshell_bootstrap.py”, line 54, in obshell_bootstrap
[2025-07-31 11:02:53.162] [9038b68e-6dba-11f0-802f-52540090a3e7] [ERROR] client.v1.wait_dag_succeed(dag.generic_id)
[2025-07-31 11:02:53.162] [9038b68e-6dba-11f0-802f-52540090a3e7] [ERROR] File “/usr/obd/lib/site-packages/obshell/service/client_v1.py”, line 1045, in wait_dag_succeed
[2025-07-31 11:02:53.162] [9038b68e-6dba-11f0-802f-52540090a3e7] [ERROR] raise TaskExecuteFailedError(f"{logs}", dag)
[2025-07-31 11:02:53.162] [9038b68e-6dba-11f0-802f-52540090a3e7] [ERROR] obshell.service.client_v1.TaskExecuteFailedError: Task ‘Take over’ execution failed: 10.168.206.220:2886 ERROR: request /rpc/v1/agent/update failed: &{false 2025-07-31 11:02:49.72424908 +0800 CST 0 401 9f673170be780506 {Code:10008, Message:Verification failed}}
[2025-07-31 11:02:53.162] [9038b68e-6dba-11f0-802f-52540090a3e7] [ERROR]
[2025-07-31 11:02:53.162] [9038b68e-6dba-11f0-802f-52540090a3e7] [ERROR]
[2025-07-31 11:02:53.227] [9038b68e-6dba-11f0-802f-52540090a3e7] [ERROR] obshell bootstrap failed: Task ‘Take over’ execution failed: 10.168.206.220:2886 ERROR: request /rpc/v1/agent/update failed: &{false 2025-07-31 11:02:49.72424908 +0800 CST 0 401 9f673170be780506 {Code:10008, Message:Verification failed}}
[2025-07-31 11:02:53.227] [9038b68e-6dba-11f0-802f-52540090a3e7] [ERROR]
obagent? 你部署的是有ocp-express组件么。当前该组件已经不进行维护了
是的,我通过oceanbase-all-in-one去部署的oceanbase集群,其中有这个组件
这个不太容易确定,ocp-express组件已经不进行维护与之相关的obagent也同样。
建议你删掉这两个组件或者考虑部署ocp产品
可是obshell操作集群好像需要通过obagent,而且我关掉之后使用命令obd cluster display obcluster会说缺少obagent组件
看你的报错是在拉起 obshell 时,对 ob 集群进行接管时出现了问题,报错和 obagent 无关,麻烦在 10.168.206.222 上执行 ./bin/obshell task show, 可以看到接管任务的失败原因。
如果可以的话,麻烦上传 10.168.206.222 的 obshell 日志,打包 log_obshell 目录即可。
你好,下面是我运行的结果和日志
client.log (4.6 KB)
daemon.log (3.9 KB)
obshell.log (666.2 KB)
obshell.out.log (105.3 KB)
可以先尝试重试这个任务,通过 obshell task retry -i $id
方便的话另外两个节点的 obshell 日志也上传一下吧
我刚刚重试了,还是运行失败了
找到原因了, 验证信息过期了。
obshell 中,http 请求校验信息的默认过期时间是1s。
可以通过 obshell 的本地数据库中(在工作目录下有个隐藏文件 .meta,是一个 sqlite),设置超时时间,如下
设置完成之后重启 节点222 上的 obshell 进程即可(通过 kill -9 终止对应的 obshell server 进程,obshell daemon 进程会自动将其拉起)。
重启完成之后,在 通过 obshell task retry 重试任务应该就可以了。
另外,集群中的节点通信时间超过1s也不太正常,可以通过 clockdiff 看看两台机器的时间差
重试了还是不行,3台服务器时间差的最大值在1.9s,是这个影响了吗
应该是的,重试了还是不可以吗?那可以再发一下 220 的日志么
还是不行的话,那还是建议做一下时钟同步,当然有一些其他的方法可以把这个问题绕过,但后续可能还会因为时钟不同步的问题导致 obshell 操作错误。
好的,谢谢