fix fetch gi task failed bug

This commit is contained in:
sdc
2023-06-29 04:12:26 +00:00
committed by ob-robot
parent 789c9913b8
commit f8426228f3
2 changed files with 8 additions and 2 deletions

View File

@ -1159,8 +1159,9 @@ int ObGranuleIteratorOp::do_parallel_runtime_filter_pruning()
OZ(args.tablet_arrays_.push_back(pruning_remain_tablets));
OZ(pump_->regenerate_gi_task());
}
args.set_finish_pruning();
}
args.set_pruning_ret(ret);
args.set_finish_pruning();
} else {
while (OB_SUCC(ret) && !args.is_finish_pruning()) {
if (OB_FAIL(ctx_.fast_check_status())) {
@ -1169,7 +1170,8 @@ int ObGranuleIteratorOp::do_parallel_runtime_filter_pruning()
ob_usleep(100);
}
}
if (OB_SUCC(ret) && args.sharing_iter_end_) {
if (OB_SUCC(ret)
&& (args.sharing_iter_end_ || OB_UNLIKELY(OB_SUCCESS != args.get_pruning_ret()))) {
ret = OB_ITER_END;
}
}

View File

@ -66,6 +66,7 @@ public :
cur_tablet_idx_(0), finish_pruning_tablet_idx_(0),
sharing_iter_end_(false),
pruning_status_(READY_PRUNING),
pruning_ret_(OB_SUCCESS),
partitions_info_(), parallelism_(0),
tablet_size_(0), gi_attri_flag_(0) {}
virtual ~ObGranulePumpArgs() { reset(); };
@ -78,6 +79,8 @@ public :
bool need_partition_granule();
bool is_finish_pruning() { return pruning_status_ == FINISH_PRUNING; }
void set_finish_pruning() { pruning_status_ = FINISH_PRUNING; }
int get_pruning_ret() { return pruning_ret_; }
void set_pruning_ret(int v) { pruning_ret_ = v; }
void reset() {
op_info_.reset();
tablet_arrays_.reset();
@ -95,6 +98,7 @@ public :
int64_t finish_pruning_tablet_idx_;
bool sharing_iter_end_;
PruningStatus pruning_status_;
int pruning_ret_;
//-----end
common::ObArray<ObPxTabletInfo> partitions_info_;
common::ObArray<share::ObExternalFileInfo> external_table_files_;