fix fetch gi task failed bug
This commit is contained in:
@ -1159,8 +1159,9 @@ int ObGranuleIteratorOp::do_parallel_runtime_filter_pruning()
|
|||||||
OZ(args.tablet_arrays_.push_back(pruning_remain_tablets));
|
OZ(args.tablet_arrays_.push_back(pruning_remain_tablets));
|
||||||
OZ(pump_->regenerate_gi_task());
|
OZ(pump_->regenerate_gi_task());
|
||||||
}
|
}
|
||||||
args.set_finish_pruning();
|
|
||||||
}
|
}
|
||||||
|
args.set_pruning_ret(ret);
|
||||||
|
args.set_finish_pruning();
|
||||||
} else {
|
} else {
|
||||||
while (OB_SUCC(ret) && !args.is_finish_pruning()) {
|
while (OB_SUCC(ret) && !args.is_finish_pruning()) {
|
||||||
if (OB_FAIL(ctx_.fast_check_status())) {
|
if (OB_FAIL(ctx_.fast_check_status())) {
|
||||||
@ -1169,7 +1170,8 @@ int ObGranuleIteratorOp::do_parallel_runtime_filter_pruning()
|
|||||||
ob_usleep(100);
|
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;
|
ret = OB_ITER_END;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -66,6 +66,7 @@ public :
|
|||||||
cur_tablet_idx_(0), finish_pruning_tablet_idx_(0),
|
cur_tablet_idx_(0), finish_pruning_tablet_idx_(0),
|
||||||
sharing_iter_end_(false),
|
sharing_iter_end_(false),
|
||||||
pruning_status_(READY_PRUNING),
|
pruning_status_(READY_PRUNING),
|
||||||
|
pruning_ret_(OB_SUCCESS),
|
||||||
partitions_info_(), parallelism_(0),
|
partitions_info_(), parallelism_(0),
|
||||||
tablet_size_(0), gi_attri_flag_(0) {}
|
tablet_size_(0), gi_attri_flag_(0) {}
|
||||||
virtual ~ObGranulePumpArgs() { reset(); };
|
virtual ~ObGranulePumpArgs() { reset(); };
|
||||||
@ -78,6 +79,8 @@ public :
|
|||||||
bool need_partition_granule();
|
bool need_partition_granule();
|
||||||
bool is_finish_pruning() { return pruning_status_ == FINISH_PRUNING; }
|
bool is_finish_pruning() { return pruning_status_ == FINISH_PRUNING; }
|
||||||
void set_finish_pruning() { 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() {
|
void reset() {
|
||||||
op_info_.reset();
|
op_info_.reset();
|
||||||
tablet_arrays_.reset();
|
tablet_arrays_.reset();
|
||||||
@ -95,6 +98,7 @@ public :
|
|||||||
int64_t finish_pruning_tablet_idx_;
|
int64_t finish_pruning_tablet_idx_;
|
||||||
bool sharing_iter_end_;
|
bool sharing_iter_end_;
|
||||||
PruningStatus pruning_status_;
|
PruningStatus pruning_status_;
|
||||||
|
int pruning_ret_;
|
||||||
//-----end
|
//-----end
|
||||||
common::ObArray<ObPxTabletInfo> partitions_info_;
|
common::ObArray<ObPxTabletInfo> partitions_info_;
|
||||||
common::ObArray<share::ObExternalFileInfo> external_table_files_;
|
common::ObArray<share::ObExternalFileInfo> external_table_files_;
|
||||||
|
|||||||
Reference in New Issue
Block a user