fix get data size fail causing index fail
This commit is contained in:
committed by
LINxiansheng
parent
d9916dc4dd
commit
7052c033e1
@ -980,6 +980,7 @@ int ObBuildIndexScheduleTask::send_copy_replica_rpc()
|
|||||||
}
|
}
|
||||||
ret = OB_EAGAIN;
|
ret = OB_EAGAIN;
|
||||||
} else {
|
} else {
|
||||||
|
int tmp_ret = OB_SUCCESS;
|
||||||
obrpc::ObServerCopyLocalIndexSSTableArg arg;
|
obrpc::ObServerCopyLocalIndexSSTableArg arg;
|
||||||
ObAddr rs_addr;
|
ObAddr rs_addr;
|
||||||
ObSchemaGetterGuard schema_guard;
|
ObSchemaGetterGuard schema_guard;
|
||||||
@ -990,12 +991,14 @@ int ObBuildIndexScheduleTask::send_copy_replica_rpc()
|
|||||||
arg.pkey_ = pkey_;
|
arg.pkey_ = pkey_;
|
||||||
arg.index_table_id_ = index_id_;
|
arg.index_table_id_ = index_id_;
|
||||||
arg.cluster_id_ = GCONF.cluster_id;
|
arg.cluster_id_ = GCONF.cluster_id;
|
||||||
|
if (OB_SUCCESS != (tmp_ret = get_data_size(arg.data_size_))) {
|
||||||
|
arg.data_size_ = 0;
|
||||||
|
STORAGE_LOG(INFO, "fail to get data size, will use data table size to estimate", K(tmp_ret));
|
||||||
|
}
|
||||||
if (arg.data_src_ == arg.dst_) {
|
if (arg.data_src_ == arg.dst_) {
|
||||||
// if the source and destination are the same, it means that this replica builds the index sstable itself,
|
// if the source and destination are the same, it means that this replica builds the index sstable itself,
|
||||||
// just retry the scheduling process will get the right way to next state
|
// just retry the scheduling process will get the right way to next state
|
||||||
ret = OB_EAGAIN;
|
ret = OB_EAGAIN;
|
||||||
} else if (OB_FAIL(get_data_size(arg.data_size_))) {
|
|
||||||
STORAGE_LOG(WARN, "fail to get data size", K(ret));
|
|
||||||
} else if (OB_FAIL(ObMultiVersionSchemaService::get_instance().get_tenant_full_schema_guard(
|
} else if (OB_FAIL(ObMultiVersionSchemaService::get_instance().get_tenant_full_schema_guard(
|
||||||
extract_tenant_id(index_id_), schema_guard))) {
|
extract_tenant_id(index_id_), schema_guard))) {
|
||||||
STORAGE_LOG(WARN, "fail to get schema guard", K(ret), K(schema_version_));
|
STORAGE_LOG(WARN, "fail to get schema guard", K(ret), K(schema_version_));
|
||||||
|
|||||||
Reference in New Issue
Block a user