From 0bf9c07bbd7ba5e8fe8b050a17282eb1159eefa4 Mon Sep 17 00:00:00 2001 From: obdev Date: Fri, 4 Nov 2022 09:40:45 +0000 Subject: [PATCH] BUGFIX: rewrite tablelock return code --- src/storage/tablelock/ob_table_lock_service.cpp | 14 ++++++++++++++ src/storage/tablelock/ob_table_lock_service.h | 1 + 2 files changed, 15 insertions(+) diff --git a/src/storage/tablelock/ob_table_lock_service.cpp b/src/storage/tablelock/ob_table_lock_service.cpp index 06199ae9d..5a790dc6f 100644 --- a/src/storage/tablelock/ob_table_lock_service.cpp +++ b/src/storage/tablelock/ob_table_lock_service.cpp @@ -278,6 +278,7 @@ int ObTableLockService::lock_table(const uint64_t table_id, !ctx.is_timeout()); } while (need_retry); } + ret = rewrite_return_code_(ret); return ret; } @@ -301,6 +302,7 @@ int ObTableLockService::unlock_table(const uint64_t table_id, ObTableLockCtx ctx(table_id, timeout_us, timeout_us); ret = process_lock_task_(ctx, UNLOCK_TABLE, lock_mode, lock_owner); } + ret = rewrite_return_code_(ret); return ret; } @@ -340,6 +342,7 @@ int ObTableLockService::lock_tablet(const uint64_t table_id, !ctx.is_timeout()); } while (need_retry); } + ret = rewrite_return_code_(ret); return ret; } @@ -364,6 +367,7 @@ int ObTableLockService::unlock_tablet(const uint64_t table_id, ObTableLockCtx ctx(table_id, tablet_id, timeout_us, timeout_us); ret = process_lock_task_(ctx, UNLOCK_TABLET, lock_mode, lock_owner); } + ret = rewrite_return_code_(ret); return ret; } @@ -1059,6 +1063,16 @@ bool ObTableLockService::need_retry_single_task_(const ObTableLockCtx &ctx, return need_retry; } +int ObTableLockService::rewrite_return_code_(const int ret) const +{ + int rewrite_rcode = ret; + // rewrite to OB_EAGAIN, to make sure the ddl process will retry again. + if (OB_TRANS_KILLED == ret) { + rewrite_rcode = OB_EAGAIN; + } + return rewrite_rcode; +} + int ObTableLockService::get_ls_leader_( const int64_t cluster_id, const uint64_t tenant_id, diff --git a/src/storage/tablelock/ob_table_lock_service.h b/src/storage/tablelock/ob_table_lock_service.h index 2df1d2320..5f565c1a1 100644 --- a/src/storage/tablelock/ob_table_lock_service.h +++ b/src/storage/tablelock/ob_table_lock_service.h @@ -166,6 +166,7 @@ private: int refresh_schema_if_needed_(ObTableLockCtx &ctx); bool need_retry_single_task_(const ObTableLockCtx &ctx, const int64_t ret) const; + int rewrite_return_code_(const int ret) const; int process_lock_task_(ObTableLockCtx &ctx, const ObTableLockTaskType task_type, const ObTableLockMode lock_mode, -- GitLab