[BUGFIX]Virtual tables cannot retry das tasks
This commit is contained in:
parent
7952fa9f29
commit
1afa0ecf7b
@ -109,6 +109,7 @@ public:
|
||||
const share::ObLSID &get_ls_id() const { return ls_id_; }
|
||||
void set_tablet_loc(const ObDASTabletLoc *tablet_loc) { tablet_loc_ = 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;
|
||||
//远程执行填充第一个RPC结果,并返回是否还有剩余的RPC结果
|
||||
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 ret = task_op.errcode_;
|
||||
while (is_master_changed_error(ret) ||
|
||||
is_partition_change_error(ret) ||
|
||||
OB_REPLICA_NOT_READABLE == ret) {
|
||||
while (!is_virtual_table(task_op.get_ref_table_id()) &&
|
||||
(is_master_changed_error(ret) || is_partition_change_error(ret) || OB_REPLICA_NOT_READABLE == ret)) {
|
||||
if (!can_fast_fail(task_op)) {
|
||||
task_op.in_part_retry_ = true;
|
||||
das_ref.get_exec_ctx().get_my_session()->set_session_in_retry(true, ret);
|
||||
|
Loading…
x
Reference in New Issue
Block a user