prexecute only support local retry
This commit is contained in:
committed by
wangzelin.wzl
parent
c32d7e433b
commit
f13c9e8a24
@ -68,7 +68,7 @@ int ObAsyncCmdDriver::response_result(ObMySQLResultSet &result)
|
||||
LOG_WARN("close result set fail", K(close_ret));
|
||||
}
|
||||
if (!result.is_async_end_trans_submitted()) {
|
||||
retry_ctrl_.test_and_save_retry_state(gctx_, ctx_, result, ret, cli_ret);
|
||||
retry_ctrl_.test_and_save_retry_state(gctx_, ctx_, result, ret, cli_ret, is_prexecute_);
|
||||
LOG_WARN("result set open failed, check if need retry",
|
||||
K(ret), K(cli_ret), K(retry_ctrl_.need_retry()));
|
||||
ret = cli_ret;
|
||||
|
||||
@ -79,7 +79,7 @@ int ObAsyncPlanDriver::response_result(ObMySQLResultSet &result)
|
||||
// 如果try_again为true,说明这条SQL需要重做。考虑到重做之前我们需要回滚整个事务,会调用EndTransCb
|
||||
// 所以这里设置一个标记,告诉EndTransCb这种情况下不要给客户端回包。
|
||||
int cli_ret = OB_SUCCESS;
|
||||
retry_ctrl_.test_and_save_retry_state(gctx_, ctx_, result, ret, cli_ret);
|
||||
retry_ctrl_.test_and_save_retry_state(gctx_, ctx_, result, ret, cli_ret, is_prexecute_);
|
||||
if (retry_ctrl_.need_retry()) {
|
||||
result.set_end_trans_async(false);
|
||||
}
|
||||
|
||||
@ -114,7 +114,7 @@ int ObSyncCmdDriver::response_result(ObMySQLResultSet &result)
|
||||
}
|
||||
|
||||
// open失败,决定是否需要重试
|
||||
retry_ctrl_.test_and_save_retry_state(gctx_, ctx_, result, ret, cli_ret);
|
||||
retry_ctrl_.test_and_save_retry_state(gctx_, ctx_, result, ret, cli_ret, is_prexecute_);
|
||||
LOG_WARN("result set open failed, check if need retry",
|
||||
K(ret), K(cli_ret), K(retry_ctrl_.need_retry()));
|
||||
ret = cli_ret;
|
||||
|
||||
@ -72,7 +72,8 @@ int ObSyncPlanDriver::response_result(ObMySQLResultSet &result)
|
||||
ctx_,
|
||||
result,
|
||||
ret,
|
||||
cli_ret);
|
||||
cli_ret,
|
||||
is_prexecute_);
|
||||
if (OB_TRANSACTION_SET_VIOLATION != ret && OB_REPLICA_NOT_READABLE != ret) {
|
||||
if (OB_TRY_LOCK_ROW_CONFLICT == ret && retry_ctrl_.need_retry()) {
|
||||
//锁冲突重试不打印日志,避免刷屏
|
||||
@ -107,7 +108,8 @@ int ObSyncPlanDriver::response_result(ObMySQLResultSet &result)
|
||||
ctx_,
|
||||
result,
|
||||
ret,
|
||||
cli_ret);
|
||||
cli_ret,
|
||||
is_prexecute_);
|
||||
LOG_WARN("result response failed, check if need retry",
|
||||
K(ret), K(cli_ret), K(retry_ctrl_.need_retry()));
|
||||
ret = cli_ret;
|
||||
|
||||
Reference in New Issue
Block a user