From da5aece3e1a188efff31cd89dfbb86945354d1fb Mon Sep 17 00:00:00 2001 From: hwx65 <1780011298@qq.com> Date: Mon, 17 Jun 2024 13:46:15 +0000 Subject: [PATCH] [FEAT MERGE] Fix the error code loss and overwriting issues on the master branch Co-authored-by: jingtaoye35 <1255153887@qq.com> Co-authored-by: fkuner <784819644@qq.com> Co-authored-by: lucky-sinx <2549261744@qq.com> --- .../src/common/storage/ob_fd_simulator.cpp | 4 +- .../src/lib/alloc/ob_malloc_allocator.cpp | 8 +-- deps/oblib/src/lib/charset/ob_charset.cpp | 9 ++- deps/oblib/src/lib/geo/ob_geo_utils.cpp | 2 +- .../mysqlclient/ob_mysql_connection_pool.cpp | 15 +++-- deps/oblib/src/lib/number/ob_number_v2.cpp | 6 +- .../src/lib/restore/cos/ob_cos_wrapper.cpp | 5 +- .../src/lib/restore/ob_storage_oss_base.cpp | 6 +- .../src/lib/restore/ob_storage_oss_base.h | 2 +- .../src/lib/timezone/ob_timezone_util.cpp | 3 +- .../src/lib/wide_integer/ob_wide_integer.cpp | 3 +- .../src/lib/xml/ob_multi_mode_interface.cpp | 3 +- .../src/rpc/obmysql/ob_mysql_handler.cpp | 2 +- .../unittest/lib/restore/test_storage_oss.cpp | 6 +- .../rewrite_function_for_test_big_tx_data.cpp | 1 + .../archiveservice/ob_ls_meta_recorder.cpp | 2 +- src/logservice/cdcservice/ob_cdc_service.cpp | 1 + .../data_dictionary/ob_data_dict_storager.cpp | 1 + .../election_priority_v1.cpp | 2 + .../ob_cdc_server_endpoint_access_info.cpp | 1 + .../src/ob_cdc_tenant_endpoint_provider.cpp | 2 +- .../libobcdc/src/ob_log_fetch_log_rpc.cpp | 1 + .../libobcdc/src/ob_log_meta_data_struct.cpp | 6 +- .../libobcdc/src/ob_log_meta_manager.cpp | 4 +- .../src/ob_log_part_trans_dispatcher.cpp | 3 +- src/logservice/libobcdc/src/ob_log_reader.cpp | 1 + .../src/ob_log_resource_collector.cpp | 2 +- src/logservice/libobcdc/src/ob_log_tenant.cpp | 1 + .../src/ob_log_timezone_info_getter.cpp | 4 +- .../logrouteservice/ob_log_route_service.cpp | 4 +- src/logservice/ob_garbage_collector.cpp | 4 +- .../election/algorithm/election_acceptor.cpp | 1 + .../election/algorithm/election_proposer.cpp | 1 + .../utils/election_event_recorder.cpp | 1 + src/logservice/palf/fetch_log_engine.cpp | 2 + src/logservice/palf/log_config_mgr.cpp | 4 +- src/logservice/palf/log_config_mgr.h | 2 +- src/logservice/palf/palf_handle_impl.cpp | 3 + .../replayservice/ob_log_replay_service.cpp | 2 + .../ob_log_restore_net_driver.cpp | 5 +- src/observer/mysql/ob_query_retry_ctrl.cpp | 1 + src/observer/mysql/ob_sync_cmd_driver.cpp | 2 + src/observer/mysql/ob_sync_plan_driver.cpp | 2 + src/observer/mysql/obmp_change_user.cpp | 1 + src/observer/mysql/obmp_packet_sender.cpp | 1 + src/observer/mysql/obmp_query.cpp | 1 + src/observer/mysql/obmp_stmt_close.cpp | 1 + src/observer/mysql/obmp_stmt_execute.cpp | 8 ++- src/observer/mysql/obmp_stmt_fetch.cpp | 1 + src/observer/mysql/obmp_stmt_prepare.cpp | 1 + src/observer/mysql/obmp_stmt_prexecute.cpp | 2 + src/observer/mysql/obsm_utils.cpp | 1 + src/observer/ob_lease_state_mgr.cpp | 3 +- src/observer/ob_service.cpp | 2 +- .../report/ob_server_meta_table_checker.cpp | 4 +- .../report/ob_tablet_table_updater.cpp | 1 + .../report/ob_tenant_meta_checker.cpp | 4 +- .../table_load/ob_table_load_coordinator.cpp | 13 ++-- .../table_load/ob_table_load_store.cpp | 9 +-- .../ob_table_load_resource_manager.cpp | 10 ++-- .../ob_all_virtual_lock_wait_stat.cpp | 1 + .../ob_all_virtual_ls_log_restore_status.cpp | 5 ++ .../ob_all_virtual_mds_node_stat.cpp | 1 + .../ob_information_columns_table.cpp | 1 + .../ob_information_user_privileges_table.cpp | 1 + ...b_tenant_virtual_get_object_definition.cpp | 1 + .../ob_virtual_open_cursor_table.cpp | 1 + .../virtual_table/ob_virtual_show_trace.cpp | 6 +- src/pl/ob_pl_di_adt_service.cpp | 1 + src/pl/ob_pl_resolver.cpp | 1 + .../ob_dbms_limit_calculator_mysql.cpp | 1 + .../ddl_task/ob_constraint_task.cpp | 1 + .../ddl_task/ob_ddl_redefinition_task.cpp | 2 +- .../ddl_task/ob_table_redefinition_task.cpp | 1 + src/rootserver/ob_ddl_operator.cpp | 4 ++ src/rootserver/ob_ddl_service.cpp | 3 + src/rootserver/ob_index_builder.cpp | 2 +- src/rootserver/ob_root_inspection.cpp | 1 + src/rootserver/ob_server_balancer.cpp | 4 +- .../ob_tenant_role_transition_service.cpp | 1 + src/rootserver/ob_unit_manager.cpp | 2 +- src/share/backup/ob_log_restore_struct.cpp | 2 +- src/share/config/ob_config_manager.cpp | 12 ++-- .../deadlock/ob_deadlock_detector_mgr.cpp | 4 +- .../deadlock/ob_deadlock_detector_rpc.cpp | 4 ++ .../deadlock/ob_lcl_scheme/ob_lcl_node.cpp | 9 +-- src/share/detect/ob_detect_callback.cpp | 2 + src/share/detect/ob_detect_manager.cpp | 3 + src/share/detect/ob_detect_manager_utils.cpp | 7 +++ src/share/detect/ob_detect_rpc_processor.cpp | 1 + src/share/detect/ob_detect_rpc_proxy.cpp | 4 +- .../index_usage/ob_index_usage_info_mgr.cpp | 4 +- .../ob_location_update_task.cpp | 6 +- src/share/ob_alive_server_tracer.cpp | 1 + src/share/ob_ddl_task_executor.cpp | 3 +- src/share/resource_manager/ob_cgroup_ctrl.cpp | 2 +- .../scheduler/ob_tenant_dag_scheduler.cpp | 2 + src/share/schema/ob_label_se_policy_mgr.cpp | 2 +- .../ob_multi_version_schema_service.cpp | 4 ++ src/share/schema/ob_priv_sql_service.cpp | 2 +- src/share/schema/ob_routine_info.cpp | 1 + .../schema/ob_schema_service_sql_impl.cpp | 8 ++- .../schema/ob_tablegroup_sql_service.cpp | 2 +- src/share/schema/ob_udt_info.cpp | 2 +- src/share/schema/ob_udt_sql_service.cpp | 4 +- src/share/stat/ob_opt_osg_column_stat.cpp | 2 +- .../system_variable/ob_system_variable.cpp | 3 +- src/sql/code_generator/ob_dml_cg_service.cpp | 13 ++-- .../code_generator/ob_expr_generator_impl.cpp | 5 +- .../code_generator/ob_static_engine_cg.cpp | 6 +- src/sql/das/ob_das_id_service.cpp | 7 +-- src/sql/dtl/ob_dtl_basic_channel.h | 3 +- src/sql/dtl/ob_dtl_flow_control.cpp | 3 +- .../engine/aggregate/ob_merge_distinct_op.cpp | 6 +- .../ob_hash_partitioning_infrastructure_op.h | 2 +- src/sql/engine/basic/ob_limit_op.cpp | 4 +- .../engine/basic/ob_temp_table_insert_op.cpp | 7 ++- .../basic/ob_temp_table_insert_vec_op.cpp | 5 +- .../engine/cmd/ob_load_data_file_reader.cpp | 3 + src/sql/engine/cmd/ob_load_data_rpc.cpp | 1 + .../cmd/ob_partition_executor_utils.cpp | 4 +- src/sql/engine/cmd/ob_table_executor.cpp | 2 +- src/sql/engine/cmd/ob_tcl_executor.cpp | 1 + .../engine/cmd/ob_variable_set_executor.cpp | 2 +- .../engine/connect_by/ob_cnnt_by_pump_bfs.cpp | 3 + src/sql/engine/dml/ob_conflict_checker.cpp | 1 + src/sql/engine/dml/ob_dml_ctx_define.cpp | 18 +++--- src/sql/engine/dml/ob_dml_service.cpp | 1 + src/sql/engine/dml/ob_table_merge_op.cpp | 2 +- src/sql/engine/expr/ob_datum_cast.cpp | 9 +-- src/sql/engine/expr/ob_expr_format.cpp | 1 + src/sql/engine/expr/ob_expr_frame_info.cpp | 4 +- src/sql/engine/expr/ob_expr_inet.cpp | 1 + src/sql/engine/expr/ob_expr_least.cpp | 3 +- src/sql/engine/expr/ob_expr_left.cpp | 6 +- src/sql/engine/expr/ob_expr_lrpad.cpp | 4 ++ src/sql/engine/expr/ob_expr_ols_funcs.cpp | 4 +- src/sql/engine/expr/ob_expr_operator.cpp | 2 +- .../engine/expr/ob_expr_oracle_to_char.cpp | 2 + src/sql/engine/expr/ob_expr_priv_st_point.cpp | 14 ++--- src/sql/engine/expr/ob_expr_reverse.cpp | 1 + .../expr/ob_expr_spatial_collection.cpp | 4 +- .../engine/expr/ob_expr_sql_udt_construct.cpp | 6 +- src/sql/engine/expr/ob_expr_sql_udt_utils.cpp | 2 +- src/sql/engine/expr/ob_expr_time_format.cpp | 2 +- src/sql/engine/expr/ob_expr_util.cpp | 1 + .../ob_expr_validate_password_strength.cpp | 1 + .../engine/expr/ob_number_format_models.cpp | 6 +- src/sql/engine/ob_operator.cpp | 1 + src/sql/engine/ob_physical_plan.cpp | 4 +- .../ob_optimizer_stats_gathering_op.cpp | 1 + .../px/exchange/ob_px_repart_transmit_op.cpp | 1 + src/sql/engine/px/ob_dfo.cpp | 5 +- src/sql/engine/px/ob_granule_pump.cpp | 4 +- src/sql/engine/px/ob_px_coord_msg_proc.cpp | 2 +- src/sql/engine/px/ob_px_coord_op.cpp | 1 + src/sql/engine/px/ob_px_scheduler.cpp | 1 + src/sql/engine/px/ob_px_task_process.cpp | 1 + .../engine/px/ob_px_tenant_target_monitor.cpp | 6 +- src/sql/engine/px/ob_px_util.cpp | 1 + .../engine/subquery/ob_subplan_filter_op.cpp | 3 +- .../table/ob_table_partition_ranges.cpp | 3 +- .../ob_table_scan_with_index_back_op.cpp | 1 + src/sql/executor/ob_cmd_executor.cpp | 1 + .../ob_maintain_dependency_info_task.cpp | 1 + src/sql/executor/ob_remote_scheduler.cpp | 3 +- src/sql/executor/ob_remote_task_executor.cpp | 1 + src/sql/executor/ob_slice_calc.cpp | 3 +- src/sql/monitor/flt/ob_flt_utils.cpp | 6 +- src/sql/monitor/ob_monitor_info_manager.cpp | 2 +- src/sql/monitor/ob_sql_plan.cpp | 4 +- src/sql/ob_result_set.cpp | 4 ++ src/sql/ob_sql.cpp | 7 ++- src/sql/ob_sql_utils.cpp | 1 + src/sql/optimizer/ob_join_order.cpp | 3 + src/sql/optimizer/ob_log_table_scan.cpp | 6 +- src/sql/optimizer/ob_log_window_function.cpp | 1 + src/sql/optimizer/ob_logical_operator.cpp | 4 +- src/sql/optimizer/ob_merge_log_plan.cpp | 1 + src/sql/optimizer/ob_select_log_plan.cpp | 4 +- src/sql/optimizer/ob_table_location.cpp | 3 +- src/sql/plan_cache/ob_i_lib_cache_node.cpp | 3 + src/sql/plan_cache/ob_i_lib_cache_object.cpp | 2 + src/sql/plan_cache/ob_plan_cache.cpp | 5 +- src/sql/plan_cache/ob_plan_cache_value.cpp | 2 + src/sql/plan_cache/ob_plan_set.cpp | 1 + .../privilege_check/ob_privilege_check.cpp | 2 +- src/sql/resolver/cmd/ob_help_resolver.cpp | 3 +- .../cmd/ob_set_transaction_resolver.cpp | 4 +- src/sql/resolver/dcl/ob_grant_resolver.cpp | 3 +- .../resolver/dcl/ob_set_password_resolver.cpp | 4 +- .../resolver/ddl/ob_alter_table_resolver.cpp | 4 +- .../ddl/ob_create_dblink_resolver.cpp | 3 +- .../ddl/ob_create_profile_resolver.cpp | 1 + .../resolver/ddl/ob_create_view_resolver.cpp | 4 +- src/sql/resolver/ddl/ob_ddl_resolver.cpp | 3 +- .../resolver/dml/ob_default_value_utils.cpp | 1 + src/sql/resolver/dml/ob_del_upd_resolver.cpp | 5 +- src/sql/resolver/dml/ob_dml_resolver.cpp | 15 +++-- src/sql/resolver/dml/ob_group_by_checker.cpp | 3 +- src/sql/resolver/dml/ob_hint.cpp | 9 +-- src/sql/resolver/dml/ob_insert_resolver.cpp | 2 + src/sql/resolver/dml/ob_select_resolver.cpp | 7 ++- src/sql/resolver/dml/ob_sql_hint.cpp | 2 +- .../resolver/dml/ob_view_table_resolver.cpp | 4 +- .../expr/ob_raw_expr_print_visitor.cpp | 2 +- src/sql/resolver/expr/ob_raw_expr_util.cpp | 12 ++-- src/sql/resolver/ob_resolver_utils.cpp | 1 + src/sql/resolver/ob_schema_checker.cpp | 2 +- src/sql/resolver/ob_stmt_resolver.h | 2 + .../rewrite/ob_transform_const_propagate.cpp | 2 +- .../rewrite/ob_transform_groupby_pushdown.cpp | 1 + .../rewrite/ob_transform_join_elimination.cpp | 23 +++---- src/sql/rewrite/ob_transform_or_expansion.cpp | 13 ++-- src/sql/rewrite/ob_transform_pre_process.cpp | 7 ++- .../rewrite/ob_transform_semi_to_inner.cpp | 1 + .../rewrite/ob_transform_simplify_expr.cpp | 2 +- .../ob_transform_simplify_subquery.cpp | 4 +- src/sql/rewrite/ob_transform_utils.cpp | 21 +++++-- src/sql/session/ob_sql_session_info.cpp | 1 + src/sql/session/ob_sql_session_info.h | 2 +- src/sql/session/ob_user_resource_mgr.cpp | 2 +- src/sql/udr/ob_udr_utils.cpp | 2 +- src/storage/backup/ob_backup_data_struct.cpp | 60 ++++++++++--------- src/storage/backup/ob_ls_backup_clean_mgr.cpp | 5 +- .../ddl/ob_ddl_redo_log_row_iterator.cpp | 1 + .../ddl/ob_direct_insert_sstable_ctx_new.cpp | 2 + .../ob_direct_load_insert_table_ctx.cpp | 8 +-- .../ob_direct_load_sstable_scanner.cpp | 6 +- .../ob_ls_complete_migration.cpp | 5 +- .../high_availability/ob_ls_migration.cpp | 7 ++- .../ob_ls_prepare_migration.cpp | 5 +- .../high_availability/ob_ls_restore.cpp | 5 +- .../ob_storage_ha_reader.cpp | 6 -- .../high_availability/ob_storage_ha_utils.cpp | 1 + .../ob_tablet_group_restore.cpp | 7 ++- .../ob_transfer_backfill_tx.cpp | 5 +- src/storage/ls/ob_ls_tx_service.cpp | 3 + src/storage/memtable/mvcc/ob_mvcc_row.cpp | 3 + .../memtable/mvcc/ob_mvcc_trans_ctx.cpp | 1 + src/storage/memtable/ob_memtable.cpp | 1 + .../memtable/ob_row_conflict_handler.cpp | 1 + .../meta_mem/ob_tenant_meta_mem_mgr.cpp | 1 + .../runtime_utility/mds_tenant_service.cpp | 2 + src/storage/ob_i_tablet_memtable.cpp | 2 +- .../restore/ob_ls_restore_task_mgr.cpp | 2 + src/storage/tablelock/ob_lock_memtable.cpp | 1 + .../tablelock/ob_lock_memtable_mgr.cpp | 1 + src/storage/tablelock/ob_lock_table.cpp | 1 + .../ob_tablet_start_transfer_mds_helper.cpp | 2 +- src/storage/tx/ob_dup_table_util.cpp | 1 + src/storage/tx/ob_id_service.cpp | 1 + src/storage/tx/ob_trans_deadlock_adapter.cpp | 11 ++-- src/storage/tx/ob_trans_factory.cpp | 1 + src/storage/tx/ob_trans_part_ctx.cpp | 14 +++-- src/storage/tx/ob_trans_service.cpp | 3 + src/storage/tx/ob_trans_timer.cpp | 2 + src/storage/tx/ob_tx_api.cpp | 4 +- src/storage/tx/ob_tx_log.h | 4 +- src/storage/tx/ob_tx_loop_worker.cpp | 1 + .../tx_storage/ob_checkpoint_service.cpp | 11 ++++ src/storage/tx_storage/ob_tenant_freezer.cpp | 4 +- src/storage/tx_table/ob_tx_ctx_table.cpp | 2 + src/storage/tx_table/ob_tx_table.cpp | 1 + .../log_tool/dump/ob_admin_dump_block.cpp | 6 +- unittest/logservice/test_log_config_mgr.cpp | 4 +- 266 files changed, 661 insertions(+), 347 deletions(-) diff --git a/deps/oblib/src/common/storage/ob_fd_simulator.cpp b/deps/oblib/src/common/storage/ob_fd_simulator.cpp index 32921b733..d60f0b92c 100644 --- a/deps/oblib/src/common/storage/ob_fd_simulator.cpp +++ b/deps/oblib/src/common/storage/ob_fd_simulator.cpp @@ -251,8 +251,10 @@ bool ObFdSimulator::validate_fd(const ObIOFd& fd, bool expect) } else { FdSlot *second_array = first_array_[first_id].second_array_p; if (OB_ISNULL(second_array)) { + // ignore ret OB_LOG(WARN, "fd maybe wrong, second fd array is null!", K(first_id), K(second_id), K(total_fd_cnt_), K(used_fd_cnt_)); - } else if (second_array[second_id].slot_version != fd.second_id_){ + } else if (second_array[second_id].slot_version != fd.second_id_) { + // ignore ret OB_LOG(WARN, "fd slot_version is invalid, maybe double free!", K(first_id), K(fd.second_id_), K(second_array[second_id].slot_version)); } else { diff --git a/deps/oblib/src/lib/alloc/ob_malloc_allocator.cpp b/deps/oblib/src/lib/alloc/ob_malloc_allocator.cpp index deb77faac..89ffed7fe 100644 --- a/deps/oblib/src/lib/alloc/ob_malloc_allocator.cpp +++ b/deps/oblib/src/lib/alloc/ob_malloc_allocator.cpp @@ -138,12 +138,12 @@ void *ObMallocAllocator::alloc(const int64_t size, const oceanbase::lib::ObMemAt allocator = get_tenant_ctx_allocator(inner_attr.tenant_id_, inner_attr.ctx_id_); } } - + int tmp_ret = OB_SUCCESS; if (OB_ISNULL(allocator)) { - // ignore ret - ret = OB_ENTRY_NOT_EXIST; + tmp_ret = OB_ENTRY_NOT_EXIST; + ret = OB_SUCC(ret) ? tmp_ret : ret; LOG_ERROR("tenant allocator not exist", K(inner_attr.tenant_id_), K(inner_attr.ctx_id_), - K(ret)); + K(ret), K(tmp_ret)); } if (OB_SUCC(ret)) { diff --git a/deps/oblib/src/lib/charset/ob_charset.cpp b/deps/oblib/src/lib/charset/ob_charset.cpp index 24d4a9eae..bdd5f0e06 100644 --- a/deps/oblib/src/lib/charset/ob_charset.cpp +++ b/deps/oblib/src/lib/charset/ob_charset.cpp @@ -878,6 +878,7 @@ uint64_t ObCharset::hash(ObCollationType collation_type, ObCharsetInfo *cs = static_cast(ObCharset::charset_arr[collation_type]); if (OB_ISNULL(cs->coll)) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("unexpected error. invalid argument(s)", K(cs), K(cs->coll), K(lbt())); } else { seed = 0xc6a4a7935bd1e995; @@ -1105,11 +1106,13 @@ size_t ObCharset::max_bytes_charpos(const ObCollationType collation_type, size_t ret = 0; if (OB_UNLIKELY(collation_type <= CS_TYPE_INVALID || collation_type >= CS_TYPE_MAX) || - OB_ISNULL(ObCharset::charset_arr[collation_type])) { + OB_ISNULL(ObCharset::charset_arr[collation_type])) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("unexpected error. invalid argument(s)", K(collation_type), K(lbt())); } else { ObCharsetInfo *cs = static_cast(ObCharset::charset_arr[collation_type]); if (OB_ISNULL(cs->cset)) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("unexpected error. invalid argument(s)", K(cs), K(cs->cset), K(lbt())); } else { size_t char_len_tmp = 0; @@ -1128,11 +1131,13 @@ bool ObCharset::wildcmp(ObCollationType collation_type, bool ret = false; if (OB_UNLIKELY(collation_type <= CS_TYPE_INVALID || collation_type >= CS_TYPE_MAX) || - OB_ISNULL(ObCharset::charset_arr[collation_type])) { + OB_ISNULL(ObCharset::charset_arr[collation_type])) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("unexpected error. invalid argument(s)", K(collation_type), K(lbt())); } else { ObCharsetInfo *cs = static_cast(ObCharset::charset_arr[collation_type]); if (OB_ISNULL(cs->coll)) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("unexpected error. invalid argument(s)", K(cs), K(cs->coll), K(lbt())); } else { int tmp = cs->coll->wildcmp(cs, str.ptr(), str.ptr() + str.length(), diff --git a/deps/oblib/src/lib/geo/ob_geo_utils.cpp b/deps/oblib/src/lib/geo/ob_geo_utils.cpp index 90d7cc5bc..23ff24709 100644 --- a/deps/oblib/src/lib/geo/ob_geo_utils.cpp +++ b/deps/oblib/src/lib/geo/ob_geo_utils.cpp @@ -122,7 +122,7 @@ int ObGeoTypeUtil::get_pg_reserved_prj4text(ObIAllocator *allocator, uint32_t sr if (OB_SUCC(ret)) { ObString prj4_tmp = ObString::make_string(tmp_buf); - if (OB_FAIL(OB_FAIL(ob_write_string(*allocator, prj4_tmp, prj4_param, true)))) { + if (OB_FAIL(ob_write_string(*allocator, prj4_tmp, prj4_param, true))) { LOG_WARN("failed to write string to buffer", K(ret), K(srid)); } } diff --git a/deps/oblib/src/lib/mysqlclient/ob_mysql_connection_pool.cpp b/deps/oblib/src/lib/mysqlclient/ob_mysql_connection_pool.cpp index 7f494119d..674402a49 100644 --- a/deps/oblib/src/lib/mysqlclient/ob_mysql_connection_pool.cpp +++ b/deps/oblib/src/lib/mysqlclient/ob_mysql_connection_pool.cpp @@ -680,9 +680,10 @@ void ObMySQLConnectionPool::runTimerTask() // - remove invalid server connection pool // - close long idle connection // - renew tenant_server_conn_pool_map - if (OB_FAIL(purge_connection_pool())) { - // ignore ret - LOG_ERROR("fail to update mysql connection pool", K(ret)); + int tmp_ret = OB_SUCCESS; + if (OB_TMP_FAIL(purge_connection_pool())) { + ret = OB_SUCC(ret) ? tmp_ret : ret; + LOG_ERROR("fail to update mysql connection pool", K(ret), K(tmp_ret)); } } @@ -936,11 +937,9 @@ int ObMySQLConnectionPool::renew_tenant_server_pool_map() LOG_WARN("renew_tenant_server_pool_ failed", K(ret), K(tenant_id), K(tenant_idx), K(tenant_array)); } } // end for tenant_array - - if (OB_FAIL(purge_tenant_server_pool_map_(tenant_array))) { - //ignore ret - LOG_WARN("purge_tenant_server_pool_map_ failed, skip this error", K(ret), K(tenant_array)); - ret = OB_SUCCESS; + int tmp_ret = OB_SUCCESS; + if (OB_TMP_FAIL(purge_tenant_server_pool_map_(tenant_array))) { + LOG_WARN("purge_tenant_server_pool_map_ failed, skip this error", K(ret), K(tmp_ret), K(tenant_array)); } else { LOG_TRACE("renew tenant_server_conn_pool_map succ"); } diff --git a/deps/oblib/src/lib/number/ob_number_v2.cpp b/deps/oblib/src/lib/number/ob_number_v2.cpp index 388538e68..e51e5e8e6 100644 --- a/deps/oblib/src/lib/number/ob_number_v2.cpp +++ b/deps/oblib/src/lib/number/ob_number_v2.cpp @@ -4246,7 +4246,8 @@ int ObNumber::atan(ObNumber &value, ObIAllocator &allocator, const bool do_round int64_t count = 0; allocator_const1.free(); //taylor series: atan(x) = x-(x^3)/3+(x^5)/5-(x^7)/7+... when |x|<1 - if (OB_FAIL(taylor_series.from(copy_this, allocator_iter2))) { + if (OB_FAIL(ret)) { + } else if (OB_FAIL(taylor_series.from(copy_this, allocator_iter2))) { LOG_WARN("taylor series from copy_this failed", K(copy_this), K(taylor_series), K(ret)); } else if (OB_FAIL(copy_this.mul_v3(copy_this, doublex, allocator_doublex, true, false))) { LOG_WARN("doublex = copy_this*copy_this failed", K(copy_this), K(doublex), K(ret)); @@ -7589,7 +7590,8 @@ int ObNumberBuilder::build_hex_integer_(const char *str, const int64_t integer_s LOG_WARN("integer part is longer than fmt str", K(ret), K(i), K(c_p)); } int32_t dec_len = 0; - if (OB_FAIL(hex_to_dec_(hex_str, new_len, dec_str, dec_len))) { + if (OB_FAIL(ret)) { + } else if (OB_FAIL(hex_to_dec_(hex_str, new_len, dec_str, dec_len))) { LOG_WARN("failed to hex_to_dec", K(ret)); } i = dec_len - 1; diff --git a/deps/oblib/src/lib/restore/cos/ob_cos_wrapper.cpp b/deps/oblib/src/lib/restore/cos/ob_cos_wrapper.cpp index fe1c46627..7a8dc6934 100644 --- a/deps/oblib/src/lib/restore/cos/ob_cos_wrapper.cpp +++ b/deps/oblib/src/lib/restore/cos/ob_cos_wrapper.cpp @@ -59,12 +59,13 @@ const int64_t OB_STORAGE_LIST_MAX_NUM = 1000; //datetime formate : Tue, 09 Apr 2019 06:24:00 GMT //time unit is second -static int64_t strtotime(const char *date_time) +static int64_t ob_strtotime(const char *date_time) { int64_t time = 0; struct tm tm_time; memset(&tm_time, 0, sizeof(struct tm)); if (NULL == strptime(date_time, "%a, %d %b %Y %H:%M:%S %Z", &tm_time)) { + // ignore ret //skip set ret, for compat data formate cos_warn_log("[COS]fail to transform time, time=%s\n", date_time); } else { @@ -588,7 +589,7 @@ int ObCosWrapper::head_object_meta( // get object last modified time if (OB_SUCCESS != ret) { } else if (NULL != (last_modified_ptr = (char*)apr_table_get(resp_headers, COS_LAST_MODIFIED))) { - meta.last_modified_ts_ = strtotime(last_modified_ptr); + meta.last_modified_ts_ = ob_strtotime(last_modified_ptr); } else { ret = OB_COS_ERROR; cos_warn_log("[COS]fail to get last modified from apr table, something wrong unexpected, ret=%d.\n", ret); diff --git a/deps/oblib/src/lib/restore/ob_storage_oss_base.cpp b/deps/oblib/src/lib/restore/ob_storage_oss_base.cpp index 4c7621762..1faf708e2 100644 --- a/deps/oblib/src/lib/restore/ob_storage_oss_base.cpp +++ b/deps/oblib/src/lib/restore/ob_storage_oss_base.cpp @@ -1766,7 +1766,7 @@ int ObStorageOssUtil::del_dir(const common::ObString &uri) //datetime formate : Tue, 09 Apr 2019 06:24:00 GMT //time unit is second -int ObStorageOssUtil::strtotime(const char *date_time, int64_t &time) +int ObStorageOssUtil::ob_strtotime(const char *date_time, int64_t &time) { int ret = OB_SUCCESS; time = 0; @@ -1774,8 +1774,9 @@ int ObStorageOssUtil::strtotime(const char *date_time, int64_t &time) memset(&tm_time, 0, sizeof(struct tm)); if (OB_ISNULL(date_time)) { ret = OB_INVALID_ARGUMENT; - OB_LOG(WARN, "strtotime get invalid argument", K(ret), KP(date_time)); + OB_LOG(WARN, "ob_strtotime get invalid argument", K(ret), KP(date_time)); } else if (OB_ISNULL(strptime(date_time, "%a, %d %b %Y %H:%M:%S %Z", &tm_time))) { + // ignore ret //skip set ret, for compat data formate OB_LOG(WARN, "failed to strptime", K(ret), K(*date_time)); } else { @@ -2158,6 +2159,7 @@ int ObStorageOssAppendWriter::do_write(const char *buf, const int64_t size, cons int64_t cur_pos = -1; char *append_pos_str = (char*)(apr_table_get(resp_headers, OSS_NEXT_APPEND_POSITION)); if (OB_ISNULL(append_pos_str)) { + // ignore ret OB_LOG(WARN, "after append fail, current append pos is not found", K(ret)); } else if (OB_TMP_FAIL(c_str_to_int(append_pos_str, cur_pos))) { OB_LOG(WARN, "after append fail, fail to get append pos", diff --git a/deps/oblib/src/lib/restore/ob_storage_oss_base.h b/deps/oblib/src/lib/restore/ob_storage_oss_base.h index 5f696121d..d782f29c2 100644 --- a/deps/oblib/src/lib/restore/ob_storage_oss_base.h +++ b/deps/oblib/src/lib/restore/ob_storage_oss_base.h @@ -241,7 +241,7 @@ public: virtual int is_tagging(const common::ObString &uri, bool &is_tagging); virtual int del_unmerged_parts(const ObString &uri) override; private: - int strtotime(const char *date_time, int64_t &time); + int ob_strtotime(const char *date_time, int64_t &time); int tagging_object_( const common::ObString &uri, ObStorageOssBase &oss_base, diff --git a/deps/oblib/src/lib/timezone/ob_timezone_util.cpp b/deps/oblib/src/lib/timezone/ob_timezone_util.cpp index 816638def..a453a70c4 100644 --- a/deps/oblib/src/lib/timezone/ob_timezone_util.cpp +++ b/deps/oblib/src/lib/timezone/ob_timezone_util.cpp @@ -415,7 +415,8 @@ int ObTimezoneUtils::prepare_tz_info(TIME_ZONE_INFO &tz_info) } /* set maximum end_l as finisher */ revts[tz_info.revcnt] = end_l; - if(!(tz_info.revts = (my_time_t*)ob_malloc(sizeof(my_time_t) * (tz_info.revcnt + 1), "TimeZoneUtils")) + if (OB_FAIL(ret)) { + } else if(!(tz_info.revts = (my_time_t*)ob_malloc(sizeof(my_time_t) * (tz_info.revcnt + 1), "TimeZoneUtils")) || !(tz_info.revtis = (REVT_INFO*)ob_malloc(sizeof(REVT_INFO) * tz_info.revcnt, "TimeZoneUtils")) ){ OB_LOG(ERROR, "ob_malloc for tz_info.revts tz_info.revtis failed"); diff --git a/deps/oblib/src/lib/wide_integer/ob_wide_integer.cpp b/deps/oblib/src/lib/wide_integer/ob_wide_integer.cpp index 3b6195aae..ab5e84e67 100644 --- a/deps/oblib/src/lib/wide_integer/ob_wide_integer.cpp +++ b/deps/oblib/src/lib/wide_integer/ob_wide_integer.cpp @@ -148,7 +148,8 @@ int ObDecimalIntConstValue::init_const_values(ObIAllocator &alloc, const lib::Ob // init zero values char *zero_buf = nullptr; int buf_size = sizeof(int32_t) + sizeof(int64_t) + sizeof(int128_t) + sizeof(int256_t) + sizeof(int512_t); - if (OB_ISNULL(zero_buf = (char *)allocator.alloc(buf_size))) { + if (OB_FAIL(ret)) { + } else if (OB_ISNULL(zero_buf = (char *)allocator.alloc(buf_size))) { ret = OB_ALLOCATE_MEMORY_FAILED; COMMON_LOG(WARN, "allocate memory failed", K(ret)); } else { diff --git a/deps/oblib/src/lib/xml/ob_multi_mode_interface.cpp b/deps/oblib/src/lib/xml/ob_multi_mode_interface.cpp index 07037c706..aea88c252 100644 --- a/deps/oblib/src/lib/xml/ob_multi_mode_interface.cpp +++ b/deps/oblib/src/lib/xml/ob_multi_mode_interface.cpp @@ -298,7 +298,8 @@ int ObIMulModeBase::print_attr(ObStringBuffer& x_buf, uint32_t format_flag) is_mysql_key_only = true; } - if (OB_FAIL(get_key(key))) { + if (OB_FAIL(ret)) { + } else if (OB_FAIL(get_key(key))) { LOG_WARN("fail to print =\" in attr", K(ret)); } else if (OB_FAIL(get_value(value))) { LOG_WARN("fail to print =\" in attr", K(ret)); diff --git a/deps/oblib/src/rpc/obmysql/ob_mysql_handler.cpp b/deps/oblib/src/rpc/obmysql/ob_mysql_handler.cpp index fbb8deb96..fe6ac05cc 100644 --- a/deps/oblib/src/rpc/obmysql/ob_mysql_handler.cpp +++ b/deps/oblib/src/rpc/obmysql/ob_mysql_handler.cpp @@ -173,7 +173,7 @@ int ObMySQLHandler::process(easy_request_t *r) OB_NOT_NULL(pkt.get_cdata()) && pkt.get_clen() > comment_header_len_ && memcmp(pkt.get_cdata(), comment_header_, 9) == comment_header_len_) { - if (OB_FAIL(OB_FAIL(parse_head_comment(pkt.get_cdata(), pkt.get_clen())))) { + if (OB_FAIL(parse_head_comment(pkt.get_cdata(), pkt.get_clen()))) { LOG_WARN("failed to parse head comment", K(ObString(pkt.get_clen(), pkt.get_cdata())), K(ret)); } else { // to resolve dead lock triggled by nested sql between ob cluster diff --git a/deps/oblib/unittest/lib/restore/test_storage_oss.cpp b/deps/oblib/unittest/lib/restore/test_storage_oss.cpp index 596de8c1c..e756acb32 100644 --- a/deps/oblib/unittest/lib/restore/test_storage_oss.cpp +++ b/deps/oblib/unittest/lib/restore/test_storage_oss.cpp @@ -135,7 +135,7 @@ TEST_F(TestStorageOss, test_oss_acl) s = oss_get_object_meta(options, &bucket, &object, &resp_headers); ASSERT_TRUE(s->code == 200); modified_time_before = apr_table_get(resp_headers, "Last-Modified"); - ossutil.strtotime(modified_time_before, time_before); + ossutil.ob_strtotime(modified_time_before, time_before); const char *modified_time_after = NULL; int64_t time_after = 0; @@ -148,7 +148,7 @@ TEST_F(TestStorageOss, test_oss_acl) s = oss_get_object_meta(options, &bucket, &object, &resp_headers); ASSERT_TRUE(s->code == 200); modified_time_after = apr_table_get(resp_headers, "Last-Modified"); - ossutil.strtotime(modified_time_after, time_after); + ossutil.ob_strtotime(modified_time_after, time_after); ASSERT_TRUE(time_before < time_after); @@ -170,7 +170,7 @@ TEST_F(TestStorageOss, test_oss_acl) s = oss_get_object_meta(options, &bucket, &object, &resp_headers); ASSERT_TRUE(s->code == 200); modified_after_again = apr_table_get(resp_headers, "Last-Modified"); - ossutil.strtotime(modified_after_again, time_after_again); + ossutil.ob_strtotime(modified_after_again, time_after_again); ASSERT_TRUE(time_after < time_after_again); diff --git a/mittest/simple_server/rewrite_function_for_test_big_tx_data.cpp b/mittest/simple_server/rewrite_function_for_test_big_tx_data.cpp index bf4e63cda..4ca5cd5ce 100644 --- a/mittest/simple_server/rewrite_function_for_test_big_tx_data.cpp +++ b/mittest/simple_server/rewrite_function_for_test_big_tx_data.cpp @@ -202,6 +202,7 @@ int ObTxDataSingleRowGetter::deserialize_tx_data_from_store_buffers_(ObTxData &t char *merge_buffer = (char*)DEFAULT_TX_DATA_ALLOCATOR.alloc(total_buffer_size); int64_t pos = 0; if (OB_ISNULL(merge_buffer)) { + ret = OB_ERR_UNEXPECTED; STORAGE_LOG(ERROR, "fail to alloc merge buffer", KR(ret), K(total_buffer_size)); } else { char *p_dest = merge_buffer; diff --git a/src/logservice/archiveservice/ob_ls_meta_recorder.cpp b/src/logservice/archiveservice/ob_ls_meta_recorder.cpp index e5557ab92..2aa451032 100644 --- a/src/logservice/archiveservice/ob_ls_meta_recorder.cpp +++ b/src/logservice/archiveservice/ob_ls_meta_recorder.cpp @@ -58,7 +58,7 @@ share::SCN scn; \ share::ObBackupPath path; \ const share::ObLSID &id = array.at(i); \ - if (OB_FAIL(OB_FAIL(t.get_data(id, archive_start_scn, buf_ + COMMON_HEADER_SIZE, MAX_META_RECORD_DATA_SIZE, real_size, scn)))) { \ + if (OB_FAIL(t.get_data(id, archive_start_scn, buf_ + COMMON_HEADER_SIZE, MAX_META_RECORD_DATA_SIZE, real_size, scn))) { \ ARCHIVE_LOG(WARN, "get data failed", K(ret)); \ } else if (OB_UNLIKELY(! scn.is_valid())) { \ ARCHIVE_LOG(WARN, "scn is invalid", K(ret), K(task_type), K(scn)); \ diff --git a/src/logservice/cdcservice/ob_cdc_service.cpp b/src/logservice/cdcservice/ob_cdc_service.cpp index 4bf30adfb..139a4e8d7 100644 --- a/src/logservice/cdcservice/ob_cdc_service.cpp +++ b/src/logservice/cdcservice/ob_cdc_service.cpp @@ -40,6 +40,7 @@ bool ExpiredArchiveClientLSFunctor::operator()(const ClientLSKey &key, ClientLSC int ret = OB_SUCCESS; bool bret = true; if (OB_ISNULL(value)) { + // ignore ret EXTLOG_LOG(WARN, "get null clientls ctx", K(key)); } else { const FetchMode fetch_mode = value->get_fetch_mode(); diff --git a/src/logservice/data_dictionary/ob_data_dict_storager.cpp b/src/logservice/data_dictionary/ob_data_dict_storager.cpp index 1857741c5..ac587a22e 100644 --- a/src/logservice/data_dictionary/ob_data_dict_storager.cpp +++ b/src/logservice/data_dictionary/ob_data_dict_storager.cpp @@ -721,6 +721,7 @@ void ObDataDictStorage::reset_cb_queue_() while (! cb_queue_.empty()) { QLink *item = NULL; if (OB_ISNULL(item = cb_queue_.pop())) { + ret = OB_ERR_UNEXPECTED; DDLOG(WARN, "pop item from data_dict_meta persist_callback_queue failed", KR(ret)); } else { allocator_.free(item); diff --git a/src/logservice/leader_coordinator/election_priority_impl/election_priority_v1.cpp b/src/logservice/leader_coordinator/election_priority_impl/election_priority_v1.cpp index b8749cb1c..2200dcf0b 100644 --- a/src/logservice/leader_coordinator/election_priority_impl/election_priority_v1.cpp +++ b/src/logservice/leader_coordinator/election_priority_impl/election_priority_v1.cpp @@ -102,6 +102,7 @@ int PriorityV1::get_scn_(const share::ObLSID &ls_id, SCN &scn) int64_t unused_pid = -1; const bool is_cluster_already_4200 = GET_MIN_CLUSTER_VERSION() >= CLUSTER_VERSION_4_2_0_0; if (OB_ISNULL(log_service)) { + ret = OB_ERR_UNEXPECTED; COORDINATOR_LOG_(ERROR, "ObLogService is nullptr"); } else if (CLICK_FAIL(log_service->open_palf(ls_id, palf_handle_guard))) { COORDINATOR_LOG_(WARN, "open_palf failed"); @@ -189,6 +190,7 @@ int PriorityV1::get_role_(const share::ObLSID &ls_id, common::ObRole &role) cons role = FOLLOWER; if (OB_ISNULL(ls_srv)) { + ret = OB_ERR_UNEXPECTED; COORDINATOR_LOG_(ERROR, "ObLSService is nullptr"); } else if (OB_FAIL(ls_srv->get_ls(ls_id, ls_handle, ObLSGetMod::LOG_MOD))) { COORDINATOR_LOG_(WARN, "get_ls failed", K(ls_id)); diff --git a/src/logservice/libobcdc/src/ob_cdc_server_endpoint_access_info.cpp b/src/logservice/libobcdc/src/ob_cdc_server_endpoint_access_info.cpp index 2cba119db..d0e489846 100644 --- a/src/logservice/libobcdc/src/ob_cdc_server_endpoint_access_info.cpp +++ b/src/logservice/libobcdc/src/ob_cdc_server_endpoint_access_info.cpp @@ -107,6 +107,7 @@ ObAddr ObCDCEndpoint::get_addr() const char *address; if (OB_ISNULL(address = obsys::ObNetUtil::get_addr_by_hostname(host_))) { + // ignore ret LOG_WARN("invalid addr of hostname", KPC(this)); } else { addr.set_ip_addr(address, port_); diff --git a/src/logservice/libobcdc/src/ob_cdc_tenant_endpoint_provider.cpp b/src/logservice/libobcdc/src/ob_cdc_tenant_endpoint_provider.cpp index f2a966725..04a90e7f1 100644 --- a/src/logservice/libobcdc/src/ob_cdc_tenant_endpoint_provider.cpp +++ b/src/logservice/libobcdc/src/ob_cdc_tenant_endpoint_provider.cpp @@ -166,7 +166,7 @@ int ObCDCEndpointProvider::parse_tenant_endpoint_list_(const char *tenant_endpoi } SpinWLockGuard guard(refresh_lock_); - if (OB_FAIL(endpoint_list_.assign(endpoint_list))) { + if (FAILEDx(endpoint_list_.assign(endpoint_list))) { LOG_ERROR("assign endpoint_list failed", KR(ret), "expected_endpoint_list", endpoint_list, "cur_endpoint_list", endpoint_list_); diff --git a/src/logservice/libobcdc/src/ob_log_fetch_log_rpc.cpp b/src/logservice/libobcdc/src/ob_log_fetch_log_rpc.cpp index a24876dbb..d2266f8f4 100644 --- a/src/logservice/libobcdc/src/ob_log_fetch_log_rpc.cpp +++ b/src/logservice/libobcdc/src/ob_log_fetch_log_rpc.cpp @@ -989,6 +989,7 @@ void FetchLogARpc::clear_result_() if (res_queue_.count() > 0) { // Require result_pool_ be valid if (OB_ISNULL(result_pool_)) { + // ignore ret LOG_ERROR("invalid rpc result pool, can not clear results", K(result_pool_)); } else { while (OB_SUCC(res_queue_.pop(data))) { diff --git a/src/logservice/libobcdc/src/ob_log_meta_data_struct.cpp b/src/logservice/libobcdc/src/ob_log_meta_data_struct.cpp index 36838da16..5175fdbaa 100644 --- a/src/logservice/libobcdc/src/ob_log_meta_data_struct.cpp +++ b/src/logservice/libobcdc/src/ob_log_meta_data_struct.cpp @@ -115,7 +115,8 @@ int ObDictTenantInfo::alloc_dict_db_meta(datadict::ObDictDatabaseMeta *&dict_db_ ret = OB_NOT_INIT; LOG_ERROR("ObDictTenantInfo has not been initialized", KR(ret)); } else if (OB_ISNULL(dict_db_meta = static_cast( - cfifo_allocator_.alloc(sizeof(datadict::ObDictDatabaseMeta))))) { + cfifo_allocator_.alloc(sizeof(datadict::ObDictDatabaseMeta))))) { + ret = OB_ALLOCATE_MEMORY_FAILED; LOG_ERROR("allocate dict_db_meta failed", KR(ret), K(dict_db_meta)); } else { new (dict_db_meta) datadict::ObDictDatabaseMeta(&arena_allocator_); @@ -252,7 +253,8 @@ int ObDictTenantInfo::alloc_dict_table_meta(datadict::ObDictTableMeta *&dict_tab ret = OB_NOT_INIT; LOG_ERROR("ObDictTenantInfo has not been initialized", KR(ret)); } else if (OB_ISNULL(dict_table_meta = static_cast( - cfifo_allocator_.alloc(sizeof(datadict::ObDictTableMeta))))) { + cfifo_allocator_.alloc(sizeof(datadict::ObDictTableMeta))))) { + ret = OB_ALLOCATE_MEMORY_FAILED; LOG_ERROR("allocate dict_table_meta failed", KR(ret), K(dict_table_meta)); } else { new (dict_table_meta) datadict::ObDictTableMeta(&arena_allocator_); diff --git a/src/logservice/libobcdc/src/ob_log_meta_manager.cpp b/src/logservice/libobcdc/src/ob_log_meta_manager.cpp index 91799e9be..8429abfcf 100644 --- a/src/logservice/libobcdc/src/ob_log_meta_manager.cpp +++ b/src/logservice/libobcdc/src/ob_log_meta_manager.cpp @@ -1462,7 +1462,7 @@ int ObLogMetaManager::fill_primary_key_info_( "column_name", column_table_schema->get_column_name()); } else if (valid_pk_num > 0 && OB_FAIL(pks.append(","))) { LOG_ERROR("append pks delimeter failed", KR(ret), K(valid_pk_num), K(pks)); - } else if (pks.append(column_table_schema->get_column_name())) { + } else if (OB_FAIL(pks.append(column_table_schema->get_column_name()))) { LOG_ERROR("append column_name into pks failed", KR(ret), K(pks), KPC(column_table_schema)); } else { if (OB_SUCC(ret)) { @@ -1784,11 +1784,11 @@ int ObLogMetaManager::set_unique_keys_(ITableMeta *table_meta, const auto *column_schema = table_schema->get_column_schema(column_id); if (OB_ISNULL(column_schema)) { + ret = OB_ERR_UNEXPECTED; LOG_ERROR("get column schema fail", K(column_id), K(index), K(column_count), "table_id", table_schema->get_table_id(), "table_name", table_schema->get_table_name(), "table_schame_version", table_schema->get_schema_version()); - ret = OB_ERR_UNEXPECTED; } else { if (is_first_uk_column) { is_first_uk_column = false; diff --git a/src/logservice/libobcdc/src/ob_log_part_trans_dispatcher.cpp b/src/logservice/libobcdc/src/ob_log_part_trans_dispatcher.cpp index d3b90bdff..899c4f7ec 100644 --- a/src/logservice/libobcdc/src/ob_log_part_trans_dispatcher.cpp +++ b/src/logservice/libobcdc/src/ob_log_part_trans_dispatcher.cpp @@ -172,8 +172,7 @@ int PartTransDispatcher::dispatch_part_trans_task_(PartTransTask &task, volatile // not have a corresponding guarantee. Therefore, it is normal for data progress to be rolled back here. But it is // dangerous. This problem can only be completely solved when the schema is split within the tenant. if (OB_UNLIKELY(prepare_ts < last_dispatch_progress_)) { - ret = OB_ERR_UNEXPECTED; - LOG_WARN("partition dispatch progress is rollback, we should check it", KR(ret), + LOG_WARN_RET(OB_ERR_UNEXPECTED, "partition dispatch progress is rollback, we should check it", K_(tls_id), "prepare_ts", NTS_TO_STR(prepare_ts), "prepare_lsn", prepare_lsn, diff --git a/src/logservice/libobcdc/src/ob_log_reader.cpp b/src/logservice/libobcdc/src/ob_log_reader.cpp index d9ce181bd..a3e3b5da5 100644 --- a/src/logservice/libobcdc/src/ob_log_reader.cpp +++ b/src/logservice/libobcdc/src/ob_log_reader.cpp @@ -301,6 +301,7 @@ int ObLogReader::read_store_service_(ObLogEntryTask &log_entry_task, } } else { if (OB_ISNULL(data_buf = static_cast(log_entry_task.alloc(value_len + 1)))) { + ret = OB_ALLOCATE_MEMORY_FAILED; LOG_ERROR("ReadLogBufFactory alloc fail", KR(ret)); } else { MEMCPY(data_buf, value_str, value_len); diff --git a/src/logservice/libobcdc/src/ob_log_resource_collector.cpp b/src/logservice/libobcdc/src/ob_log_resource_collector.cpp index 45e56cfa4..2b78aa6c4 100644 --- a/src/logservice/libobcdc/src/ob_log_resource_collector.cpp +++ b/src/logservice/libobcdc/src/ob_log_resource_collector.cpp @@ -590,7 +590,7 @@ int ObLogResourceCollector::handle(void *data, if (OB_ISNULL(task)) { LOG_ERROR("ObLogBR task is NULL"); ret = OB_ERR_UNEXPECTED; - } else if (task->get_record_type(record_type)) { + } else if (OB_FAIL(task->get_record_type(record_type))) { LOG_ERROR("ObLogBR task get_record_type fail", KR(ret)); } else { if (HEARTBEAT == record_type || EBEGIN == record_type || ECOMMIT == record_type) { diff --git a/src/logservice/libobcdc/src/ob_log_tenant.cpp b/src/logservice/libobcdc/src/ob_log_tenant.cpp index 1b0f0fcdb..3660737b3 100644 --- a/src/logservice/libobcdc/src/ob_log_tenant.cpp +++ b/src/logservice/libobcdc/src/ob_log_tenant.cpp @@ -958,6 +958,7 @@ void ObLogTenant::flush_storage() } if (OB_FAIL(store_service->flush(redo_cf_handle_))) { + // overwrite ret LOG_WARN("flush tenant redo_column_family failed", KR(ret), K_(tenant_id)); } else { LOG_INFO("flush tenant redo column_family succ", K_(tenant_id)); diff --git a/src/logservice/libobcdc/src/ob_log_timezone_info_getter.cpp b/src/logservice/libobcdc/src/ob_log_timezone_info_getter.cpp index 764aa1de6..d9cc9eb3a 100644 --- a/src/logservice/libobcdc/src/ob_log_timezone_info_getter.cpp +++ b/src/logservice/libobcdc/src/ob_log_timezone_info_getter.cpp @@ -34,8 +34,8 @@ int ObCDCTenantTimeZoneInfo::init(const uint64_t tenant_id) if (IS_INIT) { ret = OB_INIT_TWICE; LOG_ERROR("oblog_tz_info already inited", KR(ret), K(tenant_id)); - } else if (OB_FAIL(OB_FAIL( - tz_info_map_.init(ObMemAttr(OB_SERVER_TENANT_ID, ObModIds::OB_HASH_BUCKET_TIME_ZONE_INFO_MAP))))) { + } else if (OB_FAIL( + tz_info_map_.init(ObMemAttr(OB_SERVER_TENANT_ID, ObModIds::OB_HASH_BUCKET_TIME_ZONE_INFO_MAP)))) { // must use OB_SERVER_TENANT_ID cause alloc memory require user tenant should has its own ObMallocAllocator LOG_ERROR("init tz_info_map_ failed", KR(ret), K(tenant_id)); } else { diff --git a/src/logservice/logrouteservice/ob_log_route_service.cpp b/src/logservice/logrouteservice/ob_log_route_service.cpp index 1a60e59c4..192119dfd 100755 --- a/src/logservice/logrouteservice/ob_log_route_service.cpp +++ b/src/logservice/logrouteservice/ob_log_route_service.cpp @@ -738,13 +738,13 @@ int ObLogRouteService::add_into_blacklist( } else if (OB_ISNULL(router_value)) { ret = OB_ERR_UNEXPECTED; LOG_WARN("router_value is nullptr", KR(ret)); - } else if (router_value->add_into_blacklist(router_key, svr, svr_service_time, + } else if (OB_FAIL(router_value->add_into_blacklist(router_key, svr, svr_service_time, ATOMIC_LOAD(&blacklist_survival_time_sec_), ATOMIC_LOAD(&blacklist_survival_time_upper_limit_min_), ATOMIC_LOAD(&blacklist_survival_time_penalty_period_min_), ATOMIC_LOAD(&blacklist_history_overdue_time_min_), ATOMIC_LOAD(&blacklist_history_clear_interval_min_), - survival_time)) { + survival_time))) { LOG_WARN("router_value add_into_blacklist failed", KR(ret), K(router_key), K(svr), K(svr_service_time), K(survival_time)); } else {} diff --git a/src/logservice/ob_garbage_collector.cpp b/src/logservice/ob_garbage_collector.cpp index bb21e937a..1f6ed0b6e 100644 --- a/src/logservice/ob_garbage_collector.cpp +++ b/src/logservice/ob_garbage_collector.cpp @@ -1675,7 +1675,8 @@ void ObGarbageCollector::gc_check_ls_status_(ObGCCandidateArray &gc_candidates) CLOG_LOG(WARN, "get next log stream failed", K(ret)); } } else if (OB_ISNULL(ls)) { - CLOG_LOG(ERROR, "log stream is NULL", KP(ls)); + ret = OB_ERR_UNEXPECTED; + CLOG_LOG(ERROR, "log stream is NULL", K(ret), KP(ls)); } else if (OB_UNLIKELY(!ls->is_create_committed())) { CLOG_LOG(INFO, "ls is not committed, just ignore", K(ls)); } else if (OB_SUCCESS != (tmp_ret = gc_check_ls_status_(*ls, gc_candidates))) { @@ -1801,6 +1802,7 @@ void ObGarbageCollector::execute_gc_(ObGCCandidateArray &gc_candidates) } else if (NOT_IN_LEADER_MEMBER_LIST == gc_reason) { ObLogHandler *log_handler = NULL; if (OB_ISNULL(log_handler = ls->get_log_handler())) { + tmp_ret = OB_ERR_UNEXPECTED; CLOG_LOG(ERROR, "log_handler is NULL", K(tmp_ret), K(id)); } else if (!log_handler->is_sync_enabled() || !log_handler->is_replay_enabled()) { gc_handler->set_log_sync_stopped(); diff --git a/src/logservice/palf/election/algorithm/election_acceptor.cpp b/src/logservice/palf/election/algorithm/election_acceptor.cpp index ee5c7dcf8..6a490241e 100644 --- a/src/logservice/palf/election/algorithm/election_acceptor.cpp +++ b/src/logservice/palf/election/algorithm/election_acceptor.cpp @@ -235,6 +235,7 @@ void ElectionAcceptor::on_prepare_request(const ElectionPrepareRequestMsg &prepa // 0. 收到leader prepare的时候无须比较优先级,直接返回投票结果 if (prepare_req.get_role() == common::ObRole::LEADER) { if (prepare_req.get_ballot_number() <= ballot_number_) { + // ignore ret LOG_PHASE(WARN, phase, "leader prepare message's ballot number is smaller than self"); } else { advance_ballot_number_and_reset_related_states_(prepare_req.get_ballot_number(), phase); diff --git a/src/logservice/palf/election/algorithm/election_proposer.cpp b/src/logservice/palf/election/algorithm/election_proposer.cpp index 570c06d7b..48fbe81b0 100644 --- a/src/logservice/palf/election/algorithm/election_proposer.cpp +++ b/src/logservice/palf/election/algorithm/election_proposer.cpp @@ -54,6 +54,7 @@ struct ResponseChecker proposer->advance_ballot_number_and_reset_related_states_(msg.get_ballot_number(), "receive reject message"); if (proposer->check_leader()) { + // ignore ret // 在check leader后可能卡住,做leader prepare时就已经不再是leader了 // 但是没有关系,正确性是由prepare阶段保证的,check_leader的意义在于尽量避免无谓的leader prepare流程 LOG_PHASE(WARN, phase, "leader message is rejected cause ballot number", K(msg.get_ballot_number()), K(proposer->prepare_success_ballot_)); diff --git a/src/logservice/palf/election/utils/election_event_recorder.cpp b/src/logservice/palf/election/utils/election_event_recorder.cpp index 8b0d9877a..3f7e56d82 100644 --- a/src/logservice/palf/election/utils/election_event_recorder.cpp +++ b/src/logservice/palf/election/utils/election_event_recorder.cpp @@ -248,6 +248,7 @@ int EventRecorder::report_member_list_changed_event(const MemberList &old_list, int64_t pos = 0; bool last_print_flag = false; if (old_list.only_membership_version_different(new_list)) { + ret = OB_ERR_UNEXPECTED; LOG_EVENT(ERROR, "only membership version different"); } else { DO_IF_SUCC(databuff_printf(info, INFO_MAX_LEN, pos, "new : ")); diff --git a/src/logservice/palf/fetch_log_engine.cpp b/src/logservice/palf/fetch_log_engine.cpp index 9ba326226..5f8d1f0bc 100644 --- a/src/logservice/palf/fetch_log_engine.cpp +++ b/src/logservice/palf/fetch_log_engine.cpp @@ -332,8 +332,10 @@ void FetchLogEngine::handle_drop(void *task) int ret = OB_SUCCESS; IPalfHandleImpl *palf_handle_impl = NULL; if (!is_inited_) { + ret = OB_NOT_INIT; PALF_LOG(WARN, "FetchLogEngine not init"); } else if (OB_ISNULL(task)) { + ret = OB_ERR_UNEXPECTED; PALF_LOG(WARN, "invalid argument", KP(task)); } else { FetchLogTask *fetch_log_task = static_cast(task); diff --git a/src/logservice/palf/log_config_mgr.cpp b/src/logservice/palf/log_config_mgr.cpp index 762c2c623..9aeefed1e 100755 --- a/src/logservice/palf/log_config_mgr.cpp +++ b/src/logservice/palf/log_config_mgr.cpp @@ -2970,7 +2970,7 @@ int LogConfigMgr::handle_learner_keepalive_resp(const LogLearner &child) // 2. guarantee regions of children are unique // for follower: // 2. guarantee regions of children are same with region_ -int LogConfigMgr::check_children_health() +void LogConfigMgr::check_children_health() { int ret = OB_SUCCESS; LogLearnerList dead_children; @@ -3013,6 +3013,7 @@ int LogConfigMgr::check_children_health() } // 5. retire removed children if (OB_FAIL(submit_retire_children_req_(dead_children, RetireChildReason::CHILD_NOT_ALIVE))) { + // overwrite ret PALF_LOG(WARN, "submit_retire_children_req failed", KR(ret), K_(palf_id), K_(self), K(dead_children)); } else if (!is_leader && OB_FAIL(submit_retire_children_req_(diff_region_children, RetireChildReason::DIFFERENT_REGION_WITH_PARENT))) { @@ -3022,7 +3023,6 @@ int LogConfigMgr::check_children_health() PALF_LOG(WARN, "submit_retire_children_req failed", KR(ret), K_(palf_id), K_(self), K(dup_region_children)); } } - return ret; } int LogConfigMgr::remove_timeout_child_(LogLearnerList &dead_children) diff --git a/src/logservice/palf/log_config_mgr.h b/src/logservice/palf/log_config_mgr.h index 8ecede47b..652c330af 100755 --- a/src/logservice/palf/log_config_mgr.h +++ b/src/logservice/palf/log_config_mgr.h @@ -500,7 +500,7 @@ public: int handle_register_parent_req(const LogLearner &child, const bool is_to_leader); int handle_retire_parent(const LogLearner &child); int handle_learner_keepalive_resp(const LogLearner &child); - int check_children_health(); + void check_children_health(); // ==================== Parent ======================== int64_t to_string(char* buf, const int64_t buf_len) const { diff --git a/src/logservice/palf/palf_handle_impl.cpp b/src/logservice/palf/palf_handle_impl.cpp index dc48f9a09..9e2b2ebd6 100755 --- a/src/logservice/palf/palf_handle_impl.cpp +++ b/src/logservice/palf/palf_handle_impl.cpp @@ -2650,6 +2650,7 @@ int PalfHandleImpl::check_and_switch_state() do { RLockGuard guard(lock_); if (OB_FAIL(config_mgr_.leader_do_loop_work(config_state_changed))) { + // overwrite ret PALF_LOG(WARN, "LogConfigMgr::leader_do_loop_work failed", KR(ret), K_(self), K_(palf_id)); } else if (OB_FAIL(mode_mgr_.leader_do_loop_work())) { PALF_LOG(WARN, "LogModeMgr::leader_do_loop_work failed", KR(ret), K_(self), K_(palf_id)); @@ -2659,6 +2660,7 @@ int PalfHandleImpl::check_and_switch_state() if (OB_UNLIKELY(config_state_changed)) { WLockGuard guard(lock_); if (OB_FAIL(config_mgr_.switch_state())) { + // overwrite ret PALF_LOG(WARN, "switch_state failed", K(ret)); } } @@ -2683,6 +2685,7 @@ int PalfHandleImpl::check_and_switch_state() } if (palf_reach_time_interval(PALF_UPDATE_REGION_INTERVAL_US, last_update_region_time_us_) && OB_FAIL(update_self_region_())) { + // overwrite ret PALF_LOG(WARN, "update_region failed", K(ret), KPC(this)); } } diff --git a/src/logservice/replayservice/ob_log_replay_service.cpp b/src/logservice/replayservice/ob_log_replay_service.cpp index 3a8ab6318..6a9980b0a 100644 --- a/src/logservice/replayservice/ob_log_replay_service.cpp +++ b/src/logservice/replayservice/ob_log_replay_service.cpp @@ -752,6 +752,7 @@ share::SCN ObLogReplayService::inner_get_replayable_point_() const rootserver::ObTenantInfoLoader *tenant_info_loader = MTL(rootserver::ObTenantInfoLoader*); share::SCN recovery_until_scn; if (OB_ISNULL(tenant_info_loader)) { + ret = OB_ERR_UNEXPECTED; CLOG_LOG(WARN, "ObTenantInfoLoader is NULL", K(ret)); } else if (OB_FAIL(tenant_info_loader->get_recovery_until_scn(recovery_until_scn))) { if (REACH_TIME_INTERVAL(5 * 1000 * 1000)) { @@ -1314,6 +1315,7 @@ int ObLogReplayService::handle_replay_task_(ObReplayServiceReplayTask *task_queu ret = OB_ERR_UNEXPECTED; CLOG_LOG(ERROR, "do statistics replay cost failed", KPC(replay_task), K(ret)); } else if (OB_ISNULL(link_to_destroy = task_queue->pop())) { + ret = OB_ERR_UNEXPECTED; CLOG_LOG(ERROR, "failed to pop task after replay", KPC(replay_task), K(ret)); //It's impossible to get to this branch. Use on_replay_error to defend it. on_replay_error_(*replay_task, ret); diff --git a/src/logservice/restoreservice/ob_log_restore_net_driver.cpp b/src/logservice/restoreservice/ob_log_restore_net_driver.cpp index 1cc1ec239..164b13251 100644 --- a/src/logservice/restoreservice/ob_log_restore_net_driver.cpp +++ b/src/logservice/restoreservice/ob_log_restore_net_driver.cpp @@ -349,7 +349,8 @@ int ObLogRestoreNetDriver::add_ls_if_needed_with_lock_(const share::ObLSID &id, share::SCN end_scn; palf::PalfHandleGuard palf_handle_guard; if (OB_ISNULL(fetcher_)) { - LOG_ERROR("fetcher is NULL", K(fetcher_)); + ret = OB_ERR_UNEXPECTED; + LOG_ERROR("fetcher is NULL", K(ret), K(fetcher_)); } else if (fetcher_->is_ls_exist(id)) { //TODO check ls in fetcher with proposal_id } else if (OB_FAIL(log_service_->open_palf(id, palf_handle_guard))) { @@ -651,7 +652,7 @@ void ObLogRestoreNetDriver::LogErrHandler::handle_error(const share::ObLSID &ls_ if (palf::LSN(palf::LOG_INVALID_LSN_VAL) == lsn ) { palf::LSN tmp_lsn = palf::LSN(palf::PALF_INITIAL_LSN_VAL); palf::PalfHandleGuard palf_handle_guard; - if (OB_FAIL(OB_FAIL(MTL(ObLogService*)->open_palf(ls_id, palf_handle_guard)))) { + if (OB_FAIL(MTL(ObLogService*)->open_palf(ls_id, palf_handle_guard))) { LOG_WARN("open palf failed", K(ls_id)); } else if (OB_FAIL(palf_handle_guard.get_end_lsn(tmp_lsn))) { LOG_WARN("get end lsn failed", K(ls_id)); diff --git a/src/observer/mysql/ob_query_retry_ctrl.cpp b/src/observer/mysql/ob_query_retry_ctrl.cpp index 23a54a59c..e163c5790 100644 --- a/src/observer/mysql/ob_query_retry_ctrl.cpp +++ b/src/observer/mysql/ob_query_retry_ctrl.cpp @@ -1192,6 +1192,7 @@ void ObQueryRetryCtrl::test_and_save_retry_state(const ObGlobalContext &gctx, retry_func func = nullptr; ObSQLSessionInfo *session = result.get_exec_context().get_my_session(); if (OB_ISNULL(session)) { + // ignore ret // this is possible. #issue/43953721 LOG_WARN("session is null in exec_context. maybe OOM. don't retry", K(err)); } else if (OB_FAIL(get_func(err, is_inner_sql, func))) { diff --git a/src/observer/mysql/ob_sync_cmd_driver.cpp b/src/observer/mysql/ob_sync_cmd_driver.cpp index 39c9ebef2..3e7683abf 100644 --- a/src/observer/mysql/ob_sync_cmd_driver.cpp +++ b/src/observer/mysql/ob_sync_cmd_driver.cpp @@ -67,6 +67,7 @@ int ObSyncCmdDriver::seal_eof_packet(bool has_more_result, OMPKEOF& eofp) const ObWarningBuffer *warnings_buf = common::ob_get_tsi_warning_buffer(); uint16_t warning_count = 0; if (OB_ISNULL(warnings_buf)) { + // ignore ret LOG_WARN("can not get thread warnings buffer", K(warnings_buf)); } else { warning_count = static_cast(warnings_buf->get_readable_warning_count()); @@ -198,6 +199,7 @@ int ObSyncCmdDriver::response_result(ObMySQLResultSet &result) ok_param.lii_ = result.get_last_insert_id_to_client(); const ObWarningBuffer *warnings_buf = common::ob_get_tsi_warning_buffer(); if (OB_ISNULL(warnings_buf)) { + // ignore ret LOG_WARN("can not get thread warnings buffer"); } else { ok_param.warnings_count_ = diff --git a/src/observer/mysql/ob_sync_plan_driver.cpp b/src/observer/mysql/ob_sync_plan_driver.cpp index 0dbbb913d..57acfbcd9 100644 --- a/src/observer/mysql/ob_sync_plan_driver.cpp +++ b/src/observer/mysql/ob_sync_plan_driver.cpp @@ -135,6 +135,7 @@ int ObSyncPlanDriver::response_result(ObMySQLResultSet &result) const ObWarningBuffer *warnings_buf = common::ob_get_tsi_warning_buffer(); uint16_t warning_count = 0; if (OB_ISNULL(warnings_buf)) { + // ignore ret LOG_WARN("can not get thread warnings buffer"); } else { warning_count = static_cast(warnings_buf->get_readable_warning_count()); @@ -212,6 +213,7 @@ int ObSyncPlanDriver::response_result(ObMySQLResultSet &result) ok_param.lii_ = result.get_last_insert_id_to_client(); const ObWarningBuffer *warnings_buf = common::ob_get_tsi_warning_buffer(); if (OB_ISNULL(warnings_buf)) { + // ignore ret LOG_WARN("can not get thread warnings buffer"); } else { ok_param.warnings_count_ = diff --git a/src/observer/mysql/obmp_change_user.cpp b/src/observer/mysql/obmp_change_user.cpp index b104f5289..09ccea75e 100644 --- a/src/observer/mysql/obmp_change_user.cpp +++ b/src/observer/mysql/obmp_change_user.cpp @@ -293,6 +293,7 @@ int ObMPChangeUser::process() if (OB_UNLIKELY(need_disconnect) && is_conn_valid()) { if (OB_ISNULL(session)) { + // ignore ret LOG_WARN("will disconnect connection", K(ret), K(session)); } else { LOG_WARN("will disconnect connection", K(ret), KPC(session)); diff --git a/src/observer/mysql/obmp_packet_sender.cpp b/src/observer/mysql/obmp_packet_sender.cpp index 6fc9721d3..9565cb892 100644 --- a/src/observer/mysql/obmp_packet_sender.cpp +++ b/src/observer/mysql/obmp_packet_sender.cpp @@ -874,6 +874,7 @@ int ObMPPacketSender::send_eof_packet(const ObSQLSessionInfo &session, uint16_t warning_count = 0; bool ac = true; if (OB_ISNULL(warnings_buf)) { + // ignore ret LOG_WARN("can not get thread warnings buffer"); } else { warning_count = static_cast(warnings_buf->get_readable_warning_count()); diff --git a/src/observer/mysql/obmp_query.cpp b/src/observer/mysql/obmp_query.cpp index 90aa7cd40..8d35bdb0c 100644 --- a/src/observer/mysql/obmp_query.cpp +++ b/src/observer/mysql/obmp_query.cpp @@ -811,6 +811,7 @@ OB_INLINE int ObMPQuery::do_process(ObSQLSessionInfo &session, async_resp_used))) { ObPhysicalPlanCtx *plan_ctx = result.get_exec_context().get_physical_plan_ctx(); if (OB_ISNULL(plan_ctx)) { + // ignore ret LOG_ERROR("execute query fail, and plan_ctx is NULL", K(ret)); } else { if (OB_TRANSACTION_SET_VIOLATION != ret && OB_REPLICA_NOT_READABLE != ret) { diff --git a/src/observer/mysql/obmp_stmt_close.cpp b/src/observer/mysql/obmp_stmt_close.cpp index b28fc85f5..babe62eb1 100644 --- a/src/observer/mysql/obmp_stmt_close.cpp +++ b/src/observer/mysql/obmp_stmt_close.cpp @@ -93,6 +93,7 @@ int ObMPStmtClose::process() } } if (OB_FAIL(session->close_ps_stmt(stmt_id_))) { + // overwrite ret, 优先级低,被覆盖 LOG_WARN("fail to close ps stmt", K(ret), K_(stmt_id), K(session->get_sessid())); } if (OB_SUCCESS != tmp_ret) { diff --git a/src/observer/mysql/obmp_stmt_execute.cpp b/src/observer/mysql/obmp_stmt_execute.cpp index c141f80ae..95cd2cc8c 100644 --- a/src/observer/mysql/obmp_stmt_execute.cpp +++ b/src/observer/mysql/obmp_stmt_execute.cpp @@ -355,6 +355,7 @@ int ObMPStmtExecute::send_eof_packet_for_arraybinding(ObSQLSessionInfo &session_ const ObWarningBuffer *warnings_buf = common::ob_get_tsi_warning_buffer(); uint16_t warning_count = 0; if (OB_ISNULL(warnings_buf)) { + // ignore ret LOG_WARN("can not get thread warnings buffer"); } else { warning_count = static_cast(warnings_buf->get_readable_warning_count()); @@ -1013,7 +1014,8 @@ int ObMPStmtExecute::decode_type_info(const char*& buf, TypeInfo &type_info) PS_DEFENSE_CHECK(1) { uint64_t length = 0; - if (OB_FAIL(ObMySQLUtil::get_length(buf, length))) { + if (OB_FAIL(ret)) { + } else if (OB_FAIL(ObMySQLUtil::get_length(buf, length))) { LOG_WARN("failed to get length", K(ret)); } else { PS_DEFENSE_CHECK(length) @@ -1026,7 +1028,8 @@ int ObMPStmtExecute::decode_type_info(const char*& buf, TypeInfo &type_info) PS_DEFENSE_CHECK(1) { uint64_t version = 0; - if (OB_FAIL(ObMySQLUtil::get_length(buf, version))) { + if (OB_FAIL(ret)) { + } else if (OB_FAIL(ObMySQLUtil::get_length(buf, version))) { LOG_WARN("failed to get version", K(ret)); } } @@ -1193,6 +1196,7 @@ int ObMPStmtExecute::execute_response(ObSQLSessionInfo &session, async_resp_used))) { ObPhysicalPlanCtx *plan_ctx = result.get_exec_context().get_physical_plan_ctx(); if (OB_ISNULL(plan_ctx)) { + // ignore ret LOG_ERROR("execute query fail, and plan_ctx is NULL", K(ret)); } else { LOG_WARN("execute query fail", K(ret), "timeout_timestamp", diff --git a/src/observer/mysql/obmp_stmt_fetch.cpp b/src/observer/mysql/obmp_stmt_fetch.cpp index db43765c6..fb47b9bda 100644 --- a/src/observer/mysql/obmp_stmt_fetch.cpp +++ b/src/observer/mysql/obmp_stmt_fetch.cpp @@ -527,6 +527,7 @@ int ObMPStmtFetch::response_result(pl::ObPLCursorInfo &cursor, const ObWarningBuffer *warnings_buf = common::ob_get_tsi_warning_buffer(); uint16_t warning_count = 0; if (OB_ISNULL(warnings_buf)) { + // ignore ret LOG_WARN("can not get thread warnings buffer"); } else { warning_count = static_cast(warnings_buf->get_readable_warning_count()); diff --git a/src/observer/mysql/obmp_stmt_prepare.cpp b/src/observer/mysql/obmp_stmt_prepare.cpp index 9cd22c021..585407419 100644 --- a/src/observer/mysql/obmp_stmt_prepare.cpp +++ b/src/observer/mysql/obmp_stmt_prepare.cpp @@ -474,6 +474,7 @@ int ObMPStmtPrepare::do_process(ObSQLSessionInfo &session, async_resp_used))) { ObPhysicalPlanCtx *plan_ctx = result.get_exec_context().get_physical_plan_ctx(); if (OB_ISNULL(plan_ctx)) { + // ignore ret LOG_ERROR("execute query fail, and plan_ctx is NULL", K(ret)); } else { LOG_WARN("execute query fail", K(ret), "timeout_timestamp", diff --git a/src/observer/mysql/obmp_stmt_prexecute.cpp b/src/observer/mysql/obmp_stmt_prexecute.cpp index 4413da26e..ca2b04d85 100644 --- a/src/observer/mysql/obmp_stmt_prexecute.cpp +++ b/src/observer/mysql/obmp_stmt_prexecute.cpp @@ -556,6 +556,7 @@ int ObMPStmtPrexecute::execute_response(ObSQLSessionInfo &session, const ObWarningBuffer *warnings_buf = common::ob_get_tsi_warning_buffer(); uint16_t warning_count = 0; if (OB_ISNULL(warnings_buf)) { + // ignore ret LOG_WARN("can not get thread warnings buffer"); } else { warning_count = static_cast(warnings_buf->get_readable_warning_count()); @@ -686,6 +687,7 @@ int ObMPStmtPrexecute::execute_response(ObSQLSessionInfo &session, } else if (OB_FAIL(response_result(result, session, force_sync_resp, async_resp_used))) { ObPhysicalPlanCtx *plan_ctx = result.get_exec_context().get_physical_plan_ctx(); if (OB_ISNULL(plan_ctx)) { + // ignore ret LOG_ERROR("execute query fail, and plan_ctx is NULL", K(ret)); } else { LOG_WARN("execute query fail", diff --git a/src/observer/mysql/obsm_utils.cpp b/src/observer/mysql/obsm_utils.cpp index 2b8c4ab7a..a19046e58 100644 --- a/src/observer/mysql/obsm_utils.cpp +++ b/src/observer/mysql/obsm_utils.cpp @@ -332,6 +332,7 @@ int ObSMUtils::cell_str( OB_LOG(WARN, "failed to get udt info", K(ret), K(field)); } if (OB_ISNULL(udt_info)) { + // overwrite ret // try system udt if (0 == field->type_owner_.case_compare(OB_SYS_DATABASE_NAME) || 0 == field->type_owner_.case_compare("SYS")) { diff --git a/src/observer/ob_lease_state_mgr.cpp b/src/observer/ob_lease_state_mgr.cpp index 3d4a2f135..ed9cc6c8c 100644 --- a/src/observer/ob_lease_state_mgr.cpp +++ b/src/observer/ob_lease_state_mgr.cpp @@ -135,8 +135,8 @@ int ObLeaseStateMgr::register_self() } LOG_INFO("start_heartbeat anyway"); - // ignore ret overwrite if (OB_FAIL(start_heartbeat())) { + // overwrite ret LOG_ERROR("start_heartbeat failed", K(ret)); } } @@ -288,6 +288,7 @@ int ObLeaseStateMgr::renew_lease() } const bool repeat = false; if (OB_FAIL(hb_timer_.schedule(hb_, DELAY_TIME, repeat))) { + // overwrite ret LOG_WARN("schedule failed", LITERAL_K(DELAY_TIME), K(repeat), K(ret)); } } diff --git a/src/observer/ob_service.cpp b/src/observer/ob_service.cpp index df20c27cf..a85fc0c7a 100644 --- a/src/observer/ob_service.cpp +++ b/src/observer/ob_service.cpp @@ -156,8 +156,8 @@ void ObSchemaReleaseTimeTask::runTimerTask() } else if (OB_FAIL(schema_updater_->try_release_schema())) { LOG_WARN("ObSchemaReleaseTimeTask failed", K(ret)); } - // we should ignore error to schedule task if (OB_FAIL(schedule_())) { + // overwrite ret LOG_WARN("fail to schedule ObSchemaReleaseTimeTask in runTimerTask", KR(ret)); } } diff --git a/src/observer/report/ob_server_meta_table_checker.cpp b/src/observer/report/ob_server_meta_table_checker.cpp index 4bffbab4b..0413eacab 100644 --- a/src/observer/report/ob_server_meta_table_checker.cpp +++ b/src/observer/report/ob_server_meta_table_checker.cpp @@ -43,8 +43,8 @@ void ObServerLSMetaTableCheckTask::runTimerTask() ObServerMetaTableChecker::ObMetaTableCheckType::CHECK_LS_META_TABLE))) { LOG_WARN("fail to check ls meta table", KR(ret)); } - // ignore ret if (OB_FAIL(checker_.schedule_ls_meta_check_task())) { + // overwrite ret LOG_WARN("fail to schedule ls meta check task", KR(ret)); } } @@ -62,8 +62,8 @@ void ObServerTabletMetaTableCheckTask::runTimerTask() ObServerMetaTableChecker::ObMetaTableCheckType::CHECK_TABLET_META_TABLE))) { LOG_WARN("fail to check tablet meta table", KR(ret)); } - // ignore ret if (OB_FAIL(checker_.schedule_tablet_meta_check_task())) { + // overwrite ret LOG_WARN("fail to schedule tablet meta check task", KR(ret)); } } diff --git a/src/observer/report/ob_tablet_table_updater.cpp b/src/observer/report/ob_tablet_table_updater.cpp index e614105b0..6aa110b32 100644 --- a/src/observer/report/ob_tablet_table_updater.cpp +++ b/src/observer/report/ob_tablet_table_updater.cpp @@ -708,6 +708,7 @@ int ObTabletTableUpdater::batch_process_tasks( const int64_t end = ObTimeUtility::current_time(); auto* statistics = GET_TSI(TSITabletTableUpdatStatistics); if (OB_ISNULL(statistics)) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("fail to get statistic", "ret", OB_ERR_UNEXPECTED); } else { (void)statistics->calc(succ_cnt, batch_tasks.count() - succ_cnt, diff --git a/src/observer/report/ob_tenant_meta_checker.cpp b/src/observer/report/ob_tenant_meta_checker.cpp index 3672a5139..b91f71549 100644 --- a/src/observer/report/ob_tenant_meta_checker.cpp +++ b/src/observer/report/ob_tenant_meta_checker.cpp @@ -43,8 +43,8 @@ void ObTenantLSMetaTableCheckTask::runTimerTask() if (OB_FAIL(checker_.check_ls_table())) { LOG_WARN("fail to check ls meta table", KR(ret)); } - // ignore ret if (OB_FAIL(checker_.schedule_ls_meta_check_task())) { + // overwrite ret LOG_WARN("fail to schedule ls meta check task", KR(ret)); } } @@ -61,8 +61,8 @@ void ObTenantTabletMetaTableCheckTask::runTimerTask() if (OB_FAIL(checker_.check_tablet_table())) { LOG_WARN("fail to check tablet meta table", KR(ret)); } - // ignore ret if (OB_FAIL(checker_.schedule_tablet_meta_check_task())) { + // overwrite ret LOG_WARN("fail to schedule tablet meta check task", KR(ret)); } } diff --git a/src/observer/table_load/ob_table_load_coordinator.cpp b/src/observer/table_load/ob_table_load_coordinator.cpp index 196e60e41..0bcf6683a 100644 --- a/src/observer/table_load/ob_table_load_coordinator.cpp +++ b/src/observer/table_load/ob_table_load_coordinator.cpp @@ -101,19 +101,20 @@ void ObTableLoadCoordinator::abort_ctx(ObTableLoadTableCtx *ctx) LOG_WARN("unexpected invalid coordinator ctx", KR(ret), KP(ctx->coordinator_ctx_)); } else { LOG_INFO("coordinator abort"); + int tmp_ret = OB_SUCCESS; // 1. mark status abort, speed up background task exit - if (OB_FAIL(ctx->coordinator_ctx_->set_status_abort())) { - LOG_WARN("fail to set coordinator status abort", KR(ret)); + if (OB_SUCCESS != (tmp_ret = ctx->coordinator_ctx_->set_status_abort())) { + LOG_WARN("fail to set coordinator status abort", KR(tmp_ret)); } // 2. disable heart beat ctx->coordinator_ctx_->set_enable_heart_beat(false); // 3. mark all active trans abort - if (OB_FAIL(abort_active_trans(ctx))) { - LOG_WARN("fail to abort active trans", KR(ret)); + if (OB_SUCCESS != (tmp_ret = abort_active_trans(ctx))) { + LOG_WARN("fail to abort active trans", KR(tmp_ret)); } // 4. abort peers ctx - if (OB_FAIL(abort_peers_ctx(ctx))) { - LOG_WARN("fail to abort peers ctx", KR(ret)); + if (OB_SUCCESS != (tmp_ret = abort_peers_ctx(ctx))) { + LOG_WARN("fail to abort peers ctx", KR(tmp_ret)); } } } diff --git a/src/observer/table_load/ob_table_load_store.cpp b/src/observer/table_load/ob_table_load_store.cpp index 53088f0db..a3a2e4f3f 100644 --- a/src/observer/table_load/ob_table_load_store.cpp +++ b/src/observer/table_load/ob_table_load_store.cpp @@ -69,14 +69,15 @@ void ObTableLoadStore::abort_ctx(ObTableLoadTableCtx *ctx, bool &is_stopped) } else { LOG_INFO("store abort"); // 1. mark status abort, speed up background task exit - if (OB_FAIL(ctx->store_ctx_->set_status_abort())) { - LOG_WARN("fail to set store status abort", KR(ret)); + int tmp_ret = OB_SUCCESS; + if (OB_SUCCESS != (tmp_ret = ctx->store_ctx_->set_status_abort())) { + LOG_WARN("fail to set store status abort", KR(tmp_ret)); } // 2. disable heart beat check ctx->store_ctx_->set_enable_heart_beat_check(false); // 3. mark all active trans abort - if (OB_FAIL(abort_active_trans(ctx))) { - LOG_WARN("fail to abort active trans", KR(ret)); + if (OB_SUCCESS != (tmp_ret = abort_active_trans(ctx))) { + LOG_WARN("fail to abort active trans", KR(tmp_ret)); } ctx->store_ctx_->insert_table_ctx_->cancel(); ctx->store_ctx_->merger_->stop(); diff --git a/src/observer/table_load/resource/ob_table_load_resource_manager.cpp b/src/observer/table_load/resource/ob_table_load_resource_manager.cpp index 07e866f35..a1d7be7c0 100644 --- a/src/observer/table_load/resource/ob_table_load_resource_manager.cpp +++ b/src/observer/table_load/resource/ob_table_load_resource_manager.cpp @@ -280,10 +280,12 @@ int ObTableLoadResourceManager::release_resource(ObDirectLoadResourceReleaseArg } } } - if (OB_FAIL(assigned_tasks_.erase_refactored(arg.task_key_))) { - LOG_WARN("fail to erase refactored", K(arg.task_key_)); - } else { - LOG_INFO("ObTableLoadResourceManager::release_resource", K(arg)); + if (OB_SUCC(ret)) { + if (OB_FAIL(assigned_tasks_.erase_refactored(arg.task_key_))) { + LOG_WARN("fail to erase refactored", K(arg.task_key_)); + } else { + LOG_INFO("ObTableLoadResourceManager::release_resource", K(arg)); + } } } } diff --git a/src/observer/virtual_table/ob_all_virtual_lock_wait_stat.cpp b/src/observer/virtual_table/ob_all_virtual_lock_wait_stat.cpp index aee35cc5c..1b6410657 100644 --- a/src/observer/virtual_table/ob_all_virtual_lock_wait_stat.cpp +++ b/src/observer/virtual_table/ob_all_virtual_lock_wait_stat.cpp @@ -247,6 +247,7 @@ int ObAllVirtualLockWaitStat::get_rowkey_holder(int64_t hash, transaction::ObTra int ret = OB_SUCCESS; ObLockWaitMgr *lwm = NULL; if (OB_ISNULL(lwm = MTL(ObLockWaitMgr*))) { + ret = OB_ERR_UNEXPECTED; SERVER_LOG(ERROR, "MTL(LockWaitMgr) is null"); } else if (OB_FAIL(lwm->get_hash_holder(hash, holder))){ SERVER_LOG(WARN, "get rowkey holder from lock wait mgr failed", K(ret), K(hash)); diff --git a/src/observer/virtual_table/ob_all_virtual_ls_log_restore_status.cpp b/src/observer/virtual_table/ob_all_virtual_ls_log_restore_status.cpp index e791e9c7e..a12f4169b 100644 --- a/src/observer/virtual_table/ob_all_virtual_ls_log_restore_status.cpp +++ b/src/observer/virtual_table/ob_all_virtual_ls_log_restore_status.cpp @@ -68,10 +68,12 @@ int ObVirtualLSLogRestoreStatus::inner_get_next_row(common::ObNewRow *&row) ObLSService *ls_svr = MTL(ObLSService*); if (is_user_tenant(MTL_ID())) { if (OB_ISNULL(ls_svr)) { + ret = OB_ERR_UNEXPECTED; SERVER_LOG(WARN, "mtl ObLSService should not be null", K(ret)); } else if (OB_FAIL(ls_svr->get_ls_iter(guard, ObLSGetMod::LOG_MOD))) { SERVER_LOG(WARN, "get ls iter failed", K(ret)); } else if (OB_ISNULL(iter = guard.get_ptr())) { + ret = OB_ERR_UNEXPECTED; SERVER_LOG(WARN, "ls iter is NULL", K(ret), K(iter)); } else { while (OB_SUCC(ret)) { @@ -84,6 +86,7 @@ int ObVirtualLSLogRestoreStatus::inner_get_next_row(common::ObNewRow *&row) SERVER_LOG(WARN, "iter to end", K(ret)); } } else if (OB_ISNULL(ls)) { + ret = OB_ERR_UNEXPECTED; SERVER_LOG(WARN, "ls is NULL", K(ret), K(ls)); } else { SERVER_LOG(TRACE, "start to iterate this log_stream", K(MTL_ID()), K(ls->get_ls_id())); @@ -91,6 +94,7 @@ int ObVirtualLSLogRestoreStatus::inner_get_next_row(common::ObNewRow *&row) logservice::RestoreStatusInfo sys_restore_status_info; restore_handler = ls->get_log_restore_handler(); if (OB_ISNULL(restore_handler)) { + ret = OB_ERR_UNEXPECTED; SERVER_LOG(WARN, "restore handler is NULL", K(ret), K(ls)); } else if (OB_FAIL(restore_handler->get_ls_restore_status_info(restore_status_info))) { SERVER_LOG(WARN, "fail to get ls restore status info"); @@ -106,6 +110,7 @@ int ObVirtualLSLogRestoreStatus::inner_get_next_row(common::ObNewRow *&row) } else { // sys ls rootserver::ObRecoveryLSService *ls_recovery_svr = MTL(rootserver::ObRecoveryLSService*); if (OB_ISNULL(ls_recovery_svr)) { + ret = OB_ERR_UNEXPECTED; SERVER_LOG(WARN, "ls recovery service is NULL", K(ret), K(ls)); } else if (OB_FAIL(ls_recovery_svr->get_sys_restore_status(sys_restore_status_info))) { SERVER_LOG(WARN, "get sys restore status failed", K(ls)); diff --git a/src/observer/virtual_table/ob_all_virtual_mds_node_stat.cpp b/src/observer/virtual_table/ob_all_virtual_mds_node_stat.cpp index f5da5d4b5..0913a9a2f 100644 --- a/src/observer/virtual_table/ob_all_virtual_mds_node_stat.cpp +++ b/src/observer/virtual_table/ob_all_virtual_mds_node_stat.cpp @@ -302,6 +302,7 @@ int ObAllVirtualMdsNodeStat::get_tablet_info_(ObLS &ls, const ObFunctionCREATE_CONTEXT(mem_context_, param))) { SQL_ENG_LOG(WARN, "create entity failed", K(ret)); } else if (OB_ISNULL(mem_context_)) { + ret = OB_ERR_UNEXPECTED; SQL_ENG_LOG(WARN, "mem entity is null", K(ret)); } } diff --git a/src/observer/virtual_table/ob_information_user_privileges_table.cpp b/src/observer/virtual_table/ob_information_user_privileges_table.cpp index cdc27e254..aead47bc9 100644 --- a/src/observer/virtual_table/ob_information_user_privileges_table.cpp +++ b/src/observer/virtual_table/ob_information_user_privileges_table.cpp @@ -166,6 +166,7 @@ int ObInfoSchemaUserPrivilegesTable::get_user_infos(const uint64_t tenant_id, } else { const share::schema::ObUserInfo *user_info = NULL; if (OB_ISNULL(user_info = schema_guard_->get_user_info(tenant_id_, user_id))) { + // ignore ret SERVER_LOG(WARN, "Get user infos with tenant user id error", K(ret), K_(tenant_id)); } else if (OB_FAIL(user_infos.push_back(user_info))) { SERVER_LOG(WARN, "Failed to add user info", K(ret)); diff --git a/src/observer/virtual_table/ob_tenant_virtual_get_object_definition.cpp b/src/observer/virtual_table/ob_tenant_virtual_get_object_definition.cpp index 0ac9f379b..ffc380dd1 100644 --- a/src/observer/virtual_table/ob_tenant_virtual_get_object_definition.cpp +++ b/src/observer/virtual_table/ob_tenant_virtual_get_object_definition.cpp @@ -697,6 +697,7 @@ int ObGetObjectDefinition::get_database_id(uint64_t tenant_id, } else if (OB_FAIL(schema_guard_->get_database_schema(tenant_id, db_name, database_schema))) { LOG_WARN("get database schema failed", K(ret)); } else if (OB_ISNULL(database_schema)) { + ret = OB_ERR_OBJECT_NOT_FOUND; LOG_WARN("database not found", K(db_name)); } else if (FALSE_IT(database_id = database_schema->get_database_id())) { } diff --git a/src/observer/virtual_table/ob_virtual_open_cursor_table.cpp b/src/observer/virtual_table/ob_virtual_open_cursor_table.cpp index 67dd6f6a2..d45f53787 100644 --- a/src/observer/virtual_table/ob_virtual_open_cursor_table.cpp +++ b/src/observer/virtual_table/ob_virtual_open_cursor_table.cpp @@ -153,6 +153,7 @@ bool ObVirtualOpenCursorTable::FillScanner::operator()(sql::ObSQLSessionMgr::Key pl::ObPLCursorInfo *cursor_info = iter->second; if (OB_ISNULL(cursor_info)) { // do not report error + // ignore ret SERVER_LOG(WARN, "get a NULL cursor when record for v$open_cursor."); } else { OZ (fill_session_cursor_cell(*sess_info, cursor_info->get_id())); diff --git a/src/observer/virtual_table/ob_virtual_show_trace.cpp b/src/observer/virtual_table/ob_virtual_show_trace.cpp index eca22aecc..dbc7a1700 100644 --- a/src/observer/virtual_table/ob_virtual_show_trace.cpp +++ b/src/observer/virtual_table/ob_virtual_show_trace.cpp @@ -557,7 +557,8 @@ int ObVirtualShowTrace::find_child_span_info(sql::ObFLTShowTraceRec::trace_forma */ } - if (OB_FAIL(tmp_arr.push_back(show_trace_arr_.at(i)))) { + if(OB_FAIL(ret)){ + } else if (OB_FAIL(tmp_arr.push_back(show_trace_arr_.at(i)))) { LOG_WARN("failed to push back show trace value", K(ret), K(i)); } } else { @@ -626,7 +627,8 @@ int ObVirtualShowTrace::find_child_span_info(sql::ObFLTShowTraceRec::trace_forma = sql::ObFLTShowTraceRec::trace_formatter::LineType::LT_NODE; } } - if (OB_ISNULL(tmp_arr.at(tmp_arr.count()-1))) { + if (OB_FAIL(ret)) { + } else if (OB_ISNULL(tmp_arr.at(tmp_arr.count()-1))) { ret = OB_ERR_UNEXPECTED; SERVER_LOG(WARN, "record ptr is null"); } else { diff --git a/src/pl/ob_pl_di_adt_service.cpp b/src/pl/ob_pl_di_adt_service.cpp index 60264a647..f723dfd5b 100644 --- a/src/pl/ob_pl_di_adt_service.cpp +++ b/src/pl/ob_pl_di_adt_service.cpp @@ -860,6 +860,7 @@ int ObPLDIADTService::get_seg_pointer_array(jit::ObLLVMDIType &type) 32, member_types, seg_pointer_array_))) { LOG_WARN("failed to create struct type", K(ret)); } else if (OB_ISNULL(seg_pointer_array_.get_v())) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("failed to create di seg pointer array", K(ret)); } } diff --git a/src/pl/ob_pl_resolver.cpp b/src/pl/ob_pl_resolver.cpp index 04a02b48b..65a3dc6c0 100644 --- a/src/pl/ob_pl_resolver.cpp +++ b/src/pl/ob_pl_resolver.cpp @@ -4202,6 +4202,7 @@ int ObPLResolver::resolve_case(const ObStmtNodeTree *parse_tree, ObPLCaseStmt *s if (OB_FAIL(stmt_factory_.allocate(PL_SIGNAL, else_block, stmt))) { LOG_WARN("failed to alloc stmt", K(ret)); } else if (OB_ISNULL(signal_stmt = static_cast(stmt))) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("failed to cast stmt", K(ret)); } else { signal_stmt->set_cond_type(ERROR_CODE); diff --git a/src/pl/sys_package/ob_dbms_limit_calculator_mysql.cpp b/src/pl/sys_package/ob_dbms_limit_calculator_mysql.cpp index 18b0a0369..60b4d7839 100644 --- a/src/pl/sys_package/ob_dbms_limit_calculator_mysql.cpp +++ b/src/pl/sys_package/ob_dbms_limit_calculator_mysql.cpp @@ -394,6 +394,7 @@ int ObDBMSLimitCalculator::get_server_resource_info_( } } if (OB_TMP_FAIL(proxy.wait_all(return_code_array))) { + // overwrite ret ret = OB_SUCC(ret) ? tmp_ret : ret; LOG_WARN("wait all batch result failed", KR(ret), KR(tmp_ret)); } else if (OB_FAIL(ret)) { diff --git a/src/rootserver/ddl_task/ob_constraint_task.cpp b/src/rootserver/ddl_task/ob_constraint_task.cpp index daf98fea1..25b897e53 100755 --- a/src/rootserver/ddl_task/ob_constraint_task.cpp +++ b/src/rootserver/ddl_task/ob_constraint_task.cpp @@ -1910,6 +1910,7 @@ int ObConstraintTask::set_constraint_validated() } DEBUG_SYNC(CONSTRAINT_SET_VALID); if (OB_FAIL(switch_status(ObDDLTaskStatus::SUCCESS, true, ret))) { + // overwrite ret LOG_WARN("switch status failed", K(ret)); } return ret; diff --git a/src/rootserver/ddl_task/ob_ddl_redefinition_task.cpp b/src/rootserver/ddl_task/ob_ddl_redefinition_task.cpp index 803ce7aff..8f0842424 100644 --- a/src/rootserver/ddl_task/ob_ddl_redefinition_task.cpp +++ b/src/rootserver/ddl_task/ob_ddl_redefinition_task.cpp @@ -291,8 +291,8 @@ int ObDDLRedefinitionTask::prepare(const ObDDLTaskStatus next_task_status) ret = OB_NOT_INIT; LOG_WARN("ObDDLRedefinitionTask has not been inited", K(ret)); } - // overwrite ret if (OB_FAIL(switch_status(next_task_status, true, ret))) { + // overwrite ret LOG_WARN("fail to switch status", K(ret)); } return ret; diff --git a/src/rootserver/ddl_task/ob_table_redefinition_task.cpp b/src/rootserver/ddl_task/ob_table_redefinition_task.cpp index 4ef965ebe..3dfc0de8e 100755 --- a/src/rootserver/ddl_task/ob_table_redefinition_task.cpp +++ b/src/rootserver/ddl_task/ob_table_redefinition_task.cpp @@ -443,6 +443,7 @@ int ObTableRedefinitionTask::table_redefinition(const ObDDLTaskStatus next_task_ } } if (OB_FAIL(switch_status(next_task_status, true, ret))) { + // overwrite ret LOG_WARN("fail to switch task status", K(ret)); } } diff --git a/src/rootserver/ob_ddl_operator.cpp b/src/rootserver/ob_ddl_operator.cpp index 00afc61bb..afda88c63 100644 --- a/src/rootserver/ob_ddl_operator.cpp +++ b/src/rootserver/ob_ddl_operator.cpp @@ -4612,6 +4612,7 @@ int ObDDLOperator::drop_obj_privs( int64_t new_schema_version = OB_INVALID_VERSION; if (OB_ISNULL(obj_priv)) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("obj_priv priv is NULL", K(ret), K(obj_priv)); } else { OZ (schema_service.gen_new_schema_version(tenant_id, new_schema_version)); @@ -6856,6 +6857,7 @@ int ObDDLOperator::drop_db_table_privs( const ObDBPriv *db_priv = db_privs.at(i); int64_t new_schema_version = OB_INVALID_VERSION; if (OB_ISNULL(db_priv)) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("db priv is NULL", K(ret), K(db_priv)); } else if (OB_FAIL(schema_service_.gen_new_schema_version(tenant_id, new_schema_version))) { LOG_WARN("fail to gen new schema_version", K(ret), K(tenant_id)); @@ -6879,6 +6881,7 @@ int ObDDLOperator::drop_db_table_privs( const ObTablePriv *table_priv = table_privs.at(i); int64_t new_schema_version = OB_INVALID_VERSION; if (OB_ISNULL(table_priv)) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("table priv is NULL", K(ret), K(table_priv)); } else if (OB_FAIL(schema_service_.gen_new_schema_version(tenant_id, new_schema_version))) { LOG_WARN("fail to gen new schema_version", K(ret), K(tenant_id)); @@ -6929,6 +6932,7 @@ int ObDDLOperator::drop_db_table_privs( const ObObjPriv *obj_priv = obj_privs.at(i); int64_t new_schema_version = OB_INVALID_VERSION; if (OB_ISNULL(obj_priv)) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("obj_priv priv is NULL", K(ret), K(obj_priv)); } else if (OB_FAIL(schema_service_.gen_new_schema_version(tenant_id, new_schema_version))) { LOG_WARN("fail to gen new schema_version", K(ret), K(tenant_id)); diff --git a/src/rootserver/ob_ddl_service.cpp b/src/rootserver/ob_ddl_service.cpp index 6ceef1b43..920246b53 100755 --- a/src/rootserver/ob_ddl_service.cpp +++ b/src/rootserver/ob_ddl_service.cpp @@ -19190,10 +19190,12 @@ int ObDDLService::swap_orig_and_hidden_table_state(obrpc::ObAlterTableArg &alter based_table_schema))) { LOG_WARN("fail to get table schema", KR(ret), K(based_info)); } else if (OB_ISNULL(based_table_schema)) { + // ignore ret LOG_WARN("based table is not exist", KR(ret), K(based_info)); is_based_schema_version_consistent = false; } else if (OB_UNLIKELY(based_table_schema->get_schema_version() != based_info.schema_version_)) { + // ignore ret LOG_WARN("based table schema version is changed", KR(ret), K(based_info), KPC(based_table_schema)); is_based_schema_version_consistent = false; @@ -29368,6 +29370,7 @@ int ObDDLService::check_tenant_has_been_dropped_( } else if (OB_FAIL(guard.get_tenant_info(tenant_id, tenant))) { LOG_WARN("fail to get tenant info", KR(ret), K(tenant_id)); } else if (OB_ISNULL(tenant)) { + // ignore ret LOG_WARN("tenant not exist, maybe schema is fall behind", KR(ret), K(tenant_id)); } else if (tenant->is_dropping()) { ObLSStatusOperator ls_status; diff --git a/src/rootserver/ob_index_builder.cpp b/src/rootserver/ob_index_builder.cpp index 434c7c664..587a4c6f7 100644 --- a/src/rootserver/ob_index_builder.cpp +++ b/src/rootserver/ob_index_builder.cpp @@ -676,7 +676,7 @@ int ObIndexBuilder::do_create_local_index( my_arg.index_schema_.set_index_type(INDEX_TYPE_SPATIAL_GLOBAL_LOCAL_STORAGE); } } - if (OB_FAIL(ObIndexBuilderUtil::adjust_expr_index_args( + if (FAILEDx(ObIndexBuilderUtil::adjust_expr_index_args( my_arg, new_table_schema, allocator, gen_columns))) { LOG_WARN("fail to adjust expr index args", K(ret)); } else if (OB_FAIL(generate_schema( diff --git a/src/rootserver/ob_root_inspection.cpp b/src/rootserver/ob_root_inspection.cpp index 9ed4cc16b..fc27a2819 100755 --- a/src/rootserver/ob_root_inspection.cpp +++ b/src/rootserver/ob_root_inspection.cpp @@ -508,6 +508,7 @@ int ObPurgeRecyclebinTask::process() // the error code is only for outputtion log, the function will return success. // the task no need retry, because it will be triggered periodically. if (OB_FAIL(root_service_.schedule_recyclebin_task(delay))) { + // overwrite ret LOG_WARN("schedule purge recyclebin task failed", KR(ret), K(delay)); } else { LOG_INFO("submit purge recyclebin task success", K(delay)); diff --git a/src/rootserver/ob_server_balancer.cpp b/src/rootserver/ob_server_balancer.cpp index 781f0bd12..3ed753c86 100644 --- a/src/rootserver/ob_server_balancer.cpp +++ b/src/rootserver/ob_server_balancer.cpp @@ -3157,9 +3157,9 @@ int ObServerBalancer::CountBalanceStrategy::try_exchange_ug_balance_inter_ttg_lo LOG_WARN("fail to get excluded servers", K(ret)); } else if (has_exist_in_array(excluded_servers, left_inter_load.server_)) { // ignore this - } else if (left_ug->get_inter_ttg_load_value(right_inter_load, left_ug_load_value)) { + } else if (OB_FAIL(left_ug->get_inter_ttg_load_value(right_inter_load, left_ug_load_value))) { LOG_WARN("fail to get inter ttg load value", K(ret)); - } else if (right_ug->get_inter_ttg_load_value(right_inter_load, right_ug_load_value)) { + } else if (OB_FAIL(right_ug->get_inter_ttg_load_value(right_inter_load, right_ug_load_value))) { LOG_WARN("fail to get inter ttg load value", K(ret)); } else if (left_ug_load_value - right_ug_load_value <= EPSILON) { // ignore this, since this almost has no effect for load balance diff --git a/src/rootserver/ob_tenant_role_transition_service.cpp b/src/rootserver/ob_tenant_role_transition_service.cpp index 289fc7613..c02f5a794 100644 --- a/src/rootserver/ob_tenant_role_transition_service.cpp +++ b/src/rootserver/ob_tenant_role_transition_service.cpp @@ -802,6 +802,7 @@ int do_nonblock_renew(const ARRAY_L &array_l, const ARRAY_R &array_r, const uint bool found = false; FOREACH_CNT_X(r, array_r, !found) { if (OB_ISNULL(r)) { + // ignore ret LOG_WARN("r is null", KR(ret), K(array_r)); } else if (*r == ls_id) { found = true; diff --git a/src/rootserver/ob_unit_manager.cpp b/src/rootserver/ob_unit_manager.cpp index 37b1923ff..b5a9870cd 100644 --- a/src/rootserver/ob_unit_manager.cpp +++ b/src/rootserver/ob_unit_manager.cpp @@ -1468,7 +1468,7 @@ int ObUnitManager::do_split_pool_persistent_info( } } if (OB_FAIL(ret)) { - } else if (ut_operator_.remove_resource_pool(trans, pool->resource_pool_id_)) { + } else if (OB_FAIL(ut_operator_.remove_resource_pool(trans, pool->resource_pool_id_))) { LOG_WARN("fail to remove resource pool persistent info", K(ret), "pool_id", pool->resource_pool_id_); } else {} // all persistent infos update finished diff --git a/src/share/backup/ob_log_restore_struct.cpp b/src/share/backup/ob_log_restore_struct.cpp index f06fd2d89..234212d3b 100644 --- a/src/share/backup/ob_log_restore_struct.cpp +++ b/src/share/backup/ob_log_restore_struct.cpp @@ -296,7 +296,7 @@ int ObRestoreSourceServiceAttr::parse_ip_port_from_str(const char *ip_list, cons char tmp_str[OB_MAX_RESTORE_SOURCE_IP_LIST_LEN + 1] = { 0 }; char *token = nullptr; char *saveptr = nullptr; - if (OB_FAIL(databuff_printf(tmp_str, sizeof(tmp_str), "%s", ip_list))) { + if (FAILEDx(databuff_printf(tmp_str, sizeof(tmp_str), "%s", ip_list))) { LOG_WARN("fail to get ip list", K(ip_list)); } else { token = tmp_str; diff --git a/src/share/config/ob_config_manager.cpp b/src/share/config/ob_config_manager.cpp index ab4eaf798..92489fced 100644 --- a/src/share/config/ob_config_manager.cpp +++ b/src/share/config/ob_config_manager.cpp @@ -231,19 +231,23 @@ int ObConfigManager::dump2file(const char* path) const char *hist_path = nullptr; int64_t pos = 0; need_retry = false; + int tmp_ret = OB_SUCCESS; + int tmp_ret_2 = OB_SUCCESS; if (OB_ISNULL(buf = pa.alloc(buf_size))) { ret = OB_ALLOCATE_MEMORY_FAILED; LOG_ERROR("ob tc malloc memory for buf failed", K(ret)); } if (OB_ISNULL(tmp_path = pa.alloc(MAX_PATH_SIZE))) { - ret = OB_ALLOCATE_MEMORY_FAILED; - LOG_ERROR("ob tc malloc memory for tmp configure path failed", K(ret)); + tmp_ret = OB_ALLOCATE_MEMORY_FAILED; + ret = OB_SUCC(ret) ? tmp_ret : ret; + LOG_ERROR("ob tc malloc memory for tmp configure path failed", K(ret), K(tmp_ret)); } else { snprintf(tmp_path, MAX_PATH_SIZE, "%s.tmp", path); } if (OB_ISNULL(hist_path = pa.alloc(MAX_PATH_SIZE))) { - ret = OB_ALLOCATE_MEMORY_FAILED; - LOG_ERROR("ob tc malloc memory for history configure path fail", K(ret)); + tmp_ret_2 = OB_ALLOCATE_MEMORY_FAILED; + ret = OB_SUCC(ret) ? tmp_ret_2 : ret; + LOG_ERROR("ob tc malloc memory for history configure path fail", K(ret), K(tmp_ret_2)); } else { snprintf(hist_path, MAX_PATH_SIZE, "%s.history", path); } diff --git a/src/share/deadlock/ob_deadlock_detector_mgr.cpp b/src/share/deadlock/ob_deadlock_detector_mgr.cpp index a7ba49d5e..56253f9ac 100644 --- a/src/share/deadlock/ob_deadlock_detector_mgr.cpp +++ b/src/share/deadlock/ob_deadlock_detector_mgr.cpp @@ -185,7 +185,8 @@ int ObDeadLockDetectorMgr::init() proxy_ = new (proxy_) obrpc::ObDetectorRpcProxy(); rpc_ = new (rpc_) ObDeadLockDetectorRpc(); } - if (OB_FAIL(time_wheel_.init(TIME_WHEEL_PRECISION_US, + if (OB_FAIL(ret)) { + } else if (OB_FAIL(time_wheel_.init(TIME_WHEEL_PRECISION_US, TIMER_THREAD_COUNT, DETECTOR_TIMER_NAME))) { DETECT_LOG(WARN, "time_wheel_ init failed", PRINT_WRAPPER); @@ -394,6 +395,7 @@ int ObDeadLockDetectorMgr::process_notify_parent_message( SET_USE_500(attr); ObDeadLockDetectorMgr *p_deadlock_detector_mgr = MTL(ObDeadLockDetectorMgr *); if (OB_ISNULL(p_deadlock_detector_mgr)) { + ret = OB_ERR_UNEXPECTED; DETECT_LOG(ERROR, "can not get ObDeadLockDetectorMgr", KP(p_deadlock_detector_mgr), K(MTL_ID())); } else if (OB_FAIL(p_deadlock_detector_mgr->inner_alloc_handle_.inner_factory_.create(binary_key, [](const common::ObIArray &, diff --git a/src/share/deadlock/ob_deadlock_detector_rpc.cpp b/src/share/deadlock/ob_deadlock_detector_rpc.cpp index d825f84f7..5a06d5c3d 100644 --- a/src/share/deadlock/ob_deadlock_detector_rpc.cpp +++ b/src/share/deadlock/ob_deadlock_detector_rpc.cpp @@ -38,6 +38,7 @@ int ObDetectorLCLMessageP::process() DETECT_TIME_GUARD(100_ms); ObDeadLockDetectorMgr *p_deadlock_detector_mgr = MTL(ObDeadLockDetectorMgr *); if (OB_ISNULL(p_deadlock_detector_mgr)) { + ret = OB_ERR_UNEXPECTED; DETECT_LOG(ERROR, "can not get ObDeadLockDetectorMgr", KP(p_deadlock_detector_mgr)); } else if (OB_FAIL(p_deadlock_detector_mgr->process_lcl_message(arg_))) { DETECT_LOG(WARN, "process lcl message failed", KR(ret), KP(p_deadlock_detector_mgr)); @@ -54,6 +55,7 @@ int ObDeadLockCollectInfoMessageP::process() DETECT_TIME_GUARD(100_ms); ObDeadLockDetectorMgr *p_deadlock_detector_mgr = MTL(ObDeadLockDetectorMgr *); if (OB_ISNULL(p_deadlock_detector_mgr)) { + ret = OB_ERR_UNEXPECTED; DETECT_LOG(ERROR, "can not get ObDeadLockDetectorMgr", KP(p_deadlock_detector_mgr)); } else if (OB_FAIL(p_deadlock_detector_mgr->process_collect_info_message(arg_))) { DETECT_LOG(WARN, "process collect info message failed", @@ -74,6 +76,7 @@ int ObDeadLockNotifyParentMessageP::process() DETECT_LOG(INFO, "receive notify parent msg", K(arg_)); ObDeadLockDetectorMgr *p_deadlock_detector_mgr = MTL(ObDeadLockDetectorMgr *); if (OB_ISNULL(p_deadlock_detector_mgr)) { + ret = OB_ERR_UNEXPECTED; DETECT_LOG(ERROR, "can not get ObDeadLockDetectorMgr", KP(p_deadlock_detector_mgr)); } else if (OB_FAIL(p_deadlock_detector_mgr->process_notify_parent_message(arg_))) { DETECT_LOG(WARN, "process notify parent message failed", @@ -196,6 +199,7 @@ int ObDeadLockDetectorRpc::post_notify_parent_message(const ObAddr &dest_addr, } else if (dest_addr == self_) { ObDeadLockDetectorMgr *p_deadlock_detector_mgr = MTL(ObDeadLockDetectorMgr *); if (OB_ISNULL(p_deadlock_detector_mgr)) { + ret = OB_ERR_UNEXPECTED; DETECT_LOG(ERROR, "can not get ObDeadLockDetectorMgr", KP(p_deadlock_detector_mgr)); } else if(OB_FAIL(p_deadlock_detector_mgr->process_notify_parent_message(msg))) { DETECT_LOG(WARN, "process notify parent message failed", KR(ret), KP(p_deadlock_detector_mgr)); diff --git a/src/share/deadlock/ob_lcl_scheme/ob_lcl_node.cpp b/src/share/deadlock/ob_lcl_scheme/ob_lcl_node.cpp index dd00a024e..feffb5a40 100644 --- a/src/share/deadlock/ob_lcl_scheme/ob_lcl_node.cpp +++ b/src/share/deadlock/ob_lcl_scheme/ob_lcl_node.cpp @@ -900,6 +900,7 @@ ObLCLNode::PushStateTask::PushStateTask(ObLCLNode &node) : expected_executed_ts( void ObLCLNode::PushStateTask::runTimerTask() { int ret = OB_SUCCESS; + int tmp_ret = OB_SUCCESS; const int64_t current_ts = ObClockGenerator::getRealClock(); DETECT_TIME_GUARD(100_ms); @@ -921,13 +922,13 @@ void ObLCLNode::PushStateTask::runTimerTask() CLICK(); (void)lcl_node_.update_lcl_period_if_necessary_with_lock_(); - if (CLICK() && OB_FAIL(lcl_node_.push_state_to_downstreams_with_lock_())) { + if (CLICK() && OB_TMP_FAIL(lcl_node_.push_state_to_downstreams_with_lock_())) { DETECT_LOG(WARN, "push state to downstreams failed", - K(current_ts), K(expected_executed_ts), K(*this)); + K(tmp_ret), K(current_ts), K(expected_executed_ts), K(*this)); } - if (CLICK() && OB_FAIL(lcl_node_.register_timer_with_necessary_retry_with_lock_())) { - DETECT_LOG(ERROR, "register timer task with retry failed", K(*this)); + if (CLICK() && OB_TMP_FAIL(lcl_node_.register_timer_with_necessary_retry_with_lock_())) { + DETECT_LOG(ERROR, "register timer task with retry failed", K(tmp_ret), K(*this)); } else {} } else { // may destory itself here, make sure it is the last action of this function diff --git a/src/share/detect/ob_detect_callback.cpp b/src/share/detect/ob_detect_callback.cpp index 26befd59e..14321b763 100644 --- a/src/share/detect/ob_detect_callback.cpp +++ b/src/share/detect/ob_detect_callback.cpp @@ -263,6 +263,7 @@ int ObSingleDfoDetectCB::do_callback() if (OB_SUCC(clean_ret)) { dtl::ObDTLIntermResultManager *interm_res_manager = MTL(dtl::ObDTLIntermResultManager*); if (OB_ISNULL(interm_res_manager)) { + // ignore ret LIB_LOG(WARN, "[DM] single dfo erase_interm_result_info, but interm_res_manager is null", K(ret), K(key_), K_(trace_id)); } else { @@ -279,6 +280,7 @@ int ObTempTableDetectCB::do_callback() int ret = OB_SUCCESS; dtl::ObDTLIntermResultManager *interm_res_manager = MTL(dtl::ObDTLIntermResultManager*); if (OB_ISNULL(interm_res_manager)) { + // ignore ret LIB_LOG(WARN, "[DM] temp table erase_interm_result_info, but interm_res_manager is null", K(ret), K(key_), K_(trace_id)); } else { diff --git a/src/share/detect/ob_detect_manager.cpp b/src/share/detect/ob_detect_manager.cpp index 22d682f3e..64c48e25d 100644 --- a/src/share/detect/ob_detect_manager.cpp +++ b/src/share/detect/ob_detect_manager.cpp @@ -686,6 +686,7 @@ int ObDetectManagerThread::detect() { MTL_SWITCH(tenant_ids.at(i)) { ObDetectManager* dm = MTL(ObDetectManager*); if (OB_ISNULL(dm)) { + // ignore ret LIB_LOG(WARN, "[DM] dm is null", K(tenant_ids.at(i))); } else if (OB_FAIL(dm->gather_requests(req_map_, temp_mem_context))) { LIB_LOG(WARN, "[DM] failed to gather_requests", K(tenant_ids.at(i))); @@ -741,6 +742,7 @@ void ObDetectManagerThread::detect_local(const obrpc::ObTaskStateDetectReq *req) MTL_SWITCH(detectable_id.tenant_id_) { ObDetectManager* dm = MTL(ObDetectManager*); if (OB_ISNULL(dm)) { + // ignore ret LIB_LOG(WARN, "[DM] dm is null", K(detectable_id.tenant_id_)); } else { dm->do_detect_local(detectable_id); @@ -815,6 +817,7 @@ void ObDetectManagerThread::handle_one_result(const obrpc::ObDetectRpcStatus &rp MTL_SWITCH(detectable_id.tenant_id_) { ObDetectManager* dm = MTL(ObDetectManager*); if (OB_ISNULL(dm)) { + // ignore ret LIB_LOG(WARN, "[DM] dm is null", K(detectable_id.tenant_id_)); } else { dm->do_handle_one_result(detectable_id, rpc_status); diff --git a/src/share/detect/ob_detect_manager_utils.cpp b/src/share/detect/ob_detect_manager_utils.cpp index dc75d1f80..d5479ff2e 100644 --- a/src/share/detect/ob_detect_manager_utils.cpp +++ b/src/share/detect/ob_detect_manager_utils.cpp @@ -48,6 +48,7 @@ int ObDetectManagerUtils::qc_register_detectable_id_into_dm(ObDetectableId &dete } else { ObDetectManager* dm = MTL(ObDetectManager*); if (OB_ISNULL(dm)) { + // ignore ret LIB_LOG(WARN, "[DM] dm is null", K(tenant_id)); } else if (OB_FAIL(dm->register_detectable_id(detectable_id))) { LIB_LOG(WARN, "[DM] QC fail to register detectable_id", K(ret), K(detectable_id), K(tenant_id)); @@ -88,6 +89,7 @@ int ObDetectManagerUtils::qc_register_check_item_into_dm(ObDfo &dfo, uint64_t node_sequence_id = 0; ObDetectManager* dm = MTL(ObDetectManager*); if (OB_ISNULL(dm)) { + // ignore ret LIB_LOG(WARN, "[DM] dm is null", K(sqc_detectable_id)); } else if (OB_SUCC(dm->register_check_item( sqc_detectable_id, cb, node_sequence_id, true, @@ -136,6 +138,7 @@ void ObDetectManagerUtils::qc_unregister_all_check_items_from_dm(const ObIArray< int ret = OB_SUCCESS; ObDetectManager* dm = MTL(ObDetectManager*); if (OB_ISNULL(dm)) { + // ignore ret LIB_LOG(WARN, "[DM] dm is null"); } else { for (int64_t idx = 0; idx < dfos.count(); ++idx) { @@ -156,6 +159,7 @@ int ObDetectManagerUtils::sqc_register_into_dm(ObPxSqcHandler *sqc_handler, ObPx // must be success or sql being interrupted unexpectedly ObDetectManager* dm = MTL(ObDetectManager*); if (OB_ISNULL(dm)) { + // ignore ret LIB_LOG(WARN, "[DM] dm is null"); } else if (OB_FAIL(dm->register_detectable_id(sqc_detectable_id))) { LIB_LOG(WARN, "[DM] sqc failed to register_detectable_id", K(ret), K(sqc_detectable_id), K(qc_detectable_id)); @@ -231,6 +235,7 @@ int ObDetectManagerUtils::single_dfo_register_check_item_into_dm(const common::O MTL_SWITCH(tenant_id) { ObDetectManager* dm = MTL(ObDetectManager*); if (OB_ISNULL(dm)) { + // ignore ret LIB_LOG(WARN, "[DM] dm is null", K(tenant_id)); } else if (OB_FAIL(dm->register_check_item( register_dm_info.detectable_id_, cb, node_sequence_id, false, @@ -262,6 +267,7 @@ int ObDetectManagerUtils::temp_table_register_check_item_into_dm(const common::O if (OB_SUCC(ret)) { ObDetectManager* dm = MTL(ObDetectManager*); if (OB_ISNULL(dm)) { + // ignore ret LIB_LOG(WARN, "[DM] dm is null", K(qc_detectable_id)); } else if (OB_FAIL(dm->register_check_item( qc_detectable_id, cb, node_sequence_id, false, @@ -311,6 +317,7 @@ int ObDetectManagerUtils::p2p_datahub_register_check_item_into_dm(const common:: } else { ObDetectManager* dm = MTL(ObDetectManager*); if (OB_ISNULL(dm)) { + // ignore ret LIB_LOG(WARN, "[DM] dm is null", K(qc_detectable_id)); } else if (OB_SUCC(dm->register_check_item( qc_detectable_id, cb, node_sequence_id, false, diff --git a/src/share/detect/ob_detect_rpc_processor.cpp b/src/share/detect/ob_detect_rpc_processor.cpp index a26a6248f..886deed0f 100644 --- a/src/share/detect/ob_detect_rpc_processor.cpp +++ b/src/share/detect/ob_detect_rpc_processor.cpp @@ -26,6 +26,7 @@ int ObDetectRpcP::process() MTL_SWITCH(detectable_id.tenant_id_) { ObDetectManager* dm = MTL(ObDetectManager*); if (OB_ISNULL(dm)) { + // ignore ret LIB_LOG(WARN, "[DM] dm is null", K(detectable_id.tenant_id_)); continue; } diff --git a/src/share/detect/ob_detect_rpc_proxy.cpp b/src/share/detect/ob_detect_rpc_proxy.cpp index 17b32b5dd..329312319 100644 --- a/src/share/detect/ob_detect_rpc_proxy.cpp +++ b/src/share/detect/ob_detect_rpc_proxy.cpp @@ -49,8 +49,8 @@ int ObTaskStateDetectReq::deserialize(const char *buf, const int64_t data_len, i if (NULL == buf || data_len <= 0) { ret = OB_INVALID_ARGUMENT; COMMON_LOG(WARN, "[DM] invalid arguments.", KP(buf), K(data_len), K(ret)); - } else if (serialization::decode_vi64( - buf, data_len, pos, reinterpret_cast(&peer_id_size))) { + } else if (OB_FAIL(serialization::decode_vi64( + buf, data_len, pos, reinterpret_cast(&peer_id_size)))) { COMMON_LOG(WARN, "[DM] deserialize peer_id_size failed.", KP(buf), K(data_len), K(pos), K(peer_id_size), K(ret)); } else { diff --git a/src/share/index_usage/ob_index_usage_info_mgr.cpp b/src/share/index_usage/ob_index_usage_info_mgr.cpp index b33d12a03..c0dc95485 100644 --- a/src/share/index_usage/ob_index_usage_info_mgr.cpp +++ b/src/share/index_usage/ob_index_usage_info_mgr.cpp @@ -173,11 +173,11 @@ int ObIndexUsageInfoMgr::start() // report index usage if (OB_FAIL(TG_SCHEDULE(MTL(omt::ObSharedTimer *)->get_tg_id(), report_task_, INDEX_USAGE_REPORT_INTERVAL, true))) { LOG_WARN("failed to schedule index usage report task", K(ret)); - } else if (report_task_.init(this)) { + } else if (OB_FAIL(report_task_.init(this))) { LOG_WARN("fail to init report task", K(ret)); } else if (OB_FAIL(TG_SCHEDULE(MTL(omt::ObSharedTimer *)->get_tg_id(), refresh_conf_task_, INDEX_USAGE_REFRESH_CONF_INTERVAL, true))) { LOG_WARN("failed to schedule index usage refresh conf task", K(ret)); - } else if (refresh_conf_task_.init((this))) { + } else if (OB_FAIL(refresh_conf_task_.init((this)))) { LOG_WARN("fail to init refresh conf task", K(ret)); } else { LOG_TRACE("success to start ObIndexUsageInfoMgr", K(tenant_id_)); diff --git a/src/share/location_cache/ob_location_update_task.cpp b/src/share/location_cache/ob_location_update_task.cpp index ef6792532..de4600df2 100644 --- a/src/share/location_cache/ob_location_update_task.cpp +++ b/src/share/location_cache/ob_location_update_task.cpp @@ -192,8 +192,8 @@ void ObLSLocationTimerTask::runTimerTask() if (OB_FAIL(ls_loc_service_.renew_all_ls_locations())) { LOG_WARN("fail to renew_all_ls_locations", KR(ret)); } - // ignore ret if (OB_FAIL(ls_loc_service_.schedule_ls_timer_task())) { + // overwrite ret LOG_WARN("fail to schedule ls location timer task", KR(ret)); } } @@ -210,8 +210,8 @@ void ObLSLocationByRpcTimerTask::runTimerTask() if (OB_FAIL(ls_loc_service_.renew_all_ls_locations_by_rpc())) { LOG_WARN("fail to renew_all_ls_location by rpc", KR(ret)); } - // ignore ret if (OB_FAIL(ls_loc_service_.schedule_ls_by_rpc_timer_task())) { + // overwrite ret LOG_WARN("fail to schedule ls location by rpc timer task", KR(ret)); } } @@ -228,8 +228,8 @@ void ObDumpLSLocationCacheTimerTask::runTimerTask() if (OB_FAIL(ls_loc_service_.dump_cache())) { LOG_WARN("fail to dump ls location cache", KR(ret)); } - // ignore ret if (OB_FAIL(ls_loc_service_.schedule_dump_cache_timer_task())) { + // overwrite ret LOG_WARN("fail to schedule dump ls location cache timer task", KR(ret)); } } diff --git a/src/share/ob_alive_server_tracer.cpp b/src/share/ob_alive_server_tracer.cpp index 9861f0fd7..a9696e47e 100644 --- a/src/share/ob_alive_server_tracer.cpp +++ b/src/share/ob_alive_server_tracer.cpp @@ -257,6 +257,7 @@ void ObAliveServerRefreshTask::runTimerTask() if (OB_FAIL(TG_SCHEDULE(lib::TGDefIDs::ServerTracerTimer, *this, REFRESH_INTERVAL_US))) { + // overwrite ret // schedule task fail is fatal ERROR if (OB_CANCELED != ret) { LOG_ERROR("schedule task failed", K(ret), "task", *this); diff --git a/src/share/ob_ddl_task_executor.cpp b/src/share/ob_ddl_task_executor.cpp index 984dcba0e..529ee9a0b 100644 --- a/src/share/ob_ddl_task_executor.cpp +++ b/src/share/ob_ddl_task_executor.cpp @@ -251,6 +251,7 @@ void ObDDLTaskExecutor::run1() break; } } else if (OB_ISNULL(task)) { + ret = OB_ERR_SYS; STORAGE_LOG(WARN, "error unexpected, task must not be NULL", K(ret)); } else if (task == first_retry_task) { // add the task back to the queue @@ -341,4 +342,4 @@ int ObDDLReplicaBuilder::push_task(ObAsyncTask &task) } } // end namespace share -} // end namespace oceanbase \ No newline at end of file +} // end namespace oceanbase diff --git a/src/share/resource_manager/ob_cgroup_ctrl.cpp b/src/share/resource_manager/ob_cgroup_ctrl.cpp index eb645bd07..adb4e3eb3 100644 --- a/src/share/resource_manager/ob_cgroup_ctrl.cpp +++ b/src/share/resource_manager/ob_cgroup_ctrl.cpp @@ -212,7 +212,7 @@ int ObCgroupCtrl::recursion_process_group_(const char *curr_path, DirProcessor * DIR *dir = nullptr; if (NULL == (dir = opendir(curr_path))){ ret = OB_ERR_UNEXPECTED; - LOG_WARN("open dir failed", K(curr_path)); + LOG_WARN("open dir failed", K(ret), K(curr_path)); } else { struct dirent *subdir = nullptr; char sub_path[PATH_BUFSIZE]; diff --git a/src/share/scheduler/ob_tenant_dag_scheduler.cpp b/src/share/scheduler/ob_tenant_dag_scheduler.cpp index 9fddba2de..d445b926f 100644 --- a/src/share/scheduler/ob_tenant_dag_scheduler.cpp +++ b/src/share/scheduler/ob_tenant_dag_scheduler.cpp @@ -1708,8 +1708,10 @@ bool ObTenantDagWorker::get_force_cancel_flag() if (DWS_FREE == status_ || DWS_STOP == status_) { COMMON_LOG(WARN, "the status of worker is invalid to get task", K(status_), K(task_)); } else if (OB_ISNULL(task_)) { + // ignore ret COMMON_LOG(WARN, "worker contains nullptr task"); } else if (OB_ISNULL(dag = task_->get_dag())) { + // ignore ret COMMON_LOG(WARN, "task does not belong to dag"); } else { flag = dag->get_force_cancel_flag(); diff --git a/src/share/schema/ob_label_se_policy_mgr.cpp b/src/share/schema/ob_label_se_policy_mgr.cpp index 4b5958183..679577f89 100644 --- a/src/share/schema/ob_label_se_policy_mgr.cpp +++ b/src/share/schema/ob_label_se_policy_mgr.cpp @@ -642,7 +642,7 @@ int ObLabelSeCompMgr::add_label_se_component(const ObLabelSeComponentSchema &sch } } - if (OB_FAIL(long_name_map_.set_refactored(new_long_name_key, + if (FAILEDx(long_name_map_.set_refactored(new_long_name_key, new_schema, over_write))) { LOG_WARN("update hash map failed", K(ret)); } else if (OB_FAIL(short_name_map_.set_refactored(new_short_name_key, diff --git a/src/share/schema/ob_multi_version_schema_service.cpp b/src/share/schema/ob_multi_version_schema_service.cpp index 3ad7d95d0..ec18ed586 100644 --- a/src/share/schema/ob_multi_version_schema_service.cpp +++ b/src/share/schema/ob_multi_version_schema_service.cpp @@ -3566,10 +3566,12 @@ int ObMultiVersionSchemaService::try_gc_existed_tenant_schema_mgr() if (ObSchemaService::g_liboblog_mode_) { // liboblog/agentserver do nothing } else if (OB_FAIL(try_gc_tenant_schema_mgr_for_fallback(tenant_id))) { + // overwrite ret LOG_WARN("fail to gc tenant schema mgr for fallback", KR(ret), K(tenant_id)); } // 3.let schema mgr to free slot's memory if (OB_FAIL(try_gc_current_allocator(tenant_id, mem_mgr, schema_mgr_cache))) { + // overwrite ret LOG_WARN("fail to gc current slot", KR(ret), K(tenant_id)); } } @@ -3608,6 +3610,7 @@ int ObMultiVersionSchemaService::try_gc_another_allocator( for (int64_t i = 0; OB_SUCC(ret) && i < another_ptrs.count(); i++) { ObSchemaMgr *tmp_mgr = NULL; if (OB_ISNULL(another_ptrs.at(i))) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("ptrs is null", K(ret), K(tenant_id), K(i)); } else if (FALSE_IT(tmp_mgr = static_cast(another_ptrs.at(i)))) { } else if (tmp_mgr->get_schema_version() >= local_version) { @@ -3620,6 +3623,7 @@ int ObMultiVersionSchemaService::try_gc_another_allocator( ObSchemaMgr *eli_schema_mgr = NULL; for (int64_t i = 0; OB_SUCC(ret) && i < another_ptrs.count(); i++) { if (OB_ISNULL(another_ptrs.at(i))) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("ptrs is null", K(ret), K(tenant_id), K(i)); } else if (FALSE_IT(eli_schema_mgr = static_cast(another_ptrs.at(i)))) { } else if (OB_FAIL(schema_mgr_cache->try_eliminate_schema_mgr(eli_schema_mgr))) { diff --git a/src/share/schema/ob_priv_sql_service.cpp b/src/share/schema/ob_priv_sql_service.cpp index 897b112ca..d5d899dfd 100644 --- a/src/share/schema/ob_priv_sql_service.cpp +++ b/src/share/schema/ob_priv_sql_service.cpp @@ -1219,7 +1219,7 @@ int ObPrivSqlService::grant_revoke_role( LOG_WARN("append sql failed, ", K(ret)); } } - if (OB_FAIL(sql.append_fmt("(now(6), now(6), %lu, %lu, %lu, %ld, %ld, %lu, %lu)", + if (FAILEDx(sql.append_fmt("(now(6), now(6), %lu, %lu, %lu, %ld, %ld, %lu, %lu)", ObSchemaUtils::get_extract_tenant_id(exec_tenant_id, user_info.get_tenant_id()), ObSchemaUtils::get_extract_schema_id(exec_tenant_id, grantee_id), ObSchemaUtils::get_extract_schema_id(exec_tenant_id, role_id), diff --git a/src/share/schema/ob_routine_info.cpp b/src/share/schema/ob_routine_info.cpp index b80074a34..bb8735158 100644 --- a/src/share/schema/ob_routine_info.cpp +++ b/src/share/schema/ob_routine_info.cpp @@ -319,6 +319,7 @@ ObRoutineInfo &ObRoutineInfo::operator =(const ObRoutineInfo &src_schema) } for (int64_t i = 0; OB_SUCC(ret) && i < src_schema.routine_params_.count(); ++i) { if (OB_ISNULL(src_schema.routine_params_.at(i))) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("routine param is null", K(i)); } else if (OB_FAIL(add_routine_param(*src_schema.routine_params_.at(i)))) { LOG_WARN("add routine param to routine info failed", K(ret), K(i)); diff --git a/src/share/schema/ob_schema_service_sql_impl.cpp b/src/share/schema/ob_schema_service_sql_impl.cpp index 25e06be7d..1fdabad7b 100644 --- a/src/share/schema/ob_schema_service_sql_impl.cpp +++ b/src/share/schema/ob_schema_service_sql_impl.cpp @@ -314,6 +314,7 @@ int ObSchemaServiceSQLImpl::init( ObModIds::OB_GEN_SCHEMA_VERSION_MAP, ObModIds::OB_GEN_SCHEMA_VERSION_MAP))) { } else { if (OB_ISNULL(dblink_proxy)) { + // ignore ret LOG_WARN("dblink proxy is null"); } mysql_proxy_ = sql_proxy; @@ -1633,6 +1634,7 @@ int ObSchemaServiceSQLImpl::fetch_all_column_group_info( const uint64_t table_id = table_ids[i]; table_schema = ObSchemaRetrieveUtils::find_table_schema(table_id, table_schema_array); if (OB_ISNULL(table_schema)) { + // ignore ret LOG_WARN("fail to find table schema", KR(ret), K(table_id)); continue; // for compatibility } else if (need_column_group(*table_schema)) { @@ -1644,7 +1646,7 @@ int ObSchemaServiceSQLImpl::fetch_all_column_group_info( } else { // TODO @donglou.zl user table only mock default cg now. if (table_schema->get_column_group_count() < 1) { - if (table_schema->add_default_column_group()) { + if (OB_FAIL(table_schema->add_default_column_group())) { LOG_WARN("fail to add default column group", KR(ret), K(tenant_id), K(table_id)); } } @@ -1856,7 +1858,7 @@ int ObSchemaServiceSQLImpl::fetch_all_constraint_info_ignore_inner_table( uint64_t table_id = table_ids[i]; if (OB_ISNULL(table_schema = ObSchemaRetrieveUtils::find_table_schema(table_id, table_schema_array))) { - //ret = OB_ERR_UNEXPECTED; + // ignore ret LOG_WARN("Failed to find table schema", K(ret), K(table_id)); // for compatibility continue; @@ -2289,7 +2291,7 @@ int ObSchemaServiceSQLImpl::gen_batch_fetch_array( uint64_t table_id = table_ids[i]; if (OB_ISNULL(table_schema = ObSchemaRetrieveUtils::find_table_schema( table_id, table_schema_array))) { - //ret = OB_ERR_UNEXPECTED; + //ignore ret LOG_WARN("Failed to find table schema", K(ret), K(table_id)); // for compatibility continue; diff --git a/src/share/schema/ob_tablegroup_sql_service.cpp b/src/share/schema/ob_tablegroup_sql_service.cpp index 8b9d60e59..a7962d4d4 100644 --- a/src/share/schema/ob_tablegroup_sql_service.cpp +++ b/src/share/schema/ob_tablegroup_sql_service.cpp @@ -98,7 +98,7 @@ int ObTablegroupSqlService::update_tablegroup(ObTablegroupSchema &new_schema, } // add tablegroup_history const bool only_history = true; - if (OB_FAIL(add_tablegroup(sql_client, new_schema, only_history))) { + if (FAILEDx(add_tablegroup(sql_client, new_schema, only_history))) { LOG_WARN("fail to add tablegroup history", K(ret)); } diff --git a/src/share/schema/ob_udt_info.cpp b/src/share/schema/ob_udt_info.cpp index 4230010e1..caf07e999 100644 --- a/src/share/schema/ob_udt_info.cpp +++ b/src/share/schema/ob_udt_info.cpp @@ -1038,7 +1038,7 @@ OB_DEF_SERIALIZE_SIZE(ObUDTTypeInfo) len += coll_info_->get_serialize_size(); } } - for (int64_t i = 0; i < attr_cnt; ++i) { + for (int64_t i = 0; OB_SUCC(ret) && i < attr_cnt; ++i) { const ObUDTTypeAttr* local_attr = type_attrs_.at(i); if (OB_ISNULL(local_attr)) { ret = OB_ERR_UNEXPECTED; diff --git a/src/share/schema/ob_udt_sql_service.cpp b/src/share/schema/ob_udt_sql_service.cpp index 4548fb5ff..3b556d227 100644 --- a/src/share/schema/ob_udt_sql_service.cpp +++ b/src/share/schema/ob_udt_sql_service.cpp @@ -173,7 +173,7 @@ int ObUDTSqlService::drop_udt(const ObUDTTypeInfo &udt_info, opt.op_type_ = is_object_body ? OB_DDL_DROP_UDT_BODY : OB_DDL_DROP_UDT; opt.schema_version_ = new_schema_version; opt.ddl_stmt_str_ = (NULL != ddl_stmt_str) ? *ddl_stmt_str : ObString(); - if (OB_FAIL(log_operation(opt, sql_client))) { + if (OB_SUCC(ret) && OB_FAIL(log_operation(opt, sql_client))) { LOG_WARN("Failed to log operation", K(ret)); } } @@ -552,7 +552,7 @@ int ObUDTSqlService::del_udt_objects_in_udt(common::ObISQLClient &sql_client, obj_ti.at(1)->get_type(), new_schema_version), udt_info); } else { - CK (0 < obj_ti.count() && 2 >= obj_ti.count()); + CK (0 <= obj_ti.count() && 2 >= obj_ti.count()); for (int64_t i = 0; OB_SUCC(ret) && i < obj_ti.count(); ++i) { OZ (del_udt_object(sql_client, udt_info, diff --git a/src/share/stat/ob_opt_osg_column_stat.cpp b/src/share/stat/ob_opt_osg_column_stat.cpp index d84fcdc86..88eea9412 100644 --- a/src/share/stat/ob_opt_osg_column_stat.cpp +++ b/src/share/stat/ob_opt_osg_column_stat.cpp @@ -28,7 +28,7 @@ int ObMinMaxValEval::get_obj(ObObj &obj) const int ret = OB_SUCCESS; if (datum_ == NULL) { obj.set_null(); - } else if (datum_->to_obj(obj, meta_)) { + } else if (OB_FAIL(datum_->to_obj(obj, meta_))) { LOG_WARN("failed to to obj"); } return ret; diff --git a/src/share/system_variable/ob_system_variable.cpp b/src/share/system_variable/ob_system_variable.cpp index 7b564a6b6..e562fb35a 100644 --- a/src/share/system_variable/ob_system_variable.cpp +++ b/src/share/system_variable/ob_system_variable.cpp @@ -2058,7 +2058,8 @@ int ObSysVarOnCheckFuncs::check_and_convert_tx_isolation(ObExecContext &ctx, LOG_WARN("deep copy out_val obj failed", K(ret)); } ObString tmp_out_val = out_val.get_string(); - if (OB_FAIL(ob_simple_low_to_up(ctx.get_allocator(), + if (OB_FAIL(ret)) { + } else if (OB_FAIL(ob_simple_low_to_up(ctx.get_allocator(), in_val.get_string(), tmp_out_val))) { LOG_WARN("Isolation level change to upper string failed", K(ret)); diff --git a/src/sql/code_generator/ob_dml_cg_service.cpp b/src/sql/code_generator/ob_dml_cg_service.cpp index 98f3f2412..65e8845e7 100644 --- a/src/sql/code_generator/ob_dml_cg_service.cpp +++ b/src/sql/code_generator/ob_dml_cg_service.cpp @@ -1768,11 +1768,13 @@ int ObDmlCgService::append_all_uk_column_id(ObSchemaGetterGuard *schema_guard, // not unique index, skip } else { ObTableSchema::const_column_iterator iter = index_table_schema->column_begin(); - for ( ; iter != index_table_schema->column_end(); iter++) { + for ( ; OB_SUCC(ret) && iter != index_table_schema->column_end(); iter++) { const ObColumnSchemaV2 *column_schema = *iter; if (OB_ISNULL(column_schema)) { - LOG_WARN("unexpected err", KPC(column_schema)); + ret = OB_ERR_UNEXPECTED; + LOG_WARN("unexpected null", K(ret), KPC(column_schema)); } else if (!column_schema->is_index_column()) { + // ignore ret // skip non index column } else if (OB_FAIL(add_var_to_array_no_dup(minimal_column_ids, column_schema->get_column_id()))) { LOG_WARN("add column_id to list failed", @@ -2395,11 +2397,11 @@ int ObDmlCgService::generate_dml_base_ctdef(ObLogicalOperator &op, ObLogDelUpd &dml_op = static_cast(op); // Cg is only needed when the current trans_info_expr_ has a producer operator if (has_exist_in_array(dml_op.get_produced_trans_exprs(), index_dml_info.trans_info_expr_)) { - if (cg_.generate_rt_expr(*index_dml_info.trans_info_expr_, dml_base_ctdef.trans_info_expr_)) { + if (OB_FAIL(cg_.generate_rt_expr(*index_dml_info.trans_info_expr_, dml_base_ctdef.trans_info_expr_))) { LOG_WARN("fail to cg trans_info expr", K(ret), KPC(index_dml_info.trans_info_expr_)); } } else { - LOG_TRACE("this trans_info_expr not produced", K(ret), K(index_dml_info)); + LOG_TRACE("this trans_info_expr not produced", K(index_dml_info)); } } @@ -3445,6 +3447,7 @@ int ObDmlCgService::generate_fk_arg(ObForeignKeyArg &fk_arg, if (check_parent_table) { ObDMLCtDefAllocator fk_allocator(cg_.phy_plan_->get_allocator()); if (OB_ISNULL(fk_arg.fk_ctdef_ = fk_allocator.alloc())) { + ret = OB_ALLOCATE_MEMORY_FAILED; LOG_WARN("failed to alocate foreign key ctdef", K(ret)); } else if (OB_FAIL(generate_fk_check_ctdef(op, name_table_id, fk_part_id_expr, @@ -3510,6 +3513,7 @@ int ObDmlCgService::generate_fk_check_ctdef(const ObLogDelUpd &op, } else if (OB_FAIL(cg_.generate_calc_part_id_expr(*part_id_expr_for_lookup, nullptr, rt_part_id_expr))) { LOG_WARN("generate rt part_id_expr failed", K(ret), KPC(part_id_expr_for_lookup)); } else if (OB_ISNULL(rt_part_id_expr)) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("rt part_id_expr for lookup is null", K(ret)); } else if (OB_FAIL(constraint_raw_exprs.push_back(part_id_expr_for_lookup))) { LOG_WARN("fail to push part_id_expr to constraint_raw_exprs", K(ret)); @@ -3650,6 +3654,7 @@ int ObDmlCgService::generate_fk_scan_part_id_expr(ObLogDelUpd &op, } else if (OB_FAIL(cg_.generate_calc_part_id_expr(*part_id_expr_for_lookup, nullptr, rt_part_id_expr))) { LOG_WARN("generate rt part_id_expr failed", K(ret), KPC(part_id_expr_for_lookup)); } else if (OB_ISNULL(rt_part_id_expr)) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("rt part_id_expr for lookup is null", K(ret)); } else if (OB_FAIL(constraint_raw_exprs.push_back(part_id_expr_for_lookup))) { LOG_WARN("fail to push part_id_expr to constraint_raw_exprs", K(ret)); diff --git a/src/sql/code_generator/ob_expr_generator_impl.cpp b/src/sql/code_generator/ob_expr_generator_impl.cpp index 0ee99c83c..b4bc04657 100644 --- a/src/sql/code_generator/ob_expr_generator_impl.cpp +++ b/src/sql/code_generator/ob_expr_generator_impl.cpp @@ -190,6 +190,7 @@ int ObExprGeneratorImpl::add_child_infix_expr(ObRawExpr &raw_expr, const int64_t for (int64_t i = start_pos; i < end_pos && OB_SUCC(ret); i++) { ObRawExpr *e = visited_exprs.at(i); if (OB_ISNULL(e)) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("NULL raw expr pointer", K(ret)); } else if (OB_FAIL(add_child_infix_expr(*e, i, visited_exprs))) { LOG_WARN("add child infix expr failed", K(ret), K(*e)); @@ -974,7 +975,7 @@ int ObExprGeneratorImpl::visit_strcmp_expr(ObNonTerminalRawExpr &expr, ObExprStr if (OB_ISNULL(strcmp_op)) { ret = OB_ERR_UNEXPECTED; LOG_WARN("strcmp_op expr op is null", K(ret)); - } else if (strcmp_op->set_cmp_func(ObVarcharType, ObVarcharType)) { + } else if (OB_FAIL(strcmp_op->set_cmp_func(ObVarcharType, ObVarcharType))) { LOG_WARN("set cmp func failed", K(ret), K(expr), K(*strcmp_op)); } return ret; @@ -1892,7 +1893,7 @@ int ObExprGeneratorImpl::visit(ObAggFunRawExpr &expr) } } // end for - FOREACH(e, columnlized_exprs) { + FOREACH_X(e, columnlized_exprs, OB_SUCC(ret)) { if (OB_FAIL((*e)->clear_flag(IS_COLUMNLIZED))) { LOG_WARN("failed to clear flag", K(ret)); } diff --git a/src/sql/code_generator/ob_static_engine_cg.cpp b/src/sql/code_generator/ob_static_engine_cg.cpp index 0076ecc58..6d2d2c1a0 100644 --- a/src/sql/code_generator/ob_static_engine_cg.cpp +++ b/src/sql/code_generator/ob_static_engine_cg.cpp @@ -5720,7 +5720,8 @@ int ObStaticEngineCG::generate_join_spec(ObLogJoin &op, ObJoinSpec &spec) } ARRAY_FOREACH(op.get_above_pushdown_right_params(), i) { ObExecParamRawExpr* param_expr = op.get_above_pushdown_right_params().at(i); - if (OB_FAIL(batch_exec_param_caches_.push_back(BatchExecParamCache(param_expr, + if (OB_FAIL(ret)) { + } else if (OB_FAIL(batch_exec_param_caches_.push_back(BatchExecParamCache(param_expr, &nlj, false)))) { LOG_WARN("fail to push back param expr", K(ret)); @@ -6152,7 +6153,8 @@ int ObStaticEngineCG::generate_spec( } ARRAY_FOREACH(op.get_above_pushdown_right_params(), i) { ObExecParamRawExpr* param_expr = op.get_above_pushdown_right_params().at(i); - if (OB_FAIL(batch_exec_param_caches_.push_back(BatchExecParamCache(param_expr, + if (OB_FAIL(ret)) { + } else if (OB_FAIL(batch_exec_param_caches_.push_back(BatchExecParamCache(param_expr, &spec, false)))) { LOG_WARN("fail to push back param expr", K(ret)); diff --git a/src/sql/das/ob_das_id_service.cpp b/src/sql/das/ob_das_id_service.cpp index 992ada941..add6a9a27 100644 --- a/src/sql/das/ob_das_id_service.cpp +++ b/src/sql/das/ob_das_id_service.cpp @@ -34,7 +34,6 @@ int ObDASIDService::init() int ObDASIDService::handle_request(const ObDASIDRequest &request, obrpc::ObDASIDRpcResult &result) { int ret = OB_SUCCESS; - int save_ret = ret; if (OB_UNLIKELY(!request.is_valid())) { ret = OB_INVALID_ARGUMENT; LOG_WARN("invalid argument", KR(ret), K(request)); @@ -49,13 +48,13 @@ int ObDASIDService::handle_request(const ObDASIDRequest &request, obrpc::ObDASID } else if (OB_FAIL(get_number(range, 0, start_id, end_id))) { LOG_WARN("get das id failed", KR(ret)); } - save_ret = ret; + // overwrite ret if (OB_FAIL(result.init(tenant_id, ret, start_id, end_id))) { LOG_WARN("das id result init failed", KR(ret), K(request)); } - ret = save_ret; } - return ret; + // overwrite ret + return OB_SUCCESS; } } // namespace sql } // namespace oceanbase diff --git a/src/sql/dtl/ob_dtl_basic_channel.h b/src/sql/dtl/ob_dtl_basic_channel.h index 341db96f9..7aa3c7c9e 100644 --- a/src/sql/dtl/ob_dtl_basic_channel.h +++ b/src/sql/dtl/ob_dtl_basic_channel.h @@ -402,7 +402,8 @@ OB_INLINE int ObDtlVectorRowMsgWriter::try_append_batch(const common::ObIArrayget_row_meta(), + if (OB_FAIL(ret)) { + } else if (OB_FAIL(ObTempRowStore::RowBlock::calc_rows_size(vectors, write_buffer_->get_row_meta(), selector, size, row_size_arr))) { SQL_DTL_LOG(WARN, "failed to calc size", K(ret)); } else { diff --git a/src/sql/dtl/ob_dtl_flow_control.cpp b/src/sql/dtl/ob_dtl_flow_control.cpp index e849e6de0..31d70040c 100644 --- a/src/sql/dtl/ob_dtl_flow_control.cpp +++ b/src/sql/dtl/ob_dtl_flow_control.cpp @@ -146,7 +146,7 @@ int ObDtlFlowControl::unregister_all_channel() ObDtlChannel* ch = nullptr; // 这里不能同时pop出来,否则clean recv list时,根据ch去clean for (int i = 0; i < chans_.count(); ++i) { - if (OB_ISNULL(ch = chans_.at(i))) { + if (nullptr == (ch = chans_.at(i))) { LOG_WARN("failed to unregister channel", K(ret)); } else if (OB_FAIL(ch->clean_recv_list())) { LOG_WARN("failed to clean channel", K(ret)); @@ -154,6 +154,7 @@ int ObDtlFlowControl::unregister_all_channel() } for (int64_t i = chans_.count() - 1; 0 <= i; --i) { if (OB_FAIL(chans_.pop_back(ch))) { + // overwrite ret LOG_WARN("failed to unregister channel", K(ret)); } } diff --git a/src/sql/engine/aggregate/ob_merge_distinct_op.cpp b/src/sql/engine/aggregate/ob_merge_distinct_op.cpp index 68fc2fed3..92a8a06e2 100644 --- a/src/sql/engine/aggregate/ob_merge_distinct_op.cpp +++ b/src/sql/engine/aggregate/ob_merge_distinct_op.cpp @@ -201,7 +201,8 @@ int ObMergeDistinctOp::deduplicate_for_batch(bool has_last, const ObBatchRows *c //we found all distinct row in this batch, store last row and return ObEvalCtx::BatchInfoScopeGuard batch_info_guard(eval_ctx_); batch_info_guard.set_batch_idx(last_idx); - if (OB_FAIL(last_row_.save_store_row(MY_SPEC.distinct_exprs_, eval_ctx_, 0))) { + if (OB_FAIL(ret)) { + } else if (OB_FAIL(last_row_.save_store_row(MY_SPEC.distinct_exprs_, eval_ctx_, 0))) { LOG_WARN("failed to save last row"); } } else { @@ -237,7 +238,8 @@ int ObMergeDistinctOp::deduplicate_for_batch(bool has_last, const ObBatchRows *c //we found all distinct row in this batch, store last row and return ObEvalCtx::BatchInfoScopeGuard batch_info_guard(eval_ctx_); batch_info_guard.set_batch_idx(last_idx); - if (OB_FAIL(last_row_.save_store_row(MY_SPEC.distinct_exprs_, eval_ctx_, 0))) { + if (OB_FAIL(ret)) { + } else if (OB_FAIL(last_row_.save_store_row(MY_SPEC.distinct_exprs_, eval_ctx_, 0))) { LOG_WARN("failed to save last row"); } } diff --git a/src/sql/engine/basic/ob_hash_partitioning_infrastructure_op.h b/src/sql/engine/basic/ob_hash_partitioning_infrastructure_op.h index 7b47952bb..b6e9f735d 100644 --- a/src/sql/engine/basic/ob_hash_partitioning_infrastructure_op.h +++ b/src/sql/engine/basic/ob_hash_partitioning_infrastructure_op.h @@ -2813,7 +2813,7 @@ int ObHashPartitionExtendHashTable::check_and_extend() K(size_), K(get_bucket_num()), K(sql_mem_processor_->get_mem_bound())); } } - if (OB_ISNULL(buckets_)) { + if (OB_SUCC(ret) && OB_ISNULL(buckets_)) { ret = OB_ERR_UNEXPECTED; SQL_ENG_LOG(WARN, "null buckets", K(ret)); } diff --git a/src/sql/engine/basic/ob_limit_op.cpp b/src/sql/engine/basic/ob_limit_op.cpp index 824d20846..1405fce94 100644 --- a/src/sql/engine/basic/ob_limit_op.cpp +++ b/src/sql/engine/basic/ob_limit_op.cpp @@ -424,8 +424,8 @@ int ObLimitOp::is_row_order_by_item_value_equal(bool &is_equal) ObDatum *datum = NULL; if (OB_FAIL(expr->eval(eval_ctx_, datum))) { LOG_WARN("expression evaluate failed", K(ret)); - } else if (expr->basic_funcs_->null_first_cmp_( - pre_sort_columns_.store_row_->cells()[i], *datum, cmp_ret)) { + } else if (OB_FAIL(expr->basic_funcs_->null_first_cmp_( + pre_sort_columns_.store_row_->cells()[i], *datum, cmp_ret))) { LOG_WARN("compare failed", K(ret)); } else { is_equal = 0 == cmp_ret; diff --git a/src/sql/engine/basic/ob_temp_table_insert_op.cpp b/src/sql/engine/basic/ob_temp_table_insert_op.cpp index 829fb1c65..473b21ba2 100644 --- a/src/sql/engine/basic/ob_temp_table_insert_op.cpp +++ b/src/sql/engine/basic/ob_temp_table_insert_op.cpp @@ -100,7 +100,7 @@ int ObTempTableInsertOp::inner_close() } else if (OB_ISNULL(task_)) { ret = OB_ERR_UNEXPECTED; LOG_WARN("unexpect null task", K(ret)); - } else if (!task_->interm_result_ids_.empty()) { + } else if (OB_UNLIKELY(!task_->interm_result_ids_.empty())) { ret = OB_ERR_UNEXPECTED; LOG_WARN("result ids should be empty", K(ret)); } else if (OB_FAIL(task_->interm_result_ids_.assign(interm_result_ids_))) { @@ -110,6 +110,7 @@ int ObTempTableInsertOp::inner_close() } int temp_ret = ret; if (OB_FAIL(clear_all_datum_store())) { + // overwrite ret LOG_WARN("failed to clear datum store", K(ret)); } ret = temp_ret; @@ -270,12 +271,12 @@ int ObTempTableInsertOp::init_chunk_row_store(ObDTLIntermResultInfo *&chunk_row_ )))) { LOG_WARN("failed to create row store.", K(ret)); } else if (FALSE_IT(chunk_row_store = result_info_guard.result_info_)) { - } else if (chunk_row_store->datum_store_->init(UINT64_MAX, + } else if (OB_FAIL(chunk_row_store->datum_store_->init(UINT64_MAX, tenant_id, ObCtxIds::WORK_AREA, "SqlTempTableRowSt", true, - sizeof(uint64_t))) { + sizeof(uint64_t)))) { LOG_WARN("failed to init the chunk row store.", K(ret)); } else if (OB_FAIL(all_datum_store_.push_back(chunk_row_store))) { LOG_WARN("failed to push back datum store", K(ret)); diff --git a/src/sql/engine/basic/ob_temp_table_insert_vec_op.cpp b/src/sql/engine/basic/ob_temp_table_insert_vec_op.cpp index db24d3b7f..6ba2c3fd7 100644 --- a/src/sql/engine/basic/ob_temp_table_insert_vec_op.cpp +++ b/src/sql/engine/basic/ob_temp_table_insert_vec_op.cpp @@ -110,6 +110,7 @@ int ObTempTableInsertVecOp::inner_close() } int temp_ret = ret; if (OB_FAIL(clear_all_interm_res_info())) { + // overwrite ret, has temp_ret LOG_WARN("failed to clear row store", K(ret)); } ret = temp_ret; @@ -210,12 +211,12 @@ int ObTempTableInsertVecOp::create_interm_result_info(ObDTLIntermResultInfo *&in true))) { LOG_WARN("failed to create row store.", K(ret)); } else if (FALSE_IT(interm_res_info = result_info_guard.result_info_)) { - } else if (interm_res_info->col_store_->init(MY_SPEC.get_child()->output_, + } else if (OB_FAIL(interm_res_info->col_store_->init(MY_SPEC.get_child()->output_, MY_SPEC.max_batch_size_, mem_attr, 0 /*mem_limit*/, true /*enable_dump*/, - false /*reuse_vector_array*/)) { + false /*reuse_vector_array*/))) { LOG_WARN("failed to init the chunk row store.", K(ret)); } else if (OB_FAIL(all_interm_res_info_.push_back(interm_res_info))) { LOG_WARN("failed to push back row store", K(ret)); diff --git a/src/sql/engine/cmd/ob_load_data_file_reader.cpp b/src/sql/engine/cmd/ob_load_data_file_reader.cpp index 3971f31e9..e0080be03 100644 --- a/src/sql/engine/cmd/ob_load_data_file_reader.cpp +++ b/src/sql/engine/cmd/ob_load_data_file_reader.cpp @@ -47,6 +47,7 @@ int ObFileReader::open(const ObFileReadParam ¶m, ObIAllocator &allocator, Ob if (param.file_location_ == ObLoadFileLocation::SERVER_DISK) { ObRandomFileReader *tmp_reader = OB_NEWx(ObRandomFileReader, &allocator, allocator); if (OB_ISNULL(tmp_reader)) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("failed to create ObRandomFileReader", K(ret)); } else if (OB_FAIL(tmp_reader->open(param.filename_))) { LOG_WARN("fail to open random file reader", KR(ret), K(param.filename_)); @@ -58,6 +59,7 @@ int ObFileReader::open(const ObFileReadParam ¶m, ObIAllocator &allocator, Ob } else if (param.file_location_ == ObLoadFileLocation::OSS) { ObRandomOSSReader *tmp_reader = OB_NEWx(ObRandomOSSReader, &allocator, allocator); if (OB_ISNULL(tmp_reader)) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("failed to create RandomOSSReader", K(ret)); } else if (OB_FAIL(tmp_reader->open(param.access_info_, param.filename_))) { LOG_WARN("fail to open random oss reader", KR(ret), K(param.filename_)); @@ -73,6 +75,7 @@ int ObFileReader::open(const ObFileReadParam ¶m, ObIAllocator &allocator, Ob } else { ObPacketStreamFileReader *tmp_reader = OB_NEWx(ObPacketStreamFileReader, &allocator, allocator); if (OB_ISNULL(tmp_reader)) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("failed to create ObPacketStreamFileReader", K(ret)); } else if (OB_FAIL(tmp_reader->open(param.filename_, *param.packet_handle_, param.session_, param.timeout_ts_))) { LOG_WARN("failed to open packet stream file reader", KR(ret), K(param.filename_)); diff --git a/src/sql/engine/cmd/ob_load_data_rpc.cpp b/src/sql/engine/cmd/ob_load_data_rpc.cpp index 82480663d..a67c65ac1 100644 --- a/src/sql/engine/cmd/ob_load_data_rpc.cpp +++ b/src/sql/engine/cmd/ob_load_data_rpc.cpp @@ -435,6 +435,7 @@ void ObRpcLoadDataTaskCallBack::on_timeout() } MEM_BARRIER(); if (OB_FAIL(task_controller_.on_task_finished())) { + // overwrite ret LOG_ERROR("error on task finish", K(ret)); } LOG_WARN("load data task is timeout", K(ret), KPC(buffer)); diff --git a/src/sql/engine/cmd/ob_partition_executor_utils.cpp b/src/sql/engine/cmd/ob_partition_executor_utils.cpp index 65e02bf8c..bd8813242 100644 --- a/src/sql/engine/cmd/ob_partition_executor_utils.cpp +++ b/src/sql/engine/cmd/ob_partition_executor_utils.cpp @@ -997,7 +997,7 @@ int ObPartitionExecutorUtils::cast_range_expr_to_obj( ObObjType fun_expr_type = expr->get_data_type(); // 对于tablegroup分区语法而言,由于缺乏column type信息,需要校验同列的value的类型是否一致 if (fun_expr_type_array.count() < j + 1) { - if (fun_expr_type_array.push_back(fun_expr_type)) { + if (OB_FAIL(fun_expr_type_array.push_back(fun_expr_type))) { LOG_WARN("array push back fail", K(ret), K(j), "count", fun_expr_type_array.count()); } } else if (fun_expr_type_array.at(j) == ObMaxType) { @@ -1015,7 +1015,7 @@ int ObPartitionExecutorUtils::cast_range_expr_to_obj( LOG_WARN("array push back fail", K(ret)); } else { if (fun_expr_type_array.count() < j + 1) { - if (fun_expr_type_array.push_back(ObMaxType)) { + if (OB_FAIL(fun_expr_type_array.push_back(ObMaxType))) { LOG_WARN("array push back fail", K(ret), K(j), "count", fun_expr_type_array.count()); } } diff --git a/src/sql/engine/cmd/ob_table_executor.cpp b/src/sql/engine/cmd/ob_table_executor.cpp index dd3021b7b..63588ee15 100644 --- a/src/sql/engine/cmd/ob_table_executor.cpp +++ b/src/sql/engine/cmd/ob_table_executor.cpp @@ -252,7 +252,7 @@ int ObCreateTableExecutor::prepare_ins_arg(ObCreateTableStmt &stmt, //get system variable ObObj online_sys_var_obj; - if (OB_FAIL(OB_FAIL(my_session->get_sys_variable(SYS_VAR__OPTIMIZER_GATHER_STATS_ON_LOAD, online_sys_var_obj)))) { + if (OB_FAIL(my_session->get_sys_variable(SYS_VAR__OPTIMIZER_GATHER_STATS_ON_LOAD, online_sys_var_obj))) { LOG_WARN("fail to get sys var", K(ret)); } else { online_sys_var = online_sys_var_obj.get_bool(); diff --git a/src/sql/engine/cmd/ob_tcl_executor.cpp b/src/sql/engine/cmd/ob_tcl_executor.cpp index 8a8bf95f4..816f094ca 100644 --- a/src/sql/engine/cmd/ob_tcl_executor.cpp +++ b/src/sql/engine/cmd/ob_tcl_executor.cpp @@ -130,6 +130,7 @@ int ObCreateSavePointExecutor::execute(ObExecContext &ctx, } // sync commit trans, it should fast because of tx is clean if (ac && OB_FAIL(ObSqlTransControl::implicit_end_trans(ctx, false, NULL))) { + // overwrite ret LOG_WARN("auto commit transaction fail", K(ret), KPC(session)); } } diff --git a/src/sql/engine/cmd/ob_variable_set_executor.cpp b/src/sql/engine/cmd/ob_variable_set_executor.cpp index ed7cff5be..5b45ef43f 100644 --- a/src/sql/engine/cmd/ob_variable_set_executor.cpp +++ b/src/sql/engine/cmd/ob_variable_set_executor.cpp @@ -115,7 +115,7 @@ int ObVariableSetExecutor::execute(ObExecContext &ctx, ObVariableSetStmt &stmt) if (OB_ISNULL(expr_ctx.exec_ctx_)) { ret = OB_ERR_UNEXPECTED; LOG_ERROR("expr_ctx.exec_ctx_ is NULL", K(ret)); - } else if (password_ctx.init(stmt.get_actual_tenant_id())) { + } else if (OB_FAIL(password_ctx.init(stmt.get_actual_tenant_id()))) { LOG_WARN("fail to init password ctx", K(ret)); } else { expr_ctx.exec_ctx_->set_sql_proxy(sql_proxy); diff --git a/src/sql/engine/connect_by/ob_cnnt_by_pump_bfs.cpp b/src/sql/engine/connect_by/ob_cnnt_by_pump_bfs.cpp index 00682fc65..5d5a66f25 100644 --- a/src/sql/engine/connect_by/ob_cnnt_by_pump_bfs.cpp +++ b/src/sql/engine/connect_by/ob_cnnt_by_pump_bfs.cpp @@ -130,14 +130,17 @@ void ObConnectByOpBFSPump::free_memory_for_rescan() } if (OB_FAIL(free_pump_node_stack(pump_stack_))) { + // overwrite ret LOG_ERROR("fail to free pump stack", K(ret)); } if (OB_FAIL(free_pump_node_stack(sort_stack_))) { + // overwrite ret LOG_ERROR("fail to free sort stack", K(ret)); } if (OB_FAIL(free_record_rows())) { + // overwrite ret LOG_ERROR("fail to free record rows", K(ret)); } } diff --git a/src/sql/engine/dml/ob_conflict_checker.cpp b/src/sql/engine/dml/ob_conflict_checker.cpp index 1b01d0940..c92706aff 100644 --- a/src/sql/engine/dml/ob_conflict_checker.cpp +++ b/src/sql/engine/dml/ob_conflict_checker.cpp @@ -787,6 +787,7 @@ int ObConflictChecker::build_data_table_range(ObNewRange &lookup_range) ObExpr *expr = checker_ctdef_.data_table_rowkey_expr_.at(i); ObDatum *col_datum = nullptr; if (OB_ISNULL(expr)) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("expr in rowkey is nullptr", K(ret), K(i)); } else if (OB_FAIL(expr->eval(eval_ctx_, col_datum))) { LOG_WARN("failed to evaluate expr in rowkey", K(ret), K(i)); diff --git a/src/sql/engine/dml/ob_dml_ctx_define.cpp b/src/sql/engine/dml/ob_dml_ctx_define.cpp index 0b39d17ee..9c9554050 100644 --- a/src/sql/engine/dml/ob_dml_ctx_define.cpp +++ b/src/sql/engine/dml/ob_dml_ctx_define.cpp @@ -701,17 +701,16 @@ OB_DEF_DESERIALIZE(ObReplaceCtDef) int ret = OB_SUCCESS; ObDMLCtDefAllocator ins_ctdef_allocator(alloc_); ins_ctdef_ = ins_ctdef_allocator.alloc(); - if (OB_ISNULL(ins_ctdef_)) { - ret = OB_ALLOCATE_MEMORY_FAILED; - LOG_WARN("alloc ins_ctdef failed", K(ret)); - } - OB_UNIS_DECODE(*ins_ctdef_); ObDMLCtDefAllocator del_ctdef_allocator(alloc_); del_ctdef_ = del_ctdef_allocator.alloc(); if (OB_ISNULL(del_ctdef_)) { ret = OB_ALLOCATE_MEMORY_FAILED; LOG_WARN("alloc del_ctdef_ failed", K(ret)); + } else if (OB_ISNULL(ins_ctdef_)) { + ret = OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("alloc ins_ctdef failed", K(ret)); } + OB_UNIS_DECODE(*ins_ctdef_); OB_UNIS_DECODE(*del_ctdef_); return ret; } @@ -737,17 +736,16 @@ OB_DEF_DESERIALIZE(ObInsertUpCtDef) int ret = OB_SUCCESS; ObDMLCtDefAllocator ins_ctdef_allocator(alloc_); ins_ctdef_ = ins_ctdef_allocator.alloc(); - if (OB_ISNULL(ins_ctdef_)) { - ret = OB_ALLOCATE_MEMORY_FAILED; - LOG_WARN("alloc ins_ctdef failed", K(ret)); - } - OB_UNIS_DECODE(*ins_ctdef_); ObDMLCtDefAllocator upd_ctdef_allocator(alloc_); upd_ctdef_ = upd_ctdef_allocator.alloc(); if (OB_ISNULL(upd_ctdef_)) { ret = OB_ALLOCATE_MEMORY_FAILED; LOG_WARN("alloc upd_ctdef failed", K(ret)); + } else if (OB_ISNULL(ins_ctdef_)) { + ret = OB_ALLOCATE_MEMORY_FAILED; + LOG_WARN("alloc ins_ctdef failed", K(ret)); } + OB_UNIS_DECODE(*ins_ctdef_); OB_UNIS_DECODE(*upd_ctdef_); return ret; } diff --git a/src/sql/engine/dml/ob_dml_service.cpp b/src/sql/engine/dml/ob_dml_service.cpp index b7144aadb..b6fae3a4c 100644 --- a/src/sql/engine/dml/ob_dml_service.cpp +++ b/src/sql/engine/dml/ob_dml_service.cpp @@ -227,6 +227,7 @@ int ObDMLService::check_rowkey_whether_distinct(const ObExprPtrIArray &row, ObExpr *expr = row.at(i); ObDatum *col_datum = nullptr; if (OB_ISNULL(expr)) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("expr in rowkey is nullptr", K(ret), K(i)); } else if (OB_FAIL(expr->eval(eval_ctx, col_datum))) { LOG_WARN("failed to evaluate expr in rowkey", K(ret), K(i)); diff --git a/src/sql/engine/dml/ob_table_merge_op.cpp b/src/sql/engine/dml/ob_table_merge_op.cpp index 2f8d2bfeb..4a55732d5 100644 --- a/src/sql/engine/dml/ob_table_merge_op.cpp +++ b/src/sql/engine/dml/ob_table_merge_op.cpp @@ -371,7 +371,7 @@ int ObTableMergeOp::check_is_match(bool &is_match) if (OB_ISNULL(e)) { ret = OB_ERR_UNEXPECTED; LOG_WARN("expr is null", K(ret)); - } else if (e->eval(eval_ctx_, datum)) { + } else if (OB_FAIL(e->eval(eval_ctx_, datum))) { LOG_WARN("failed to evaluate expression", K(ret)); } else { is_match = !datum->is_null(); diff --git a/src/sql/engine/expr/ob_datum_cast.cpp b/src/sql/engine/expr/ob_datum_cast.cpp index dcb49f8a8..af963ccc1 100644 --- a/src/sql/engine/expr/ob_datum_cast.cpp +++ b/src/sql/engine/expr/ob_datum_cast.cpp @@ -5586,7 +5586,8 @@ CAST_FUNC_NAME(datetime, decimalint) } } ObString nls_format; - if (OB_FAIL(ObTimeConverter::datetime_to_str(in_val, tz_info_local, nls_format, in_scale, buf, + if (OB_FAIL(ret)) { + } else if (OB_FAIL(ObTimeConverter::datetime_to_str(in_val, tz_info_local, nls_format, in_scale, buf, sizeof(buf), length, false))) { LOG_WARN("datetime_to_str failed", K(ret), K(in_val), K(in_scale)); } else if (OB_FAIL(wide::from_string(buf, length, tmp_alloc, scale, in_precision, int_bytes, @@ -10441,7 +10442,7 @@ CAST_FUNC_NAME(decimalint, text) ObString res_str; if (OB_FAIL(common_decimalint_string(expr, *child_res, ctx, res_datum))) { LOG_WARN("common_decimalint_string failed", K(ret)); - } else if (copy_datum_str_with_tmp_alloc(ctx, res_datum, res_str)) { + } else if (OB_FAIL(copy_datum_str_with_tmp_alloc(ctx, res_datum, res_str))) { LOG_WARN("copy datum string with tmp allocator failed", K(ret)); } else if (OB_FAIL(common_string_text(expr, res_str, ctx, NULL, res_datum))) { LOG_WARN("cast string to lob failed", K(ret)); @@ -11555,8 +11556,8 @@ int text_length_check(const ObExpr &expr, } else if (OB_FAIL(lob.get_inrow_data(inrow_data))) { LOG_WARN("fail to get inrow data", K(ret)); } else if (FALSE_IT(tmp_in.set_string(inrow_data))) { - } else if (OB_FAIL(OB_FAIL(string_length_check(expr, cast_mode, accuracy, type, - cs_type, ctx, tmp_in, res_datum, warning)))) { + } else if (OB_FAIL(string_length_check(expr, cast_mode, accuracy, type, + cs_type, ctx, tmp_in, res_datum, warning))) { LOG_WARN("fail to do string length check", K(ret)); } else { int32_t lob_handle_len = lob.size_ - inrow_data.length(); diff --git a/src/sql/engine/expr/ob_expr_format.cpp b/src/sql/engine/expr/ob_expr_format.cpp index 46235b63f..65e39ae86 100644 --- a/src/sql/engine/expr/ob_expr_format.cpp +++ b/src/sql/engine/expr/ob_expr_format.cpp @@ -344,6 +344,7 @@ int ObExprFormat::calc_format_expr(const ObExpr &expr, ObEvalCtx &ctx, ObDatum & LOG_WARN("fail to build format str", K(ret)); } else if (!ob_is_text_tc(expr.datum_meta_.type_)) { if (OB_ISNULL(res_buf = expr.get_str_res_mem(ctx, str.length()))) { + ret = OB_ALLOCATE_MEMORY_FAILED; LOG_ERROR("fail to allocate memory", K(buf_len), K(ret)); } else { MEMCPY(res_buf, str.ptr(), str.length()); diff --git a/src/sql/engine/expr/ob_expr_frame_info.cpp b/src/sql/engine/expr/ob_expr_frame_info.cpp index ab3525294..a0f1281eb 100644 --- a/src/sql/engine/expr/ob_expr_frame_info.cpp +++ b/src/sql/engine/expr/ob_expr_frame_info.cpp @@ -126,7 +126,7 @@ int ObExprFrameInfo::assign(const ObExprFrameInfo &other, } // copy inner function ptrs - if (other.rt_exprs_.at(i).inner_func_cnt_ > 0) { + if (OB_SUCC(ret) && other.rt_exprs_.at(i).inner_func_cnt_ > 0) { int64_t func_cnt = other.rt_exprs_.at(i).inner_func_cnt_; void *funcs_buf = NULL; if (OB_ISNULL(funcs_buf = allocator.alloc(sizeof(void *) * func_cnt))) { @@ -156,7 +156,7 @@ int ObExprFrameInfo::assign(const ObExprFrameInfo &other, } // allocate parents memory for all rt exprs - if (rt_exprs_.at(i).parent_cnt_ > 0) { + if (OB_SUCC(ret) && rt_exprs_.at(i).parent_cnt_ > 0) { ObExpr **parent_buf = NULL; int64_t buf_size = rt_exprs_.at(i).parent_cnt_ * sizeof(ObExpr *); if (OB_ISNULL(parent_buf = (ObExpr **)allocator.alloc(buf_size))) { diff --git a/src/sql/engine/expr/ob_expr_inet.cpp b/src/sql/engine/expr/ob_expr_inet.cpp index 3d7fa4e87..17135ad7c 100644 --- a/src/sql/engine/expr/ob_expr_inet.cpp +++ b/src/sql/engine/expr/ob_expr_inet.cpp @@ -587,6 +587,7 @@ int ObExprInet6Aton::calc_inet6_aton(const ObExpr& expr, ObEvalCtx& ctx, ObDatum ObSolidifiedVarsGetter helper(expr, ctx, ctx.exec_ctx_.get_my_session()); ObSQLMode sql_mode = 0; if (OB_ISNULL(session)) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("session is NULL", K(ret)); } else if (OB_FAIL(helper.get_sql_mode(sql_mode))) { LOG_WARN("get sql mode failed", K(ret)); diff --git a/src/sql/engine/expr/ob_expr_least.cpp b/src/sql/engine/expr/ob_expr_least.cpp index 971255a05..6d85396eb 100644 --- a/src/sql/engine/expr/ob_expr_least.cpp +++ b/src/sql/engine/expr/ob_expr_least.cpp @@ -560,7 +560,8 @@ int ObExprLeastGreatest::calc_oracle(const ObExpr &expr, ObEvalCtx &ctx, } } ObDatum *res_datum = nullptr; - if (OB_FAIL(expr.args_[res_idx]->eval(ctx, res_datum))) { + if (OB_FAIL(ret)) { + } else if (OB_FAIL(expr.args_[res_idx]->eval(ctx, res_datum))) { LOG_WARN("eval param value failed", K(ret), K(res_idx)); } else { ObDatum &dst_datum = static_cast(expr_datum); diff --git a/src/sql/engine/expr/ob_expr_left.cpp b/src/sql/engine/expr/ob_expr_left.cpp index 994a18e2b..eddaae2a6 100644 --- a/src/sql/engine/expr/ob_expr_left.cpp +++ b/src/sql/engine/expr/ob_expr_left.cpp @@ -149,9 +149,9 @@ int calc_left_expr(const ObExpr &expr, ObEvalCtx &ctx, ObDatum &res_datum) // res_str会指向s_datum的内存空间,所以下面不能改变res_str指向的字符串 ObString res_str; const ObCollationType arg_cs_type = expr.args_[0]->datum_meta_.cs_type_; - if(OB_FAIL(calc_left(res_str, s_datum->get_string(), arg_cs_type, n_datum->get_int()))) { - LOG_WARN("failed to calculate left expression", K(ret)); - } else { + if (OB_FAIL(calc_left(res_str, s_datum->get_string(), arg_cs_type, n_datum->get_int()))) { + LOG_WARN("failed to calculate left expression", K(ret)); + } else { if (res_str.empty() && is_oracle_mode()) { res_datum.set_null(); } else { diff --git a/src/sql/engine/expr/ob_expr_lrpad.cpp b/src/sql/engine/expr/ob_expr_lrpad.cpp index 6d4602ef4..008b2d066 100644 --- a/src/sql/engine/expr/ob_expr_lrpad.cpp +++ b/src/sql/engine/expr/ob_expr_lrpad.cpp @@ -1043,6 +1043,7 @@ int ObExprOracleLpad::calc_result_typeN(ObExprResType &type, if (OB_ISNULL(types_array) || OB_ISNULL(types_array + 1) || OB_ISNULL(types_array + 2)) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("NULL param", K(ret), K(types_array[0]), K(types_array[1]), K(types_array[2])); } else if (OB_FAIL(ObExprBaseLRpad::calc_type( type, types_array[0], types_array[1], types_array + 2, type_ctx))) { @@ -1051,6 +1052,7 @@ int ObExprOracleLpad::calc_result_typeN(ObExprResType &type, } else if (param_num == 2) { if (OB_ISNULL(types_array) || OB_ISNULL(types_array + 1)) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("NULL param", K(ret), K(types_array[0]), K(types_array[1])); } else if (OB_FAIL(ObExprBaseLRpad::calc_type( type, types_array[0], types_array[1], NULL, type_ctx))) { @@ -1120,6 +1122,7 @@ int ObExprOracleRpad::calc_result_typeN(ObExprResType &type, if (OB_ISNULL(types_array) || OB_ISNULL(types_array + 1) || OB_ISNULL(types_array + 2)) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("NULL param", K(ret), K(types_array[0]), K(types_array[1]), K(types_array[2])); } else if (OB_FAIL(ObExprBaseLRpad::calc_type( type, types_array[0], types_array[1], &(types_array[2]), type_ctx))) { @@ -1128,6 +1131,7 @@ int ObExprOracleRpad::calc_result_typeN(ObExprResType &type, } else if (param_num == 2) { if (OB_ISNULL(types_array) || OB_ISNULL(types_array + 1)) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("NULL param", K(ret), K(types_array[0]), K(types_array[1])); } else if (OB_FAIL(ObExprBaseLRpad::calc_type( type, types_array[0], types_array[1], NULL, type_ctx))) { diff --git a/src/sql/engine/expr/ob_expr_ols_funcs.cpp b/src/sql/engine/expr/ob_expr_ols_funcs.cpp index 056fd936e..e283161cd 100644 --- a/src/sql/engine/expr/ob_expr_ols_funcs.cpp +++ b/src/sql/engine/expr/ob_expr_ols_funcs.cpp @@ -1786,9 +1786,9 @@ int ObExprOLSCharToLabel::eval_char_to_label(const ObExpr &expr, ObEvalCtx &ctx, LOG_WARN("schema guard is NULL", K(ret)); } else if (OB_FAIL(expr.eval_param_value(ctx, param1, param2))) { LOG_WARN("failed to eval params", K(ret)); - } else if (param1->to_obj(obj1, expr.args_[0]->obj_meta_)) { + } else if (OB_FAIL(param1->to_obj(obj1, expr.args_[0]->obj_meta_))) { LOG_WARN("failed to convert to obj", K(ret)); - } else if (param2->to_obj(obj2, expr.args_[1]->obj_meta_)) { + } else if (OB_FAIL(param2->to_obj(obj2, expr.args_[1]->obj_meta_))) { LOG_WARN("failed to convert to obj", K(ret)); } else { tenant_id = session->get_effective_tenant_id(); diff --git a/src/sql/engine/expr/ob_expr_operator.cpp b/src/sql/engine/expr/ob_expr_operator.cpp index 6c0e107a2..8858527ae 100644 --- a/src/sql/engine/expr/ob_expr_operator.cpp +++ b/src/sql/engine/expr/ob_expr_operator.cpp @@ -404,7 +404,7 @@ int ObExprOperator::call(ObObj *stack, int64_t &stack_size, ObExprCtx &expr_ctx) K_(row_dimension), K(input_types_.count()), K(stack_size), K(ret)); } - if (OB_UNLIKELY(real_param_num_ < 0)) { + if (OB_SUCC(ret) && OB_UNLIKELY(real_param_num_ < 0)) { ret = OB_ERR_UNEXPECTED; LOG_ERROR("bug! real_param_num is less than 0", K_(name), K(get_type_name(type_)), K_(type), K_(param_num), K_(real_param_num), diff --git a/src/sql/engine/expr/ob_expr_oracle_to_char.cpp b/src/sql/engine/expr/ob_expr_oracle_to_char.cpp index 5466dfe94..d2a350720 100644 --- a/src/sql/engine/expr/ob_expr_oracle_to_char.cpp +++ b/src/sql/engine/expr/ob_expr_oracle_to_char.cpp @@ -61,6 +61,7 @@ int ObExprOracleToChar::calc_result_typeN(ObExprResType &type, ret = OB_INVALID_ARGUMENT; LOG_WARN("Invalid argument.", K(ret), K(type_array), K(params_count)); } else if (OB_ISNULL(type_ctx.get_session())) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("session is null", K(ret)); } else { const ObObjTypeClass type_class = type_array[0].get_type_class(); @@ -185,6 +186,7 @@ int ObExprOracleToNChar::calc_result_typeN(ObExprResType &type, ret = OB_INVALID_ARGUMENT; LOG_WARN("Invalid argument.", K(ret), K(type_array), K(params_count)); } else if (OB_ISNULL(type_ctx.get_session())) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("session is null", K(ret)); } else { const ObObjTypeClass type_class = type_array[0].get_type_class(); diff --git a/src/sql/engine/expr/ob_expr_priv_st_point.cpp b/src/sql/engine/expr/ob_expr_priv_st_point.cpp index 8f2ff9419..56cb87490 100644 --- a/src/sql/engine/expr/ob_expr_priv_st_point.cpp +++ b/src/sql/engine/expr/ob_expr_priv_st_point.cpp @@ -223,12 +223,11 @@ int ObExprPrivSTPoint::eval_priv_st_point(const ObExpr &expr, double longti = x; longti *= srs_item->angular_unit(); if (longti <= -M_PI || longti > M_PI) { - if (OB_FAIL(srs_item->from_radians_to_srs_unit(longti, out_of_range_val))) { - LOG_WARN("fail to convert radians to srs unit", K(ret), K(longti), K(srs_item)); - } double min_long_val = 0.0; double max_long_val = 0.0; - if (OB_FAIL(srs_item->longtitude_convert_from_radians(-M_PI, min_long_val))) { + if (OB_FAIL(srs_item->from_radians_to_srs_unit(longti, out_of_range_val))) { + LOG_WARN("fail to convert radians to srs unit", K(ret), K(longti), K(srs_item)); + } else if (OB_FAIL(srs_item->longtitude_convert_from_radians(-M_PI, min_long_val))) { LOG_WARN("fail to convert longitude from radians", K(ret)); } else if (OB_FAIL(srs_item->longtitude_convert_from_radians(M_PI, max_long_val))) { LOG_WARN("fail to convert longitude from radians", K(ret)); @@ -241,12 +240,11 @@ int ObExprPrivSTPoint::eval_priv_st_point(const ObExpr &expr, double lati = y; lati *= srs_item->angular_unit(); if (lati <= -M_PI_2 || lati > M_PI_2) { - if (OB_FAIL(srs_item->from_radians_to_srs_unit(lati, out_of_range_val))) { - LOG_WARN("fail to convert radians to srs unit", K(ret), K(lati), K(srs_item)); - } double min_lat_val = 0.0; double max_lat_val = 0.0; - if (OB_FAIL(srs_item->latitude_convert_from_radians(-M_PI_2, min_lat_val))) { + if (OB_FAIL(srs_item->from_radians_to_srs_unit(lati, out_of_range_val))) { + LOG_WARN("fail to convert radians to srs unit", K(ret), K(lati), K(srs_item)); + } else if (OB_FAIL(srs_item->latitude_convert_from_radians(-M_PI_2, min_lat_val))) { LOG_WARN("fail to convert latitude from radians", K(ret)); } else if (OB_FAIL(srs_item->latitude_convert_from_radians(M_PI_2, max_lat_val))) { LOG_WARN("fail to convert latitude from radians", K(ret)); diff --git a/src/sql/engine/expr/ob_expr_reverse.cpp b/src/sql/engine/expr/ob_expr_reverse.cpp index 87ba11b3c..b55a4c024 100644 --- a/src/sql/engine/expr/ob_expr_reverse.cpp +++ b/src/sql/engine/expr/ob_expr_reverse.cpp @@ -44,6 +44,7 @@ int ObExprReverse::do_reverse(const ObString &input_str, int64_t input_length = input_str.length(); char *buf = NULL; if (OB_ISNULL(allocator)) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("nullptr allocator.", K(allocator)); } else if (OB_UNLIKELY(input_length == 0)) { res_str.reset(); diff --git a/src/sql/engine/expr/ob_expr_spatial_collection.cpp b/src/sql/engine/expr/ob_expr_spatial_collection.cpp index c950c3b19..ed99cd9a9 100644 --- a/src/sql/engine/expr/ob_expr_spatial_collection.cpp +++ b/src/sql/engine/expr/ob_expr_spatial_collection.cpp @@ -114,7 +114,7 @@ int ObExprSpatialCollection::calc_resultN(common::ObObj &result, const ObString wkb_sub = wkb; const char *data = wkb_sub.ptr() + WKB_OFFSET; const uint64_t len = wkb_sub.length() - WKB_OFFSET; - if (res_wkb_buf.append(data, len)) { + if (OB_FAIL(res_wkb_buf.append(data, len))) { LOG_WARN("fail to append sub data to res wkb buf", K(ret), K(wkb_sub), K(len)); } } @@ -307,7 +307,7 @@ int ObExprSpatialCollection::eval_spatial_collection(const ObExpr &expr, ret = OB_INVALID_ARGUMENT; LOG_USER_ERROR(OB_INVALID_ARGUMENT, get_func_name()); LOG_WARN("unexpected sub geo type", K(ret), K(sub_type)); - } else if (res_wkb_buf.append(data, len)) { + } else if (OB_FAIL(res_wkb_buf.append(data, len))) { LOG_WARN("fail to append sub data to res wkb buf", K(ret), K(wkb_sub), K(len)); } } diff --git a/src/sql/engine/expr/ob_expr_sql_udt_construct.cpp b/src/sql/engine/expr/ob_expr_sql_udt_construct.cpp index e996398cf..95040aa29 100644 --- a/src/sql/engine/expr/ob_expr_sql_udt_construct.cpp +++ b/src/sql/engine/expr/ob_expr_sql_udt_construct.cpp @@ -317,7 +317,7 @@ int ObExprUdtConstruct::eval_sdo_geom_udt_access(ObIAllocator &allocator, const case T_OBJ_SDO_POINT : { if (sdo_geo.get_point().is_null()) { res.set_null(); - } else if (pl::ObSdoGeometry::write_sdo_point(sdo_geo.get_point(), alloc, pl_ext)) { + } else if (OB_FAIL(pl::ObSdoGeometry::write_sdo_point(sdo_geo.get_point(), alloc, pl_ext))) { LOG_WARN("fail to transform sdo point", K(ret)); } else if (OB_FAIL(ObSqlUdtUtils::cast_pl_record_to_sql_record(allocator, expr_res_alloc, @@ -334,7 +334,7 @@ int ObExprUdtConstruct::eval_sdo_geom_udt_access(ObIAllocator &allocator, const case T_OBJ_SDO_ELEMINFO_ARRAY : { if (sdo_geo.get_elem_info().empty()) { res.set_null(); - } else if (pl::ObSdoGeometry::write_sdo_elem_info(ctx.exec_ctx_, sdo_geo.get_elem_info(), alloc, pl_ext)) { + } else if (OB_FAIL(pl::ObSdoGeometry::write_sdo_elem_info(ctx.exec_ctx_, sdo_geo.get_elem_info(), alloc, pl_ext))) { LOG_WARN("fail to transform sdo point", K(ret)); } else if (OB_FAIL(ObSqlUdtUtils::cast_pl_varray_to_sql_varray(expr_res_alloc, res_str, pl_ext))) { LOG_WARN("fail to cast udt sdo element", K(ret)); @@ -346,7 +346,7 @@ int ObExprUdtConstruct::eval_sdo_geom_udt_access(ObIAllocator &allocator, const case T_OBJ_SDO_ORDINATE_ARRAY : { if (sdo_geo.get_ordinates().empty()) { res.set_null(); - } else if (pl::ObSdoGeometry::write_sdo_ordinate(ctx.exec_ctx_, sdo_geo.get_ordinates(), alloc, pl_ext)) { + } else if (OB_FAIL(pl::ObSdoGeometry::write_sdo_ordinate(ctx.exec_ctx_, sdo_geo.get_ordinates(), alloc, pl_ext))) { LOG_WARN("fail to transform sdo point", K(ret)); } else if (OB_FAIL(ObSqlUdtUtils::cast_pl_varray_to_sql_varray(expr_res_alloc, res_str, pl_ext))) { LOG_WARN("fail to cast udt sdo element", K(ret)); diff --git a/src/sql/engine/expr/ob_expr_sql_udt_utils.cpp b/src/sql/engine/expr/ob_expr_sql_udt_utils.cpp index 76ea05b88..662d33879 100644 --- a/src/sql/engine/expr/ob_expr_sql_udt_utils.cpp +++ b/src/sql/engine/expr/ob_expr_sql_udt_utils.cpp @@ -1094,7 +1094,7 @@ int ObSqlUdtUtils::cast_sql_udt_varray_to_pl_varray(sql::ObExecContext *exec_ctx attr_data.length(), pos))) { LOG_WARN("failed to serialize object value", K(ret), K(attr_data)); - } else if (deep_copy_obj(*coll->get_allocator(), obj, varray_objs[i])){ + } else if (OB_FAIL(deep_copy_obj(*coll->get_allocator(), obj, varray_objs[i]))){ LOG_WARN("failed to deep copy element object value", K(ret), K(obj), K(i)); } } diff --git a/src/sql/engine/expr/ob_expr_time_format.cpp b/src/sql/engine/expr/ob_expr_time_format.cpp index b6c397607..30fdcb35c 100644 --- a/src/sql/engine/expr/ob_expr_time_format.cpp +++ b/src/sql/engine/expr/ob_expr_time_format.cpp @@ -57,7 +57,7 @@ int ObExprTimeFormat::time_to_str_format(const int64_t &time_value, const ObStri { int ret = OB_SUCCESS; ObTime ob_time; - if (ObTimeConverter::time_to_ob_time(time_value, ob_time)) { + if (OB_FAIL(ObTimeConverter::time_to_ob_time(time_value, ob_time))) { LOG_WARN("time to ob time failed", K(ret), K(time_value)); } else if (OB_ISNULL(format.ptr()) || OB_ISNULL(buf) || OB_UNLIKELY(format.length() <= 0 || buf_len <= 0)) { diff --git a/src/sql/engine/expr/ob_expr_util.cpp b/src/sql/engine/expr/ob_expr_util.cpp index db1cddf2e..62561c210 100644 --- a/src/sql/engine/expr/ob_expr_util.cpp +++ b/src/sql/engine/expr/ob_expr_util.cpp @@ -751,6 +751,7 @@ int ObSolidifiedVarsContext::get_local_tz_info(const sql::ObBasicSessionInfo *se } if (OB_SUCC(ret)) { if (OB_ISNULL(local_tz_wrap_ = OB_NEWx(ObTimeZoneInfoWrap, alloc_))) { + ret = OB_ALLOCATE_MEMORY_FAILED; LOG_WARN("alloc tz wrap failed", K(ret)); } else if (OB_FAIL(local_tz_wrap_->init_time_zone(local_var->val_.get_string(), OB_INVALID_VERSION, diff --git a/src/sql/engine/expr/ob_expr_validate_password_strength.cpp b/src/sql/engine/expr/ob_expr_validate_password_strength.cpp index e772bd2ce..6f9d87fcf 100644 --- a/src/sql/engine/expr/ob_expr_validate_password_strength.cpp +++ b/src/sql/engine/expr/ob_expr_validate_password_strength.cpp @@ -81,6 +81,7 @@ int ObExprValidatePasswordStrength::eval_password_strength(const ObExpr &expr, const ObBasicSessionInfo *session = ctx.exec_ctx_.get_my_session(); if (OB_ISNULL(session)) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("session is null", K(ret)); } else if (OB_FAIL(expr.args_[0]->eval(ctx, pwd_param))) { LOG_WARN("eval arg failed", K(ret)); diff --git a/src/sql/engine/expr/ob_number_format_models.cpp b/src/sql/engine/expr/ob_number_format_models.cpp index 2c52e6512..8b578495b 100644 --- a/src/sql/engine/expr/ob_number_format_models.cpp +++ b/src/sql/engine/expr/ob_number_format_models.cpp @@ -2459,7 +2459,7 @@ int ObNFMToNumber::process_hex_format(const common::ObString &in_str, number::ObNumber base_num; number::ObNumber power_num; number::ObNumber res; - if (base_num.from(base, allocator)) { + if (OB_FAIL(base_num.from(base, allocator))) { LOG_WARN("fail to cast uint64 to number", K(ret), K(base)); } else if (OB_FAIL(base_num.power(exponent, power_num, allocator))) { LOG_WARN("power calc failed", K(ret)); @@ -2467,11 +2467,11 @@ int ObNFMToNumber::process_hex_format(const common::ObString &in_str, for (int32_t i = 0; OB_SUCC(ret) && i < hex_num_size; i++) { uint64_t val = nums.at(i); number::ObNumber num; - if (num.from(val, allocator)) { + if (OB_FAIL(num.from(val, allocator))) { LOG_WARN("fail to cast uint64 to number", K(ret), K(val)); } else { for (int32_t j = i; OB_SUCC(ret) && j > 0; j--) { - if (num.mul_v2(power_num, num, allocator)) { + if (OB_FAIL(num.mul_v2(power_num, num, allocator))) { LOG_WARN("fail to mul number", K(ret)); } } diff --git a/src/sql/engine/ob_operator.cpp b/src/sql/engine/ob_operator.cpp index aeaa0a46e..a73ae36ee 100644 --- a/src/sql/engine/ob_operator.cpp +++ b/src/sql/engine/ob_operator.cpp @@ -1006,6 +1006,7 @@ int ObOperator::try_deregister_rt_monitor_node() && ctx_.is_rt_monitor_node_registered()) { ObPlanMonitorNodeList *list = MTL(ObPlanMonitorNodeList*); if (OB_ISNULL(list)) { + // ignore ret LOG_WARN("fail to revert monitor node", K(list)); } else if (OB_FAIL(list->revert_monitor_node(op_monitor_info_))) { LOG_ERROR("fail to revert monitor node", K(ret), K(op_monitor_info_)); diff --git a/src/sql/engine/ob_physical_plan.cpp b/src/sql/engine/ob_physical_plan.cpp index c9520bcee..37bf45344 100644 --- a/src/sql/engine/ob_physical_plan.cpp +++ b/src/sql/engine/ob_physical_plan.cpp @@ -1228,7 +1228,8 @@ int ObPhysicalPlan::update_cache_obj_stat(ObILibCacheCtx &ctx) stat_.outline_id_ = get_outline_state().outline_version_.object_id_; // Truncate the raw sql to avoid the plan memory being too large due to the long raw sql ObTruncatedString trunc_raw_sql(pc_ctx.raw_sql_, OB_MAX_SQL_LENGTH); - if (OB_FAIL(pc_ctx.get_not_param_info_str(get_allocator(), stat_.sp_info_str_))) { + if (OB_FAIL(ret)) { + } else if (OB_FAIL(pc_ctx.get_not_param_info_str(get_allocator(), stat_.sp_info_str_))) { SQL_PC_LOG(WARN, "fail to get special param info string", K(ret)); } else if (OB_FAIL(ob_write_string(get_allocator(), pc_ctx.fp_result_.pc_key_.sys_vars_str_, @@ -1256,6 +1257,7 @@ int ObPhysicalPlan::update_cache_obj_stat(ObILibCacheCtx &ctx) get_allocator().alloc(get_access_table_num() * sizeof(ObTableRowCount))))) { // @banliu.zyd: 这块内存存放计划涉及的表的行数,用于统计信息已经过期的计划的淘汰,分配失败时 // 不报错,走原来不淘汰计划的逻辑 + // ignore ret LOG_WARN("allocate memory for table row count list failed", K(get_access_table_num())); } else { for (int64_t i = 0; i < get_access_table_num(); ++i) { diff --git a/src/sql/engine/opt_statistics/ob_optimizer_stats_gathering_op.cpp b/src/sql/engine/opt_statistics/ob_optimizer_stats_gathering_op.cpp index d3e75cd5d..23e343be9 100644 --- a/src/sql/engine/opt_statistics/ob_optimizer_stats_gathering_op.cpp +++ b/src/sql/engine/opt_statistics/ob_optimizer_stats_gathering_op.cpp @@ -246,6 +246,7 @@ int ObOptimizerStatsGatheringOp::send_stats() ObPxSqcHandler *handler = ctx_.get_sqc_handler(); const ObOptStatsGatherWholeMsg *whole_msg = NULL; if (OB_ISNULL(handler)) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("do not need sqc in serial mode"); } else if (OB_FAIL(build_piece_msg(piece_msg_, handler->get_sqc_proxy()))) { LOG_WARN("failed to build piece msg", K(ret)); diff --git a/src/sql/engine/px/exchange/ob_px_repart_transmit_op.cpp b/src/sql/engine/px/exchange/ob_px_repart_transmit_op.cpp index e47a877e6..b4fdb08dd 100644 --- a/src/sql/engine/px/exchange/ob_px_repart_transmit_op.cpp +++ b/src/sql/engine/px/exchange/ob_px_repart_transmit_op.cpp @@ -107,6 +107,7 @@ int ObPxRepartTransmitOp::do_transmit() ObPxRepartTransmitOpInput *trans_input = static_cast(input_); if (OB_ISNULL(phy_plan_ctx = GET_PHY_PLAN_CTX(ctx_)) || OB_ISNULL(trans_input)) { + ret = OB_ERR_UNEXPECTED; LOG_ERROR("fail to op ctx", "op_id", MY_SPEC.id_, "op_type", MY_SPEC.type_, KP(trans_input), K(ret)); } else if (!MY_SPEC.is_repart_exchange()) { diff --git a/src/sql/engine/px/ob_dfo.cpp b/src/sql/engine/px/ob_dfo.cpp index 09528fb16..016fd496a 100644 --- a/src/sql/engine/px/ob_dfo.cpp +++ b/src/sql/engine/px/ob_dfo.cpp @@ -677,6 +677,7 @@ OB_DEF_SERIALIZE_SIZE(ObPxRpcInitSqcArgs) int ret = OB_SUCCESS; int64_t len = 0; if (OB_ISNULL(exec_ctx_) || OB_ISNULL(ser_phy_plan_) || OB_ISNULL(op_spec_root_)) { + ret = OB_ERR_UNEXPECTED; LOG_ERROR("task not init", K_(exec_ctx), K_(ser_phy_plan), K(ret)); } else { ObPhyOpSeriCtx seri_ctx; @@ -868,7 +869,8 @@ OB_DEF_DESERIALIZE(ObPxRpcInitTaskArgs) pos = 0; char *tmp_buf = (char *)des_allocator_->alloc(data_len); - if (OB_ISNULL(tmp_buf)) { + if (OB_FAIL(ret)) { + } else if (OB_ISNULL(tmp_buf)) { ret = OB_ALLOCATE_MEMORY_FAILED; LOG_WARN("allocate memory failed", K(ret), K(tmp_buf)); } else { @@ -915,6 +917,7 @@ OB_DEF_SERIALIZE_SIZE(ObPxRpcInitTaskArgs) int ret = OB_SUCCESS; int64_t len = 0; if (OB_ISNULL(exec_ctx_) || OB_ISNULL(ser_phy_plan_) || OB_ISNULL(op_spec_root_)) { + ret = OB_ERR_UNEXPECTED; LOG_ERROR("task not init", K_(exec_ctx), K_(ser_phy_plan)); } else { uint64_t sqc_task_ptr_val = reinterpret_cast(sqc_task_ptr_); diff --git a/src/sql/engine/px/ob_granule_pump.cpp b/src/sql/engine/px/ob_granule_pump.cpp index 7147c2192..46b21b778 100644 --- a/src/sql/engine/px/ob_granule_pump.cpp +++ b/src/sql/engine/px/ob_granule_pump.cpp @@ -1287,13 +1287,13 @@ int ObPartitionWiseGranuleSplitter::split_granule(ObGranulePumpArgs &args, LOG_TRACE("handler split dml op task", K(modify_op->get_type())); if (OB_FAIL(modify_op->get_single_dml_ctdef(dml_ctdef))) { LOG_WARN("get single table loc id failed", K(ret)); - } else if (split_insert_gi_task(args, + } else if (OB_FAIL(split_insert_gi_task(args, dml_ctdef->das_base_ctdef_.index_tid_, dml_ctdef->das_base_ctdef_.rowkey_cnt_, // insert对应的row key count tablet_arrays.at(0), partition_granule, total_task_set, - random_type)){ + random_type))){ LOG_WARN("failed to prepare pw insert gi task", K(ret)); } else if (OB_FAIL(taskset_array.push_back(total_task_set))) { LOG_WARN("failed to push back task set", K(ret)); diff --git a/src/sql/engine/px/ob_px_coord_msg_proc.cpp b/src/sql/engine/px/ob_px_coord_msg_proc.cpp index 8277b45b7..0ad38cf49 100644 --- a/src/sql/engine/px/ob_px_coord_msg_proc.cpp +++ b/src/sql/engine/px/ob_px_coord_msg_proc.cpp @@ -37,7 +37,7 @@ public: } else { typename WholeMsg::WholeMsgProvider *provider = static_cast(p); - if (provider->add_msg(pkt)) { + if (OB_FAIL(provider->add_msg(pkt))) { LOG_WARN("fail set whole msg to provider", K(ret)); } } diff --git a/src/sql/engine/px/ob_px_coord_op.cpp b/src/sql/engine/px/ob_px_coord_op.cpp index b57e62f4d..11053f4ca 100644 --- a/src/sql/engine/px/ob_px_coord_op.cpp +++ b/src/sql/engine/px/ob_px_coord_op.cpp @@ -630,6 +630,7 @@ int ObPxCoordOp::destroy_all_channel() * release root task channel here. * */ if (OB_FAIL(ObPxChannelUtil::unlink_ch_set(task_ch_set_, &dfc_, true))) { + // overwrite ret LOG_WARN("unlink channel failed", K(ret)); } diff --git a/src/sql/engine/px/ob_px_scheduler.cpp b/src/sql/engine/px/ob_px_scheduler.cpp index b6bea2caf..115310a6c 100644 --- a/src/sql/engine/px/ob_px_scheduler.cpp +++ b/src/sql/engine/px/ob_px_scheduler.cpp @@ -136,6 +136,7 @@ void ObPxMsgProc::clean_dtl_interm_result(ObExecContext &ctx) { int ret = OB_SUCCESS; if (OB_ISNULL(scheduler_)) { + // ignore ret LOG_WARN("dfo scheduler is null"); } else { scheduler_->clean_dtl_interm_result(ctx); diff --git a/src/sql/engine/px/ob_px_task_process.cpp b/src/sql/engine/px/ob_px_task_process.cpp index 589610982..2b1c9380d 100644 --- a/src/sql/engine/px/ob_px_task_process.cpp +++ b/src/sql/engine/px/ob_px_task_process.cpp @@ -204,6 +204,7 @@ int ObPxTaskProcess::process() if (enable_sql_audit) { ObPhysicalPlan *phy_plan = arg_.des_phy_plan_; if ( OB_ISNULL(phy_plan)) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("invalid argument", K(ret), K(phy_plan)); } else { audit_record.try_cnt_++; diff --git a/src/sql/engine/px/ob_px_tenant_target_monitor.cpp b/src/sql/engine/px/ob_px_tenant_target_monitor.cpp index 5f277a24e..6f0dc4cd8 100644 --- a/src/sql/engine/px/ob_px_tenant_target_monitor.cpp +++ b/src/sql/engine/px/ob_px_tenant_target_monitor.cpp @@ -110,7 +110,8 @@ int ObPxTenantTargetMonitor::refresh_statistics(bool need_refresh_all) LOG_WARN("reset statistics failed", K(ret)); } } - if (OB_FAIL(query_statistics(leader))) { + if (OB_FAIL(ret)) { + } else if (OB_FAIL(query_statistics(leader))) { LOG_WARN("query statistics failed", K(ret)); } } else { @@ -265,7 +266,8 @@ int ObPxTenantTargetMonitor::query_statistics(ObAddr &leader) } } } - if (OB_FAIL(rpc_proxy_ + if (OB_FAIL(ret)) { + } else if (OB_FAIL(rpc_proxy_ .to(leader) .by(tenant_id_) .timeout(OB_TARGET_MONITOR_RPC_TIMEOUT) diff --git a/src/sql/engine/px/ob_px_util.cpp b/src/sql/engine/px/ob_px_util.cpp index 78757e751..1c1dd4198 100644 --- a/src/sql/engine/px/ob_px_util.cpp +++ b/src/sql/engine/px/ob_px_util.cpp @@ -2212,6 +2212,7 @@ int64_t ObPxTreeSerializer::get_tree_serialize_size(ObOpSpec &root, bool is_full for (int32_t i = 0; OB_SUCC(ret) && i < child_cnt; ++i) { ObOpSpec *child_op = root.get_child(i); if (OB_ISNULL(child_op)) { + // ignore ret // 这里无法抛出错误,不过在serialize阶段会再次检测是否有null child。 // 所以是安全的 LOG_ERROR("null child op", K(i), K(root.get_child_cnt()), K(root.get_type())); diff --git a/src/sql/engine/subquery/ob_subplan_filter_op.cpp b/src/sql/engine/subquery/ob_subplan_filter_op.cpp index 629b632ca..ed4738b56 100644 --- a/src/sql/engine/subquery/ob_subplan_filter_op.cpp +++ b/src/sql/engine/subquery/ob_subplan_filter_op.cpp @@ -713,7 +713,8 @@ int ObSubPlanFilterOp::handle_next_row() left_rows_iter_.reset(); left_rows_.reset(); last_store_row_mem_->get_arena_allocator().reset(); - if (OB_ISNULL(last_store_row_.get_store_row())) { + if (OB_FAIL(ret)) { + } else if (OB_ISNULL(last_store_row_.get_store_row())) { if (save_last_row_) { ret = OB_ERR_UNEXPECTED; LOG_WARN("unexpected status: store row is null", K(ret)); diff --git a/src/sql/engine/table/ob_table_partition_ranges.cpp b/src/sql/engine/table/ob_table_partition_ranges.cpp index 01031d0df..c1707f756 100644 --- a/src/sql/engine/table/ob_table_partition_ranges.cpp +++ b/src/sql/engine/table/ob_table_partition_ranges.cpp @@ -247,7 +247,8 @@ int ObMultiPartitionsRangesWarpper::add_range(ObEvalCtx &eval_ctx, rowkey_count = ARRAYSIZEOF(share::schema::HIDDEN_PK_COLUMN_IDS); } } - if (OB_FAIL(init_main_table_rowkey(rowkey_count, main_table_rowkey_))) { + if (OB_FAIL(ret)) { + } else if (OB_FAIL(init_main_table_rowkey(rowkey_count, main_table_rowkey_))) { LOG_WARN("Fail to init main table row", K(ret)); } } diff --git a/src/sql/engine/table/ob_table_scan_with_index_back_op.cpp b/src/sql/engine/table/ob_table_scan_with_index_back_op.cpp index 543998447..c94dbe76f 100644 --- a/src/sql/engine/table/ob_table_scan_with_index_back_op.cpp +++ b/src/sql/engine/table/ob_table_scan_with_index_back_op.cpp @@ -280,6 +280,7 @@ int ObTableScanWithIndexBackOp::inner_close() } tmp_ret = ret; if (OB_FAIL(ObTableScanOp::inner_close())) { + // overwrite ret LOG_WARN("inner close ooerator failed", K(ret)); } ret = (OB_SUCCESS == ret) ? tmp_ret : ret; diff --git a/src/sql/executor/ob_cmd_executor.cpp b/src/sql/executor/ob_cmd_executor.cpp index 3bad28d67..c315c6dfb 100644 --- a/src/sql/executor/ob_cmd_executor.cpp +++ b/src/sql/executor/ob_cmd_executor.cpp @@ -1117,6 +1117,7 @@ int ObCmdExecutor::execute(ObExecContext &ctx, ObICmd &cmd) LOG_WARN("failed to get schema guard", K(ret)); } if (OB_FAIL(tmp_ret)) { + // overwrite ret ret = tmp_ret; } } diff --git a/src/sql/executor/ob_maintain_dependency_info_task.cpp b/src/sql/executor/ob_maintain_dependency_info_task.cpp index cdd6a221a..c6ff0edf7 100644 --- a/src/sql/executor/ob_maintain_dependency_info_task.cpp +++ b/src/sql/executor/ob_maintain_dependency_info_task.cpp @@ -221,6 +221,7 @@ void ObMaintainDepInfoTaskQueue::run2() view_info_set_.clear(); } if (sys_view_consistent_.size() >= MAX_SYS_VIEW_SIZE) { + // ignore ret LOG_WARN("sys_view_consistent size too much", K(sys_view_consistent_.size())); sys_view_consistent_.clear(); } diff --git a/src/sql/executor/ob_remote_scheduler.cpp b/src/sql/executor/ob_remote_scheduler.cpp index d24d9d298..fd42e1776 100644 --- a/src/sql/executor/ob_remote_scheduler.cpp +++ b/src/sql/executor/ob_remote_scheduler.cpp @@ -164,7 +164,8 @@ int ObRemoteScheduler::build_remote_task(ObExecContext &ctx, K(task_exec_ctx.get_query_sys_begin_schema_version())); remote_task.set_remote_sql_info(&plan_ctx->get_remote_sql_info()); ObDASTabletLoc *first_tablet_loc = DAS_CTX(ctx).get_table_loc_list().get_first()->get_first_tablet_loc(); - if (OB_ISNULL(session = ctx.get_my_session())) { + if (OB_FAIL(ret)){ + } else if (OB_ISNULL(session = ctx.get_my_session())) { ret = OB_ERR_UNEXPECTED; LOG_WARN("session is null", K(ret)); } else { diff --git a/src/sql/executor/ob_remote_task_executor.cpp b/src/sql/executor/ob_remote_task_executor.cpp index 22404051c..9ac324d6c 100644 --- a/src/sql/executor/ob_remote_task_executor.cpp +++ b/src/sql/executor/ob_remote_task_executor.cpp @@ -214,6 +214,7 @@ int ObRemoteTaskExecutor::handle_tx_after_rpc(ObScanner *scanner, } if (has_transfer_err || OB_FAIL(ret)) { if (exec_ctx.use_remote_sql()) { + // ignore ret LOG_WARN("remote execute use sql fail with transfer_error, tx will rollback", K(ret)); session->get_trans_result().set_incomplete(); } else { diff --git a/src/sql/executor/ob_slice_calc.cpp b/src/sql/executor/ob_slice_calc.cpp index 37e74dc25..aae63632a 100644 --- a/src/sql/executor/ob_slice_calc.cpp +++ b/src/sql/executor/ob_slice_calc.cpp @@ -460,7 +460,8 @@ int ObSlaveMapRepartIdxCalcBase::init(uint64_t tenant_id) } const TaskIdxArray *task_idx_array = part_to_task_array_map_.get(tablet_id); - if (OB_ISNULL(task_idx_array)) { + if (OB_FAIL(ret)) { + } else if (OB_ISNULL(task_idx_array)) { ret = OB_ERR_UNEXPECTED; LOG_WARN("task idx list is null", K(ret), K(tablet_id)); } else if (OB_FAIL(const_cast(task_idx_array)->push_back(task_idx))) { diff --git a/src/sql/monitor/flt/ob_flt_utils.cpp b/src/sql/monitor/flt/ob_flt_utils.cpp index b187667d5..833ed14d6 100644 --- a/src/sql/monitor/flt/ob_flt_utils.cpp +++ b/src/sql/monitor/flt/ob_flt_utils.cpp @@ -707,7 +707,8 @@ namespace sql // span id org_pos = pos; - if (OB_FAIL(span->span_id_.tostring(buf, len, pos))) { + if (OB_FAIL(ret)) { + } else if (OB_FAIL(span->span_id_.tostring(buf, len, pos))) { LOG_WARN ("failed to deserialize uuid", K(ret), K(buf), K(pos)); } else { data.span_id_.assign(buf+org_pos, pos - org_pos); @@ -719,7 +720,8 @@ namespace sql //parent_span_id_ org_pos = pos; - if (OB_ISNULL(span->source_span_) && + if (OB_FAIL(ret)) { + } else if (OB_ISNULL(span->source_span_) && OB_FAIL(OBTRACE->get_root_span_id().tostring(buf, len, pos))) { LOG_WARN ("failed to deserialize uuid", K(ret), K(buf), K(pos)); } else if (!OB_ISNULL(span->source_span_) && diff --git a/src/sql/monitor/ob_monitor_info_manager.cpp b/src/sql/monitor/ob_monitor_info_manager.cpp index 63014ba0e..eb38ce933 100644 --- a/src/sql/monitor/ob_monitor_info_manager.cpp +++ b/src/sql/monitor/ob_monitor_info_manager.cpp @@ -49,7 +49,7 @@ int ObMonitorInfoManager::init() LOG_WARN("fail to init plan execution time map", K(ret)); } else { allocator_.set_label(ObModIds::OB_SQL_PLAN_MONITOR); - if (timer_.schedule(elimination_task_, delay, true)) { + if (OB_FAIL(timer_.schedule(elimination_task_, delay, true))) { LOG_WARN("fail to schedule timer task", K(ret)); } } diff --git a/src/sql/monitor/ob_sql_plan.cpp b/src/sql/monitor/ob_sql_plan.cpp index 3aa7ff885..3aa65fe8a 100644 --- a/src/sql/monitor/ob_sql_plan.cpp +++ b/src/sql/monitor/ob_sql_plan.cpp @@ -99,7 +99,7 @@ int ObSqlPlan::store_sql_plan(ObLogPlan* log_plan, ObPhysicalPlan* phy_plan) LOG_WARN("failed to get sql plan infos", K(ret)); } else if (OB_FAIL(compress_plan.compress_logical_plan(allocator_, sql_plan_infos))) { LOG_WARN("failed to compress logical plan", K(ret)); - } else if (phy_plan->set_logical_plan(compress_plan)) { + } else if (OB_FAIL(phy_plan->set_logical_plan(compress_plan))) { LOG_WARN("failed to set logical plan", K(ret)); } if (OB_FAIL(ret)) { @@ -132,6 +132,7 @@ int ObSqlPlan::store_sql_plan_for_explain(ObExecContext *ctx, LOG_WARN("failed to get sql plan infos", K(ret)); } allocate_mem_failed |= OB_ALLOCATE_MEMORY_FAILED == ret; + // overwrite ret if (OB_FAIL(format_sql_plan(sql_plan_infos, type, option, @@ -140,6 +141,7 @@ int ObSqlPlan::store_sql_plan_for_explain(ObExecContext *ctx, } allocate_mem_failed |= OB_ALLOCATE_MEMORY_FAILED == ret; if (OB_FAIL(plan_text_to_strings(out_plan_text, plan_strs))) { + // overwrite ret LOG_WARN("failed to convert plan text to strings", K(ret)); } else if (OB_FAIL(inner_store_sql_plan_for_explain(ctx, plan_table, diff --git a/src/sql/ob_result_set.cpp b/src/sql/ob_result_set.cpp index 82f2242bc..d8b6b638d 100644 --- a/src/sql/ob_result_set.cpp +++ b/src/sql/ob_result_set.cpp @@ -870,6 +870,7 @@ OB_INLINE int ObResultSet::do_close_plan(int errcode, ObExecContext &ctx) // 无论如何都reset_op_ctx bool err_ignored = false; if (OB_ISNULL(plan_ctx)) { + ret = OB_ERR_UNEXPECTED; LOG_ERROR("plan is not NULL, but plan ctx is NULL", K(ret), K(errcode)); } else { err_ignored = plan_ctx->is_error_ignored(); @@ -985,6 +986,7 @@ int ObResultSet::do_close(int *client_ret) bool async = false; // for debug purpose if (OB_TRANS_XA_BRANCH_FAIL == ret) { if (my_session_.associated_xa()) { + // ignore ret //兼容oracle,这里需要重置session状态 LOG_WARN("branch fail in global transaction", KPC(my_session_.get_tx_desc())); ObSqlTransControl::clear_xa_branch(my_session_.get_xid(), my_session_.get_tx_desc()); @@ -1114,6 +1116,7 @@ OB_INLINE int ObResultSet::auto_end_plan_trans(ObPhysicalPlan& plan, // don't need to set ret ObSqlCtx *sql_ctx = get_exec_context().get_sql_ctx(); if (OB_ISNULL(sql_ctx)) { + // ignore ret LOG_WARN("sql_ctx is null when handle security audit"); } else { ObSecurityAuditUtils::handle_security_audit(*this, @@ -1883,6 +1886,7 @@ uint64_t ObResultSet::get_field_cnt() const int64_t cnt = 0; uint64_t ret = 0; if (OB_ISNULL(get_field_columns())) { + // ignore ret LOG_ERROR("unexpected error. field columns is null"); right_to_die_or_duty_to_live(); } diff --git a/src/sql/ob_sql.cpp b/src/sql/ob_sql.cpp index 621f506c4..aa0cbff6d 100644 --- a/src/sql/ob_sql.cpp +++ b/src/sql/ob_sql.cpp @@ -1002,7 +1002,8 @@ int ObSql::fill_select_result_set(ObResultSet &result_set, ObSqlCtx *context, co LOG_WARN("fail to alloc string", K(ret), K(table_item->table_name_)); } } - if (OB_FAIL(ob_write_string(alloc, table_item->table_name_, field.org_tname_))) { + if (OB_FAIL(ret)) { + } else if (OB_FAIL(ob_write_string(alloc, table_item->table_name_, field.org_tname_))) { LOG_WARN("fail to alloc string", K(ret), K(table_item->table_name_)); } } @@ -3024,6 +3025,7 @@ int ObSql::generate_stmt(ParseResult &parse_result, K(context.multi_stmt_item_.is_part_of_multi_stmt()), K(context.multi_stmt_item_.get_seq_num())); if (result.get_session().get_group_id_not_expected()) { + // ignore ret LOG_USER_WARN(OB_NEED_SWITCH_CONSUMER_GROUP); result.get_session().set_group_id_not_expected(false); } @@ -4700,7 +4702,8 @@ int ObSql::after_get_plan(ObPlanCacheCtx &pc_ctx, } } // init auto increment param - if (OB_FAIL(pc_ctx.exec_ctx_.init_physical_plan_ctx(*phy_plan))) { + if (OB_FAIL(ret)) { + } else if (OB_FAIL(pc_ctx.exec_ctx_.init_physical_plan_ctx(*phy_plan))) { LOG_WARN("fail init exec context", K(ret), K(phy_plan->get_stmt_type())); } else if (OB_FAIL(DAS_CTX(pc_ctx.exec_ctx_).init(*phy_plan, pc_ctx.exec_ctx_))) { LOG_WARN("init das context failed", K(ret)); diff --git a/src/sql/ob_sql_utils.cpp b/src/sql/ob_sql_utils.cpp index b3d9d9d5b..62d620ba4 100644 --- a/src/sql/ob_sql_utils.cpp +++ b/src/sql/ob_sql_utils.cpp @@ -4536,6 +4536,7 @@ int64_t ObSqlFatalErrExtraInfoGuard::to_string(char *buf, const int64_t buf_len) ObQueryCtx *query_ctx = nullptr; if (OB_ISNULL(stmt_factory = exec_ctx_->get_stmt_factory()) || OB_ISNULL(query_ctx = stmt_factory->get_query_ctx())) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("fail to get query ctx", K(ret)); } else { dep_tables = &(query_ctx->global_dependency_tables_); diff --git a/src/sql/optimizer/ob_join_order.cpp b/src/sql/optimizer/ob_join_order.cpp index 6352e7d2e..b7cf23d1c 100644 --- a/src/sql/optimizer/ob_join_order.cpp +++ b/src/sql/optimizer/ob_join_order.cpp @@ -479,6 +479,7 @@ int ObJoinOrder::compute_sharding_info_for_index_info_entry(const uint64_t table ObShardingInfo *sharding_info = NULL; if (OB_ISNULL(index_info_entry) || OB_ISNULL(part_info = index_info_entry->get_partition_info())) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("get unexpected null", K(ret)); } else if (NULL != sharding_info_ && !index_info_entry->is_index_global()) { //all the local index share the same sharding info @@ -7952,6 +7953,7 @@ int ObJoinOrder::generate_function_table_paths() } else if (OB_FAIL(append(func_path->filter_, get_restrict_infos()))) { LOG_WARN("failed to append filter", K(ret)); } else if (OB_ISNULL(function_table_expr = table_item->function_table_expr_)) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("unexpected null function table expr", K(ret)); } else if (OB_FAIL(param_funct_table_expr(function_table_expr, nl_params, @@ -12009,6 +12011,7 @@ int ObJoinOrder::extract_used_columns(const uint64_t table_id, const ObDMLStmt *stmt = NULL; if (OB_ISNULL(get_plan()) || OB_ISNULL(stmt = get_plan()->get_stmt()) || OB_ISNULL(schema_guard = OPT_CTX.get_sql_schema_guard())) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("null point error", K(ret), K(get_plan()), K(stmt), K(schema_guard)); } else if (OB_UNLIKELY(OB_INVALID_ID == table_id) || OB_UNLIKELY(OB_INVALID_ID == ref_table_id)) { diff --git a/src/sql/optimizer/ob_log_table_scan.cpp b/src/sql/optimizer/ob_log_table_scan.cpp index 972d84a0b..e43d27985 100644 --- a/src/sql/optimizer/ob_log_table_scan.cpp +++ b/src/sql/optimizer/ob_log_table_scan.cpp @@ -890,9 +890,9 @@ int ObLogTableScan::allocate_lookup_trans_info_expr() opt_ctx->is_strict_defensive_check() && GET_MIN_CLUSTER_VERSION() >= CLUSTER_VERSION_4_2_0_0 && nullptr == trans_info_expr_) { - if (OB_FAIL(OB_FAIL(ObOptimizerUtil::generate_pseudo_trans_info_expr(*opt_ctx, - index_name_, - tmp_trans_info_expr)))) { + if (OB_FAIL(ObOptimizerUtil::generate_pseudo_trans_info_expr(*opt_ctx, + index_name_, + tmp_trans_info_expr))) { LOG_WARN("fail to generate pseudo trans info expr", K(ret), K(index_name_)); } else { trans_info_expr_ = tmp_trans_info_expr; diff --git a/src/sql/optimizer/ob_log_window_function.cpp b/src/sql/optimizer/ob_log_window_function.cpp index 6c2617c9f..de51ce24d 100644 --- a/src/sql/optimizer/ob_log_window_function.cpp +++ b/src/sql/optimizer/ob_log_window_function.cpp @@ -530,6 +530,7 @@ int ObLogWindowFunction::print_used_hint(PlanText &plan_text) const ObWindowDistHint *win_dist_hint = NULL; const ObSelectStmt *stmt = NULL; if (OB_ISNULL(get_plan()) || OB_ISNULL(stmt = dynamic_cast(get_plan()->get_stmt()))) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("unexpected NULL", K(ret), K(get_plan()), K(stmt)); } else if (OB_FALSE_IT(win_dist_hint = get_plan()->get_log_plan_hint().get_window_dist())) { } else if (NULL == win_dist_hint || get_plan()->has_added_win_dist()) { diff --git a/src/sql/optimizer/ob_logical_operator.cpp b/src/sql/optimizer/ob_logical_operator.cpp index d3061d35d..826f9e811 100644 --- a/src/sql/optimizer/ob_logical_operator.cpp +++ b/src/sql/optimizer/ob_logical_operator.cpp @@ -5100,8 +5100,8 @@ int ObLogicalOperator::try_prepare_rf_query_range_info( for (int64_t i = 0; OB_SUCC(ret) && i < rf_count; ++i) { RuntimeFilterType type = join_filter_create->get_join_filter_types().at(i); if (RuntimeFilterType::IN == type || RuntimeFilterType::RANGE == type) { - if (OB_FAIL(OB_FAIL( - p2p_dh_ids.push_back(join_filter_create->get_p2p_sequence_ids().at(i))))) { + if (OB_FAIL( + p2p_dh_ids.push_back(join_filter_create->get_p2p_sequence_ids().at(i)))) { LOG_WARN("fail to push_back", K(ret)); } } diff --git a/src/sql/optimizer/ob_merge_log_plan.cpp b/src/sql/optimizer/ob_merge_log_plan.cpp index 87051f292..64417112a 100644 --- a/src/sql/optimizer/ob_merge_log_plan.cpp +++ b/src/sql/optimizer/ob_merge_log_plan.cpp @@ -543,6 +543,7 @@ int ObMergeLogPlan::generate_equal_constraint(ObLogicalOperator &top, ret = OB_ERR_UNEXPECTED; LOG_WARN("get unexpected null", K(ret), K(stmt)); } else if (OB_ISNULL(target_table = stmt->get_table_item_by_id(stmt->get_target_table_id()))) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("failed to get target table", K(ret)); } else if (OB_FAIL(get_target_table_scan(target_table->get_base_table_item().table_id_, &top, target_table_scan))) { diff --git a/src/sql/optimizer/ob_select_log_plan.cpp b/src/sql/optimizer/ob_select_log_plan.cpp index da5e4dd28..26e319c6f 100644 --- a/src/sql/optimizer/ob_select_log_plan.cpp +++ b/src/sql/optimizer/ob_select_log_plan.cpp @@ -698,8 +698,8 @@ int ObSelectLogPlan::create_rollup_pushdown_plan(const ObIArray &gro } else if (OB_ISNULL(rollup_collector = dynamic_cast(top))) { ret = OB_ERR_UNEXPECTED; LOG_WARN("rollup collector is null", K(ret)); - } else if (rollup_collector->set_rollup_info(ObRollupStatus::ROLLUP_COLLECTOR, - groupby_helper.rollup_id_expr_)) { + } else if (OB_FAIL(rollup_collector->set_rollup_info(ObRollupStatus::ROLLUP_COLLECTOR, + groupby_helper.rollup_id_expr_))) { LOG_WARN("failed to set rollup id expr", K(ret)); } else { rollup_collector->set_group_by_outline_info(false, true); diff --git a/src/sql/optimizer/ob_table_location.cpp b/src/sql/optimizer/ob_table_location.cpp index 0ac4bd7fa..eb24bf3ba 100644 --- a/src/sql/optimizer/ob_table_location.cpp +++ b/src/sql/optimizer/ob_table_location.cpp @@ -1446,7 +1446,8 @@ int ObTableLocation::calculate_single_tablet_partition(ObExecContext &exec_ctx, ObDASTabletLoc *tablet_loc = nullptr; ObDASTableLocMeta *final_meta = nullptr; LOG_DEBUG("das table loc assign begin", K_(loc_meta)); - if (OB_FAIL(das_ctx.build_table_loc_meta(loc_meta_, final_meta))) { + if (OB_FAIL(ret)) { + } else if (OB_FAIL(das_ctx.build_table_loc_meta(loc_meta_, final_meta))) { LOG_WARN("build table loc meta failed", K(ret)); } else if (OB_FAIL(das_ctx.extended_table_loc(*final_meta, table_loc))) { LOG_WARN("extended table loc failed", K(ret), K(loc_meta_)); diff --git a/src/sql/plan_cache/ob_i_lib_cache_node.cpp b/src/sql/plan_cache/ob_i_lib_cache_node.cpp index 5ecc1af7a..645f0f091 100644 --- a/src/sql/plan_cache/ob_i_lib_cache_node.cpp +++ b/src/sql/plan_cache/ob_i_lib_cache_node.cpp @@ -63,6 +63,7 @@ int ObILibCacheNode::remove_all_plan_stat() { int ret = OB_SUCCESS; if (OB_ISNULL(lib_cache_)) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("lib cache is invalid"); } else { SpinRLockGuard lock_guard(co_list_lock_); @@ -207,6 +208,7 @@ int64_t ObILibCacheNode::dec_ref_count(const CacheRefHandleID ref_handle) } else if (0 == ref_count) { LOG_DEBUG("remove cache node", K(ref_count), K(this)); if (OB_ISNULL(lib_cache_)) { + ret = OB_ERR_UNEXPECTED; LOG_ERROR("invalid null lib cache"); } else { ObLCNodeFactory &ln_factory = lib_cache_->get_cache_node_factory(); @@ -230,6 +232,7 @@ int ObILibCacheNode::remove_cache_obj_entry(const ObCacheObjID obj_id) { int ret = OB_SUCCESS; if (OB_ISNULL(lib_cache_)) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("lib cache is invalid"); } else { ObLCObjectManager &mgr = lib_cache_->get_cache_obj_mgr(); diff --git a/src/sql/plan_cache/ob_i_lib_cache_object.cpp b/src/sql/plan_cache/ob_i_lib_cache_object.cpp index 4e34e3c3f..e911d1445 100644 --- a/src/sql/plan_cache/ob_i_lib_cache_object.cpp +++ b/src/sql/plan_cache/ob_i_lib_cache_object.cpp @@ -98,6 +98,7 @@ int64_t ObILibCacheObject::inc_ref_count(const CacheRefHandleID ref_handle) if (GCONF._enable_plan_cache_mem_diagnosis) { ObPlanCache *lib_cache = MTL(ObPlanCache*); if (OB_ISNULL(lib_cache)) { + // ignore ret LOG_ERROR("invalid null lib cache", K(ret)); } else { lib_cache->get_ref_handle_mgr().record_ref_op(ref_handle); @@ -112,6 +113,7 @@ int64_t ObILibCacheObject::dec_ref_count(const CacheRefHandleID ref_handle) if (GCONF._enable_plan_cache_mem_diagnosis) { ObPlanCache *lib_cache = MTL(ObPlanCache*); if (OB_ISNULL(lib_cache)) { + // ignore ret LOG_ERROR("invalid null lib cache", K(ret)); } else { lib_cache->get_ref_handle_mgr().record_deref_op(ref_handle); diff --git a/src/sql/plan_cache/ob_plan_cache.cpp b/src/sql/plan_cache/ob_plan_cache.cpp index 83d01061d..ec3670a7e 100644 --- a/src/sql/plan_cache/ob_plan_cache.cpp +++ b/src/sql/plan_cache/ob_plan_cache.cpp @@ -276,7 +276,7 @@ struct ObGetTableIdOp } else if (OB_ISNULL(plan = dynamic_cast(entry.second))) { ret = OB_ERR_UNEXPECTED; LOG_WARN("unexpected null plan", K(ret), K(plan)); - } else if (plan->get_base_table_version(table_id_, version)) { + } else if (OB_FAIL(plan->get_base_table_version(table_id_, version))) { LOG_WARN("failed to get base table version", K(ret)); } else if (version > 0) { plan->set_is_expired(true); @@ -1092,6 +1092,7 @@ int ObPlanCache::get_plan_cache(ObILibCacheCtx &ctx, } // check the returned error code and whether the plan has expired if (OB_FAIL(check_after_get_plan(ret, ctx, guard.cache_obj_))) { + // overwrite ret, ret used in check_after_get_plan SQL_PC_LOG(TRACE, "failed to check after get plan", K(ret)); } if (OB_FAIL(ret) && OB_NOT_NULL(guard.cache_obj_)) { @@ -2709,6 +2710,7 @@ void ObPlanCacheEliminationTask::run_free_cache_obj_task() int64_t safe_timestamp = INT64_MAX; if (observer::ObGlobalReqTimeService::get_instance() .get_global_safe_timestamp(safe_timestamp)) { + // ignore ret SQL_PC_LOG(ERROR, "failed to get global safe timestamp", K(ret)); } else if (OB_FAIL(plan_cache_->dump_deleted_objs(deleted_objs, safe_timestamp))) { SQL_PC_LOG(WARN, "failed to traverse hashmap", K(ret)); @@ -2718,6 +2720,7 @@ void ObPlanCacheEliminationTask::run_free_cache_obj_task() tot_mem_used += deleted_objs.at(k).mem_used_; } // end for if (tot_mem_used >= ((plan_cache_->get_mem_limit() / 100) * 30)) { + // ignore ret LOG_ERROR("Cache Object Memory Leaked Much!!!", K(tot_mem_used), K(plan_cache_->get_mem_limit()), K(deleted_objs), K(safe_timestamp)); } else if (deleted_objs.count() > 0) { diff --git a/src/sql/plan_cache/ob_plan_cache_value.cpp b/src/sql/plan_cache/ob_plan_cache_value.cpp index b185f636a..f2d1fd211 100644 --- a/src/sql/plan_cache/ob_plan_cache_value.cpp +++ b/src/sql/plan_cache/ob_plan_cache_value.cpp @@ -240,8 +240,10 @@ int ObPlanCacheValue::init(ObPCVSet *pcv_set, const ObILibCacheObject *cache_obj } else if (FALSE_IT(mem_attr = pcv_set->get_plan_cache()->get_mem_attr())) { // do nothing } else if (OB_ISNULL(pc_alloc_ = pcv_set->get_allocator())) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("invalid argument", K(pcv_set->get_allocator())); } else if (OB_ISNULL(pc_malloc_ = pcv_set->get_pc_allocator())) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("invalid argument", K(pcv_set->get_pc_allocator())); } else if (OB_FAIL(outline_params_wrapper_.set_allocator(pc_alloc_, mem_attr))) { LOG_WARN("fail to set outline param wrapper allocator", K(ret)); diff --git a/src/sql/plan_cache/ob_plan_set.cpp b/src/sql/plan_cache/ob_plan_set.cpp index 9c287f494..08d59342f 100644 --- a/src/sql/plan_cache/ob_plan_set.cpp +++ b/src/sql/plan_cache/ob_plan_set.cpp @@ -644,6 +644,7 @@ int ObPlanSet::remove_cache_obj_entry(const ObCacheObjID obj_id) ObPCVSet *pcv_set = NULL; if (OB_ISNULL(get_plan_cache_value()) || OB_ISNULL(pcv_set = get_plan_cache_value()->get_pcv_set())) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("invalid argument", K(pcv_set)); } else if (NULL == (pc = get_plan_cache())) { LOG_WARN("invalid argument", K(pc)); diff --git a/src/sql/privilege_check/ob_privilege_check.cpp b/src/sql/privilege_check/ob_privilege_check.cpp index f2b217f31..e98824981 100644 --- a/src/sql/privilege_check/ob_privilege_check.cpp +++ b/src/sql/privilege_check/ob_privilege_check.cpp @@ -792,7 +792,7 @@ int add_procs_priv_in_dml( if (OB_ISNULL(dml_stmt) || OB_ISNULL(dml_stmt->get_query_ctx())) { ret = OB_ERR_UNEXPECTED; LOG_WARN("unexpected null", K(ret)); - } else if (dml_stmt->get_relation_exprs(relation_exprs)) { + } else if (OB_FAIL(dml_stmt->get_relation_exprs(relation_exprs))) { LOG_WARN("failed to get relation exprs", K(ret)); } for (int64_t i = 0; OB_SUCC(ret) && i < relation_exprs.count(); ++i) { diff --git a/src/sql/resolver/cmd/ob_help_resolver.cpp b/src/sql/resolver/cmd/ob_help_resolver.cpp index 6f40dd5ab..86b9ad27b 100644 --- a/src/sql/resolver/cmd/ob_help_resolver.cpp +++ b/src/sql/resolver/cmd/ob_help_resolver.cpp @@ -197,7 +197,8 @@ int ObHelpResolver::search_topic(ObHelpStmt *help_stmt, help_stmt->add_row(row); } } - if (OB_FAIL(GET_COL_IGNORE_NULL(result->get_varchar, "name", col1))) { + if (OB_FAIL(ret)) { + } else if (OB_FAIL(GET_COL_IGNORE_NULL(result->get_varchar, "name", col1))) { SQL_REWRITE_LOG(WARN, "fail to get name column", K(ret), K(col1)); } else { cells[0].set_varchar(col1); diff --git a/src/sql/resolver/cmd/ob_set_transaction_resolver.cpp b/src/sql/resolver/cmd/ob_set_transaction_resolver.cpp index f1f5349bd..c17ec219d 100644 --- a/src/sql/resolver/cmd/ob_set_transaction_resolver.cpp +++ b/src/sql/resolver/cmd/ob_set_transaction_resolver.cpp @@ -137,8 +137,8 @@ int ObSetTransactionResolver::build_isolation_expr(ObRawExpr *&expr, int32_t lev } else if (level_name.empty()) { ret = OB_ERR_UNEXPECTED; LOG_WARN("isolation level is not invalid", K(ret), K(level)); - } else if (params_.expr_factory_->create_raw_expr(T_VARCHAR, c_expr)) { - LOG_WARN("fail to create raw expr"); + } else if (OB_FAIL(params_.expr_factory_->create_raw_expr(T_VARCHAR, c_expr))) { + LOG_WARN("fail to create raw expr", K(ret)); } else { // we use int type to represent isolation level, except for system variable tx_isolation, // which use varchar type, so we need cast int to varchar here. diff --git a/src/sql/resolver/dcl/ob_grant_resolver.cpp b/src/sql/resolver/dcl/ob_grant_resolver.cpp index 2ef5d5eeb..0a603b3c3 100644 --- a/src/sql/resolver/dcl/ob_grant_resolver.cpp +++ b/src/sql/resolver/dcl/ob_grant_resolver.cpp @@ -452,7 +452,8 @@ int ObGrantResolver::resolve_grant_sys_priv_to_ur( } ObSArray user_name_array; ObSArray host_name_array; - if (OB_FAIL(resolve_grantee_clause(grantee_clause, params_.session_info_, + if (OB_FAIL(ret)) { + } else if (OB_FAIL(resolve_grantee_clause(grantee_clause, params_.session_info_, user_name_array, host_name_array))){ LOG_WARN("resolve grantee_clause failed", K(ret)); } else { diff --git a/src/sql/resolver/dcl/ob_set_password_resolver.cpp b/src/sql/resolver/dcl/ob_set_password_resolver.cpp index e8d86171b..311a2c639 100644 --- a/src/sql/resolver/dcl/ob_set_password_resolver.cpp +++ b/src/sql/resolver/dcl/ob_set_password_resolver.cpp @@ -339,8 +339,8 @@ int ObSetPasswordResolver::resolve_oracle_password_strength(common::ObString &us OB_ISNULL(schema_checker_)) { ret = OB_INVALID_ARGUMENT; LOG_WARN("Session info or schema checker should not be NULL", K(ret)); - } else if (schema_checker_->get_user_info(session_info_->get_effective_tenant_id(), - user_name, hostname, user)) { + } else if (OB_FAIL(schema_checker_->get_user_info(session_info_->get_effective_tenant_id(), + user_name, hostname, user))) { LOG_WARN("fail to get user info", K(ret)); } else { int64_t profile_id = user->get_profile_id(); diff --git a/src/sql/resolver/ddl/ob_alter_table_resolver.cpp b/src/sql/resolver/ddl/ob_alter_table_resolver.cpp index 6bf3ce5f7..2ddb62f76 100644 --- a/src/sql/resolver/ddl/ob_alter_table_resolver.cpp +++ b/src/sql/resolver/ddl/ob_alter_table_resolver.cpp @@ -1626,6 +1626,7 @@ int ObAlterTableResolver::get_table_schema_for_check(ObTableSchema &table_schema ObAlterTableStmt *alter_table_stmt = get_alter_table_stmt(); const ObTableSchema *tbl_schema = NULL; if (OB_ISNULL(alter_table_stmt)) { + ret = OB_ERR_UNEXPECTED; SQL_RESV_LOG(WARN, "alter table stmt should not be null", K(ret)); } else if (OB_FAIL(schema_checker_->get_table_schema(session_info_->get_effective_tenant_id(), alter_table_stmt->get_org_database_name(), @@ -1688,7 +1689,8 @@ int ObAlterTableResolver::resolve_add_index(const ParseNode &node) } } ObAlterTableStmt *alter_table_stmt = get_alter_table_stmt(); - if (OB_ISNULL(alter_table_stmt)) { + if (OB_FAIL(ret)) { + } else if (OB_ISNULL(alter_table_stmt)) { ret = OB_ERR_UNEXPECTED; SQL_RESV_LOG(WARN, "alter table stmt should not be null", K(ret)); } else { diff --git a/src/sql/resolver/ddl/ob_create_dblink_resolver.cpp b/src/sql/resolver/ddl/ob_create_dblink_resolver.cpp index 2c9db041c..bb86e334d 100644 --- a/src/sql/resolver/ddl/ob_create_dblink_resolver.cpp +++ b/src/sql/resolver/ddl/ob_create_dblink_resolver.cpp @@ -285,7 +285,8 @@ int ObCreateDbLinkResolver::resolve_opt_reverse_link(const ParseNode *node, sql: ObString host_str; ObString ip_port, conn_str; ParseNode *host_node = NULL; - if (OB_ISNULL(reverse_link_node->children_[REVERSE_LINK_IP_PORT]) || OB_ISNULL(reverse_link_node->children_[REVERSE_LINK_IP_PORT]->children_) || OB_ISNULL(host_node = reverse_link_node->children_[REVERSE_LINK_IP_PORT]->children_[0])) { + if (OB_FAIL(ret)) { + } else if (OB_ISNULL(reverse_link_node->children_[REVERSE_LINK_IP_PORT]) || OB_ISNULL(reverse_link_node->children_[REVERSE_LINK_IP_PORT]->children_) || OB_ISNULL(host_node = reverse_link_node->children_[REVERSE_LINK_IP_PORT]->children_[0])) { ret = OB_ERR_UNEXPECTED; LOG_WARN("invalid parse tree", K(ret)); } else if (FALSE_IT(host_str.assign_ptr(host_node->str_value_, static_cast(host_node->str_len_)))) { diff --git a/src/sql/resolver/ddl/ob_create_profile_resolver.cpp b/src/sql/resolver/ddl/ob_create_profile_resolver.cpp index 4cce3a95d..2637b9f33 100644 --- a/src/sql/resolver/ddl/ob_create_profile_resolver.cpp +++ b/src/sql/resolver/ddl/ob_create_profile_resolver.cpp @@ -307,6 +307,7 @@ int ObUserProfileResolver::resolver_password_verify_function(const ParseNode *no "actual_num", node->num_child_, K(ret)); } else if (OB_ISNULL(node->children_[0])) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("node is null", K(ret)); } else { LOG_DEBUG("check node type", K(node->type_)); diff --git a/src/sql/resolver/ddl/ob_create_view_resolver.cpp b/src/sql/resolver/ddl/ob_create_view_resolver.cpp index 348ffac28..d57a03d29 100644 --- a/src/sql/resolver/ddl/ob_create_view_resolver.cpp +++ b/src/sql/resolver/ddl/ob_create_view_resolver.cpp @@ -752,7 +752,7 @@ int ObCreateViewResolver::get_sel_priv_tables_in_subquery(const ObSelectStmt *se if (OB_ISNULL(child_stmts.at(i))) { ret = OB_ERR_UNEXPECTED; LOG_WARN("child stmt is NULL", K(ret)); - } else if (SMART_CALL(get_sel_priv_tables_in_subquery(child_stmts.at(i), select_tables))) { + } else if (OB_FAIL(SMART_CALL(get_sel_priv_tables_in_subquery(child_stmts.at(i), select_tables)))) { LOG_WARN("failed to get need privs in child stmt", K(ret)); } } @@ -818,7 +818,7 @@ int ObCreateViewResolver::get_need_priv_tables(ObSelectStmt &root_stmt, if (OB_ISNULL(child_stmts.at(i))) { ret = OB_ERR_UNEXPECTED; LOG_WARN("child stmt is NULL", K(ret)); - } else if (SMART_CALL(get_sel_priv_tables_in_subquery(child_stmts.at(i), select_tables))) { + } else if (OB_FAIL(SMART_CALL(get_sel_priv_tables_in_subquery(child_stmts.at(i), select_tables)))) { LOG_WARN("failed to get need privs in child stmt", K(ret)); } } diff --git a/src/sql/resolver/ddl/ob_ddl_resolver.cpp b/src/sql/resolver/ddl/ob_ddl_resolver.cpp index 513649154..dc4d615f4 100644 --- a/src/sql/resolver/ddl/ob_ddl_resolver.cpp +++ b/src/sql/resolver/ddl/ob_ddl_resolver.cpp @@ -4788,7 +4788,7 @@ int ObDDLResolver::cast_default_value(ObObj &default_value, if (OB_ISNULL(cast_ctx.allocator_v2_)) { ret = OB_ERR_UNEXPECTED; LOG_WARN("allocator is null", K(ret)); - } else if (wide::from_number(nmb, *cast_ctx.allocator_v2_, scale, decint, int_bytes)) { + } else if (OB_FAIL(wide::from_number(nmb, *cast_ctx.allocator_v2_, scale, decint, int_bytes))) { LOG_WARN("fail to cast number to deciaml int", K(ret)); } else { default_value.set_decimal_int(int_bytes, scale, decint); @@ -8045,6 +8045,7 @@ int ObDDLResolver::check_is_json_contraint(ObTableSchema &t_table_schema, ObIArr ParseNode *cur_node = cst_check_expr_node->children_[0]->children_[0]; ObString col_str(cur_node->str_len_, cur_node->str_value_); if (OB_ISNULL(column_schema = t_table_schema.get_column_schema(col_str))) { + // ignore ret LOG_WARN("get column schema fail", K(ret)); } else { col_id = column_schema->get_column_id(); diff --git a/src/sql/resolver/dml/ob_default_value_utils.cpp b/src/sql/resolver/dml/ob_default_value_utils.cpp index 316208066..eb8cc3d0f 100644 --- a/src/sql/resolver/dml/ob_default_value_utils.cpp +++ b/src/sql/resolver/dml/ob_default_value_utils.cpp @@ -604,6 +604,7 @@ int ObDefaultValueUtils::get_default_type_for_default_function_static( { int ret = OB_SUCCESS; if (OB_ISNULL(column_schema)) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("invalid argument", K(column_schema)); } else if (column_schema->is_autoincrement()) { op = OB_NOT_STRICT_DEFAULT_OP; diff --git a/src/sql/resolver/dml/ob_del_upd_resolver.cpp b/src/sql/resolver/dml/ob_del_upd_resolver.cpp index bf22c9698..a7390ea68 100644 --- a/src/sql/resolver/dml/ob_del_upd_resolver.cpp +++ b/src/sql/resolver/dml/ob_del_upd_resolver.cpp @@ -3806,6 +3806,7 @@ int ObDelUpdResolver::check_heap_table_update(ObTableAssignment &tas) ret = OB_ERR_UNEXPECTED; LOG_WARN("params_.session_info_ is null", K(ret)); } else if (OB_ISNULL(table = stmt->get_table_item_by_id(tas.table_id_))) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("fail to get table_item", K(ret), K(tas)); } else if (OB_FAIL(schema_checker_->get_table_schema(params_.session_info_->get_effective_tenant_id(), table->get_base_table_item().ref_id_, @@ -4100,9 +4101,9 @@ int ObDelUpdResolver::add_select_items(ObSelectStmt &select_stmt, const ObIArray LOG_WARN("expr factory is null", K(ret)); } else if (!select_stmt.is_set_stmt()) { ObRawExprCopier copier(*params_.expr_factory_); - if (deep_copy_stmt_objects(copier, + if (OB_FAIL(deep_copy_stmt_objects(copier, select_items, - select_stmt.get_select_items())) { + select_stmt.get_select_items()))) { LOG_WARN("failed to deep copy stmt objects", K(ret)); } } else { diff --git a/src/sql/resolver/dml/ob_dml_resolver.cpp b/src/sql/resolver/dml/ob_dml_resolver.cpp index 779d82160..814798a73 100755 --- a/src/sql/resolver/dml/ob_dml_resolver.cpp +++ b/src/sql/resolver/dml/ob_dml_resolver.cpp @@ -6165,6 +6165,7 @@ int ObDMLResolver::resolve_columns_for_fk_partition_expr(ObRawExpr *&expr, } else { ColumnItem *column_item = NULL; if (OB_ISNULL(child_col_name)) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("failed to get column name of foreign key column", K(ret), K(q_name.col_name_)); } else if (OB_FAIL(resolve_basic_column_item(table_item, child_col_name, parent_table_schema.is_oracle_tmp_table(), column_item))) { LOG_WARN("resolve basic column item failed", K(i), K(q_name), K(ret)); @@ -7178,7 +7179,7 @@ int ObDMLResolver::resolve_order_item(const ParseNode &sort_node, OrderItem &ord { int ret = OB_SUCCESS; ObRawExpr *expr; - if (ObResolverUtils::set_direction_by_mode(sort_node, order_item)) { + if (OB_FAIL(ObResolverUtils::set_direction_by_mode(sort_node, order_item))) { LOG_WARN("failed to set direction by mode", K(ret)); } if (OB_FAIL(ret)) { @@ -8292,7 +8293,7 @@ int ObDMLResolver::resolve_generated_column_expr(const ObString &expr_str, //do nothing } else if (OB_FAIL(local_vars.assign(column_schema->get_local_session_var()))) { LOG_WARN("assign local vars failed", K(ret)); - } else if (local_vars.remove_vars_same_with_session(session_info)) { + } else if (OB_FAIL(local_vars.remove_vars_same_with_session(session_info))) { LOG_WARN("remove vars same with session failed", K(ret)); } else if (0 == local_vars.get_var_count()) { //do nothing if all local vars are same with cur session vars @@ -11921,7 +11922,7 @@ int ObDMLResolver::get_target_sql_for_unpivot(const ObIArray &column LOG_WARN("fail to append_fmt", K(column_name), K(ret)); } } - if (OB_FAIL(sql.append(")"))) { + if (OB_SUCC(ret) && OB_FAIL(sql.append(")"))) { LOG_WARN("fail to append", K(ret)); } } @@ -12102,7 +12103,7 @@ int ObDMLResolver::generate_check_constraint_exprs(const TableItem *table_item, (*iter)->is_no_validate() && (!resolve_check_for_optimizer || !(*iter)->get_rely_flag())) { continue; - } else if (ob_write_string(*params_.allocator_, (*iter)->get_check_expr_str(), constraint_str)) { + } else if (OB_FAIL(ob_write_string(*params_.allocator_, (*iter)->get_check_expr_str(), constraint_str))) { LOG_WARN("failed to write string", K(ret)); } else if (OB_FAIL(ObSQLUtils::convert_sql_text_from_schema_for_resolve( *params_.allocator_, params_.session_info_->get_dtc_params(), constraint_str))) { @@ -12456,6 +12457,7 @@ int ObDMLResolver::check_oracle_outer_join_expr_validity(const ObRawExpr *expr, ObArray tmp_left_tables; ObArray tmp_right_tables; if (OB_ISNULL(expr)) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("unexpect null pointer", K(ret)); } else if (OB_FAIL(extract_column_with_outer_join_symbol(expr, tmp_left_tables, tmp_right_tables))) { LOG_WARN("fail to extract_column_with_outer_join_symbol", K(ret)); @@ -12996,6 +12998,7 @@ int ObDMLResolver::fill_same_column_to_using(JoinedTable* &joined_table) ObSEArray right_column_names; ResolverJoinInfo *join_info = NULL; if (OB_ISNULL(joined_table)) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("NULL joined table", K(ret)); } else if (OB_FAIL(get_columns_from_table_item(joined_table->left_table_, left_column_names))) { LOG_WARN("failed to get left column names", K(ret)); @@ -16188,8 +16191,10 @@ int ObDMLResolver::resolve_cte_table( ObDMLStmt *dml_stmt = get_stmt(); if (OB_ISNULL(CTE_table_item) || OB_ISNULL(dml_stmt) || OB_ISNULL(allocator_)) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("param is null"); } else if (OB_ISNULL(node = CTE_table_item->node_)) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("CTE table's parser node can not be NULL"); } else if (is_oracle_mode() && OB_NOT_NULL(part_node)) { ret = OB_ERR_PARTITION_EXTENDED_ON_VIEW; @@ -17893,7 +17898,7 @@ int ObDMLResolver::add_udt_dependency(const pl::ObUserDefinedType &udt_type) } else if (OB_ISNULL(user_type)) { ret = OB_ERR_UNEXPECTED; LOG_WARN("user type is null", K(ret), KPC(element_type)); - } else if (SMART_CALL(add_udt_dependency(*user_type))) { + } else if (OB_FAIL(SMART_CALL(add_udt_dependency(*user_type)))) { LOG_WARN("failed to add udt depenency", K(ret), KPC(user_type)); } } diff --git a/src/sql/resolver/dml/ob_group_by_checker.cpp b/src/sql/resolver/dml/ob_group_by_checker.cpp index c2d8b801b..d5506936c 100644 --- a/src/sql/resolver/dml/ob_group_by_checker.cpp +++ b/src/sql/resolver/dml/ob_group_by_checker.cpp @@ -250,7 +250,8 @@ int ObGroupByChecker::check_group_by(const ParamStore *param_store, } } } - if (OB_FAIL(append(all_rollup_exprs, ref_stmt->get_rollup_exprs()))) { + if (OB_FAIL(ret)) { + } else if (OB_FAIL(append(all_rollup_exprs, ref_stmt->get_rollup_exprs()))) { LOG_WARN("failed to expr", K(ret)); } for (int64_t i = 0; OB_SUCC(ret) && i < ref_stmt->get_rollup_items_size(); ++i) { diff --git a/src/sql/resolver/dml/ob_hint.cpp b/src/sql/resolver/dml/ob_hint.cpp index c569c2fbe..74fc36afc 100644 --- a/src/sql/resolver/dml/ob_hint.cpp +++ b/src/sql/resolver/dml/ob_hint.cpp @@ -1463,6 +1463,7 @@ bool QbNameList::is_subset(const ObIArray &stmts) const for (int j = 0; !find && j < stmts.count(); j ++) { int ret = OB_SUCCESS; if (OB_ISNULL(stmts.at(j))) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("unexpected null stmt"); } else if (OB_FAIL(stmts.at(j)->get_qb_name(stmt_qb_name))) { LOG_WARN("failed to get qb name"); @@ -1759,7 +1760,7 @@ int ObMaterializeHint::print_hint_desc(PlanText &plan_text) const } } } - if (OB_FAIL(BUF_PRINTF(")"))) { + if (OB_SUCC(ret) && OB_FAIL(BUF_PRINTF(")"))) { LOG_WARN("fail to print materialize hint", K(ret)); } } @@ -1880,7 +1881,7 @@ int ObCoalesceSqHint::print_hint_desc(PlanText &plan_text) const } } } - if (OB_FAIL(BUF_PRINTF(")"))) { + if (OB_SUCC(ret) && OB_FAIL(BUF_PRINTF(")"))) { LOG_WARN("fail to print coalesce sq hint", K(ret)); } } @@ -2815,7 +2816,7 @@ int ObWindowDistHint::add_win_dist_option(const ObIArray &win_func_idxs win_dist_option.is_push_down_ = is_push_down; win_dist_option.use_hash_sort_ = use_hash_sort; win_dist_option.use_topn_sort_ = use_topn_sort; - if (win_dist_option.win_func_idxs_.assign(win_func_idxs)) { + if (OB_FAIL(win_dist_option.win_func_idxs_.assign(win_func_idxs))) { LOG_WARN("failed to add win dist option", K(ret)); } } @@ -2834,7 +2835,7 @@ int ObWindowDistHint::WinDistOption::print_win_dist_option(PlanText &plan_text) } else if (win_func_idxs_.empty()) { /* do nothing */ } else if (OB_FAIL(BUF_PRINTF(" (%ld", win_func_idxs_.at(0)))) { - LOG_WARN("fail to print win func idx", K(ret), K(win_func_idxs_)); + LOG_WARN("fail to print win func idx", K(ret), K(win_func_idxs_)); } else { for (int64_t i = 1; OB_SUCC(ret) && i < win_func_idxs_.count(); ++i) { if (OB_FAIL(BUF_PRINTF(",%ld", win_func_idxs_.at(i)))) { diff --git a/src/sql/resolver/dml/ob_insert_resolver.cpp b/src/sql/resolver/dml/ob_insert_resolver.cpp index 2d645c7ee..21af45ceb 100644 --- a/src/sql/resolver/dml/ob_insert_resolver.cpp +++ b/src/sql/resolver/dml/ob_insert_resolver.cpp @@ -119,6 +119,7 @@ int ObInsertResolver::resolve(const ParseNode &parse_tree) && GCONF._ob_enable_direct_load) { ObQueryCtx *query_ctx = insert_stmt->get_query_ctx(); if (OB_ISNULL(query_ctx)) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("query ctx should not be NULL", KR(ret), KP(query_ctx)); } else if (query_ctx->get_query_hint().get_global_hint().has_direct_load()) { // For insert into select clause with direct-insert mode, plan cache is disabled @@ -1073,6 +1074,7 @@ int ObInsertResolver::replace_column_to_default(ObRawExpr *&origin) ObDefaultValueUtils utils(insert_stmt, ¶ms_, static_cast(this)); if (OB_ISNULL(column_item = insert_stmt->get_column_item_by_id( insert_stmt->get_insert_table_info().table_id_, b_expr->get_column_id()))) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("fail to get column item", K(ret)); } else if (OB_FAIL(insert_stmt->get_insert_table_info().column_in_values_vector_.push_back(column_item->expr_))) { LOG_WARN("fail to push back column expr", K(ret)); diff --git a/src/sql/resolver/dml/ob_select_resolver.cpp b/src/sql/resolver/dml/ob_select_resolver.cpp index 8d178bb48..ca966121d 100644 --- a/src/sql/resolver/dml/ob_select_resolver.cpp +++ b/src/sql/resolver/dml/ob_select_resolver.cpp @@ -1045,7 +1045,7 @@ int ObSelectResolver::check_and_mark_aggr_in_having_scope(ObSelectStmt *select_s if (OB_ISNULL(expr)) { ret = OB_ERR_UNEXPECTED; LOG_WARN("expr is NULL ptr", K(ret)); - } else if (ObTransformUtils::extract_aggr_expr(expr, aggrs)) { + } else if (OB_FAIL(ObTransformUtils::extract_aggr_expr(expr, aggrs))) { LOG_WARN("failed to extrace aggr expr", K(ret)); } else { // having aggr must in inner stmt @@ -3514,6 +3514,7 @@ int ObSelectResolver::resolve_cycle_pseudo(const ParseNode *cycle_set_clause, ObRawExpr *expr_d_v = nullptr; //for pseudo column if (OB_ISNULL(cycle_set_clause)) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("cycle clause must have set pseudo column", K(ret)); } else if (OB_FAIL(resolve_and_split_sql_expr(*cycle_set_clause, r_union_stmt->get_cte_exprs()))) { @@ -3970,7 +3971,7 @@ int ObSelectResolver::gen_unpivot_target_column(const int64_t table_count, if (OB_ISNULL(first_select_item.expr_)) { ret = OB_ERR_UNEXPECTED; LOG_WARN("expr is null", K(ret), K(first_select_item.expr_)); - } else if (types.push_back(first_select_item.expr_->get_result_type())) { + } else if (OB_FAIL(types.push_back(first_select_item.expr_->get_result_type()))) { LOG_WARN("fail to push left_type", K(ret)); } while (OB_SUCC(ret) && item_idx < select_item_count) { @@ -7251,7 +7252,7 @@ int ObSelectResolver::check_listagg_aggr_param_valid(ObAggFunRawExpr *aggr_expr) LOG_WARN("argument is should be a const expr", K(ret), KPC(aggr_expr)); } else if (OB_FAIL(check_separator_exprs.push_back(aggr_expr->get_real_param_exprs().at(aggr_expr->get_real_param_count() - 1)))) { LOG_WARN("failed to push back", K(ret)); - } else if (get_select_stmt()->get_all_group_by_exprs(all_group_by_exprs)) { + } else if (OB_FAIL(get_select_stmt()->get_all_group_by_exprs(all_group_by_exprs))) { LOG_WARN("failed to get all group by exprs", K(ret)); } else if (OB_FAIL(ObGroupByChecker::check_by_expr(params_.param_list_, get_select_stmt(), diff --git a/src/sql/resolver/dml/ob_sql_hint.cpp b/src/sql/resolver/dml/ob_sql_hint.cpp index 124513395..04177d535 100644 --- a/src/sql/resolver/dml/ob_sql_hint.cpp +++ b/src/sql/resolver/dml/ob_sql_hint.cpp @@ -1670,7 +1670,7 @@ int ObLogPlanHint::add_join_hint(const ObDMLStmt &stmt, if (OB_ISNULL(log_join_hint = join_hints_.alloc_place_holder())) { ret = OB_ALLOCATE_MEMORY_FAILED; LOG_ERROR("Allocate log join hint from array error", K(ret)); - } else if (log_join_hint->join_tables_.add_members(join_tables)) { + } else if (OB_FAIL(log_join_hint->join_tables_.add_members(join_tables))) { LOG_WARN("failed to add members", K(ret)); } } diff --git a/src/sql/resolver/dml/ob_view_table_resolver.cpp b/src/sql/resolver/dml/ob_view_table_resolver.cpp index 03079939e..4f4e37e4a 100644 --- a/src/sql/resolver/dml/ob_view_table_resolver.cpp +++ b/src/sql/resolver/dml/ob_view_table_resolver.cpp @@ -259,12 +259,12 @@ int ObViewTableResolver::resolve_subquery_info(const ObIArray &s subquery_resolver.set_current_view_item(current_view_item); set_query_ref_exec_params(info.ref_expr_ == NULL ? NULL : &info.ref_expr_->get_exec_params()); if (OB_FAIL(add_cte_table_to_children(subquery_resolver))) { - LOG_WARN("add CTE table to children failed", K(ret)); + LOG_WARN("add CTE table to children failed", K(ret)); } else if (is_only_full_group_by_on(session_info_->get_sql_mode())) { subquery_resolver.set_parent_aggr_level(info.parents_expr_info_.has_member(IS_AGG) ? current_level_ : parent_aggr_level_); } - if (OB_FAIL(do_resolve_subquery_info(info, subquery_resolver))) { + if (OB_SUCC(ret) && OB_FAIL(do_resolve_subquery_info(info, subquery_resolver))) { LOG_WARN("do resolve subquery info failed", K(ret)); } set_query_ref_exec_params(NULL); diff --git a/src/sql/resolver/expr/ob_raw_expr_print_visitor.cpp b/src/sql/resolver/expr/ob_raw_expr_print_visitor.cpp index 9fbc0a11f..52f4e07dc 100644 --- a/src/sql/resolver/expr/ob_raw_expr_print_visitor.cpp +++ b/src/sql/resolver/expr/ob_raw_expr_print_visitor.cpp @@ -58,7 +58,7 @@ int ObRawExprPrintVisitor::visit(ObExecParamRawExpr &expr) if (OB_ISNULL(expr.get_ref_expr())) { ret = OB_ERR_UNEXPECTED; LOG_WARN("ref expr is null", K(ret)); - } else if (expr.get_ref_expr()->preorder_accept(*this)) { + } else if (OB_FAIL(expr.get_ref_expr()->preorder_accept(*this))) { LOG_WARN("failed to visit ref expr", K(ret)); } return ret; diff --git a/src/sql/resolver/expr/ob_raw_expr_util.cpp b/src/sql/resolver/expr/ob_raw_expr_util.cpp index 3a5077806..27ef724b2 100644 --- a/src/sql/resolver/expr/ob_raw_expr_util.cpp +++ b/src/sql/resolver/expr/ob_raw_expr_util.cpp @@ -1436,6 +1436,7 @@ int ObRawExprUtils::make_raw_expr_from_str(const char *expr_str, if (OB_SUCC(ret)) { parsed_expr = select_expr->children_[0]; if (OB_ISNULL(parsed_expr)) { + ret = OB_ERR_UNEXPECTED; LOG_ERROR("internal arg is not correct", KP(parsed_expr)); } } @@ -3386,6 +3387,7 @@ int ObRawExprUtils::replace_all_ref_column(ObRawExpr *&raw_expr, const common::O ret = OB_INVALID_ARGUMENT; LOG_WARN("invalid argument", K(raw_expr)); } else if (offset >= exprs.count()) { + ret = OB_INVALID_ARGUMENT; LOG_WARN("beyond the index", K(offset), K(exprs.count())); }else if (T_REF_COLUMN == raw_expr->get_expr_type()) { LOG_DEBUG("replace leaf node", K(*raw_expr), K(*exprs.at(offset)), K(offset)); @@ -5339,10 +5341,11 @@ int ObRawExprUtils::build_column_conv_expr(const ObSQLSessionInfo *session_info, ret = OB_ALLOCATE_MEMORY_FAILED; LOG_ERROR("allocate expr operator failed", K(ret)); } else if (OB_ISNULL(column_conv = static_cast(op))) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("fail to cast ObExprOperator* to ObExprColumnConv*", K(ret)); } else if (OB_FAIL(column_conv->shallow_copy_str_values(*type_infos))) { LOG_WARN("fail to shallow_copy_str_values", K(ret)); - } else if (f_expr->set_enum_set_values(*type_infos)) { + } else if (OB_FAIL(f_expr->set_enum_set_values(*type_infos))) { LOG_WARN("fail to set_enum_set_values", K(ret)); } else {/*success*/} } @@ -5986,7 +5989,7 @@ int ObRawExprUtils::build_trim_expr(const ObColumnSchemaV2 *column_schema, LOG_WARN("fail to store expr", K(ret)); } else if (OB_FAIL(build_const_int_expr(expr_factory, ObIntType, trim_type, type_expr))) { LOG_WARN("fail to build type expr", K(ret)); - } else if (trim_expr->add_param_expr(type_expr)) { + } else if (OB_FAIL(trim_expr->add_param_expr(type_expr))) { LOG_WARN("fail to add param expr", K(ret), K(*type_expr)); } else if (OB_FAIL(build_const_string_expr(expr_factory, ObCharType, padding_char, padding_char_cs_type, @@ -5995,9 +5998,9 @@ int ObRawExprUtils::build_trim_expr(const ObColumnSchemaV2 *column_schema, } else if (FALSE_IT(static_cast(pattem_expr)->get_value().set_collation_level( CS_LEVEL_IMPLICIT))) { LOG_WARN("fail to set collation type", K(ret)); - } else if (trim_expr->add_param_expr(pattem_expr)) { + } else if (OB_FAIL(trim_expr->add_param_expr(pattem_expr))) { LOG_WARN("fail to add param expr", K(ret)); - } else if (trim_expr->add_param_expr(expr)) { + } else if (OB_FAIL(trim_expr->add_param_expr(expr))) { LOG_WARN("fail to add param expr", K(ret), K(*expr)); } else { trim_expr->set_data_type(ObCharType); @@ -8560,6 +8563,7 @@ int ObRawExprUtils::build_not_expr(ObRawExprFactory &expr_factory, int ret = OB_SUCCESS; ObOpRawExpr *new_expr = NULL; if (OB_ISNULL(expr)) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("expr has null", K(ret)); } else if (OB_FAIL(expr_factory.create_raw_expr(T_OP_NOT, new_expr))) { LOG_WARN("failed to create a new expr", K(ret)); diff --git a/src/sql/resolver/ob_resolver_utils.cpp b/src/sql/resolver/ob_resolver_utils.cpp index efe0b9865..f4dfcf431 100644 --- a/src/sql/resolver/ob_resolver_utils.cpp +++ b/src/sql/resolver/ob_resolver_utils.cpp @@ -7451,6 +7451,7 @@ int ObResolverUtils::resolve_external_symbol(common::ObIAllocator &allocator, ret = OB_ERR_SP_UNDECLARED_VAR; LOG_WARN("exec context is NULL", K(ret)); if (q_name.access_idents_.count() >= 0) { + ret = OB_ERR_SP_UNDECLARED_VAR; LOG_USER_ERROR(OB_ERR_SP_UNDECLARED_VAR, q_name.access_idents_.at(0).access_name_.length(), q_name.access_idents_.at(0).access_name_.ptr()); diff --git a/src/sql/resolver/ob_schema_checker.cpp b/src/sql/resolver/ob_schema_checker.cpp index 91bf6b00e..0d602c285 100644 --- a/src/sql/resolver/ob_schema_checker.cpp +++ b/src/sql/resolver/ob_schema_checker.cpp @@ -1458,7 +1458,7 @@ int ObSchemaChecker::get_trigger_info(const uint64_t tenant_id, LOG_WARN("schema checker is not inited", K_(is_inited)); } else if (OB_FAIL(get_database_id(tenant_id, database_name, db_id))) { LOG_WARN("get database id failed", K(ret), K(tenant_id), K(database_name), K(tg_name)); - } else if (schema_mgr_->get_trigger_info(tenant_id, db_id, tg_name, tg_info)) { + } else if (OB_FAIL(schema_mgr_->get_trigger_info(tenant_id, db_id, tg_name, tg_info))) { LOG_WARN("get trigger info failed", K(ret), K(tenant_id), K(database_name), K(tg_name)); } return ret; diff --git a/src/sql/resolver/ob_stmt_resolver.h b/src/sql/resolver/ob_stmt_resolver.h index 52b636c67..f60a7e51a 100644 --- a/src/sql/resolver/ob_stmt_resolver.h +++ b/src/sql/resolver/ob_stmt_resolver.h @@ -114,8 +114,10 @@ public: int ret = common::OB_SUCCESS; T *stmt = NULL; if (OB_ISNULL(params_.stmt_factory_)) { + ret = OB_ERR_UNEXPECTED; SQL_RESV_LOG(ERROR, "stmt_factory_ is null, not be init"); } else if (OB_ISNULL(params_.stmt_factory_->get_query_ctx())) { + ret = OB_ERR_UNEXPECTED; SQL_RESV_LOG(WARN, "query ctx is null", K(ret)); } else if (OB_FAIL(params_.stmt_factory_->create_stmt(stmt))) { SQL_RESV_LOG(WARN, "create stmt failed", K(ret)); diff --git a/src/sql/rewrite/ob_transform_const_propagate.cpp b/src/sql/rewrite/ob_transform_const_propagate.cpp index 8be372715..3dde8154e 100644 --- a/src/sql/rewrite/ob_transform_const_propagate.cpp +++ b/src/sql/rewrite/ob_transform_const_propagate.cpp @@ -1276,7 +1276,7 @@ int ObTransformConstPropagate::remove_const_exec_param_exprs(ObDMLStmt *stmt, LOG_WARN("failed to remove const exec param", K(ret)); } else if (!is_happened) { // do nothing - } else if (expr->formalize(ctx_->session_info_)) { + } else if (OB_FAIL(expr->formalize(ctx_->session_info_))) { LOG_WARN("failed to formalize expr", K(ret)); } else if (OB_FAIL(expr_ptr.set(expr))) { LOG_WARN("failed to update expr", K(ret)); diff --git a/src/sql/rewrite/ob_transform_groupby_pushdown.cpp b/src/sql/rewrite/ob_transform_groupby_pushdown.cpp index c9e1631df..5647cf75c 100644 --- a/src/sql/rewrite/ob_transform_groupby_pushdown.cpp +++ b/src/sql/rewrite/ob_transform_groupby_pushdown.cpp @@ -1449,6 +1449,7 @@ int ObTransformGroupByPushdown::get_count_star(ObDMLStmt &stmt, LOG_WARN("last select expr is not count(*)", K(ret)); } else if (OB_ISNULL(col_expr = stmt.get_column_expr_by_id( table_item->table_id_, OB_APP_MIN_COLUMN_ID + N))) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("failed to get column expr", K(*table_item)); } else if (!is_outer_join_table) { count_column = col_expr; diff --git a/src/sql/rewrite/ob_transform_join_elimination.cpp b/src/sql/rewrite/ob_transform_join_elimination.cpp index 16d4f751f..ade5b06d6 100644 --- a/src/sql/rewrite/ob_transform_join_elimination.cpp +++ b/src/sql/rewrite/ob_transform_join_elimination.cpp @@ -133,7 +133,7 @@ int ObTransformJoinElimination::eliminate_join_in_from_base_table(ObDMLStmt *stm if (OB_ISNULL(stmt)) { ret = OB_ERR_UNEXPECTED; LOG_WARN("get unexpected null", K(stmt), K(ctx_), K(ret)); - } else if (stmt->get_equal_set_conditions(conds, true)) { + } else if (OB_FAIL(stmt->get_equal_set_conditions(conds, true))) { LOG_WARN("failed to get equal set conditions", K(ret)); } else if (OB_FAIL(extract_candi_table(stmt, stmt->get_from_items(), candi_tables, child_candi_tables))) { @@ -1942,13 +1942,15 @@ int ObTransformJoinElimination::eliminate_semi_right_child_table(ObDMLStmt *stmt /* do nothing */ } else if (OB_FAIL(removed_idxs.add_member(i))) { LOG_WARN("failed to add member", K(ret)); - } else if (OB_ISNULL(col = stmt->get_column_expr_by_id(semi_right_table->table_id_, - i + OB_APP_MIN_COLUMN_ID))) { - LOG_WARN("failed to get column expr by id", K(ret)); - } else if (OB_FAIL(pullup_column_exprs.push_back(col))) { - LOG_WARN("failed to push back column expr", K(ret)); - } else if (OB_FAIL(pullup_select_exprs.push_back(expr))) { - LOG_WARN("failed to push back", K(ret)); + } else { + col = stmt->get_column_expr_by_id(semi_right_table->table_id_, + i + OB_APP_MIN_COLUMN_ID); + if (NULL == col) { + } else if (OB_FAIL(pullup_column_exprs.push_back(col))) { + LOG_WARN("failed to push back column expr", K(ret)); + } else if (OB_FAIL(pullup_select_exprs.push_back(expr))) { + LOG_WARN("failed to push back", K(ret)); + } } } if (OB_FAIL(ret)) { @@ -2469,6 +2471,7 @@ int ObTransformJoinElimination::check_transform_validity_semi_self_key(ObDMLStmt if (item.is_joined_ || target_stmt->is_semi_left_table(item.table_id_)) { /* do nothing */ } else if (OB_ISNULL(right_table = target_stmt->get_table_item_by_id(item.table_id_))) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("get unexcepted null", K(ret), K(right_table)); } else if (OB_FAIL(check_hint_valid(*stmt, *right_table, is_hint_valid))) { LOG_WARN("failed to check hint valid", K(ret)); @@ -2862,9 +2865,9 @@ int ObTransformJoinElimination::trans_semi_condition_exprs(ObDMLStmt *stmt, LOG_WARN("param has null", K(stmt), K(ctx_), K(ret)); } else if (semi_info->is_semi_join()) { ret = append(stmt->get_condition_exprs(), semi_info->semi_conditions_); - } else if (stmt->get_table_rel_ids(semi_info->left_table_ids_, left_rel_ids)) { + } else if (OB_FAIL(stmt->get_table_rel_ids(semi_info->left_table_ids_, left_rel_ids))) { LOG_WARN("failed to get table rel ids", K(ret)); - } else if (stmt->get_table_rel_ids(semi_info->right_table_id_, right_rel_ids)) { + } else if (OB_FAIL(stmt->get_table_rel_ids(semi_info->right_table_id_, right_rel_ids))) { LOG_WARN("failed to get table rel ids", K(ret)); } else { const int64_t count = semi_info->semi_conditions_.count(); diff --git a/src/sql/rewrite/ob_transform_or_expansion.cpp b/src/sql/rewrite/ob_transform_or_expansion.cpp index 707847113..58fc6307e 100644 --- a/src/sql/rewrite/ob_transform_or_expansion.cpp +++ b/src/sql/rewrite/ob_transform_or_expansion.cpp @@ -753,6 +753,7 @@ int ObTransformOrExpansion::add_select_item_to_ref_query(ObSelectStmt *stmt, left_unique_exprs))) { LOG_WARN("faield to get table rel ids", K(ret), K(*right_table)); } else if (OB_ISNULL(flag_table = stmt->get_table_item_by_id(flag_table_id))) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("faield to get table item", K(ret), K(flag_table), K(flag_table_id)); } else if (flag_table->is_generated_table() || flag_table->is_temp_table()) { // add const to generate table select @@ -844,6 +845,7 @@ int ObTransformOrExpansion::recover_flag_temp_table(ObSelectStmt *stmt, ret = OB_ERR_UNEXPECTED; LOG_WARN("unexpect null", K(ret), K(stmt)); } else if (OB_ISNULL(flag_table = stmt->get_table_item_by_id(flag_table_id))) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("faield to get table item", K(ret), K(flag_table), K(flag_table_id)); } else if (!flag_table->is_temp_table()) { // do nothing @@ -1251,15 +1253,10 @@ int ObTransformOrExpansion::convert_expect_ordering(ObDMLStmt *orig_stmt, ret = OB_ERR_UNEXPECTED; LOG_WARN("get unexpected expr", K(ret), K(expr)); } else if (OB_FALSE_IT(col = static_cast(expr))) { - } else if (OB_FAIL(orig_stmt->get_table_item_idx(col->get_table_id(), idx))) { - LOG_WARN("failed to get table item idx", K(ret), K(idx), K(table_size)); - } else if (OB_UNLIKELY(idx < 0 || idx > table_size) - || OB_ISNULL(table = spj_stmt->get_table_item(idx))) { - ret = OB_ERR_UNEXPECTED; - LOG_WARN("get unexpected idx", K(ret), K(idx), K(table_size), K(table)); - } else if (OB_ISNULL(spj_col = spj_stmt->get_column_expr_by_id(table->table_id_, + } else if (OB_ISNULL(spj_col = spj_stmt->get_column_expr_by_id(col->get_table_id(), col->get_column_id()))) { - LOG_WARN("failed to get column expr by id", K(ret), K(spj_col)); + ret = OB_ERR_UNEXPECTED; + LOG_WARN("failed to get column expr by id", K(ret), K(col->get_table_id()), K(col->get_column_id())); } else if (OB_FAIL(spj_expect_ordering.push_back(spj_col))) { LOG_WARN("failed to push back exprs", K(ret), K(spj_col)); } diff --git a/src/sql/rewrite/ob_transform_pre_process.cpp b/src/sql/rewrite/ob_transform_pre_process.cpp index d6f3be985..4332ee1bd 100644 --- a/src/sql/rewrite/ob_transform_pre_process.cpp +++ b/src/sql/rewrite/ob_transform_pre_process.cpp @@ -1502,6 +1502,7 @@ int ObTransformPreProcess::create_groupby_substmt(const ObIArray &or stmt_copy))) { LOG_WARN("failed to deep copy from stmt.", K(ret)); } else if (OB_ISNULL(sub_stmt = static_cast(stmt_copy))) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("failed. get unexpected NULL", K(ret)); } else if (OB_FAIL(origin_stmt.get_relation_exprs(origin_exprs, origin_visitor))) { LOG_WARN("failed to get relation exprs on origin stmt", K(ret)); @@ -7781,9 +7782,9 @@ int ObTransformPreProcess::recursive_generate_rowid_select_item(ObSelectStmt *se // ignore create rowid item. } else if (OB_FAIL(create_rowid_item_for_stmt(select_stmt, table_item, rowid_expr))) { LOG_WARN("create rowid item for stmt failed", K(ret)); - } else if (ObTransformUtils::create_select_item(*(ctx_->allocator_), - rowid_expr, - select_stmt)) { + } else if (OB_FAIL(ObTransformUtils::create_select_item(*(ctx_->allocator_), + rowid_expr, + select_stmt))) { LOG_WARN("failed to create select item", K(ret)); } else {/*do nothing*/} } else if (OB_FAIL(build_rowid_expr(select_stmt, table_item, rowid_func_expr))) { diff --git a/src/sql/rewrite/ob_transform_semi_to_inner.cpp b/src/sql/rewrite/ob_transform_semi_to_inner.cpp index bb60e0783..1b7b946ca 100644 --- a/src/sql/rewrite/ob_transform_semi_to_inner.cpp +++ b/src/sql/rewrite/ob_transform_semi_to_inner.cpp @@ -676,6 +676,7 @@ int ObTransformSemiToInner::check_query_from_dual(ObSelectStmt *stmt, bool& quer // stmt referenced in temp table need to be checked ObSelectStmt *temp_stmt = NULL; if (OB_ISNULL(temp_stmt = table_item->ref_query_)) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("unexpected null", K(ret), K(temp_stmt)); } else if (temp_stmt->has_recursive_cte()) { temp_flag = false; diff --git a/src/sql/rewrite/ob_transform_simplify_expr.cpp b/src/sql/rewrite/ob_transform_simplify_expr.cpp index 9c582e06f..41ecb065c 100644 --- a/src/sql/rewrite/ob_transform_simplify_expr.cpp +++ b/src/sql/rewrite/ob_transform_simplify_expr.cpp @@ -2656,7 +2656,7 @@ int ObTransformSimplifyExpr::do_push_not(ObRawExpr *&expr, } else if (OB_ISNULL(not_expr)) { ret = OB_ERR_UNEXPECTED; LOG_WARN("not_expr is null", K(not_expr), K(ret)); - } else if (not_expr->add_param_expr(child->get_param_expr(i))) { + } else if (OB_FAIL(not_expr->add_param_expr(child->get_param_expr(i)))) { LOG_WARN("failed to add param expr", K(ret)); } else if (OB_FAIL(new_expr->add_param_expr(not_expr))) { LOG_WARN("failed to add param expr", K(ret)); diff --git a/src/sql/rewrite/ob_transform_simplify_subquery.cpp b/src/sql/rewrite/ob_transform_simplify_subquery.cpp index fc97afecd..bc30d6abc 100644 --- a/src/sql/rewrite/ob_transform_simplify_subquery.cpp +++ b/src/sql/rewrite/ob_transform_simplify_subquery.cpp @@ -631,7 +631,7 @@ int ObTransformSimplifySubquery::try_push_down_outer_join_conds(ObDMLStmt *stmt, LOG_WARN("failed to get_push_down_conditions", K(ret), K(join_table)); } else if (push_down_conds.empty()) { /*do nothing*/ - } else if (ObOptimizerUtil::remove_item(join_table->get_join_conditions(), push_down_conds)) { + } else if (OB_FAIL(ObOptimizerUtil::remove_item(join_table->get_join_conditions(), push_down_conds))) { LOG_WARN("failed to remove item", K(ret)); } else if (OB_FAIL(ObTransformUtils::replace_with_empty_view(ctx_, stmt, @@ -2557,7 +2557,7 @@ int ObTransformSimplifySubquery::do_trans_empty_table_subquery_as_expr(ObRawExpr LOG_WARN("failed to add const param constraints", K(ret)); } else if (OB_FAIL(conditions.assign(ref_stmt->get_condition_exprs()))) { LOG_WARN("failed to assign condition exprs", K(ret)); - } else if (ObTransformUtils::decorrelate(conditions, query_ref->get_exec_params())) { + } else if (OB_FAIL(ObTransformUtils::decorrelate(conditions, query_ref->get_exec_params()))) { LOG_WARN("failed to decorrelate condition exprs", K(ret)); } else if (OB_FAIL(ObRawExprUtils::build_and_expr(*ctx_->expr_factory_, conditions, diff --git a/src/sql/rewrite/ob_transform_utils.cpp b/src/sql/rewrite/ob_transform_utils.cpp index 381b30196..97fa179b8 100644 --- a/src/sql/rewrite/ob_transform_utils.cpp +++ b/src/sql/rewrite/ob_transform_utils.cpp @@ -6872,7 +6872,7 @@ int ObTransformUtils::create_simple_view(ObTransformerCtx *ctx, LOG_WARN("failed to get from tables", K(ret)); } else if (OB_FAIL(semi_infos.assign(stmt->get_semi_infos()))) { LOG_WARN("failed to assign semi info", K(ret)); - } else if (ObOptimizerUtil::remove_item(stmt->get_condition_exprs(), norm_conds)) { + } else if (OB_FAIL(ObOptimizerUtil::remove_item(stmt->get_condition_exprs(), norm_conds))) { LOG_WARN("failed to remove item", K(ret)); } else if (OB_FAIL(ObTransformUtils::replace_with_empty_view(ctx, stmt, @@ -7127,6 +7127,19 @@ int ObTransformUtils::adjust_updatable_view(ObRawExprFactory &expr_factory, LOG_WARN("get null table info", K(ret)); } else if (NULL == origin_table_ids || ObOptimizerUtil::find_item(*origin_table_ids, table_info->table_id_)) { + if (del_upd_stmt->is_merge_stmt()) { + ObMergeTableInfo *merge_table_info = static_cast(table_info); + if (merge_table_info->target_table_id_ == table_info->table_id_) { + merge_table_info->target_table_id_ = view_table_item.table_id_; + } + if (merge_table_info->source_table_id_ == table_info->table_id_) { + merge_table_info->source_table_id_ = view_table_item.table_id_; + } + } + TableItem *base_item = view_stmt->get_table_item_by_id(table_info->table_id_); + if (NULL != base_item) { + view_table_item.view_base_item_ = base_item; + } table_info->table_id_ = view_table_item.table_id_; uint64_t loc_table_id = table_info->loc_table_id_; // create partition exprs for index dml infos @@ -14084,7 +14097,7 @@ int ObTransformUtils::get_column_node_from_table(ObTransformerCtx *ctx, } else if (col_schema->is_extend()) { ret = OB_ERR_JSON_FUN_UNSUPPORTED_TYPE; LOG_WARN("unsupported data type in json object function", K(ret)); - } else if (ObRawExprUtils::build_column_expr(*ctx->expr_factory_, *col_schema, col_expr)) { + } else if (OB_FAIL(ObRawExprUtils::build_column_expr(*ctx->expr_factory_, *col_schema, col_expr))) { LOG_WARN("fail to create col expr by column schema", K(ret)); } else { col_expr->set_table_name(tmp_table_item->table_name_); @@ -15602,11 +15615,11 @@ int ObTransformUtils::check_expr_eq_zero(ObExecContext *ctx, expr, zero_expr))) { LOG_WARN("failed to build cmp expr", K(ret)); - } else if (ObSQLUtils::calc_const_or_calculable_expr(ctx, + } else if (OB_FAIL(ObSQLUtils::calc_const_or_calculable_expr(ctx, eq_zero_expr, result, got_result, - ctx->get_allocator())) { + ctx->get_allocator()))) { LOG_WARN("failed to calc cosnt or calculable expr", K(ret)); } else if (!got_result || result.is_false() || result.is_null()) { // do nothing diff --git a/src/sql/session/ob_sql_session_info.cpp b/src/sql/session/ob_sql_session_info.cpp index 972390b1e..118bff0bd 100644 --- a/src/sql/session/ob_sql_session_info.cpp +++ b/src/sql/session/ob_sql_session_info.cpp @@ -1132,6 +1132,7 @@ ObPsCache *ObSQLSessionInfo::get_ps_cache() } else { ps_cache_ = MTL(ObPsCache*); if (OB_ISNULL(ps_cache_)) { + // ignore ret LOG_WARN("failed to get ps cache"); } else if (MTL_ID() != get_effective_tenant_id()) { LOG_ERROR("unmatched tenant_id", K(MTL_ID()), K(get_effective_tenant_id())); diff --git a/src/sql/session/ob_sql_session_info.h b/src/sql/session/ob_sql_session_info.h index d6691ecee..eb4ce5cc2 100644 --- a/src/sql/session/ob_sql_session_info.h +++ b/src/sql/session/ob_sql_session_info.h @@ -644,7 +644,7 @@ public: cursor_ids.push_back(cursor_info->get_id()); } } - for (int64_t i = 0; i < cursor_ids.count(); i++) { + for (int64_t i = 0; i < cursor_ids.count() && OB_SUCC(ret); i++) { uint64_t cursor_id = cursor_ids.at(i); if (OB_FAIL(session.close_cursor(cursor_id))) { SQL_ENG_LOG(WARN, "failed to close cursor", diff --git a/src/sql/session/ob_user_resource_mgr.cpp b/src/sql/session/ob_user_resource_mgr.cpp index 86789f014..2c9115460 100644 --- a/src/sql/session/ob_user_resource_mgr.cpp +++ b/src/sql/session/ob_user_resource_mgr.cpp @@ -460,7 +460,7 @@ void ObConnectResourceMgr::ConnResourceCleanUpTask::runTimerTask() } const int64_t delay = SLEEP_USECONDS; const bool repeat = false; - if (OB_FAIL(TG_SCHEDULE(lib::TGDefIDs::ServerGTimer, *this, delay, repeat))) { + if (OB_SUCC(ret) && OB_FAIL(TG_SCHEDULE(lib::TGDefIDs::ServerGTimer, *this, delay, repeat))) { LOG_ERROR("schedule connect resource cleanup task failed", K(ret)); } } diff --git a/src/sql/udr/ob_udr_utils.cpp b/src/sql/udr/ob_udr_utils.cpp index d7b5aca66..f2a419eba 100644 --- a/src/sql/udr/ob_udr_utils.cpp +++ b/src/sql/udr/ob_udr_utils.cpp @@ -240,7 +240,7 @@ int ObUDRUtils::clac_dynamic_param_store(const DynamicParamInfoArray& dynamic_pa } } if (OB_SUCC(ret)) { - if (phy_ctx->get_param_store_for_update().assign(param_store)) { + if (OB_FAIL(phy_ctx->get_param_store_for_update().assign(param_store))) { LOG_WARN("failed to assign param store", K(ret)); } else { pc_ctx.fp_result_.cache_params_ = &(phy_ctx->get_param_store_for_update()); diff --git a/src/storage/backup/ob_backup_data_struct.cpp b/src/storage/backup/ob_backup_data_struct.cpp index 629a6b636..94292ae7d 100644 --- a/src/storage/backup/ob_backup_data_struct.cpp +++ b/src/storage/backup/ob_backup_data_struct.cpp @@ -895,38 +895,44 @@ DEFINE_DESERIALIZE(ObBackupMacroBlockIDMappingsMeta) int64_t num_of_sstable = 0; reuse(); OB_UNIS_DECODE(version); - if (version < MAPPING_META_VERSION_V1 || version > MAPPING_META_VERSION_MAX) { + if (OB_FAIL(ret)) { + // do nothing + } else if (version < MAPPING_META_VERSION_V1 || version > MAPPING_META_VERSION_MAX) { ret = OB_INVALID_ARGUMENT; LOG_WARN("get invalid args", K(ret), K(version)); } else { version_ = version; - } - OB_UNIS_DECODE(num_of_sstable); - if (OB_FAIL(prepare_id_mappings(num_of_sstable))) { - LOG_WARN("failed to prepare id mappings", K(ret), K(num_of_sstable)); - } else { - ObITable::TableKey table_key; - ObLogicMacroBlockId logic_id; - ObBackupMacroBlockIDPair pair; - int64_t num_of_entries = 0; - for (int64_t i = 0; OB_SUCC(ret) && i < num_of_sstable; ++i) { - table_key.reset(); - OB_UNIS_DECODE(table_key); - OB_UNIS_DECODE(num_of_entries); - if (!table_key.is_valid() || num_of_entries < 0) { - ret = OB_ERR_SYS; - LOG_WARN("table key is not valid", K(ret), K(table_key), K(num_of_entries)); - } else { - id_map_list_[i]->table_key_ = table_key; - } - for (int64_t j = 0; OB_SUCC(ret) && j < num_of_entries; ++j) { - pair.reset(); - OB_UNIS_DECODE(pair); - if (!pair.is_valid()) { + OB_UNIS_DECODE(num_of_sstable); + if (FAILEDx(prepare_id_mappings(num_of_sstable))) { + LOG_WARN("failed to prepare id mappings", K(ret), K(num_of_sstable)); + } else { + ObITable::TableKey table_key; + ObLogicMacroBlockId logic_id; + ObBackupMacroBlockIDPair pair; + int64_t num_of_entries = 0; + for (int64_t i = 0; OB_SUCC(ret) && i < num_of_sstable; ++i) { + table_key.reset(); + OB_UNIS_DECODE(table_key); + OB_UNIS_DECODE(num_of_entries); + if (OB_FAIL(ret)) { + // do nothing + } else if (!table_key.is_valid() || num_of_entries < 0) { ret = OB_ERR_SYS; - LOG_WARN("get invalid data", K(ret), K(pair)); - } else if (OB_FAIL(id_map_list_[i]->id_pair_list_.push_back(pair))) { - LOG_WARN("failed to push back", K(ret), K(pair)); + LOG_WARN("table key is not valid", K(ret), K(table_key), K(num_of_entries)); + } else { + id_map_list_[i]->table_key_ = table_key; + } + for (int64_t j = 0; OB_SUCC(ret) && j < num_of_entries; ++j) { + pair.reset(); + OB_UNIS_DECODE(pair); + if (OB_FAIL(ret)) { + // do nothing + } else if (!pair.is_valid()) { + ret = OB_ERR_SYS; + LOG_WARN("get invalid data", K(ret), K(pair)); + } else if (OB_FAIL(id_map_list_[i]->id_pair_list_.push_back(pair))) { + LOG_WARN("failed to push back", K(ret), K(pair)); + } } } } diff --git a/src/storage/backup/ob_ls_backup_clean_mgr.cpp b/src/storage/backup/ob_ls_backup_clean_mgr.cpp index 91e23e0a2..ec322f008 100644 --- a/src/storage/backup/ob_ls_backup_clean_mgr.cpp +++ b/src/storage/backup/ob_ls_backup_clean_mgr.cpp @@ -242,8 +242,9 @@ int ObLSBackupCleanDagNet::fill_comment(char *buf, const int64_t buf_len) const if (!is_inited_) { ret = OB_NOT_INIT; LOG_WARN("log stream backup clean dag net do not init ", K(ret)); - } else if (OB_FAIL(param_.trace_id_.to_string(task_id_str, MAX_TRACE_ID_LENGTH))) { - LOG_WARN("failed to trace task id to string", K(ret)); + } else if (OB_UNLIKELY(0 > param_.trace_id_.to_string(task_id_str, MAX_TRACE_ID_LENGTH))) { + ret = OB_BUF_NOT_ENOUGH; + LOG_WARN("failed to get trace id string", K(ret), K(param_)); } else if (OB_FAIL(databuff_printf(buf, buf_len, "tenant_id=%lu, task_id=%ld, ls_id=%ld, task_type=%s, id=%ld, trace_id=%s", param_.tenant_id_, diff --git a/src/storage/ddl/ob_ddl_redo_log_row_iterator.cpp b/src/storage/ddl/ob_ddl_redo_log_row_iterator.cpp index 02e527158..e01d9cbce 100644 --- a/src/storage/ddl/ob_ddl_redo_log_row_iterator.cpp +++ b/src/storage/ddl/ob_ddl_redo_log_row_iterator.cpp @@ -47,6 +47,7 @@ int ObDDLRedoLogRowIterator::init(const ObString &data_buffer) ret = OB_ERR_UNEXPECTED; LOG_WARN("schema_rowkey_column_count_ invalid", KR(ret), K(schema_rowkey_column_count_)); } else if (OB_ISNULL(rowkey_obobj_ = static_cast(allocator_.alloc(sizeof(ObObj) * schema_rowkey_column_count_)))) { + ret = OB_ALLOCATE_MEMORY_FAILED; LOG_WARN("fail to alloc memory", KR(ret)); } else { is_inited_ = true; diff --git a/src/storage/ddl/ob_direct_insert_sstable_ctx_new.cpp b/src/storage/ddl/ob_direct_insert_sstable_ctx_new.cpp index 5ea5a87bb..04574c7f3 100644 --- a/src/storage/ddl/ob_direct_insert_sstable_ctx_new.cpp +++ b/src/storage/ddl/ob_direct_insert_sstable_ctx_new.cpp @@ -69,6 +69,7 @@ void ObTenantDirectLoadMgr::destroy() } } for (int64_t i = 0; i < tablet_mgr_keys.count(); i++) { + // overwrite ret if (OB_FAIL(remove_tablet_direct_load(tablet_mgr_keys.at(i)))) { LOG_WARN("remove tablet mgr failed", K(ret), K(tablet_mgr_keys.at(i))); } @@ -1068,6 +1069,7 @@ int ObTenantDirectLoadMgr::gc_tablet_direct_load() if (!mgr_key.is_full_direct_load_) { // skip } else if (OB_ISNULL(ls_svr)) { + ret = OB_ERR_SYS; LOG_WARN("invalid mtl ObLSService", K(ret)); } else if (OB_FAIL(ls_svr->get_ls(ls_id, ls_handle, ObLSGetMod::DDL_MOD))) { LOG_WARN("get log stream failed", K(ret), K(ls_id)); diff --git a/src/storage/direct_load/ob_direct_load_insert_table_ctx.cpp b/src/storage/direct_load/ob_direct_load_insert_table_ctx.cpp index d1e5f1309..8c296f5d9 100644 --- a/src/storage/direct_load/ob_direct_load_insert_table_ctx.cpp +++ b/src/storage/direct_load/ob_direct_load_insert_table_ctx.cpp @@ -731,10 +731,10 @@ int ObDirectLoadInsertTableContext::commit(ObTableLoadDmlStat &dml_stats, if (IS_NOT_INIT) { ret = OB_NOT_INIT; LOG_WARN("ObDirectLoadInsertTableContext not init", KR(ret), KP(this)); - } else { - if (OB_FAIL(collect_dml_stat(dml_stats))) { - LOG_WARN("fail to collect dml stat", KR(ret)); - } else if (param_.online_opt_stat_gather_ && collect_sql_statistics(sql_statistics)) { + } else if (OB_FAIL(collect_dml_stat(dml_stats))) { + LOG_WARN("fail to collect dml stat", KR(ret)); + } else if (param_.online_opt_stat_gather_) { + if (OB_FAIL(collect_sql_statistics(sql_statistics))) { LOG_WARN("fail to collect sql statistics", KR(ret)); } } diff --git a/src/storage/direct_load/ob_direct_load_sstable_scanner.cpp b/src/storage/direct_load/ob_direct_load_sstable_scanner.cpp index 473f25bb8..bb3ef4f76 100644 --- a/src/storage/direct_load/ob_direct_load_sstable_scanner.cpp +++ b/src/storage/direct_load/ob_direct_load_sstable_scanner.cpp @@ -390,8 +390,10 @@ int ObDirectLoadSSTableScanner::read_buffer(uint64_t offset, uint64_t size) LOG_WARN("fail to allocate buffer", KR(ret), K(large_buf_size)); } } - if (OB_FAIL(file_io_handle_.pread(large_buf_, read_size, offset))) { - LOG_WARN("fail to do pread from data file", KR(ret)); + if (OB_SUCC(ret)) { + if (OB_FAIL(file_io_handle_.pread(large_buf_, read_size, offset))) { + LOG_WARN("fail to do pread from data file", KR(ret)); + } } } return ret; diff --git a/src/storage/high_availability/ob_ls_complete_migration.cpp b/src/storage/high_availability/ob_ls_complete_migration.cpp index ab8b74bbc..b91a41a73 100644 --- a/src/storage/high_availability/ob_ls_complete_migration.cpp +++ b/src/storage/high_availability/ob_ls_complete_migration.cpp @@ -256,8 +256,9 @@ int ObLSCompleteMigrationDagNet::fill_comment(char *buf, const int64_t buf_len) if (!is_inited_) { ret = OB_NOT_INIT; LOG_WARN("ls complete migration dag net do not init ", K(ret)); - } else if (OB_FAIL(ctx_.task_id_.to_string(task_id_str, MAX_TRACE_ID_LENGTH))) { - LOG_WARN("failed to trace task id to string", K(ret), K(ctx_)); + } else if (OB_UNLIKELY(0 > ctx_.task_id_.to_string(task_id_str, MAX_TRACE_ID_LENGTH))) { + ret = OB_BUF_NOT_ENOUGH; + LOG_WARN("failed to get trace id string", K(ret), K(ctx_)); } else if (OB_FAIL(databuff_printf(buf, buf_len, "ObLSCompleteMigrationDagNet: tenant_id=%s, ls_id=%s, migration_type=%d, trace_id=%s", to_cstring(ctx_.tenant_id_), to_cstring(ctx_.arg_.ls_id_), ctx_.arg_.type_, task_id_str))) { diff --git a/src/storage/high_availability/ob_ls_migration.cpp b/src/storage/high_availability/ob_ls_migration.cpp index 205496d4f..b11552915 100644 --- a/src/storage/high_availability/ob_ls_migration.cpp +++ b/src/storage/high_availability/ob_ls_migration.cpp @@ -389,8 +389,9 @@ int ObMigrationDagNet::fill_comment(char *buf, const int64_t buf_len) const if (!is_inited_) { ret = OB_NOT_INIT; LOG_WARN("log stream migration dag net do not init ", K(ret)); - } else if (OB_FAIL(ctx_->task_id_.to_string(task_id_str, MAX_TRACE_ID_LENGTH))) { - LOG_WARN("failed to trace task id to string", K(ret), K(*ctx_)); + } else if (OB_UNLIKELY(0 > ctx_->task_id_.to_string(task_id_str, MAX_TRACE_ID_LENGTH))) { + ret = OB_BUF_NOT_ENOUGH; + LOG_WARN("failed to get trace id string", K(ret), K(*ctx_)); } else if (OB_FAIL(databuff_printf(buf, buf_len, "ObLSMigrationDagNet: tenant_id=%s, ls_id=%s, migration_type=%d, trace_id=%s", to_cstring(ctx_->tenant_id_), to_cstring(ctx_->arg_.ls_id_), ctx_->arg_.type_, task_id_str))) { @@ -2409,7 +2410,7 @@ int ObTabletMigrationTask::process() LOG_WARN("failed to check tablet replica validity", K(ret), KPC(copy_tablet_ctx_)); } else if (OB_FAIL(try_update_tablet_())) { LOG_WARN("failed to try update tablet", K(ret), KPC(copy_tablet_ctx_)); - } else if (OB_FAIL(OB_FAIL(copy_tablet_ctx_->get_copy_tablet_status(status)))) { + } else if (OB_FAIL(copy_tablet_ctx_->get_copy_tablet_status(status))) { LOG_WARN("failed to get copy tablet status", K(ret), KPC(copy_tablet_ctx_)); } else if (ObCopyTabletStatus::TABLET_NOT_EXIST == status) { FLOG_INFO("copy tablet is not exist, skip copy it", KPC(copy_tablet_ctx_)); diff --git a/src/storage/high_availability/ob_ls_prepare_migration.cpp b/src/storage/high_availability/ob_ls_prepare_migration.cpp index 8efc69a52..9b89c9382 100644 --- a/src/storage/high_availability/ob_ls_prepare_migration.cpp +++ b/src/storage/high_availability/ob_ls_prepare_migration.cpp @@ -235,8 +235,9 @@ int ObLSPrepareMigrationDagNet::fill_comment(char *buf, const int64_t buf_len) c if (!is_inited_) { ret = OB_NOT_INIT; LOG_WARN("ls prepare migration dag net do not init ", K(ret)); - } else if (OB_FAIL(ctx_.task_id_.to_string(task_id_str, MAX_TRACE_ID_LENGTH))) { - LOG_WARN("failed to trace task id to string", K(ret), K(ctx_)); + } else if (OB_UNLIKELY(0 > ctx_.task_id_.to_string(task_id_str, MAX_TRACE_ID_LENGTH))) { + ret = OB_BUF_NOT_ENOUGH; + LOG_WARN("failed to get trace id string", K(ret), K(ctx_)); } else if (OB_FAIL(databuff_printf(buf, buf_len, "ObLSMigrationPrepareDagNet: tenant_id=%s, ls_id=%s, migration_type=%d, trace_id=%s", to_cstring(ctx_.tenant_id_), to_cstring(ctx_.arg_.ls_id_), ctx_.arg_.type_, task_id_str))) { diff --git a/src/storage/high_availability/ob_ls_restore.cpp b/src/storage/high_availability/ob_ls_restore.cpp index b4721ba64..420149579 100644 --- a/src/storage/high_availability/ob_ls_restore.cpp +++ b/src/storage/high_availability/ob_ls_restore.cpp @@ -354,8 +354,9 @@ int ObLSRestoreDagNet::fill_comment(char *buf, const int64_t buf_len) const if (!is_inited_) { ret = OB_NOT_INIT; LOG_WARN("ls restore dag net do not init ", K(ret)); - } else if (OB_FAIL(ctx_->task_id_.to_string(task_id_str, MAX_TRACE_ID_LENGTH))) { - LOG_WARN("failed to trace task id to string", K(ret), K(*ctx_)); + } else if (OB_UNLIKELY(0 > ctx_->task_id_.to_string(task_id_str, MAX_TRACE_ID_LENGTH))) { + ret = OB_BUF_NOT_ENOUGH; + LOG_WARN("failed to get trace id string", K(ret), K(*ctx_)); } else if (OB_FAIL(databuff_printf(buf, buf_len, "ObLSRestoreDagNet: ls_id=%s, trace_id=%s", to_cstring(ctx_->arg_.ls_id_), task_id_str))) { diff --git a/src/storage/high_availability/ob_storage_ha_reader.cpp b/src/storage/high_availability/ob_storage_ha_reader.cpp index b9b955b57..cdd1d8571 100644 --- a/src/storage/high_availability/ob_storage_ha_reader.cpp +++ b/src/storage/high_availability/ob_storage_ha_reader.cpp @@ -277,12 +277,6 @@ int ObCopyMacroBlockObReader::alloc_from_memctx_first(char* &buf) int ret = OB_SUCCESS; buf = NULL; if (OB_ISNULL(buf = reinterpret_cast(macro_block_mem_context_.alloc()))) { - ret = OB_ALLOCATE_MEMORY_FAILED; - LOG_WARN("fail to alloc buf from mem ctx", K(ret)); - } - - if (OB_ISNULL(buf)) { - ret = OB_SUCCESS; if (OB_ISNULL(buf = reinterpret_cast(allocator_.alloc(OB_DEFAULT_MACRO_BLOCK_SIZE)))) { ret = OB_ALLOCATE_MEMORY_FAILED; LOG_WARN("fail to alloc buf", K(ret)); diff --git a/src/storage/high_availability/ob_storage_ha_utils.cpp b/src/storage/high_availability/ob_storage_ha_utils.cpp index e4487ec2d..0a61e9022 100644 --- a/src/storage/high_availability/ob_storage_ha_utils.cpp +++ b/src/storage/high_availability/ob_storage_ha_utils.cpp @@ -412,6 +412,7 @@ int ObStorageHAUtils::check_ls_is_leader( } else if (OB_FAIL(ls_srv->get_ls(ls_id, ls_handle, ObLSGetMod::STORAGE_MOD))) { LOG_WARN("failed to get log stream", K(ret), K(tenant_id), K(ls_id)); } else if (OB_ISNULL(ls = ls_handle.get_ls())) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("ls should not be null", K(ret), KP(ls)); } else if (OB_FAIL(ls->get_log_handler()->get_role(role, proposal_id))) { LOG_WARN("failed to get role", K(ret), KP(ls)); diff --git a/src/storage/high_availability/ob_tablet_group_restore.cpp b/src/storage/high_availability/ob_tablet_group_restore.cpp index 99df701cc..a9f14ef1b 100644 --- a/src/storage/high_availability/ob_tablet_group_restore.cpp +++ b/src/storage/high_availability/ob_tablet_group_restore.cpp @@ -447,8 +447,9 @@ int ObTabletGroupRestoreDagNet::fill_comment(char *buf, const int64_t buf_len) c } else if (ctx_->arg_.tablet_id_array_.empty()) { ret = OB_ERR_UNEXPECTED; LOG_WARN("tablet group restore tablet id array should not be empty", K(ret), KPC(ctx_)); - } else if (OB_FAIL(ctx_->task_id_.to_string(task_id_str, MAX_TRACE_ID_LENGTH))) { - LOG_WARN("failed to trace task id to string", K(ret), K(*ctx_)); + } else if (OB_UNLIKELY(0 > ctx_->task_id_.to_string(task_id_str, MAX_TRACE_ID_LENGTH))) { + ret = OB_BUF_NOT_ENOUGH; + LOG_WARN("failed to get trace id string", K(ret), K(*ctx_)); } else if (OB_FAIL(databuff_printf(buf, buf_len, "ObTabletGroupRestoreDagNet: ls_id=%s,first_tablet_id=%s, trace_id=%s", to_cstring(ctx_->arg_.ls_id_), to_cstring(ctx_->arg_.tablet_id_array_.at(0)), task_id_str))) { @@ -2086,7 +2087,7 @@ int ObTabletRestoreTask::process() LOG_WARN("failed to get src info", K(ret), KPC(tablet_restore_ctx_)); } else if (OB_FAIL(try_update_tablet_())) { LOG_WARN("failed to try update tablet", K(ret), KPC(tablet_restore_ctx_)); - } else if (OB_FAIL(OB_FAIL(tablet_restore_ctx_->get_copy_tablet_status(status)))) { + } else if (OB_FAIL(tablet_restore_ctx_->get_copy_tablet_status(status))) { LOG_WARN("failed to get copy tablet status", K(ret), KPC(tablet_restore_ctx_)); } else if (ObCopyTabletStatus::TABLET_NOT_EXIST == status) { FLOG_INFO("copy tablet is not exist, skip copy it", KPC(tablet_restore_ctx_)); diff --git a/src/storage/high_availability/ob_transfer_backfill_tx.cpp b/src/storage/high_availability/ob_transfer_backfill_tx.cpp index 1e0690841..7df850bea 100644 --- a/src/storage/high_availability/ob_transfer_backfill_tx.cpp +++ b/src/storage/high_availability/ob_transfer_backfill_tx.cpp @@ -773,8 +773,9 @@ int ObTransferBackfillTXDagNet::fill_comment(char *buf, const int64_t buf_len) c if (IS_NOT_INIT) { ret = OB_NOT_INIT; LOG_WARN("transfer backfill tx dag net do not init ", K(ret)); - } else if (OB_FAIL(ctx_.task_id_.to_string(task_id_str, MAX_TRACE_ID_LENGTH))) { - LOG_WARN("failed to trace task id to string", K(ret), K(ctx_)); + } else if (OB_UNLIKELY(0 > ctx_.task_id_.to_string(task_id_str, MAX_TRACE_ID_LENGTH))) { + ret = OB_BUF_NOT_ENOUGH; + LOG_WARN("failed to get trace id string", K(ret), K(ctx_)); } else if (OB_FAIL(databuff_printf(buf, buf_len, "ObTransferBackfillTXDagNet: tenant_id=%s, src_ls_id=%s, dest_ls_id=%s, trace_id=%s, start_scn=%s", to_cstring(ctx_.tenant_id_), to_cstring(ctx_.src_ls_id_), to_cstring(ctx_.dest_ls_id_), diff --git a/src/storage/ls/ob_ls_tx_service.cpp b/src/storage/ls/ob_ls_tx_service.cpp index 9355a8c46..9b1192d73 100644 --- a/src/storage/ls/ob_ls_tx_service.cpp +++ b/src/storage/ls/ob_ls_tx_service.cpp @@ -659,6 +659,7 @@ int ObLSTxService::get_common_checkpoint_info( for (int i = 1; i < ObCommonCheckpointType::MAX_BASE_TYPE; i++) { ObCommonCheckpoint *common_checkpoint = common_checkpoints_[i]; if (OB_ISNULL(common_checkpoint)) { + // ignore ret TRANS_LOG(WARN, "the common_checkpoint should not be null", K(i)); } else { ObCommonCheckpointVTInfo info; @@ -703,9 +704,11 @@ int ObLSTxService::unregister_common_checkpoint(const ObCommonCheckpointType &ty } else { WLockGuard guard(rwlock_); if (OB_ISNULL(common_checkpoints_[type])) { + // ignore ret STORAGE_LOG(WARN, "common_checkpoint is null, no need unregister", K(type), K(common_checkpoint)); } else if (common_checkpoints_[type] != common_checkpoint) { + ret = OB_ERR_UNEXPECTED; STORAGE_LOG(WARN, "common checkpoint not equal, not unregister", K(type), K(common_checkpoints_[type]), K(common_checkpoint)); } else { diff --git a/src/storage/memtable/mvcc/ob_mvcc_row.cpp b/src/storage/memtable/mvcc/ob_mvcc_row.cpp index 2bffaabf7..2d4342ee0 100644 --- a/src/storage/memtable/mvcc/ob_mvcc_row.cpp +++ b/src/storage/memtable/mvcc/ob_mvcc_row.cpp @@ -639,6 +639,7 @@ int ObMvccRow::elr(const ObTransID &tx_id, } else { ObLockWaitMgr *lwm = NULL; if (OB_ISNULL(lwm = MTL(ObLockWaitMgr*))) { + ret = OB_ERR_UNEXPECTED; TRANS_LOG(WARN, "MTL(LockWaitMgr) is null", K(ret), KPC(this)); } else { lwm->wakeup(tx_id); @@ -727,6 +728,7 @@ int ObMvccRow::remove_callback(ObMvccRowCallback &cb) if (OB_NOT_NULL(node)) { node->remove_callback(); if (OB_ISNULL(MTL(ObLockWaitMgr*))) { + ret = OB_ERR_UNEXPECTED; TRANS_LOG(WARN, "MTL(LockWaitMgr) is null", K(ret), KPC(this)); } else { auto tx_ctx = cb.get_trans_ctx(); @@ -758,6 +760,7 @@ int ObMvccRow::wakeup_waiter(const ObTabletID &tablet_id, int ret = OB_SUCCESS; ObLockWaitMgr *lwm = NULL; if (OB_ISNULL(lwm = MTL(ObLockWaitMgr*))) { + ret = OB_ERR_UNEXPECTED; TRANS_LOG(WARN, "MTL(LockWaitMgr) is null", K(ret), KPC(this)); } else { lwm->wakeup(tablet_id, key); diff --git a/src/storage/memtable/mvcc/ob_mvcc_trans_ctx.cpp b/src/storage/memtable/mvcc/ob_mvcc_trans_ctx.cpp index b39a344a4..825ca583b 100644 --- a/src/storage/memtable/mvcc/ob_mvcc_trans_ctx.cpp +++ b/src/storage/memtable/mvcc/ob_mvcc_trans_ctx.cpp @@ -1835,6 +1835,7 @@ int ObMvccRowCallback::wakeup_row_waiter_if_need_() /*****[for deadlock]*****/ ObLockWaitMgr *p_lwm = MTL(ObLockWaitMgr *); if (OB_ISNULL(p_lwm)) { + ret = OB_ERR_UNEXPECTED; TRANS_LOG(WARN, "lock wait mgr is nullptr", K(*this)); } else { p_lwm->reset_hash_holder(get_tablet_id(), key_, ctx_.get_tx_id()); diff --git a/src/storage/memtable/ob_memtable.cpp b/src/storage/memtable/ob_memtable.cpp index 1af53cdc0..7feda9697 100644 --- a/src/storage/memtable/ob_memtable.cpp +++ b/src/storage/memtable/ob_memtable.cpp @@ -2998,6 +2998,7 @@ int ObMemtable::post_row_write_conflict_(ObMvccAccessCtx &acc_ctx, K(conflict_tx_id), K(acc_ctx), K(lock_wait_expire_ts)); } else if (OB_ISNULL(lock_wait_mgr = MTL_WITH_CHECK_TENANT(ObLockWaitMgr*, mem_ctx->get_tenant_id()))) { + ret = OB_ERR_UNEXPECTED; TRANS_LOG(WARN, "can not get tenant lock_wait_mgr MTL", K(mem_ctx->get_tenant_id())); } else { mem_ctx->add_conflict_trans_id(conflict_tx_id); diff --git a/src/storage/memtable/ob_row_conflict_handler.cpp b/src/storage/memtable/ob_row_conflict_handler.cpp index 4a2d0c21d..fdf89f3c9 100644 --- a/src/storage/memtable/ob_row_conflict_handler.cpp +++ b/src/storage/memtable/ob_row_conflict_handler.cpp @@ -284,6 +284,7 @@ int ObRowConflictHandler::post_row_read_conflict(ObMvccAccessCtx &acc_ctx, K(conflict_tx_id), K(acc_ctx), K(lock_wait_expire_ts)); } else if (OB_ISNULL(lock_wait_mgr = MTL_WITH_CHECK_TENANT(ObLockWaitMgr*, tx_desc->get_tenant_id()))) { + ret = OB_ERR_UNEXPECTED; TRANS_LOG(WARN, "can not get tenant lock_wait_mgr MTL", K(tx_desc->get_tenant_id())); } else { int tmp_ret = OB_SUCCESS; diff --git a/src/storage/meta_mem/ob_tenant_meta_mem_mgr.cpp b/src/storage/meta_mem/ob_tenant_meta_mem_mgr.cpp index fcd6a54a8..e7b395246 100644 --- a/src/storage/meta_mem/ob_tenant_meta_mem_mgr.cpp +++ b/src/storage/meta_mem/ob_tenant_meta_mem_mgr.cpp @@ -2470,6 +2470,7 @@ int ObTenantMetaMemMgr::try_wash_tablet(const std::type_info &type_info, void *& } if (OB_SUCC(ret) || OB_ITER_END == ret) { if (OB_ISNULL(free_obj)) { + // ignore ret LOG_WARN("no object can be washed", K(ret), K(is_large), "tablet count", tablet_map_.count(), K(tablet_buffer_pool_), K(large_tablet_buffer_pool_), K(time_guard), K(sizeof(ObTablet)), K(sizeof(ObTabletPointer)), K(lbt())); diff --git a/src/storage/multi_data_source/runtime_utility/mds_tenant_service.cpp b/src/storage/multi_data_source/runtime_utility/mds_tenant_service.cpp index dae1b8748..4709e6012 100644 --- a/src/storage/multi_data_source/runtime_utility/mds_tenant_service.cpp +++ b/src/storage/multi_data_source/runtime_utility/mds_tenant_service.cpp @@ -185,6 +185,7 @@ void ObTenantMdsTimer::dump_special_mds_table_status_task() (void) mds_table.operate([ls_mds_freezing_scn](MdsTableBase &mds_table)-> int {// with MdsTable's lock protected int ret = OB_SUCCESS; if (mds_table.get_rec_scn() <= ls_mds_freezing_scn) { + // ignore ret MDS_LOG_NOTICE(WARN, "dump rec_scn lagging freeze_scn mds_table", K(ls_mds_freezing_scn), K(mds_table)); } return OB_SUCCESS;// keep iterating @@ -195,6 +196,7 @@ void ObTenantMdsTimer::dump_special_mds_table_status_task() (void) mds_table.operate([](MdsTableBase &mds_table)-> int {// with MdsTable's lock protected int ret = OB_SUCCESS; if (ObClockGenerator::getClock() - mds_table.get_removed_from_t3m_ts() > 1_min) { + // ignore ret MDS_LOG_NOTICE(WARN, "dump maybe leaked mds_table", K(mds_table)); } return OB_SUCCESS;// keep iterating diff --git a/src/storage/ob_i_tablet_memtable.cpp b/src/storage/ob_i_tablet_memtable.cpp index 478f8793e..7775c8b75 100644 --- a/src/storage/ob_i_tablet_memtable.cpp +++ b/src/storage/ob_i_tablet_memtable.cpp @@ -30,7 +30,7 @@ int ObITabletMemtable::inc_unsubmitted_cnt() int64_t unsubmitted_cnt = inc_unsubmitted_cnt_(); TRANS_LOG(DEBUG, "inc_unsubmitted_cnt", K(ls_id), KPC(this), K(lbt())); - if (get_unset_active_memtable_logging_blocked()) { + if (OB_FAIL(get_unset_active_memtable_logging_blocked())) { TRANS_LOG(WARN, "cannot inc unsubmitted_cnt", K(unsubmitted_cnt), K(ls_id), KPC(this)); } diff --git a/src/storage/restore/ob_ls_restore_task_mgr.cpp b/src/storage/restore/ob_ls_restore_task_mgr.cpp index 11ab57541..fdfe4e753 100644 --- a/src/storage/restore/ob_ls_restore_task_mgr.cpp +++ b/src/storage/restore/ob_ls_restore_task_mgr.cpp @@ -1206,6 +1206,7 @@ void ObLSRestoreTaskMgr::remove_finished_task_(const ObIArray &finish_ } else { const ObIArray &tablet_id_array = restored_tg->get_tablet_list(); ARRAY_FOREACH_NORET(tablet_id_array, i) { + // overwite ret const ObTabletID &tablet_id = tablet_id_array.at(i); // remove from DOING set if (OB_FAIL(schedule_tablet_set_.erase_refactored(tablet_id))) { @@ -1216,6 +1217,7 @@ void ObLSRestoreTaskMgr::remove_finished_task_(const ObIArray &finish_ // remove from task map if (OB_FAIL(tablet_map_.erase_refactored(task_id))) { + // overwrite ret LOG_WARN("fail to erase task id", K(ret), K(task_id)); } } diff --git a/src/storage/tablelock/ob_lock_memtable.cpp b/src/storage/tablelock/ob_lock_memtable.cpp index bc966269c..42a909c82 100644 --- a/src/storage/tablelock/ob_lock_memtable.cpp +++ b/src/storage/tablelock/ob_lock_memtable.cpp @@ -461,6 +461,7 @@ int ObLockMemtable::post_obj_lock_conflict_(ObMvccAccessCtx &acc_ctx, : current_ts; int64_t lock_wait_expire_ts = acc_ctx.eval_lock_expire_ts(lock_wait_start_ts); if (OB_ISNULL(lock_wait_mgr = MTL_WITH_CHECK_TENANT(ObLockWaitMgr *, mem_ctx->get_tenant_id()))) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("can not get tenant lock_wait_mgr MTL", K(mem_ctx->get_tenant_id())); } else { int tmp_ret = OB_SUCCESS; diff --git a/src/storage/tablelock/ob_lock_memtable_mgr.cpp b/src/storage/tablelock/ob_lock_memtable_mgr.cpp index c92bb4383..9a39253ee 100644 --- a/src/storage/tablelock/ob_lock_memtable_mgr.cpp +++ b/src/storage/tablelock/ob_lock_memtable_mgr.cpp @@ -115,6 +115,7 @@ int ObLockMemtableMgr::create_memtable(const CreateMemtableArg &arg) ret = OB_ERR_UNEXPECTED; LOG_ERROR("table is nullptr", K(ret)); } else if (OB_ISNULL(memtable = static_cast(table))) { + ret = OB_ERR_UNEXPECTED; LOG_ERROR("this is not lock memtable", K(ret), KPC(table)); } else if (OB_FAIL(memtable->init(table_key, ls_id_, freezer_))) { LOG_WARN("memtable init fail.", K(ret)); diff --git a/src/storage/tablelock/ob_lock_table.cpp b/src/storage/tablelock/ob_lock_table.cpp index 4b4458ab5..4ca1e3361 100644 --- a/src/storage/tablelock/ob_lock_table.cpp +++ b/src/storage/tablelock/ob_lock_table.cpp @@ -756,6 +756,7 @@ int ObLockTable::switch_to_leader() if (OB_FAIL(ret)) { if (OB_ISNULL(parent_)) { + // ignore ret LOG_WARN("parent ls of ObLockTable is null", K(ret)); } else { LOG_WARN("collect obj lock garbage when switch to leader failed", K(ret), diff --git a/src/storage/tablet/ob_tablet_start_transfer_mds_helper.cpp b/src/storage/tablet/ob_tablet_start_transfer_mds_helper.cpp index cae26ee85..4212be3c4 100644 --- a/src/storage/tablet/ob_tablet_start_transfer_mds_helper.cpp +++ b/src/storage/tablet/ob_tablet_start_transfer_mds_helper.cpp @@ -623,7 +623,7 @@ int ObTabletStartTransferOutCommonHelper::try_enable_dest_ls_clog_replay( // rollback the ls to offline state. do { if (CLICK_TMP_FAIL(dest_ls->offline())) { - LOG_WARN("online failed", K(ret), K(dest_ls_id)); + LOG_WARN("online failed", K(tmp_ret), K(dest_ls_id)); ob_usleep(SLEEP_TS); } } while (CLICK_TMP_FAIL(tmp_ret)); diff --git a/src/storage/tx/ob_dup_table_util.cpp b/src/storage/tx/ob_dup_table_util.cpp index 5fc386c28..d343bc4df 100644 --- a/src/storage/tx/ob_dup_table_util.cpp +++ b/src/storage/tx/ob_dup_table_util.cpp @@ -858,6 +858,7 @@ int ObDupTableLSHandler::check_redo_sync_completed(const ObTransID &tx_id, before_prepare_req.set_header(self_addr, lease_addrs[i], self_addr, ls_id_); if (before_prepare_req.get_before_prepare_scn_src() <= ObDupTableBeforePrepareRequest::BeforePrepareScnSrc::UNKNOWN) { + // ignore ret DUP_TABLE_LOG(ERROR, "UNKOWN before prepare src", K(ret), K(tmp_ret), K(before_prepare_req), K(redo_completed_scn), K(tx_id), K(ls_id_)); } diff --git a/src/storage/tx/ob_id_service.cpp b/src/storage/tx/ob_id_service.cpp index b4c387b5b..562923375 100644 --- a/src/storage/tx/ob_id_service.cpp +++ b/src/storage/tx/ob_id_service.cpp @@ -113,6 +113,7 @@ int ObIDService::submit_log_(const int64_t last_id, const int64_t limited_id) TRANS_LOG(WARN, "invalid argument", K(ret), K_(service_type), K_(latest_log_ts), K_(self)); } else if (ObTimeUtility::current_time() - submit_log_ts_ > SUBMIT_LOG_ALARM_INTERVAL) { if (log_interval_.reach()) { + // ignore ret TRANS_LOG(WARN, "submit log callback use too mush time", K_(submit_log_ts), K_(cb), K_(service_type), K_(latest_log_ts), K_(self)); } } diff --git a/src/storage/tx/ob_trans_deadlock_adapter.cpp b/src/storage/tx/ob_trans_deadlock_adapter.cpp index 7e9adeb9a..5fe05ca0a 100644 --- a/src/storage/tx/ob_trans_deadlock_adapter.cpp +++ b/src/storage/tx/ob_trans_deadlock_adapter.cpp @@ -692,8 +692,9 @@ int ObTransDeadlockDetectorAdapter::lock_wait_mgr_reconstruct_detector_waiting_f } else if (OB_FAIL(MTL(ObDeadLockDetectorMgr*)->check_detector_exist(self_trans_id, exist))) { DETECT_LOG(WARN, "fail to check detector exist", PRINT_WRAPPER); } else if (exist) { - if (MTL(ObDeadLockDetectorMgr*)->unregister_key(self_trans_id)) { - DETECT_LOG(WARN, "fail to unregister key", PRINT_WRAPPER); + int tmp_ret = OB_SUCCESS; + if (OB_TMP_FAIL(MTL(ObDeadLockDetectorMgr*)->unregister_key(self_trans_id))) { + DETECT_LOG(WARN, "fail to unregister key", K(tmp_ret), PRINT_WRAPPER); } } if (OB_FAIL(ret)) { @@ -732,8 +733,9 @@ int ObTransDeadlockDetectorAdapter::lock_wait_mgr_reconstruct_detector_waiting_f } else if (OB_FAIL(MTL(ObDeadLockDetectorMgr*)->check_detector_exist(self_trans_id, exist))) { DETECT_LOG(WARN, "fail to check detector exist", PRINT_WRAPPER); } else if (exist) { - if (MTL(ObDeadLockDetectorMgr*)->unregister_key(self_trans_id)) { - DETECT_LOG(WARN, "fail to unregister key", PRINT_WRAPPER); + int tmp_ret = OB_SUCCESS; + if (OB_TMP_FAIL(MTL(ObDeadLockDetectorMgr*)->unregister_key(self_trans_id))) { + DETECT_LOG(WARN, "fail to unregister key", K(tmp_ret), PRINT_WRAPPER); } } if (OB_FAIL(ret)) { @@ -786,6 +788,7 @@ int ObTransDeadlockDetectorAdapter::autonomous_register_to_deadlock(const ObTran CHECK_DEADLOCK_ENABLED(); int ret = OB_SUCCESS; if (OB_ISNULL(MTL(ObDeadLockDetectorMgr*))) { + ret = OB_ERR_UNEXPECTED; DETECT_LOG(ERROR, "tenant deadlock detector mgr is null", PRINT_WRAPPER); } else if (OB_FAIL(MTL(ObDeadLockDetectorMgr*)->register_key(last_trans_id, [](const common::ObIArray &, diff --git a/src/storage/tx/ob_trans_factory.cpp b/src/storage/tx/ob_trans_factory.cpp index 700c42599..248f9b219 100644 --- a/src/storage/tx/ob_trans_factory.cpp +++ b/src/storage/tx/ob_trans_factory.cpp @@ -224,6 +224,7 @@ TransRpcTask *TransRpcTaskFactory::alloc() void TransRpcTaskFactory::release(TransRpcTask *task) { if (OB_ISNULL(task)) { + // ignore ret TRANS_LOG(ERROR, "TransRpcTask pointer is null when released", KP(task)); } else { trans_rpc_task_factory.release(task); diff --git a/src/storage/tx/ob_trans_part_ctx.cpp b/src/storage/tx/ob_trans_part_ctx.cpp index 6fa5324d2..774dd9884 100644 --- a/src/storage/tx/ob_trans_part_ctx.cpp +++ b/src/storage/tx/ob_trans_part_ctx.cpp @@ -3242,7 +3242,7 @@ int ObPartTransCtx::submit_redo_commit_info_log_() TRANS_LOG(ERROR, "cb arg array is empty", K(ret), K(log_block)); return_log_cb_(log_cb); log_cb = NULL; - } else if (log_cb->reserve_callbacks(helper.callbacks_.count())) { + } else if (OB_FAIL(log_cb->reserve_callbacks(helper.callbacks_.count()))) { TRANS_LOG(WARN, "resolve callbacks failed", K(ret), KPC(this)); return_log_cb_(log_cb); log_cb = NULL; @@ -4598,11 +4598,12 @@ int ObPartTransCtx::after_submit_log_(ObTxLogBlock &log_block, if (OB_SUCC(ret) && bitmap_is_contain(ObTxLogType::TX_REDO_LOG)) { if (OB_FAIL(log_cb->set_callbacks(helper->callbacks_))) { ob_abort(); - } - exec_info_.max_submitted_seq_no_.inc_update(helper->max_seq_no_); - helper->log_scn_ = log_cb->get_log_ts(); - if (helper->callback_redo_submitted_ && OB_FAIL(mt_ctx_.log_submitted(*helper))) { - TRANS_LOG(ERROR, "fill to do log_submitted on redo log gen", K(ret), K(*this)); + } else { + exec_info_.max_submitted_seq_no_.inc_update(helper->max_seq_no_); + helper->log_scn_ = log_cb->get_log_ts(); + if (helper->callback_redo_submitted_ && OB_FAIL(mt_ctx_.log_submitted(*helper))) { + TRANS_LOG(ERROR, "fill to do log_submitted on redo log gen", K(ret), K(*this)); + } } } if (OB_SUCC(ret) && bitmap_is_contain(ObTxLogType::TX_ROLLBACK_TO_LOG)) { @@ -7401,6 +7402,7 @@ int ObPartTransCtx::submit_multi_data_source_(ObTxLogBlock &log_block) } else if (OB_FAIL(ls_tx_ctx_mgr_->get_tx_table()->alloc_tx_data(log_cb->get_tx_data_guard(), true, INT64_MAX))) { TRANS_LOG(WARN, "alloc tx_data failed", KR(ret), KPC(this)); } else if (OB_ISNULL(tmp_buf = mtl_malloc(sizeof(ObTxOpArray), "ObTxOpArray"))) { + ret = OB_ALLOCATE_MEMORY_FAILED; TRANS_LOG(WARN, "alloc memory failed", KR(ret), KPC(this)); } else if (FALSE_IT(new (tmp_buf) ObTxOpArray())) { } else if (FALSE_IT(log_cb->get_tx_op_array() = (ObTxOpArray*)tmp_buf)) { diff --git a/src/storage/tx/ob_trans_service.cpp b/src/storage/tx/ob_trans_service.cpp index 420ed36b5..76c0956fa 100644 --- a/src/storage/tx/ob_trans_service.cpp +++ b/src/storage/tx/ob_trans_service.cpp @@ -488,6 +488,7 @@ void ObTransService::handle(void *task) ATOMIC_FAA(&output_queue_count_, 1); if (OB_ISNULL(task)) { + // ignore ret TRANS_LOG(ERROR, "task is null", KP(task)); } else { trans_task = static_cast(task); @@ -516,6 +517,7 @@ void ObTransService::handle(void *task) } else if (ObTransRetryTaskType::ADVANCE_LS_CKPT_TASK == trans_task->get_task_type()) { ObAdvanceLSCkptTask *advance_ckpt_task = static_cast(trans_task); if (OB_ISNULL(advance_ckpt_task)) { + // ignore ret TRANS_LOG(WARN, "advance ckpt task is null", KP(advance_ckpt_task)); } else if (OB_FAIL(advance_ckpt_task->try_advance_ls_ckpt_ts())) { TRANS_LOG(WARN, "advance ls ckpt ts failed", K(ret)); @@ -528,6 +530,7 @@ void ObTransService::handle(void *task) } else if (ObTransRetryTaskType::STANDBY_CLEANUP_TASK == trans_task->get_task_type()) { ObTxStandbyCleanupTask *standby_cleanup_task = static_cast(trans_task); if (OB_ISNULL(standby_cleanup_task)) { + // ignore ret TRANS_LOG(WARN, "standby cleanup task is null"); } else if (OB_FAIL(do_standby_cleanup())) { TRANS_LOG(WARN, "do standby cleanup failed", K(ret)); diff --git a/src/storage/tx/ob_trans_timer.cpp b/src/storage/tx/ob_trans_timer.cpp index 3b0a8cafb..5cc337838 100644 --- a/src/storage/tx/ob_trans_timer.cpp +++ b/src/storage/tx/ob_trans_timer.cpp @@ -150,8 +150,10 @@ void ObTxTimeoutTask::runTimerTask() if (!is_inited_) { TRANS_LOG(WARN, "ObTxTimeoutTask not inited", KPC(this)); } else if (OB_ISNULL(tx_desc_)) { + ret = OB_ERR_UNEXPECTED; TRANS_LOG(ERROR, "ctx is null, unexpected error", KPC(this)); } else if (OB_ISNULL(txs_)) { + ret = OB_ERR_UNEXPECTED; TRANS_LOG(ERROR, "txs_ is null, unexpected error", KPC(this)); } else { // NOTE: save tx_desc_/txs_ is required diff --git a/src/storage/tx/ob_tx_api.cpp b/src/storage/tx/ob_tx_api.cpp index 3ca64ed3f..d9815e3c8 100644 --- a/src/storage/tx/ob_tx_api.cpp +++ b/src/storage/tx/ob_tx_api.cpp @@ -1103,7 +1103,9 @@ int ObTransService::rollback_to_implicit_savepoint(ObTxDesc &tx, } } - if (OB_FAIL(tx_sanity_check_(tx))) { + if (OB_FAIL(ret)) { + // do nothing + } else if (OB_FAIL(tx_sanity_check_(tx))) { } else { ret = rollback_to_global_implicit_savepoint_(tx, savepoint, diff --git a/src/storage/tx/ob_tx_log.h b/src/storage/tx/ob_tx_log.h index 35d8c850a..9691df518 100644 --- a/src/storage/tx/ob_tx_log.h +++ b/src/storage/tx/ob_tx_log.h @@ -417,7 +417,7 @@ public: TRANS_LOG(WARN, "alloc memory failed", K(ret), KPC(this), KPC(ddl_log)); } else if (OB_FALSE_IT(memset(submit_buf_, 0, dli_buf_size_))) { // do nothing - } else if (ddl_log->serialize(static_cast(submit_buf_), dli_buf_size_, pos)) { + } else if (OB_FAIL(ddl_log->serialize(static_cast(submit_buf_), dli_buf_size_, pos))) { TRANS_LOG(WARN, "serialize ddl log buf failed", K(ret), KPC(this), KPC(ddl_log)); } @@ -1412,6 +1412,7 @@ private: int ret = OB_ALLOCATE_MEMORY_FAILED; char *ptr = NULL; if (OB_ISNULL(ptr = static_cast(ob_malloc(NORMAL_LOG_BUF_SIZE, "NORMAL_CLOG_BUF")))) { + ret = OB_ALLOCATE_MEMORY_FAILED; TRANS_LOG(WARN, "alloc clog normal buffer failed", K(ret)); } return ptr; @@ -1421,6 +1422,7 @@ private: int ret = OB_ALLOCATE_MEMORY_FAILED; char *ptr = NULL; if (OB_ISNULL(ptr = static_cast(ob_malloc(BIG_LOG_BUF_SIZE, "BIG_CLOG_BUF")))) { + ret = OB_ALLOCATE_MEMORY_FAILED; TRANS_LOG(WARN, "alloc clog big buffer failed", K(ret)); } return ptr; diff --git a/src/storage/tx/ob_tx_loop_worker.cpp b/src/storage/tx/ob_tx_loop_worker.cpp index 0e76e5731..cdf00e5ce 100644 --- a/src/storage/tx/ob_tx_loop_worker.cpp +++ b/src/storage/tx/ob_tx_loop_worker.cpp @@ -307,6 +307,7 @@ void ObTxLoopWorker::do_retain_ctx_gc_(ObLS *ls_ptr) ObTxRetainCtxMgr *retain_ctx_mgr = ls_ptr->get_tx_svr()->get_retain_ctx_mgr(); if (OB_ISNULL(retain_ctx_mgr)) { + // ignore ret TRANS_LOG(WARN, "[Tx Loop Worker] retain_ctx_mgr is not inited", K(ret), K(MTL_ID()), K(*ls_ptr)); diff --git a/src/storage/tx_storage/ob_checkpoint_service.cpp b/src/storage/tx_storage/ob_checkpoint_service.cpp index bbac37d01..24aefaf57 100644 --- a/src/storage/tx_storage/ob_checkpoint_service.cpp +++ b/src/storage/tx_storage/ob_checkpoint_service.cpp @@ -134,10 +134,12 @@ void ObCheckPointService::ObCheckpointTask::runTimerTask() common::ObSharedGuard guard; ObLSService *ls_svr = MTL(ObLSService*); if (OB_ISNULL(ls_svr)) { + ret = OB_ERR_UNEXPECTED; STORAGE_LOG(WARN, "mtl ObLSService should not be null", K(ret)); } else if (OB_FAIL(ls_svr->get_ls_iter(guard, ObLSGetMod::TXSTORAGE_MOD))) { STORAGE_LOG(WARN, "get log stream iter failed", K(ret)); } else if (OB_ISNULL(iter = guard.get_ptr())) { + ret = OB_ERR_UNEXPECTED; STORAGE_LOG(WARN, "iter is NULL", K(ret)); } else { DEBUG_SYNC(BEFORE_CHECKPOINT_TASK); @@ -163,6 +165,7 @@ void ObCheckPointService::ObCheckpointTask::runTimerTask() } else if (OB_FAIL(data_checkpoint->check_can_move_to_active_in_newcreate())) { STORAGE_LOG(WARN, "check can move to active failed", K(ret), K(ls->get_ls_id())); } else if (OB_ISNULL(checkpoint_executor = ls->get_checkpoint_executor())) { + ret = OB_ERR_UNEXPECTED; STORAGE_LOG(WARN, "checkpoint_executor should not be null", K(ls->get_ls_id())); } else if (OB_FAIL(checkpoint_executor->update_clog_checkpoint())) { STORAGE_LOG(WARN, "update_clog_checkpoint failed", K(ret), K(ls->get_ls_id())); @@ -229,10 +232,12 @@ bool ObCheckPointService::cannot_recycle_log_over_threshold_(const int64_t thres bool cannot_recycle_log_over_threshold = false; int64_t cannot_recycle_log_size = 0; if (OB_ISNULL(ls_svr)) { + ret = OB_ERR_UNEXPECTED; STORAGE_LOG(WARN, "mtl ObLSService should not be null", K(ret)); } else if (OB_FAIL(ls_svr->get_ls_iter(guard, ObLSGetMod::TXSTORAGE_MOD))) { STORAGE_LOG(WARN, "get log stream iter failed", K(ret)); } else if (OB_ISNULL(iter = guard.get_ptr())) { + ret = OB_ERR_UNEXPECTED; STORAGE_LOG(WARN, "iter is NULL", K(ret)); } else { ObLS *ls = nullptr; @@ -246,6 +251,7 @@ bool ObCheckPointService::cannot_recycle_log_over_threshold_(const int64_t thres ret = OB_ERR_UNEXPECTED; STORAGE_LOG(WARN, "log stream not exist", K(ret), K(ls->get_ls_id())); } else if (OB_ISNULL(checkpoint_executor = ls->get_checkpoint_executor())) { + ret = OB_ERR_UNEXPECTED; STORAGE_LOG(WARN, "checkpoint_executor should not be null", K(ls->get_ls_id())); } else if (need_update_checkpoint_scn && OB_FAIL(checkpoint_executor->update_clog_checkpoint())) { STORAGE_LOG(WARN, "update_clog_checkpoint failed", K(ret), K(ls->get_ls_id())); @@ -274,10 +280,12 @@ int ObCheckPointService::flush_to_recycle_clog_() common::ObSharedGuard guard; ObLSService *ls_svr = MTL(ObLSService*); if (OB_ISNULL(ls_svr)) { + ret = OB_ERR_UNEXPECTED; STORAGE_LOG(WARN, "mtl ObLSService should not be null", K(ret)); } else if (OB_FAIL(ls_svr->get_ls_iter(guard, ObLSGetMod::TXSTORAGE_MOD))) { STORAGE_LOG(WARN, "get log stream iter failed", K(ret)); } else if (OB_ISNULL(iter = guard.get_ptr())) { + ret = OB_ERR_UNEXPECTED; STORAGE_LOG(WARN, "iter is NULL", K(ret)); } else { ObLS *ls = nullptr; @@ -310,10 +318,12 @@ void ObCheckPointService::ObTraversalFlushTask::runTimerTask() ObLSService *ls_svr = MTL(ObLSService*); ObCurTraceId::init(GCONF.self_addr_); if (OB_ISNULL(ls_svr)) { + ret = OB_ERR_UNEXPECTED; STORAGE_LOG(WARN, "mtl ObLSService should not be null", K(ret)); } else if (OB_FAIL(ls_svr->get_ls_iter(guard, ObLSGetMod::TXSTORAGE_MOD))) { STORAGE_LOG(WARN, "get log stream iter failed", K(ret)); } else if (OB_ISNULL(iter = guard.get_ptr())) { + ret = OB_ERR_UNEXPECTED; STORAGE_LOG(WARN, "iter is NULL", K(ret)); } else { ObLS *ls = nullptr; @@ -327,6 +337,7 @@ void ObCheckPointService::ObTraversalFlushTask::runTimerTask() ret = OB_ERR_UNEXPECTED; STORAGE_LOG(WARN, "log stream not exist", K(ret), K(ls->get_ls_id())); } else if (OB_ISNULL(checkpoint_executor = ls->get_checkpoint_executor())) { + ret = OB_ERR_UNEXPECTED; STORAGE_LOG(WARN, "checkpoint_executor should not be null", K(ls->get_ls_id())); } else if (OB_FAIL(checkpoint_executor->traversal_flush())) { STORAGE_LOG(WARN, "traversal_flush failed", K(ret), K(ls->get_ls_id())); diff --git a/src/storage/tx_storage/ob_tenant_freezer.cpp b/src/storage/tx_storage/ob_tenant_freezer.cpp index f4fa3d375..ec5972600 100644 --- a/src/storage/tx_storage/ob_tenant_freezer.cpp +++ b/src/storage/tx_storage/ob_tenant_freezer.cpp @@ -368,6 +368,7 @@ int ObTenantFreezer::tenant_freeze() } else if (OB_FAIL(ls_svr->get_ls_iter(guard, ObLSGetMod::TXSTORAGE_MOD))) { LOG_WARN("get log stream iter failed", K(ret)); } else if (OB_ISNULL(iter = guard.get_ptr())) { + ret = OB_ERR_UNEXPECTED; LOG_WARN("iter is NULL", K(ret)); } else { for (; OB_SUCC(iter->get_next(ls)); ++ls_cnt) { @@ -555,9 +556,10 @@ int ObTenantFreezer::check_and_freeze_tx_data_() // execute statistic print once a minute if (TC_REACH_TIME_INTERVAL(60 * 1000 * 1000)) { + int tmp_ret = OB_SUCCESS; if (frozen_tx_data_mem_used + active_tx_data_mem_used > tx_data_mem_limit) { LOG_INFO("tx data use too much memory!!!", STATISTIC_PRINT_MACRO); - } else if (OB_FAIL(get_tenant_tx_data_mem_used_( + } else if (OB_TMP_FAIL(get_tenant_tx_data_mem_used_( frozen_tx_data_mem_used, active_tx_data_mem_used, true /*for_statistic_print*/))) { LOG_INFO("print statistic failed"); } else { diff --git a/src/storage/tx_table/ob_tx_ctx_table.cpp b/src/storage/tx_table/ob_tx_ctx_table.cpp index 847040bec..b3c134a09 100644 --- a/src/storage/tx_table/ob_tx_ctx_table.cpp +++ b/src/storage/tx_table/ob_tx_ctx_table.cpp @@ -262,6 +262,7 @@ int ObTxCtxTable::acquire_ref_(const ObLSID& ls_id) if (NULL == ls_tx_ctx_mgr_) { if (OB_ISNULL(txs = MTL(ObTransService*))) { + ret = OB_ERR_UNEXPECTED; TRANS_LOG(ERROR, "trans_service get fail", K(ret)); } else if (OB_FAIL(txs->get_tx_ctx_mgr().get_ls_tx_ctx_mgr(ls_id, ls_tx_ctx_mgr_))) { TRANS_LOG(ERROR, "get ls tx ctx mgr with ref failed", KP(txs)); @@ -283,6 +284,7 @@ int ObTxCtxTable::release_ref_() if (NULL != ls_tx_ctx_mgr_) { if (OB_ISNULL(txs = MTL(ObTransService*))) { + ret = OB_ERR_UNEXPECTED; TRANS_LOG(ERROR, "trans_service get fail", K(ret)); } else if (OB_FAIL(txs->get_tx_ctx_mgr().revert_ls_tx_ctx_mgr(ls_tx_ctx_mgr_))) { TRANS_LOG(ERROR, "revert ls tx ctx mgr with ref failed", KP(txs)); diff --git a/src/storage/tx_table/ob_tx_table.cpp b/src/storage/tx_table/ob_tx_table.cpp index a12ecad57..c5bb57ff0 100644 --- a/src/storage/tx_table/ob_tx_table.cpp +++ b/src/storage/tx_table/ob_tx_table.cpp @@ -723,6 +723,7 @@ int ObTxTable::check_tx_data_in_kv_cache_(ObReadTxDataArg &read_tx_data_arg, ObI ret = OB_ERR_UNEXPECTED; STORAGE_LOG(ERROR, "cache value is nullptr", KR(ret), K(read_tx_data_arg), K(ls_id_), K(val_handle)); } else if (OB_ISNULL(tx_data = cache_val->get_tx_data())) { + ret = OB_ERR_UNEXPECTED; STORAGE_LOG(ERROR, "tx data in cache value is nullptr", KR(ret), K(read_tx_data_arg), K(ls_id_), KPC(cache_val)); } else { EVENT_INC(ObStatEventIds::TX_DATA_HIT_KV_CACHE_COUNT); diff --git a/tools/ob_admin/log_tool/dump/ob_admin_dump_block.cpp b/tools/ob_admin/log_tool/dump/ob_admin_dump_block.cpp index bc919942f..80f2594fe 100644 --- a/tools/ob_admin/log_tool/dump/ob_admin_dump_block.cpp +++ b/tools/ob_admin/log_tool/dump/ob_admin_dump_block.cpp @@ -203,7 +203,7 @@ int ObAdminDumpBlock::decompress_() const LSN end_lsn = start_lsn + log_len; ObGetFileSize get_file_size(end_lsn); - if (mem_storage.init(start_lsn)) { + if (OB_FAIL(mem_storage.init(start_lsn))) { LOG_WARN("MemoryIteratorStorage init failed", K(ret), K(block_path_)); } else if (OB_FAIL(mem_storage.append(buf_out, log_len))) { LOG_WARN("MemoryStorage append failed", K(ret)); @@ -312,7 +312,7 @@ int ObAdminDumpBlock::dump_() int fd_out = -1; const LSN end_lsn = start_lsn + body_size; auto get_file_size = [&]() -> LSN { return end_lsn; }; - if (mem_storage.init(start_lsn)) { + if (OB_FAIL(mem_storage.init(start_lsn))) { LOG_WARN("MemoryIteratorStorage init failed", K(ret), K(block_path_)); } else if (OB_FAIL(helper.mmap_log_file(mmap_buf, header_size + body_size, block_path_, fd_out))) { LOG_WARN("mmap_log_file_ failed", K(ret)); @@ -470,7 +470,7 @@ int ObAdminDumpMetaBlock::dump() char *mmap_buf = NULL; char *data_buf = NULL; int fd_out = -1; - if (mem_storage.init(start_lsn)) { + if (OB_FAIL(mem_storage.init(start_lsn))) { LOG_WARN("MemoryIteratorStorage init failed", K(ret), K(block_path_)); } else if (OB_FAIL(helper.mmap_log_file(mmap_buf, header_size + body_size, block_path_, fd_out))) { LOG_WARN("mmap_log_file_ failed", K(ret)); diff --git a/unittest/logservice/test_log_config_mgr.cpp b/unittest/logservice/test_log_config_mgr.cpp index 311ab96f3..0a226b3fd 100755 --- a/unittest/logservice/test_log_config_mgr.cpp +++ b/unittest/logservice/test_log_config_mgr.cpp @@ -1856,7 +1856,7 @@ TEST_F(TestLogConfigMgr, test_check_children_health) cm.children_.add_learner(timeout_child); cm.children_.add_learner(dup_region_child); cm.children_.add_learner(normal_child); - EXPECT_EQ(OB_SUCCESS, cm.check_children_health()); + (void) cm.check_children_health(); EXPECT_EQ(1, cm.children_.get_member_number()); EXPECT_TRUE(cm.children_.contains(normal_child.server_)); } @@ -1874,7 +1874,7 @@ TEST_F(TestLogConfigMgr, test_check_children_health) cm.children_.add_learner(timeout_child); cm.children_.add_learner(diff_region_child); cm.children_.add_learner(normal_child); - EXPECT_EQ(OB_SUCCESS, cm.check_children_health()); + (void) cm.check_children_health(); LogLearnerList children; EXPECT_EQ(OB_SUCCESS, cm.get_children_list(children)); EXPECT_EQ(1, children.get_member_number());