提交 0bf9c07b 编写于 作者: O obdev 提交者: wangzelin.wzl

BUGFIX: rewrite tablelock return code

上级 5a681d78
......@@ -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,
......
......@@ -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,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册