obd无法启动集群,报OBD-2012: Failed to start obshell

【 使用环境 】测试环境
【 OB or 其他组件 】obd obshell
【 使用版本 】oceanbase-all-in-one-4.2.1.7
【问题描述】使用obd部署的3节点集群,部署后集群状态正常,使用obd cluster命令正常完成了一次启停集群操作,在第二次正常停止集群后,再次启动报异常:
obd cluster start ob_prd
Get local repositories ok
Search plugins ok
Load cluster param plugin ok
Open ssh connection ok
Check before start ob-configserver ok
Check before start observer ok
Check before start obproxy ok
[WARN] OBD-4521: The config observer_sys_password in obproxy-ce did not take effect, please config it in oceanbase-ce

Check before start obagent ok
Check before start ocp-express ok
Start ob-configserver ok
ob-configserver program health check ok
Connect to ob-configserver ok
Start observer ok
observer program health check ok
obshell program health check x
[WARN] OBD-2012: Failed to start 192.168.58.181 obshell
[ERROR] oceanbase-ce start failed

【复现路径】该问题同样在通过obd白屏部署的oceanbase-all-in-one-4.3.1.0上产生,都是正常启停集群一两次之后,再次启动就报同样错误。
【附件及日志】附件为完整启动trace
启动日志.txt (58.6 KB)

你好,麻烦提供一下 192.168.58.181 节点上的 obshell 日志。observer 的日志目录里有个 log_obshell 目录,里面的就是 obshell 的日志。

所有节点obshell日志.rar (370.4 KB)
日志见附件,rar解压后,每个节点一个tar包。二、三节点的boshell看来是拉起来了,一节点181的obshell.log时间戳还停留在昨天关集群的时候。

看日志提示:readlink /proc/2364/cwd:
permission denied 且observer process not exist 再181看下 ps -ef|grep observer

或者使用obd cluster start name -c oceanbase-ce -s 192.168.58.181 试下。

[root@vm-ob-prd-z1-db1 log]# ps -ef | grep admin
admin 2336 1 0 10:50 ? 00:00:01 /ob_soft/ob_prd/obconfigserver/bin/ob-configserver -c /ob_soft/ob_prd/obconfigserver/conf/ob-configserver.yaml
admin 2415 1 99 10:50 ? 05:39:26 /ob_soft/ob_prd/oceanbase/bin/observer -p 2881 -P 2882 -z zone1 -n ob_prd -c 1718183106 -d /ob_data -I 192.168.58.181 -o __min_full_resource_pool_memory=2147483648,datafile_size=10G,datafile_maxsize=25G,datafile_next=5G,enable_syslog_recycle=True,enable_syslog_wf=False,max_syslog_file_count=4,memory_limit=20653M,system_memory=5120M,log_disk_size=61958M,cpu_count=16,obconfig_url=http://192.168.58.181:8080/services?Action=ObRootServiceInfo&ObCluster=ob_prd
root 12548 1741 0 13:48 pts/0 00:00:00 grep --color=auto admin

observer是起着的,pid是2415,见上一条回复的ps -ef 结果

2364这个进程不存在

另外你提到的这条报错信息我看了是昨晚关集群时的信息,今天上午10点左右启动集群,181节点的obshell.log就没有输出信息,client.log有输出。

通过使用obd cluster start name -c oceanbase-ce -s 192.168.58.181 试下。 提供最新日志看看呢

[admin@vm-ob-utils ~]$ obd cluster start ob_prd -c oceanbase-ce -s 192.168.58.181
Get local repositories ok
Search plugins ok
Load cluster param plugin ok
Open ssh connection ok
Check before start observer ok
Start observer ok
observer program health check ok
obshell program health check x
[WARN] OBD-2012: Failed to start 192.168.58.181 obshell
[ERROR] oceanbase-ce start failed
See OceanBase分布式数据库-海量数据 笔笔算数 .
Trace ID: 7abc6496-294a-11ef-a76c-080027f315ea
If you want to view detailed obd logs, please run: obd display-trace 7abc6496-294a-11ef-a76c-080027f315ea
启动日志和obshell日志.rar (37.3 KB)

我发现了一个问题,client.log日志里看到的这么一句:
2024-06-13T14:02:17.925 INFO [13563] [F000000000000000] [admin/start.go:62] daemon process is running
说守护进程是运行状态,可是根本就没有运行:
[root@vm-ob-prd-z1-db1 log_obshell]# ps -ef | grep obshell
root 14139 1741 0 14:08 pts/0 00:00:00 grep --color=auto obshell
而其他节点运行正常的obshell是这样的:
[root@vm-ob-prd-z2-db1 log_obshell]# ps -ef | grep obshell
admin 2495 1 0 10:50 ? 00:00:11 /ob_soft/ob_prd/oceanbase/bin/obshell daemon --ip 192.168.58.182 --port 2886
admin 2516 2495 0 10:50 ? 00:01:08 /ob_soft/ob_prd/oceanbase/bin/obshell server --ip 192.168.58.182 --port 2886
root 13420 1752 0 14:08 pts/0 00:00:00 grep --color=auto obshell

摘选
obshell daemon --ip
这才是守护进程在运行的标志。

那么问题来了,一节点是怎么得出daemon process is running这个错误结论的呢?

看看1节点homepath下的 run/deamon.pid 是否存在,如果存在的话将其删除,在重新执行 obd cluster start name -c oceanbase-ce -s 192.168.58.181

收到,已解决,感谢楼上几位的帮助!

请问你是通过删除 deamon.pid 在重新cluster start 解决的吗, 你有查看deamon.pid是多少吗?