问题现象
在 OceanBase 数据库 V4.2.1.4 版本中手动发起 transfer 分区任务后,该任务一直卡住,无法完成,任务日志报错 -7114,但实际上并不存在活跃事务。
关键日志信息。
[2024-06-04 22:19:28.351194] WDIAG [STORAGE] check_src_ls_has_active_trans_ (ob_transfer_handler.cpp:781) [3068][T1004_TransferS][T1004][xxxxx-xxxxx-xxxxx-xxxxx] [lt=6][errcode=-7114] src ls has unexpected active trans count(ret=-7114, active_trans_count=1, expected_active_trans_count=0, src_ls_id={id:1001})
[2024-06-04 22:19:28.351201] WDIAG [STORAGE] do_with_start_status_ (ob_transfer_handler.cpp:463) [3068][T1004_TransferS][T1004][xxxxx-xxxxx-xxxxx-xxxxx] [lt=6][errcode=-7114] failed to check src ls active trans(ret=-7114, task_info={tenant_id:1004, src_ls_id:{id:1001}, dest_ls_id:{id:1002}, task_id:{id:216}, trace_id:xxxxx-xxxxx-xxxxx-xxxxx, status:{status:1, status:"START"}, table_lock_owner_id:{id:10269380}, table_lock_tablet_list:[{tablet_id:{id:200069}}], tablet_list:[{tablet_id:{id:200069}, transfer_seq:0}, {tablet_id:{id:1152921504606847072}, transfer_seq:0}, {tablet_id:{id:1152921504606847073}, transfer_seq:0}], start_scn:{val:0, v:0}, finish_scn:{val:0, v:0}, result:-1})
[2024-06-04 22:19:28.351476] WDIAG [STORAGE] do_with_start_status_ (ob_transfer_handler.cpp:502) [3068][T1004_TransferS][T1004][xxxxx-xxxxx-xxxxx-xxxxx] [lt=29][errcode=-7114] failed to commit trans(tmp_ret=-7114, ret=-7114)
问题原因
因内部逻辑导致手动 transfer 期间误判存在活跃事务,进而造成手动发起的 transfer 任务一直无法完成。
问题的风险及影响
影响 transfer 任务执行。
影响租户
影响 OceanBase 数据库中的 SYS 租户和 Oracle 租户以及 MySQL 租户。
适用版本
OceanBase 数据库 V4.2.1.x 版本。
解决方法
升级至问题已修复版本。目前已修复的版本 OceanBase 数据库 V4.2.1 BP4 Hotfix2(oceanbase-4.2.1.4-104020022024031915)。