[BUGFIX]Virtual tables cannot retry das tasks
This commit is contained in:
committed by
wangzelin.wzl
parent
7952fa9f29
commit
1afa0ecf7b
@ -109,6 +109,7 @@ public:
|
|||||||
const share::ObLSID &get_ls_id() const { return ls_id_; }
|
const share::ObLSID &get_ls_id() const { return ls_id_; }
|
||||||
void set_tablet_loc(const ObDASTabletLoc *tablet_loc) { tablet_loc_ = tablet_loc; }
|
void set_tablet_loc(const ObDASTabletLoc *tablet_loc) { tablet_loc_ = tablet_loc; }
|
||||||
const ObDASTabletLoc *get_tablet_loc() const { return tablet_loc_; }
|
const ObDASTabletLoc *get_tablet_loc() const { return tablet_loc_; }
|
||||||
|
inline int64_t get_ref_table_id() const { return tablet_loc_->loc_meta_->ref_table_id_; }
|
||||||
virtual int decode_task_result(ObIDASTaskResult *task_result) = 0;
|
virtual int decode_task_result(ObIDASTaskResult *task_result) = 0;
|
||||||
//远程执行填充第一个RPC结果,并返回是否还有剩余的RPC结果
|
//远程执行填充第一个RPC结果,并返回是否还有剩余的RPC结果
|
||||||
virtual int fill_task_result(ObIDASTaskResult &task_result,
|
virtual int fill_task_result(ObIDASTaskResult &task_result,
|
||||||
|
|||||||
@ -182,9 +182,8 @@ int ObDataAccessService::refresh_partition_location(ObDASRef &das_ref, ObIDASTas
|
|||||||
int ObDataAccessService::retry_das_task(ObDASRef &das_ref, ObIDASTaskOp &task_op)
|
int ObDataAccessService::retry_das_task(ObDASRef &das_ref, ObIDASTaskOp &task_op)
|
||||||
{
|
{
|
||||||
int ret = task_op.errcode_;
|
int ret = task_op.errcode_;
|
||||||
while (is_master_changed_error(ret) ||
|
while (!is_virtual_table(task_op.get_ref_table_id()) &&
|
||||||
is_partition_change_error(ret) ||
|
(is_master_changed_error(ret) || is_partition_change_error(ret) || OB_REPLICA_NOT_READABLE == ret)) {
|
||||||
OB_REPLICA_NOT_READABLE == ret) {
|
|
||||||
if (!can_fast_fail(task_op)) {
|
if (!can_fast_fail(task_op)) {
|
||||||
task_op.in_part_retry_ = true;
|
task_op.in_part_retry_ = true;
|
||||||
das_ref.get_exec_ctx().get_my_session()->set_session_in_retry(true, ret);
|
das_ref.get_exec_ctx().get_my_session()->set_session_in_retry(true, ret);
|
||||||
|
|||||||
Reference in New Issue
Block a user