[asan] 3.1 open observer无法启动

This commit is contained in:
xy0
2022-03-14 20:32:04 +08:00
committed by LINxiansheng
parent ac5edad6e9
commit 93fd1a9ea0
5 changed files with 140 additions and 126 deletions

View File

@ -249,12 +249,13 @@ int ObSyncCmdDriver::response_query_result(ObMySQLResultSet& result)
MYSQL_PROTOCOL_TYPE protocol_type = result.is_ps_protocol() ? BINARY : TEXT;
const ObSQLSessionInfo *tmp_session = result.get_exec_context().get_my_session();
const ObDataTypeCastParams dtc_params = ObBasicSessionInfo::create_dtc_params(tmp_session);
OMPKRow rp(ObSMRow(protocol_type,
ObSMRow sm_row(protocol_type,
*row,
dtc_params,
result.get_field_columns(),
ctx_.schema_guard_,
tmp_session->get_effective_tenant_id()));
tmp_session->get_effective_tenant_id());
OMPKRow rp(sm_row);
if (OB_FAIL(sender_.response_packet(rp))) {
LOG_WARN("response packet fail", K(ret), KP(row));
}

View File

@ -259,12 +259,13 @@ int ObSyncPlanDriver::response_query_result(
}
if (OB_SUCC(ret)) {
const ObDataTypeCastParams dtc_params = ObBasicSessionInfo::create_dtc_params(&session_);
OMPKRow rp(ObSMRow(protocol_type,
ObSMRow sm_row(protocol_type,
*row,
dtc_params,
result.get_field_columns(),
ctx_.schema_guard_,
session_.get_effective_tenant_id()));
session_.get_effective_tenant_id());
OMPKRow rp(sm_row);
if (OB_FAIL(sender_.response_packet(rp))) {
LOG_WARN("response packet fail", K(ret), KP(row), K(row_num), K(can_retry));
// break;

View File

@ -51,6 +51,9 @@ int ObExecuteExecutor::execute(ObExecContext& ctx, ObExecuteStmt& stmt)
}
if (OB_SUCC(ret)) {
observer::ObVirtualTableIteratorFactory vt_iter_factory(*GCTX.vt_iter_creator_);
SMART_VAR(ObSqlCtx, sql_ctx)
{
SMART_VAR(ObResultSet, result_set, *ctx.get_my_session())
{
result_set.init_partition_location_cache(
@ -69,8 +72,6 @@ int ObExecuteExecutor::execute(ObExecContext& ctx, ObExecuteStmt& stmt)
GCTX.schema_service_->get_tenant_received_broadcast_version(OB_SYS_TENANT_ID, sys_version))) {
LOG_WARN("fail get sys schema version", K(ret));
} else {
ObSqlCtx sql_ctx;
observer::ObVirtualTableIteratorFactory vt_iter_factory(*GCTX.vt_iter_creator_);
sql_ctx.retry_times_ = 0;
sql_ctx.merged_version_ = ctx.get_sql_ctx()->merged_version_;
sql_ctx.vt_iter_factory_ = &vt_iter_factory;
@ -132,6 +133,7 @@ int ObExecuteExecutor::execute(ObExecContext& ctx, ObExecuteStmt& stmt)
}
}
}
}
return ret;
}

View File

@ -9004,7 +9004,11 @@ table_reference inner_join_type opt_full_table_factor %prec LOWER_ON
if ($1->type_ == T_ORG) {
ParseNode *name_node = NULL;
make_name_node(name_node, result->malloc_pool_, "full");
malloc_non_terminal_node($$, result->malloc_pool_, T_ALIAS, $1->num_child_ + 1);
$$ = new_node(result->malloc_pool_, T_ALIAS, $1->num_child_ + 1);
if (OB_UNLIKELY($$ == NULL)) {
yyerror(NULL, result, "No more space for malloc\n");
YYABORT_NO_MEMORY;
} else {
for (int i = 0; i <= $1->num_child_; ++i) {
if (i == 0) {
$$->children_[i] = $1->children_[i];
@ -9014,6 +9018,7 @@ table_reference inner_join_type opt_full_table_factor %prec LOWER_ON
$$->children_[i] = $1->children_[i - 1];
}
}
}
} else if ($1->type_ == T_ALIAS && $1->children_[1] != NULL &&
strlen($1->children_[1]->str_value_) == 0) {
ParseNode *name_node = NULL;
@ -9046,7 +9051,11 @@ table_factor %prec LOWER_COMMA
if ($1->type_ == T_ORG) {
ParseNode *name_node = NULL;
make_name_node(name_node, result->malloc_pool_, "full");
malloc_non_terminal_node($$, result->malloc_pool_, T_ALIAS, $1->num_child_ + 1);
$$ = new_node(result->malloc_pool_, T_ALIAS, $1->num_child_ + 1);
if (OB_UNLIKELY($$ == NULL)) {
yyerror(NULL, result, "No more space for malloc\n");
YYABORT_NO_MEMORY;
} else {
for (int i = 0; i <= $1->num_child_; ++i) {
if (i == 0) {
$$->children_[i] = $1->children_[i];
@ -9056,6 +9065,7 @@ table_factor %prec LOWER_COMMA
$$->children_[i] = $1->children_[i - 1];
}
}
}
} else if ($1->type_ == T_ALIAS && $1->children_[1] != NULL &&
strlen($1->children_[1]->str_value_) == 0) {
ParseNode *name_node = NULL;

View File

@ -306,7 +306,7 @@ int ObSSTableMultiVersionRowMultiGetter::inner_open(
}
}
if (OB_FAIL(ret)) {
} else if (OB_FAIL(new_iterator<ObSSTableRowMultiScanner>(*access_ctx.allocator_))) {
} else if (OB_FAIL(new_iterator<ObSSTableRowMultiScanner>(*access_ctx.stmt_allocator_))) {
LOG_WARN("failed to new iterator", K(ret));
} else if (OB_FAIL(iter_->init(iter_param, access_ctx, table, &multi_version_ranges_))) {
LOG_WARN("failed to open multi scanner", K(ret));
@ -431,7 +431,7 @@ int ObSSTableMultiVersionRowMultiScanner::inner_open(
}
if (OB_FAIL(ret)) {
} else if (OB_FAIL(new_iterator<ObSSTableRowMultiScanner>(*access_ctx.allocator_))) {
} else if (OB_FAIL(new_iterator<ObSSTableRowMultiScanner>(*access_ctx.stmt_allocator_))) {
LOG_WARN("failed to new iterator", K(ret));
} else if (OB_FAIL(iter_->init(iter_param, access_ctx, table, &multi_version_ranges_))) {
LOG_WARN("failed to open scanner", K(ret));