【 使用环境 】测试环境
【 OB or 其他组件 】OB
【 使用版本 】4.3.5
【问题描述】OCP下monitor租户合并失败,其他租户合并正常
【复现路径】问题出现前后相关操作
1、合并失败,长时间处于合并中,已经8个小时
2、查询合并失败的TENANT_ID = 1004
select * from GV$OB_COMPACTION_DIAGNOSE_INFO WHERE TENANT_ID = 1004;
详细信息如下
error_no=-4034,last_error_time=1744077516181700,error_trace=YB420A0B093D-0006322C65074A20-0-0,warning=“info=“DAG_MAJOR_MERGE”;ls_id=1;tablet_id=182;compaction_scn=1744048801036449184;extra_info=“merge_type=“MEDIUM_MERGE””;”
3、查看对应的日志信息
cd /root/oceanbase/log
grep YB420A0B093D-0006322C65074A20-0-0 observer.*
traceid.log (43.7 KB)
4、合并失败,问题相关的表
2 个赞
旭辉
#3
1.麻烦发下OB的详细版本
show variables like '%version_comment%';
2.使用obdiag进行合并失败根因分析
obdiag rca run --scene=major_hold
https://www.oceanbase.com/docs/common-obdiag-cn-1000000002488219
2 个赞
OceanBase_CE 4.2.1.8 (r108000022024072217-3149c25ca2dadbb7707686ad02a1367b1b43e0b5) (Built Jul 23 2024 03:19:19)
obdiag_major_hold_20250408104101.zip (16.7 KB)
1 个赞
obdiag display-trace e80cdf26-1422-11f0-9c75-00163eb20c6f
obdiagdisplay-trace e80cdf26.log (9.8 KB)
旭辉
#6
看您这边之前发过一个帖子,当时查出来是IO Error,是同一套集群吗?
修改了磁盘配置参数和接口,重新部署的新集群。目前来看,还没发现IO错误吧
旭辉
#8
目前的日志没有发现IO错误,麻烦提供下09:58分左右完整的observer.log看下
ocp-server.zip (7.2 MB)
麻烦看看这个ocp日志,有9:58左右的报错日志
observer.log没有9:58左右的
合并失败的租户是OCP下的租户,ocp_monitor
旭辉
#10
ocp-server.log中的报错是monitor租户执行下show create table xxx报错,可能和合并问题有关系,
合并出现这个报错通常有两个原因,一是硬件问题,如磁盘有异常,二是OB内核BUG,OB内核BUG在4.2.1.10版本修复了,如果你确定没有硬件错误 可以升级到4.2.1.10或之后版本再试下。
observer.log:[2025-04-08 09:58:36.181327] ERROR issue_dba_error (ob_log.cpp:1875) [42313][T1004_MAJOR_MER][T1004][YB420A0B093D-0006322C65074A20-0-0] [lt=5][errcode=-4388] Unexpected internal error happen, please checkout the internal errcode(errcode=-4034, file="ob_macro_block_common_header.cpp", line_no=140, info="deserialize error")
observer.log:[2025-04-08 09:58:36.181349] EDIAG [STORAGE] deserialize (ob_macro_block_common_header.cpp:140) [42313][T1004_MAJOR_MER][T1004][YB420A0B093D-0006322C65074A20-0-0] [lt=22][errcode=-4034] deserialize error(ret=-4034, *this={header_size:0, version:0, magic:0, attr:0, payload_size:0, payload_checksum:0}) BACKTRACE:0x1204f5bc 0x505bb05 0x51541fd 0x5153cbf 0x5140314 0x5153b63 0xecadb4e 0xec48b0a 0xeca603e 0xf24d66d 0xf24c9ee 0x4eb1a53 0xf0495f7 0x506841d 0xf064ced 0xf0bc00e 0xfb20b9a 0x513078e 0x126fe6e1 0x126faaa0 0x1521dc2081ca 0x1521dbe398d3
observer.log:[2025-04-08 09:58:36.181368] WDIAG [STORAGE] open (ob_macro_block_bare_iterator.cpp:124) [42313][T1004_MAJOR_MER][T1004][YB420A0B093D-0006322C65074A20-0-0] [lt=18][errcode=-4034] Failed to deserialize macro header(ret=-4034, macro_block_buf=0x1520c74f3000, macro_block_buf_size=4096)
2 个赞
旭辉
#13
旭辉
#16
不建议使用OB4.3.5,实际上ocp-all-in-one包里面的OB版本是ocp的最佳适配版本,即使有bug也很少能触发到,这里怀疑触发到了bug,建议使用4.2.1.10或4.2.1.11
1 个赞
我在61服务器上部署了OB(4.2.1.11),然后在同一台服务器上选择用的现有OB(4.2.1.11)部署OCP。然后用OCP去接管OB,出现如下报错
任务日志
subtask_1000147.log (12.8 KB)
OCP运行日志
ocp-server.log (10.9 MB)
旭辉
#21
你看下ocp.site.url的设置,改成8080端口试下
1 个赞