首批通过分布式安全可靠测评,为关键业务系统打造
OceanBase 数据库 V4.x 版本中并行删列报错 -4105 input rowkey is less then last rowkey
更新时间:2026-05-21 09:16
问题现象
删除列时采用了 DDL 并发设置。
ALTER SESSION FORCE PARALLEL DDL PARALLEL;
ALTER SYSTEM SET ddl_thread_score = 100;
并且表中存在 64 列以上,此时批量删列可能会报错 -4105 input rowkey is less then last rowkey,重试可以成功。
关键诊断信息
触发条件
表当中具有 64 列以上,且以较高的并发度如 32 执行删列操作。
事前巡检
巡检 ddl_thread_score 参数、删列表的列数。
事后诊断
RS 日志可以看到 ret_code=-4105 的返回。
[2024-03-15 22:57:03.860230] INFO [RS] build_ddl_single_replica_response (ob_root_service.cpp:10140) [673702][T1_L0_G0][T1][xxxxxx-xxxxx-xxxxx-xxxxx] [lt=4] receive build ddl single replica response(arg={tenant_id:1004, dest_tenant_id:1004, ls_id:{id:1006}, dest_ls_id:{id:1006}, tablet_id:{id:205899}, source_table_id:522008, dest_schema_id:525885, ret_code:-4105, snapshot_version:1710514622769919709, schema_version:1710514622510360, dest_schema_version:1710514622510360, task_id:22726415, execution_id:1, row_scanned:52696, row_inserted:52910, server_addr:"10.2.33.46:2882"})
[2024-03-15 22:57:03.860259] INFO [RS] set_partition_task_status (ob_ddl_single_replica_executor.cpp:270) [673702][T1_L0_G0][T1][xxxxxx-xxxxx-xxxxx-xxxxx] [lt=26] ObDDLSingleReplicaExecutor::set_partition_task_status(ret_code=-4105)
[2024-03-15 22:57:03.860268] INFO [RS] process_ (ob_rs_rpc_processor.h:232) [673702][T1_L0_G0][T1][xxxxxx-xxxxx-xxxxx-xxxxx] [lt=6] [DDL] execute ddl like stmt(ret=0, cost=38, ddl_arg=NULL)
OBServer 日志中会打印 EDIAG 日志 [errcode=-4105] input rowkey is less then last rowkey。
observer.log.20240315225940206:[2024-03-15 22:57:02.936916] EDIAG [STORAGE] check_order (ob_macro_block_writer.cpp:818) [2218000][T1004_DDL][T1004][xxxxxx-xxxxx-xxxxx-xxxxx] [lt=13][errcode=-4105] input rowkey is less then last rowkey.(cur_key={datum_cnt:1, group_idx:0, hash:0, [idx=0:{len: 8, flag: 0, null: 0, ptr: 0xfff51c4ca060, hex: 41A0000000000000, int: 41025},]store_rowkey:}, last_key={datum_cnt:1, group_idx:0, hash:0, [idx=0:{len: 8, flag: 0, null: 0, ptr: 0xffceb1742070, hex: 85D6000000000000, int: 54917},]store_rowkey:}, ret=-4105) BACKTRACE:0x10d55fb0 0x5f8fcf0 0x5f8f8b8 0x5f8f558 0x5f7c84c 0xd487f34 0xb245c48 0xb2448c4 0xde2b1e0 0xde286d0 0xde24f90 0xe6c5db4 0xb22e894 0x11321314 0x1131d5c0 0xffff0af487ac 0xffff0ae860fc
observer.log.20240315225940206:[2024-03-15 22:57:02.937356] WDIAG [STORAGE] print_micro_block_row (ob_macro_block_writer.cpp:249) [2218000][T1004_DDL][T1004][xxxxxx-xxxxx-xxxxx-xxxxx] [lt=57][errcode=0] error micro block row(it=0, check_datum_row={row_flag:{flag:"INSERT", flag_type:0}, trans_id:{txid:0}, scan_index:0, mvcc_row_flag:{first:0, uncommitted:0, shadow:0, compact:0, ghost:0, last:0, reserved:0, flag:0}, snapshot_version:0, fast_filter_skipped:false, have_uncommited_row:false, group_idx:0, count:95, datum_buffer:{capacity:95, datums:0xfff4297ee050, local_datums:0xfffbf93c8b68}, datums:[col_id=0:{len: 8, flag: 0, null: 0, ptr: 0xfff4297ee060, hex: 85D6000000000000, int: 54917},col_id=1:{len: 8, flag: 0, null: 0, ptr: 0xfff4297ee098, hex: 2309B066030843E8, int: -1710514622769919709},col_id=2:{len: 8, flag: 0, null: 0, ptr: 0xfff4297ee0d0, hex: 0000000000000000, int: 0},col_id=3:{len: 23, flag: 0, null: 0, ptr: 0xffecc24049a8, hex: 3369574D30424F314A32764554626B5876756D31453854, cstr: 3iWM0BO1J2vETbkXvum1E8T},col_id=4:{len: 7, flag: 0, null: 0, ptr: 0xffecc24049c5, hex: 4C4E3030313339, cstr: LN00139},col_id=5:{len: 48, flag: 0, null: 0, ptr: 0xffecc24049d2, hex: E585B3E4BA8EE7A7BBE58AA8E8BDA6E999A9E7BBADE4BF9DE68F90E98692E68AA5E8A1A8E4BC98E58C96E99C80E6B182},col_id=6:{len: 8, flag: 0, null: 0, ptr: 0xfff4297ee1b0, hex: 010000C001000000, int: 7516192769, num_digit0: 1},col_id=7:null,col_id=8:null,col_id=9:{len: 9, flag: 0, null: 0, ptr: 0xffecc2404a22, hex: 323031393232393239, cstr: 201922929},col_id=10:{len: 23, flag: 0, null: 0, ptr: 0xffecc2404a31, hex: 3230313230363235323231393336303638376A31643063, cstr: 201206252219360687j1d0c},col_id=11:{len: 12, flag: 0, null: 0, ptr: 0xffecc2404a4e, hex: E4B8AAE680A7E99C80E6B182},col_id=12:null,col_id=13:{len: 113, flag: 0, null: 0, ptr: 0xffecc2404a66, hex: E6A0B9E68DAEE680BBE585ACE58FB8E7BB9FE4B880E983A8E7BDB2EFBC8C3134E5B9B4E585A8E79C81E7B3BBE7BB9FE59198E5B7A5E5B9B8E7A68FE6849FE6B58BE8AF84E5B7A5E4BD9CE9A1BAE7BB93E69D9FEFBC8CE78EB0E794B3E8AFB7E8BF9BE8A18CE695B0E68DAEE68F90E58F96},col_id=14:{len: 189, flag: 0, null: 0, ptr: 0xffecc2404add, hex: E59BA0E7A7BBE58AA8E7ABAFE8BDA6E999A9E7BBADE4BF9DE68F90E98692E68AA5E8A1A8E58685E79A84E695B0E68DAEE69CAAE58CBAE58886E68890E58D95E6B8A0E98193EFBC8CE4B894E697A0E99C80E6A0A1E9AA8CE698AFE590A6E69C89E4B88AE5B9B4E4BF9DE58D95EFBC8CE99C80E8BF9BE8A18CE4BC98E58C96E8B0},col_id=15:{len: 17, flag: 0, null: 0, ptr: 0xffecc2404ba0, hex: 3135E5AEB6E59CB0E5B882E585ACE58FB8},col_id=16:{len: 48, flag: 0, null: 0, ptr: 0xffecc2404bb7, hex: E4BFA1E681AFE983A8E8BF9BE8A18CE695B0E68DAEE68F90E58F96EFBC8CE5B7A5E4BC9AE8BF9BE8A18CE58886E69E90},col_id=17:null,col_id=18:null,col_id=19:null,col_id=20:null,col_id=21:{len: 4, flag: 0, null: 0, ptr: 0xfff4297ee4f8, hex: 00000080},col_id=22:null,col_id=23:null,col_id=24:null,col_id=25:{len: 23, flag: 0, null: 0, ptr: 0xffecc2404c21, hex: 3230313230363136313232313038303634303661343633, cstr: 2012061612210806406a463},col_id=26:{len: 6, flag: 0, null: 0, ptr: 0xffecc2404c3e, hex: E69DA8E79A93},col_id=27:{len: 20, flag: 0, null: 0, ptr: 0xffecc2404c4a, hex: 31363030563731303030303030303033564C4A35, cstr: 1600V71000000003VLJ5},col_id=28:{len: 15, flag: 0, null: 0, ptr: 0xffecc2404c64, hex: E7B3BBE7BB9FE5BBBAE8AEBEE983A8},col_id=29:{len: 10, flag: 0, null: 0, ptr: 0xffecc2404c79, hex: 323031392D30332D3132, cstr: 2019-03-12},col_id=30:{len: 8, flag: 0, null: 0, ptr: 0xfff4297ee6f0, hex: 010000C001000000, int: 7516192769, num_digit0: 1},col_id=31:{len: 23, flag: 0, null: 0, ptr: 0xffecc2404c97, hex: 3230313230363235323231393336303638376A31643063, cstr: 201206252219360687j1d0c},col_id=32:{len: 23, flag: 0, null: 0, ptr: 0xffecc2404cb4, hex: 3230313230363235323231393336303630393376316A38, cstr: 2012062522193606093v1j8},col_id=33:{len: 9, flag: 0, null: 0, ptr: 0xffecc2404cd1, hex: E58A9EE585ACE5AEA4},col_id=34:{len: 4, flag: 0, null: 0, ptr: 0xffecc2404ce0, hex: 70696363, cstr: picc},col_id=35:{len: 23, flag: 0, null: 0, ptr: 0xffecc2404cea, hex: 323031342D31322D32362031373A32383A32313A323835, cstr: 2014-12-26 17:28:21:285},col_id=36:{len: 1, flag: 0, null: 0, ptr: 0xffecc2404d07, hex: 32, cstr: 2},col_id=37:{len: 8, flag: 0, null: 0, ptr: 0xfff4297ee878, hex: 010000C002000000, int: 11811160065, num_digit0: 2},col_id=38:null,col_id=39:{len: 4, flag: 0, null: 0, ptr: 0xfff4297ee8e8, hex: 00000080},col_id=40:{len: 8, flag: 0, null: 0, ptr: 0xfff4297ee920, hex: 010000C002000000, int: 11811160065, num_digit0: 2},col_id=41:null,col_id=42:{len: 4, flag: 0, null: 0, ptr: 0xfff4297ee990, hex: 00000080},col_id=43:null,col_id=44:null,col_id=45:null,col_id=46:null,col_id=47:{len: 22, flag: 0, null: 0, ptr: 0xffecc2404d62, hex: 33465267754654546436427054515555515573625751, cstr: 3FRguFTTd6BpTQUUQUsbWQ},col_id=48:null,col_id=49:{len: 23, flag: 0, null: 0, ptr: 0xffecc2404d84, hex: 3230313230383236313033333539303738373138343476, cstr: 2012082610335907871844v},col_id=50:{len: 8, flag: 0, null: 0, ptr: 0xfff4297eeb50, hex: 010000C002000000, int: 11811160065, num_digit0: 2},col_id=51:{len: 8, flag: 0, null: 0, ptr: 0xfff4297eeb88, hex: 010000C001000000, int: 7516192769, num_digit0: 1},col_id=52:null,col_id=53:{len: 8, flag: 0, null: 0, ptr: 0xfff4297eebf8, hex: 010000C001000000, int: 7516192769, num_digit0: 1},col_id=54:{len: 15, flag: 0, null: 0, ptr: 0xffecc2404dd1, hex: E68F90E58D87E69893E794A8E680A7},col_id=55:{len: 12, flag: 0, null: 0, ptr: 0xffecc2404de6, hex: E697A5E5B8B8E99C80E6B182},col_id=56:null,col_id=57:null,col_id=58:{len: 12, flag: 0, null: 0, ptr: 0xffecc2404e04, hex: 3031302D3837353131313439, cstr: 010-87511149},col_id=59:{len: 4, flag: 0, null: 0, ptr: 0xfff4297eed48, hex: 00000080},col_id=60:{len: 12, flag: 0, null: 0, ptr: 0xffecc2404e20, hex: E58685E983A8E7AEA1E79086},col_id=61:{len: 12, flag: 0, null: 0, ptr: 0xffecc2404e32, hex: E7BB9FE8AEA1E58886E69E90},col_id=62:{len: 3, flag: 0, null: 0, ptr: 0xffecc2404e44, hex: E697A0},col_id=63:null,col_id=64:{len: 4, flag: 0, null: 0, ptr: 0xfff4297eee60, hex: 00000080},col_id=65:null,col_id=66:{len: 8, flag: 0, null: 0, ptr: 0xfff4297eeed0, hex: 010000C001000000, int: 7516192769, num_digit0: 1},col_id=67:null,col_id=68:{len: 4, flag: 0, null: 0, ptr: 0xfff4297eef40, hex: 00000080},col_id=69:null,col_id=70:null,col_id=71:{len: 8, flag: 0, null: 0, ptr: 0xfff4297eefe8, hex: 010000C002000000, int: 11811160065, num_digit0: 2},col_id=72:{len: 1, flag: 0, null: 0, ptr: 0xffecc2404e9b, hex: 33, cstr: 3},col_id=73:{len: 1, flag: 0, null: 0, ptr: 0xffecc2404ea2, hex: 32, cstr: 2},col_id=74:null,col_id=75:null,col_id=76:null,col_id=77:null,col_id=78:null,col_id=79:{len: 1, flag: 0, null: 0, ptr: 0xffecc2404ec7, hex: 32, cstr: 2},col_id=80:null,col_id=81:null,col_id=82:{len: 1, flag: 0, null: 0, ptr: 0xffecc2404eda, hex: 30, cstr: 0},col_id=83:{len: 1, flag: 0, null: 0, ptr: 0xffecc2404ee1, hex: 30, cstr: 0},col_id=84:{len: 1, flag: 0, null: 0, ptr: 0xffecc2404ee8, hex: 32, cstr: 2},col_id=85:null,col_id=86:{len: 1, flag: 0, null: 0, ptr: 0xffecc2404ef5, hex: 31, cstr: 1},col_id=87:null,col_id=88:{len: 62, flag: 0, null: 0, ptr: 0xffecc2404f02, hex: E4BA92E88194E7BD91E4BF9DE999A9E68A80E69CAFE7A094E58F91E4B8ADE5BF832DE794B5E5AD90E59586E58AA1E68A80E69CAFE694AFE68C81E5A4842C},col_id=89:{len: 1, flag: 0, null: 0, ptr: 0xffecc2404f46, hex: 31, cstr: 1},col_id=90:{len: 19, flag: 0, null: 0, ptr: 0xffecc2404f4d, hex: 323031392D30332D32352031343A35343A3033, cstr: 2019-03-25 14:54:03},col_id=91:{len: 1, flag: 0, null: 0, ptr: 0xffecc2404f66, hex: 32, cstr: 2},col_id=92:{len: 1, flag: 0, null: 0, ptr: 0xffecc2404f6d, hex: 34, cstr: 4},col_id=93:{len: 8, flag: 0, null: 0, ptr: 0xffecc2404f74, hex: 323032315F353034, int: 3760564371817902130, cstr: 2021_504},col_id=94:{len: 1, flag: 0, null: 0, ptr: 0xffecc2404f82, hex: 30, cstr: 0},]}, new_checksum=3184264101)
问题原因
内核缺陷,该问题在删列的过程中,如果表中存在 64 列以上并且以较大的并发度如 32 执行删列操作的时候,存在一定的触发概率。
问题的风险及影响
偶发删列失败。
影响租户
影响 OceanBase 数据库中的 SYS 租户和 Oracle 租户以及 MySQL 租户。
影响版本
OceanBase 数据库企业版 V4.1.0 GA(oceanbase-4.1.0.0-100001122023040322)及之后版本、V4.2.0 GA(oceanbase-4.2.0.0-100010082023083014)及之后版本、V4.2.1 GA(oceanbase-4.2.1.0-100000182023092722)及之后版本。
解决方法及规避方式
解决方法:
升级至问题已修复版本。目前已修复的版本包括 OceanBase 数据库企业版 V4.2.1 BP4(oceanbase-4.2.1.4-104000062024022914)版本。
规避方式:
关闭删除列操作的并行,即降低删列操作的 DDL 并行度设置为 1 可以避免。
对于 MySQL 模式。
SET SESSION_FORCE_PARALLEL_DDL_DOP = 1;对于 Oracle 模式。
ALTER SESSION FORCE PARALLEL DDL PARALLEL 1;
或者
ALTER SYSTEM SET DDL_THREAD_SCORE = 1 TENANT = xxx;后,再执行ALTER TABLE DROP COLUMN操作。