From f8c5c2647fd5c643151872dbd78a27818bb848fa Mon Sep 17 00:00:00 2001 From: stdliu Date: Mon, 6 Feb 2023 15:52:23 +0800 Subject: [PATCH] [FEAT MERGE] Merge syslog user experience improvement to master Co-authored-by: Charles0429 Co-authored-by: tino247 Co-authored-by: chaser-ch --- .../src/common/log/ob_log_data_writer.cpp | 8 +- deps/oblib/src/common/ob_balance_filter.cpp | 4 +- deps/oblib/src/common/ob_clock_generator.cpp | 2 +- deps/oblib/src/common/ob_clock_generator.h | 4 +- deps/oblib/src/common/ob_learner_list.ipp | 4 +- deps/oblib/src/common/ob_member_list.ipp | 4 +- deps/oblib/src/common/ob_queue_thread.cpp | 6 +- deps/oblib/src/common/ob_server_ext.cpp | 42 +-- deps/oblib/src/common/ob_timeout_ctx.cpp | 2 +- deps/oblib/src/common/ob_zone_status.h | 4 +- deps/oblib/src/common/ob_zone_type.cpp | 4 +- .../src/common/object/ob_obj_compare.cpp | 62 +-- deps/oblib/src/common/object/ob_obj_funcs.h | 4 +- deps/oblib/src/common/object/ob_object.cpp | 6 +- deps/oblib/src/common/object/ob_object.h | 6 +- deps/oblib/src/common/row/ob_row.h | 8 +- deps/oblib/src/common/row/ob_row_store.cpp | 20 +- deps/oblib/src/common/rowkey/ob_rowkey.h | 2 +- .../src/common/rowkey/ob_rowkey_info.cpp | 4 +- .../src/common/rowkey/ob_store_rowkey.cpp | 2 +- deps/oblib/src/common/storage/ob_io_device.h | 4 +- deps/oblib/src/lib/CMakeLists.txt | 1 + deps/oblib/src/lib/alloc/block_set.cpp | 2 +- deps/oblib/src/lib/alloc/memory_dump.cpp | 4 +- .../src/lib/alloc/ob_tenant_ctx_allocator.cpp | 18 +- deps/oblib/src/lib/alloc/object_set.cpp | 2 +- .../src/lib/allocator/ob_allocator_v2.cpp | 4 +- .../oblib/src/lib/allocator/ob_allocator_v2.h | 2 +- .../src/lib/allocator/ob_block_alloc_mgr.h | 2 +- .../src/lib/allocator/ob_cached_allocator.h | 4 +- .../lib/allocator/ob_delay_free_allocator.cpp | 18 +- .../src/lib/allocator/ob_fifo_allocator.cpp | 50 +-- .../allocator/ob_fixed_size_block_allocator.h | 2 +- .../oblib/src/lib/allocator/ob_hazard_ref.cpp | 4 +- .../src/lib/allocator/ob_libeasy_mem_pool.cpp | 2 +- deps/oblib/src/lib/allocator/ob_malloc.cpp | 10 +- deps/oblib/src/lib/allocator/ob_malloc.h | 4 +- .../src/lib/allocator/ob_mem_leak_checker.cpp | 2 +- .../src/lib/allocator/ob_mem_leak_checker.h | 3 +- .../src/lib/allocator/ob_page_manager.cpp | 2 +- .../oblib/src/lib/allocator/ob_page_manager.h | 2 +- .../src/lib/allocator/ob_pooled_allocator.h | 2 +- deps/oblib/src/lib/allocator/ob_qsync.h | 8 +- .../src/lib/allocator/ob_retire_station.h | 2 +- .../src/lib/allocator/ob_slice_alloc.cpp | 11 +- deps/oblib/src/lib/allocator/ob_slice_alloc.h | 4 +- .../oblib/src/lib/allocator/ob_vslice_alloc.h | 4 +- deps/oblib/src/lib/allocator/page_arena.h | 12 +- deps/oblib/src/lib/charset/ob_charset.cpp | 20 +- deps/oblib/src/lib/checksum/ob_crc64.cpp | 6 +- deps/oblib/src/lib/container/ob_2d_array.h | 4 +- deps/oblib/src/lib/container/ob_array.h | 12 +- deps/oblib/src/lib/container/ob_array_array.h | 20 +- deps/oblib/src/lib/container/ob_bit_set.h | 6 +- deps/oblib/src/lib/container/ob_bitmap.h | 4 +- .../lib/container/ob_ext_ring_buffer_impl.h | 14 +- deps/oblib/src/lib/container/ob_fast_array.h | 4 +- deps/oblib/src/lib/container/ob_iarray.h | 2 +- deps/oblib/src/lib/container/ob_id_map.h | 4 +- deps/oblib/src/lib/container/ob_se_array.h | 4 +- deps/oblib/src/lib/container/ob_seg_array.h | 6 +- deps/oblib/src/lib/container/ob_vector.h | 2 +- deps/oblib/src/lib/file/ob_file.cpp | 28 +- deps/oblib/src/lib/file/ob_file.h | 4 +- deps/oblib/src/lib/function/ob_function.h | 2 +- deps/oblib/src/lib/future/ob_future.h | 2 +- deps/oblib/src/lib/geo/ob_geo_bin.cpp | 6 +- deps/oblib/src/lib/geo/ob_geo_ibin.cpp | 20 +- deps/oblib/src/lib/geo/ob_geo_utils.cpp | 4 +- deps/oblib/src/lib/geo/ob_geometry_cast.cpp | 6 +- deps/oblib/src/lib/guard/ob_unique_guard.h | 4 +- deps/oblib/src/lib/hash/ob_build_in_hashmap.h | 2 +- .../src/lib/hash/ob_concurrent_hash_map.cpp | 2 +- .../src/lib/hash/ob_concurrent_hash_map.h | 2 +- ...ob_concurrent_hash_map_with_hazard_value.h | 12 +- deps/oblib/src/lib/hash/ob_cuckoo_hashmap.h | 4 +- deps/oblib/src/lib/hash/ob_darray.h | 16 +- deps/oblib/src/lib/hash/ob_dchash.h | 4 +- deps/oblib/src/lib/hash/ob_hash.h | 16 +- deps/oblib/src/lib/hash/ob_hashtable.h | 18 +- deps/oblib/src/lib/hash/ob_hashutils.h | 34 +- .../src/lib/hash/ob_iteratable_hashset.h | 2 +- deps/oblib/src/lib/hash/ob_linear_hash_map.h | 36 +- deps/oblib/src/lib/hash/ob_link_hashmap.h | 2 +- .../oblib/src/lib/hash/ob_link_hashmap_deps.h | 2 +- .../oblib/src/lib/hash/ob_multi_mod_ref_mgr.h | 2 +- deps/oblib/src/lib/hash/ob_pointer_hashmap.h | 22 +- deps/oblib/src/lib/hash/ob_serialization.h | 2 +- deps/oblib/src/lib/json_type/ob_json_base.cpp | 4 +- deps/oblib/src/lib/json_type/ob_json_bin.cpp | 6 +- .../oblib/src/lib/json_type/ob_json_parse.cpp | 38 +- deps/oblib/src/lib/json_type/ob_json_path.cpp | 12 +- deps/oblib/src/lib/json_type/ob_json_tree.cpp | 6 +- deps/oblib/src/lib/list/ob_atomic_list.h | 12 +- deps/oblib/src/lib/list/ob_free_list.h | 6 +- deps/oblib/src/lib/lock/cond.cpp | 15 +- deps/oblib/src/lib/lock/mutex.cpp | 15 +- deps/oblib/src/lib/lock/ob_bucket_lock.cpp | 2 +- deps/oblib/src/lib/lock/ob_bucket_lock.h | 24 +- .../oblib/src/lib/lock/ob_bucket_qsync_lock.h | 18 +- deps/oblib/src/lib/lock/ob_drw_lock.h | 12 +- deps/oblib/src/lib/lock/ob_latch.h | 14 +- deps/oblib/src/lib/lock/ob_lock_guard.h | 4 +- deps/oblib/src/lib/lock/ob_spin_rwlock.h | 8 +- deps/oblib/src/lib/lock/ob_tc_ref.h | 2 +- deps/oblib/src/lib/lock/ob_tc_rwlock.h | 8 +- .../lib/mysqlclient/ob_connection_allocator.h | 2 +- .../mysqlclient/ob_mysql_connection_pool.cpp | 6 +- .../ob_mysql_prepared_statement.cpp | 4 +- .../src/lib/mysqlclient/ob_mysql_result.h | 4 +- .../mysqlclient/ob_single_connection_proxy.h | 2 +- deps/oblib/src/lib/net/ob_addr.cpp | 7 +- deps/oblib/src/lib/number/ob_number_v2.cpp | 18 +- deps/oblib/src/lib/number/ob_number_v2.h | 6 +- deps/oblib/src/lib/ob_errno.h | 4 + .../lib/objectpool/ob_concurrency_objpool.cpp | 18 +- .../lib/objectpool/ob_concurrency_objpool.h | 4 +- .../src/lib/objectpool/ob_global_factory.h | 22 +- deps/oblib/src/lib/objectpool/ob_pool.h | 2 +- deps/oblib/src/lib/objectpool/ob_pool.ipp | 6 +- .../src/lib/objectpool/ob_resource_pool.h | 8 +- .../lib/objectpool/ob_server_object_pool.h | 8 +- deps/oblib/src/lib/objectpool/ob_tc_factory.h | 18 +- deps/oblib/src/lib/oblog/ob_easy_log.cpp | 4 +- deps/oblib/src/lib/oblog/ob_log.cpp | 180 +++++---- deps/oblib/src/lib/oblog/ob_log.h | 117 +++--- deps/oblib/src/lib/oblog/ob_log_level.h | 27 +- deps/oblib/src/lib/oblog/ob_log_module.h | 355 +++++++++++++++++- deps/oblib/src/lib/oblog/ob_log_print_kv.h | 1 - .../ob_syslog_rate_limiter.cpp} | 106 +++--- .../src/lib/oblog/ob_syslog_rate_limiter.h | 149 ++++++++ deps/oblib/src/lib/oblog/ob_trace_log.cpp | 2 +- deps/oblib/src/lib/oblog/ob_trace_log.h | 2 +- deps/oblib/src/lib/profile/ob_perf_event.cpp | 4 +- deps/oblib/src/lib/queue/ob_co_seq_queue.h | 6 +- deps/oblib/src/lib/queue/ob_dedup_queue.cpp | 18 +- deps/oblib/src/lib/rc/context.h | 2 +- deps/oblib/src/lib/resource/achunk_mgr.cpp | 14 +- .../src/lib/resource/ob_resource_mgr.cpp | 6 +- .../src/lib/restore/ob_object_device.cpp | 58 +-- deps/oblib/src/lib/restore/ob_storage.cpp | 12 +- .../oblib/src/lib/restore/ob_storage_file.cpp | 16 +- .../src/lib/restore/ob_storage_oss_base.cpp | 10 +- .../src/lib/signal/ob_signal_handlers.cpp | 2 +- deps/oblib/src/lib/ssl/ob_ssl_config.cpp | 28 +- deps/oblib/src/lib/task/ob_timer.cpp | 8 +- deps/oblib/src/lib/task/ob_timer_monitor.cpp | 2 +- .../src/lib/thread/ob_dynamic_thread_pool.cpp | 16 +- .../lib/thread/ob_multi_fixed_queue_thread.h | 2 +- .../lib/thread/protected_stack_allocator.cpp | 6 +- deps/oblib/src/lib/thread/thread.cpp | 2 +- deps/oblib/src/lib/thread/thread_mgr.h | 6 +- .../src/lib/thread_local/ob_tsi_factory.h | 8 +- .../src/lib/thread_local/thread_buffer.cpp | 4 +- deps/oblib/src/lib/time/Time.cpp | 4 +- deps/oblib/src/lib/time/ob_time_utility.cpp | 6 +- .../src/lib/timezone/ob_timezone_info.cpp | 4 +- .../src/lib/trace/ob_seq_event_recorder.h | 4 +- deps/oblib/src/lib/trace/ob_trace.cpp | 8 +- .../src/lib/utility/ob_hang_fatal_error.cpp | 3 +- deps/oblib/src/lib/utility/ob_macro_utils.h | 27 +- deps/oblib/src/lib/utility/ob_print_utils.h | 4 +- .../src/lib/utility/ob_query_rate_limiter.h | 19 +- deps/oblib/src/lib/utility/ob_rate_limiter.h | 15 +- .../src/lib/utility/ob_sample_rate_limiter.h | 100 ----- deps/oblib/src/lib/utility/ob_tracepoint.cpp | 6 +- deps/oblib/src/lib/utility/serialization.h | 70 ++-- deps/oblib/src/lib/utility/utility.cpp | 57 +-- deps/oblib/src/lib/utility/utility.h | 24 +- deps/oblib/src/rpc/frame/ob_net_easy.cpp | 88 ++++- deps/oblib/src/rpc/frame/ob_req_handler.cpp | 64 ++-- .../src/rpc/frame/ob_req_queue_thread.cpp | 12 +- deps/oblib/src/rpc/frame/ob_req_transport.cpp | 2 +- deps/oblib/src/rpc/frame/ob_req_transport.h | 2 +- deps/oblib/src/rpc/ob_request.h | 6 +- .../obmysql/ob_easy_sql_request_operator.cpp | 16 +- .../src/rpc/obmysql/ob_mysql_handler.cpp | 24 +- .../oblib/src/rpc/obmysql/ob_mysql_packet.cpp | 2 +- .../rpc/obmysql/ob_mysql_request_utils.cpp | 2 +- deps/oblib/src/rpc/obmysql/ob_mysql_util.cpp | 2 +- deps/oblib/src/rpc/obmysql/ob_mysql_util.h | 38 +- deps/oblib/src/rpc/obmysql/ob_sql_nio.cpp | 48 +-- .../src/rpc/obmysql/ob_sql_sock_processor.cpp | 2 +- .../obrpc/ob_easy_rpc_request_operator.cpp | 10 +- deps/oblib/src/rpc/obrpc/ob_net_keepalive.cpp | 6 +- deps/oblib/src/rpc/obrpc/ob_poc_nio.cpp | 24 +- deps/oblib/src/rpc/obrpc/ob_rpc_handler.cpp | 10 +- deps/oblib/src/rpc/obrpc/ob_rpc_mem_pool.cpp | 2 +- .../src/rpc/obrpc/ob_rpc_net_handler.cpp | 28 +- .../src/rpc/obrpc/ob_rpc_processor_base.cpp | 4 +- deps/oblib/src/rpc/obrpc/ob_rpc_proxy.cpp | 7 +- .../src/rpc/obrpc/ob_rpc_session_handler.cpp | 10 +- deps/oblib/src/rpc/obrpc/ob_rpc_stat.h | 2 +- .../ob_virtual_rpc_protocol_processor.cpp | 4 +- .../unittest/common/test_cell_writer.cpp | 2 +- .../lib/oblog/test_ob_log_performance.cpp | 8 + deps/oblib/unittest/lib/test_fixed_array.cpp | 1 + deps/oblib/unittest/lib/test_work_queue.cpp | 1 + .../lib/utility/test_sample_rate_limiter.cpp | 28 +- .../lib/utility/test_simple_rate_limiter.cpp | 2 +- .../unittest/lib/utility/test_utility.cpp | 2 + .../logservice/env/ob_simple_arb_server.cpp | 6 +- mittest/logservice/env/ob_simple_arb_server.h | 4 +- .../logservice/env/ob_simple_log_server.cpp | 2 +- mittest/logservice/test_ob_simple_log_arb.cpp | 2 +- .../test_ob_simple_log_basic_func.cpp | 6 +- .../logservice/test_ob_simple_log_engine.cpp | 4 +- .../logservice/test_ob_simple_log_rebuild.cpp | 2 +- ...test_ob_simple_log_single_replica_func.cpp | 4 +- mittest/mtlenv/storage/test_memtable_v2.cpp | 4 +- mittest/ob_mittest_utils.h | 4 +- mittest/simple_server/fast_commit_report.cpp | 9 +- .../test_observer_expand_shrink.cpp | 2 +- src/diagnose/lua/ob_lua_api.cpp | 18 +- src/diagnose/lua/ob_lua_handler.cpp | 8 +- .../applyservice/ob_log_apply_service.cpp | 6 +- .../archiveservice/dynamic_buffer.cpp | 12 +- .../archiveservice/ob_archive_allocator.cpp | 8 +- .../archiveservice/ob_archive_fetcher.cpp | 6 +- .../archiveservice/ob_archive_persist_mgr.cpp | 2 + .../archiveservice/ob_archive_round_mgr.cpp | 6 +- .../archiveservice/ob_archive_sender.cpp | 4 +- .../archiveservice/ob_archive_sequencer.cpp | 2 +- .../archiveservice/ob_archive_service.cpp | 2 +- .../archiveservice/ob_archive_task.cpp | 2 +- .../archiveservice/ob_archive_timer.cpp | 4 +- src/logservice/archiveservice/ob_ls_mgr.cpp | 2 +- src/logservice/cdcservice/ob_cdc_req.cpp | 2 +- src/logservice/cdcservice/ob_cdc_service.cpp | 4 +- .../ob_data_dict_meta_info.cpp | 14 +- .../data_dictionary/ob_data_dict_struct.cpp | 10 +- .../ob_failure_detector.cpp | 6 +- .../ob_leader_coordinator.cpp | 8 +- src/logservice/libobcdc/src/libobcdc.cpp | 2 +- .../libobcdc/src/ob_log_batch_buffer.cpp | 2 +- .../libobcdc/src/ob_log_batch_buffer_task.cpp | 4 +- .../libobcdc/src/ob_log_binlog_record.cpp | 2 +- src/logservice/libobcdc/src/ob_log_block.cpp | 8 +- .../libobcdc/src/ob_log_committer.cpp | 4 +- src/logservice/libobcdc/src/ob_log_config.cpp | 2 +- .../libobcdc/src/ob_log_factory.cpp | 2 +- .../libobcdc/src/ob_log_fetch_log_rpc.cpp | 12 +- .../libobcdc/src/ob_log_fetcher.cpp | 4 +- .../libobcdc/src/ob_log_formatter.cpp | 2 +- .../libobcdc/src/ob_log_instance.cpp | 28 +- .../libobcdc/src/ob_log_ls_fetch_mgr.cpp | 2 +- .../libobcdc/src/ob_log_ls_info.cpp | 2 +- .../libobcdc/src/ob_log_meta_data_struct.cpp | 2 +- .../src/ob_log_part_trans_dispatcher.cpp | 2 +- .../libobcdc/src/ob_log_schema_cache_info.cpp | 4 +- .../libobcdc/src/ob_log_start_lsn_locator.cpp | 4 +- .../src/ob_log_sys_ls_task_handler.cpp | 2 +- .../libobcdc/src/ob_log_task_pool.h | 4 +- src/logservice/libobcdc/src/ob_log_tenant.cpp | 2 +- .../libobcdc/src/ob_log_tenant_mgr.cpp | 2 +- src/logservice/libobcdc/src/ob_log_timer.cpp | 2 +- .../src/ob_log_timezone_info_getter.cpp | 6 +- .../libobcdc/src/ob_log_trans_ctx_mgr.cpp | 2 +- .../libobcdc/src/ob_log_trans_stat_mgr.cpp | 4 +- src/logservice/libobcdc/src/ob_log_utils.cpp | 2 +- .../libobcdc/src/ob_map_queue_thread.h | 6 +- .../libobcdc/src/ob_ms_queue_thread.h | 2 +- src/logservice/libobcdc/src/ob_seq_thread.h | 4 +- .../libobcdc/src/ob_small_arena.cpp | 12 +- src/logservice/ob_garbage_collector.cpp | 6 +- src/logservice/ob_log_base_header.cpp | 2 +- src/logservice/ob_log_handler.cpp | 2 +- src/logservice/ob_ls_adapter.cpp | 4 +- src/logservice/ob_server_log_block_mgr.cpp | 2 +- src/logservice/palf/block_gc_timer_task.cpp | 2 +- .../election/algorithm/election_acceptor.cpp | 4 +- .../election/algorithm/election_proposer.cpp | 8 +- .../palf/election/interface/election.h | 2 +- .../election/message/election_message.cpp | 16 +- .../election/utils/election_args_checker.h | 6 +- .../election/utils/election_common_define.h | 19 +- .../utils/election_event_recorder.cpp | 4 +- .../palf/election/utils/election_utils.cpp | 4 +- src/logservice/palf/fetch_log_engine.cpp | 4 +- src/logservice/palf/log_checksum.cpp | 4 +- src/logservice/palf/log_config_mgr.cpp | 4 +- src/logservice/palf/log_entry_header.cpp | 8 +- src/logservice/palf/log_group_buffer.cpp | 8 +- .../palf/log_group_entry_header.cpp | 9 +- src/logservice/palf/log_iterator_impl.h | 4 +- src/logservice/palf/log_loop_thread.cpp | 6 +- src/logservice/palf/log_meta_entry_header.cpp | 12 +- src/logservice/palf/log_meta_info.cpp | 4 +- src/logservice/palf/log_mode_mgr.cpp | 4 +- src/logservice/palf/log_reconfirm.cpp | 10 +- src/logservice/palf/log_rpc_proxy.cpp | 2 +- src/logservice/palf/log_sliding_window.cpp | 44 +-- src/logservice/palf/log_state_mgr.cpp | 10 +- src/logservice/palf/palf_env.cpp | 2 +- src/logservice/palf/palf_env_impl.cpp | 7 +- src/logservice/palf/palf_handle_impl.cpp | 4 +- .../replayservice/ob_log_replay_service.cpp | 11 +- .../replayservice/ob_replay_status.cpp | 12 +- .../ob_log_archive_piece_mgr.cpp | 2 +- .../ob_log_restore_allocator.cpp | 2 +- .../restoreservice/ob_log_restore_service.cpp | 2 +- src/objit/src/core/ob_jit_allocator.cpp | 8 +- .../dbms_job/ob_dbms_job_rpc_processor.h | 2 +- .../ob_dbms_sched_job_rpc_processor.h | 2 +- src/observer/main.cpp | 10 +- src/observer/mysql/ob_mysql_end_trans_cb.cpp | 28 +- src/observer/mysql/ob_query_retry_ctrl.cpp | 26 +- src/observer/mysql/obmp_connect.cpp | 8 +- src/observer/mysql/obmp_packet_sender.cpp | 10 +- src/observer/mysql/obsm_handler.cpp | 38 +- src/observer/ob_inner_sql_connection.cpp | 10 +- src/observer/ob_inner_sql_connection_pool.cpp | 6 +- src/observer/ob_inner_sql_rpc_proxy.h | 2 +- src/observer/ob_req_time_service.h | 4 +- src/observer/ob_rpc_processor_simple.cpp | 2 +- src/observer/ob_safe_destroy_thread.cpp | 4 +- src/observer/ob_server.cpp | 33 +- src/observer/ob_server_reload_config.cpp | 8 + src/observer/ob_server_schema_updater.cpp | 4 +- src/observer/ob_server_struct.cpp | 4 +- src/observer/ob_server_utils.cpp | 47 +++ src/observer/ob_server_utils.h | 13 + src/observer/ob_service.cpp | 14 +- src/observer/ob_srv_xlator.cpp | 4 +- src/observer/omt/ob_multi_tenant.cpp | 2 +- src/observer/omt/ob_tenant.cpp | 18 +- src/observer/omt/ob_tenant_config.cpp | 2 +- src/observer/omt/ob_th_worker.cpp | 4 +- src/observer/omt/ob_worker_processor.cpp | 9 +- src/observer/report/ob_ls_table_updater.cpp | 6 +- .../report/ob_tablet_table_updater.cpp | 2 +- src/observer/table/ob_htable_filters.cpp | 12 +- src/observer/table/ob_rpc_async_response.h | 2 +- .../table/ob_table_api_row_iterator.cpp | 12 +- .../table/ob_table_query_sync_processor.cpp | 2 +- .../table/ob_table_rpc_processor_util.h | 2 +- src/observer/table/ob_table_service.cpp | 2 +- src/observer/table/ob_table_session_pool.cpp | 8 +- .../ob_table_load_general_table_compactor.cpp | 2 +- .../table_load/ob_table_load_merger.cpp | 2 +- .../ob_all_virtual_sys_parameter_stat.cpp | 2 +- .../ob_all_virtual_tx_data_table.cpp | 2 +- .../virtual_table/ob_virtual_sql_monitor.cpp | 2 +- src/pl/ob_pl.cpp | 6 +- src/pl/ob_pl_compile.cpp | 2 +- src/pl/ob_pl_interface_pragma.cpp | 2 +- src/pl/ob_pl_stmt.cpp | 4 +- src/pl/ob_pl_user_type.cpp | 38 +- src/pl/pl_cache/ob_pl_cache.cpp | 6 +- src/pl/sys_package/ob_dbms_sql.cpp | 2 +- .../backup/ob_archive_scheduler_service.cpp | 8 +- .../backup/ob_backup_lease_service.cpp | 2 +- .../backup/ob_backup_task_scheduler.cpp | 16 +- .../ddl_task/ob_column_redefinition_task.cpp | 3 +- .../ddl_task/ob_ddl_redefinition_task.cpp | 1 + src/rootserver/ddl_task/ob_ddl_task.cpp | 32 +- src/rootserver/ddl_task/ob_ddl_task.h | 6 +- .../ddl_task/ob_index_build_task.cpp | 5 +- .../ddl_task/ob_table_redefinition_task.cpp | 2 + .../freeze/ob_checksum_validator.cpp | 8 +- .../freeze/ob_daily_major_freeze_launcher.cpp | 2 +- .../freeze/ob_freeze_info_manager.cpp | 6 +- .../freeze/ob_major_freeze_util.cpp | 1 + .../freeze/ob_zone_merge_manager.cpp | 4 +- src/rootserver/ob_all_server_checker.cpp | 2 +- .../ob_balance_group_ls_stat_operator.cpp | 2 +- src/rootserver/ob_bootstrap.cpp | 2 +- src/rootserver/ob_ddl_operator.cpp | 2 +- src/rootserver/ob_ddl_service.cpp | 218 +++++------ src/rootserver/ob_disaster_recovery_task.cpp | 8 +- .../ob_disaster_recovery_task_mgr.cpp | 2 +- ...b_disaster_recovery_task_table_updater.cpp | 2 +- .../ob_disaster_recovery_worker.cpp | 4 +- src/rootserver/ob_index_builder.cpp | 6 +- src/rootserver/ob_root_balancer.cpp | 2 +- src/rootserver/ob_root_inspection.cpp | 9 +- src/rootserver/ob_root_service.cpp | 57 ++- src/rootserver/ob_rs_reentrant_thread.cpp | 7 +- src/rootserver/ob_rs_rpc_processor.h | 2 +- src/rootserver/ob_schema_history_recycler.cpp | 12 +- src/rootserver/ob_server_balancer.cpp | 12 +- src/rootserver/ob_server_balancer.h | 8 +- src/rootserver/ob_server_manager.cpp | 10 +- .../ob_tenant_role_transition_service.cpp | 2 +- src/rootserver/ob_thread_idling.cpp | 2 +- src/rootserver/ob_unit_manager.cpp | 6 +- src/rootserver/ob_update_rs_list_task.cpp | 4 +- src/rootserver/ob_zone_manager.cpp | 2 +- src/rootserver/ob_zone_unit_provider.cpp | 10 +- src/share/backup/ob_archive_mode.cpp | 6 +- src/share/backup/ob_archive_piece.cpp | 6 +- src/share/backup/ob_backup_clean_struct.cpp | 4 +- src/share/backup/ob_backup_config.cpp | 2 +- src/share/backup/ob_backup_io_adapter.cpp | 2 +- src/share/backup/ob_backup_struct.cpp | 23 +- src/share/cache/ob_cache_utils.h | 4 +- src/share/cache/ob_kv_storecache.cpp | 2 +- src/share/cache/ob_kvcache_hazard_version.cpp | 2 +- src/share/cache/ob_kvcache_map.cpp | 2 +- src/share/cache/ob_kvcache_store.cpp | 6 +- src/share/cache/ob_working_set_mgr.cpp | 4 +- .../ob_feedback_partition_struct.h | 2 +- src/share/config/ob_config.cpp | 30 +- src/share/config/ob_config.h | 14 +- src/share/config/ob_config_helper.cpp | 12 +- src/share/config/ob_server_config.cpp | 6 +- src/share/datum/ob_datum.cpp | 4 +- src/share/datum/ob_datum_funcs.cpp | 2 +- src/share/deadlock/ob_deadlock_arg_checker.h | 8 +- .../ob_deadlock_detector_common_define.cpp | 2 +- .../deadlock/ob_deadlock_detector_mgr.cpp | 6 +- .../deadlock/ob_deadlock_detector_rpc.cpp | 2 +- src/share/deadlock/ob_deadlock_detector_rpc.h | 6 +- .../deadlock/ob_deadlock_key_wrapper.cpp | 4 +- .../ob_lcl_batch_sender_thread.cpp | 8 +- src/share/gen_errno.pl | 8 + .../interrupt/ob_global_interrupt_call.cpp | 2 +- .../interrupt/ob_global_interrupt_call.h | 10 +- src/share/io/ob_io_define.cpp | 4 +- src/share/io/ob_io_struct.cpp | 12 +- .../location_cache/ob_location_struct.cpp | 2 +- .../ob_location_update_task.cpp | 6 +- src/share/ls/ob_ls_creator.cpp | 2 +- src/share/ls/ob_ls_info.cpp | 4 +- src/share/ls/ob_ls_operator.cpp | 4 +- src/share/ls/ob_ls_status_operator.cpp | 2 +- src/share/ls/ob_ls_table.cpp | 2 +- src/share/ob_arbitration_service_status.cpp | 2 +- src/share/ob_bg_thread_monitor.cpp | 4 +- src/share/ob_bg_thread_monitor.h | 4 +- src/share/ob_cascad_member_list.cpp | 2 +- src/share/ob_cluster_info_proxy.cpp | 4 +- src/share/ob_cluster_role.cpp | 8 +- src/share/ob_cluster_sync_status.cpp | 2 +- src/share/ob_debug_sync.cpp | 12 +- src/share/ob_device_manager.cpp | 4 +- src/share/ob_errno.cpp | 183 +++++++++ src/share/ob_errno.def | 19 +- src/share/ob_errno.h | 43 ++- src/share/ob_event_history_table_operator.cpp | 12 +- src/share/ob_force_print_log.h | 5 + src/share/ob_lob_access_utils.cpp | 4 +- src/share/ob_local_device.cpp | 8 +- src/share/ob_max_id_fetcher.cpp | 4 +- src/share/ob_occam_time_guard.h | 6 +- src/share/ob_occam_timer.h | 6 +- src/share/ob_primary_standby_service.cpp | 2 +- src/share/ob_replica_info.cpp | 2 +- src/share/ob_rpc_struct.cpp | 26 +- src/share/ob_server_blacklist.cpp | 36 +- src/share/ob_simple_batch.cpp | 2 +- src/share/ob_snapshot_table_proxy.cpp | 2 +- src/share/ob_tablet_autoincrement_service.cpp | 1 + src/share/ob_tablet_checksum_operator.cpp | 2 +- ..._tablet_meta_table_compaction_operator.cpp | 2 +- .../ob_tablet_replica_checksum_operator.cpp | 8 +- src/share/ob_task_define.cpp | 245 +++++++++++- src/share/ob_task_define.h | 2 + src/share/ob_tenant_role.cpp | 4 +- src/share/ob_tenant_switchover_status.cpp | 4 +- src/share/ob_zone_merge_info.cpp | 2 +- src/share/object/ob_obj_cast.cpp | 16 +- src/share/parameter/ob_parameter_seed.ipp | 5 +- .../partition_table/ob_partition_location.cpp | 4 +- src/share/ratelimit/ob_rl_mgr.cpp | 2 +- src/share/ratelimit/ob_rl_rpc.cpp | 4 +- src/share/ratelimit/ob_rl_struct.cpp | 6 +- src/share/rc/ob_context.h | 2 +- src/share/rc/ob_tenant_base.cpp | 4 +- src/share/redolog/ob_log_file_handler.cpp | 2 +- .../ob_resource_manager_proxy.cpp | 2 +- src/share/restore/ob_ls_restore_status.cpp | 2 +- src/share/rpc/ob_async_rpc_proxy.h | 2 +- src/share/rpc/ob_batch_proxy.cpp | 2 +- src/share/rpc/ob_batch_rpc.h | 2 +- src/share/scheduler/ob_dag_scheduler.cpp | 32 +- src/share/scheduler/ob_dag_scheduler.h | 16 +- .../scheduler/ob_dag_warning_history_mgr.h | 2 +- src/share/schema/ob_column_schema.cpp | 6 +- src/share/schema/ob_context_mgr.cpp | 18 +- src/share/schema/ob_ddl_epoch.cpp | 2 +- src/share/schema/ob_directory_mgr.cpp | 4 +- src/share/schema/ob_keystore_mgr.cpp | 2 +- src/share/schema/ob_label_se_policy_mgr.cpp | 8 +- .../schema/ob_mock_fk_parent_table_mgr.cpp | 19 +- .../ob_multi_version_schema_service.cpp | 4 +- src/share/schema/ob_profile_mgr.cpp | 2 +- src/share/schema/ob_rls_mgr.cpp | 8 +- src/share/schema/ob_routine_info.cpp | 8 +- src/share/schema/ob_schema_getter_guard.cpp | 4 +- src/share/schema/ob_schema_mgr.cpp | 25 +- src/share/schema/ob_schema_mgr_cache.cpp | 2 +- src/share/schema/ob_schema_retrieve_utils.ipp | 4 +- src/share/schema/ob_schema_struct.cpp | 50 +-- src/share/schema/ob_schema_struct.h | 2 +- src/share/schema/ob_security_audit_mgr.cpp | 2 +- src/share/schema/ob_sequence_mgr.cpp | 2 +- src/share/schema/ob_synonym_mgr.cpp | 2 +- src/share/schema/ob_sys_variable_mgr.cpp | 2 +- src/share/schema/ob_table_dml_param.cpp | 4 +- src/share/schema/ob_table_schema.cpp | 36 +- src/share/schema/ob_table_sql_service.cpp | 2 +- src/share/schema/ob_tablespace_mgr.cpp | 2 +- src/share/schema/ob_trigger_info.cpp | 2 +- src/share/schema/ob_trigger_mgr.cpp | 31 +- src/share/schema/ob_udf_mgr.cpp | 2 +- src/share/scn.cpp | 8 +- src/share/stat/ob_column_stat.cpp | 4 +- src/share/stat/ob_opt_column_stat.cpp | 2 +- .../stat/ob_opt_stat_monitor_manager.cpp | 4 +- src/share/stat/ob_stat_item.cpp | 2 +- .../system_variable/ob_system_variable.h | 2 +- src/share/table/ob_table.cpp | 2 +- src/share/table/ob_table.h | 2 +- src/sql/das/ob_das_group_scan_op.cpp | 6 +- src/sql/das/ob_das_scan_op.cpp | 6 +- .../das/ob_das_spatial_index_lookup_op.cpp | 4 +- src/sql/dtl/ob_dtl_basic_channel.cpp | 2 +- src/sql/dtl/ob_dtl_interm_result_manager.cpp | 2 +- .../dtl/ob_dtl_local_first_buffer_manager.cpp | 2 +- src/sql/dtl/ob_dtl_rpc_channel.cpp | 8 +- src/sql/dtl/ob_dtl_tenant_mem_manager.cpp | 2 +- .../aggregate/ob_aggregate_function.cpp | 4 +- src/sql/engine/basic/ob_chunk_datum_store.cpp | 2 +- src/sql/engine/basic/ob_chunk_row_store.cpp | 2 +- src/sql/engine/basic/ob_expr_values_op.cpp | 2 +- .../ob_hash_partitioning_infrastructure_op.h | 2 +- src/sql/engine/basic/ob_limit.cpp | 2 +- src/sql/engine/basic/ob_topk.cpp | 2 +- src/sql/engine/cmd/ob_load_data_rpc.cpp | 12 +- src/sql/engine/cmd/ob_load_data_utils.cpp | 6 +- src/sql/engine/cmd/ob_load_data_utils.h | 2 +- src/sql/engine/connect_by/ob_cnnt_by_pump.h | 2 +- .../engine/connect_by/ob_cnnt_by_pump_bfs.cpp | 2 +- src/sql/engine/dml/ob_table_delete_op.cpp | 4 +- src/sql/engine/dml/ob_table_insert_op.cpp | 4 +- src/sql/engine/dml/ob_table_insert_up_op.cpp | 2 +- src/sql/engine/dml/ob_table_replace_op.cpp | 2 +- src/sql/engine/dml/ob_table_update_op.cpp | 4 +- src/sql/engine/expr/ob_expr.h | 4 +- src/sql/engine/expr/ob_expr_dll_udf.cpp | 2 +- src/sql/engine/expr/ob_expr_like.cpp | 2 +- src/sql/engine/expr/ob_expr_lower.cpp | 8 +- src/sql/engine/expr/ob_expr_operator.h | 32 +- .../engine/expr/ob_expr_operator_factory.cpp | 12 +- .../engine/expr/ob_expr_promotion_util.cpp | 2 +- src/sql/engine/expr/ob_postfix_expression.cpp | 6 +- src/sql/engine/join/ob_hash_join_op.h | 2 +- src/sql/engine/ob_exec_context.cpp | 4 +- src/sql/engine/ob_exec_context.h | 2 +- src/sql/engine/ob_phy_operator_type.cpp | 2 +- src/sql/engine/ob_physical_plan.cpp | 2 +- src/sql/engine/ob_serializable_function.cpp | 6 +- src/sql/engine/ob_sql_mem_mgr_processor.cpp | 2 +- src/sql/engine/ob_sql_mem_mgr_processor.h | 2 +- .../engine/ob_tenant_sql_memory_manager.cpp | 2 +- .../px/exchange/ob_px_ms_receive_op.cpp | 4 +- src/sql/engine/px/ob_px_admission.cpp | 6 +- src/sql/engine/px/ob_px_rpc_processor.cpp | 2 +- src/sql/engine/px/ob_px_sqc_async_proxy.cpp | 4 +- src/sql/engine/px/ob_px_sqc_handler.cpp | 2 +- src/sql/engine/px/ob_px_sqc_proxy.cpp | 2 +- src/sql/engine/px/ob_px_task_process.cpp | 10 +- src/sql/engine/px/ob_px_worker.cpp | 9 +- .../recursive_cte/ob_search_method_op.h | 4 +- src/sql/engine/sequence/ob_sequence_op.cpp | 2 +- .../engine/sort/ob_specific_columns_sort.cpp | 4 +- src/sql/engine/table/ob_link_scan_op.cpp | 4 +- src/sql/executor/ob_executor_rpc_impl.cpp | 2 +- src/sql/executor/ob_executor_rpc_impl.h | 2 +- .../executor/ob_remote_executor_processor.cpp | 8 +- src/sql/executor/ob_task.cpp | 8 +- .../ob_task_runner_notifier_service.cpp | 6 +- .../ob_monitor_info_elimination_task.cpp | 2 +- .../monitor/ob_phy_operator_monitor_info.cpp | 10 +- src/sql/monitor/ob_phy_plan_exec_info.h | 2 +- src/sql/ob_end_trans_callback.cpp | 4 +- src/sql/ob_i_end_trans_callback.h | 2 +- src/sql/ob_phy_table_location.cpp | 4 +- src/sql/ob_result_set.cpp | 4 +- src/sql/ob_sql_trans_control.cpp | 2 +- src/sql/ob_sql_utils.cpp | 10 +- src/sql/ob_sql_utils.h | 4 +- src/sql/optimizer/ob_log_granule_iterator.cpp | 2 +- src/sql/optimizer/ob_log_plan_factory.cpp | 16 +- src/sql/optimizer/ob_log_window_function.cpp | 2 +- src/sql/optimizer/ob_logical_operator.cpp | 4 +- src/sql/optimizer/ob_opt_est_cost_model.cpp | 8 +- src/sql/optimizer/ob_optimizer_util.cpp | 4 +- src/sql/optimizer/ob_route_policy.cpp | 4 +- src/sql/optimizer/ob_table_location.cpp | 6 +- src/sql/parser/ob_parser.cpp | 2 +- src/sql/plan_cache/ob_cache_object.cpp | 4 +- .../plan_cache/ob_cache_object_factory.cpp | 4 +- src/sql/plan_cache/ob_dist_plans.cpp | 6 +- src/sql/plan_cache/ob_i_lib_cache_node.cpp | 2 +- src/sql/plan_cache/ob_i_lib_cache_object.cpp | 2 +- src/sql/plan_cache/ob_lib_cache_register.cpp | 6 +- src/sql/plan_cache/ob_plan_cache.cpp | 6 +- src/sql/plan_cache/ob_plan_cache_manager.cpp | 2 +- src/sql/plan_cache/ob_plan_cache_value.cpp | 4 +- src/sql/plan_cache/ob_plan_set.cpp | 2 +- src/sql/plan_cache/ob_prepare_stmt_struct.cpp | 2 +- src/sql/plan_cache/ob_ps_cache_callback.cpp | 10 +- src/sql/plan_cache/ob_ps_cache_callback.h | 6 +- .../privilege_check/ob_privilege_check.cpp | 2 +- src/sql/resolver/cmd/ob_resource_resolver.h | 2 +- src/sql/resolver/dml/ob_dml_resolver.cpp | 4 +- src/sql/resolver/dml/ob_dml_stmt.cpp | 2 +- src/sql/resolver/dml/ob_hint.cpp | 4 +- src/sql/resolver/expr/ob_raw_expr.cpp | 20 +- src/sql/resolver/expr/ob_raw_expr.h | 6 +- src/sql/resolver/expr/ob_raw_expr_util.h | 2 +- src/sql/resolver/ob_resolver_utils.cpp | 6 +- src/sql/resolver/ob_stmt.cpp | 2 +- src/sql/resolver/ob_stmt_resolver.cpp | 2 +- src/sql/rewrite/ob_equal_analysis.cpp | 2 +- src/sql/rewrite/ob_query_range.cpp | 2 +- src/sql/rewrite/ob_query_range.h | 2 +- src/sql/session/ob_basic_session_info.cpp | 12 +- src/sql/session/ob_sql_session_info.cpp | 22 +- src/sql/session/ob_sql_session_mgr.cpp | 2 +- src/sql/udr/ob_udr_item.cpp | 4 +- src/sql/udr/ob_udr_item_mgr.cpp | 2 +- .../access/ob_block_sample_iterator.cpp | 6 +- src/storage/access/ob_multiple_merge.cpp | 4 +- src/storage/backup/ob_backup_factory.cpp | 30 +- src/storage/backup/ob_backup_tmp_file.cpp | 2 +- src/storage/backup/ob_backup_utils.cpp | 2 +- .../encoding/neon/ob_encoding_neon_util.h | 2 +- .../encoding/ob_const_encoder.cpp | 2 +- .../blocksstable/encoding/ob_dict_encoder.cpp | 2 +- .../blocksstable/encoding/ob_encoding_util.h | 2 +- .../encoding/ob_micro_block_encoder.cpp | 4 +- .../blocksstable/encoding/ob_raw_decoder.cpp | 2 +- .../blocksstable/ob_block_sstable_struct.cpp | 4 +- src/storage/blocksstable/ob_data_buffer.cpp | 2 +- src/storage/blocksstable/ob_data_buffer.h | 4 +- src/storage/blocksstable/ob_datum_row.cpp | 8 +- src/storage/blocksstable/ob_datum_row.h | 4 +- src/storage/blocksstable/ob_datum_rowkey.h | 4 +- .../blocksstable/ob_macro_block_checker.cpp | 4 +- .../ob_macro_block_common_header.cpp | 2 +- .../blocksstable/ob_macro_block_handle.cpp | 2 +- .../blocksstable/ob_macro_block_id.cpp | 6 +- .../blocksstable/ob_macro_block_writer.cpp | 6 +- .../blocksstable/ob_micro_block_header.cpp | 4 +- src/storage/blocksstable/ob_row_queue.h | 2 +- src/storage/blocksstable/ob_tmp_file.cpp | 4 +- .../blocksstable/ob_tmp_file_store.cpp | 4 +- src/storage/checkpoint/ob_data_checkpoint.cpp | 12 +- .../compaction/ob_medium_compaction_func.cpp | 7 +- .../compaction/ob_partition_merge_iter.cpp | 32 +- .../compaction/ob_partition_merger.cpp | 3 +- .../compaction/ob_tablet_merge_ctx.cpp | 4 +- .../compaction/ob_tenant_freeze_info_mgr.cpp | 8 +- .../ob_multi_version_garbage_collector.cpp | 6 +- src/storage/ddl/ob_build_index_task.cpp | 4 +- .../ob_ls_complete_migration.cpp | 6 +- .../high_availability/ob_ls_migration.cpp | 8 +- .../ob_ls_prepare_migration.cpp | 6 +- .../ob_ls_remove_member_dag.cpp | 4 +- .../high_availability/ob_ls_restore.cpp | 8 +- .../ob_storage_restore_struct.cpp | 12 +- .../ob_tablet_group_restore.cpp | 6 +- src/storage/lob/ob_lob_manager.cpp | 2 +- src/storage/ls/ob_freezer.cpp | 10 +- src/storage/ls/ob_ls.cpp | 8 +- src/storage/ls/ob_ls_tablet_service.cpp | 14 +- .../mvcc/ob_multi_version_iterator.cpp | 2 +- src/storage/memtable/mvcc/ob_mvcc_ctx.cpp | 2 +- src/storage/memtable/mvcc/ob_mvcc_ctx.h | 4 +- src/storage/memtable/mvcc/ob_mvcc_row.cpp | 4 +- .../memtable/mvcc/ob_mvcc_trans_ctx.cpp | 18 +- .../memtable/mvcc/ob_tx_callback_functor.h | 6 +- src/storage/memtable/ob_lock_wait_mgr.cpp | 10 +- src/storage/memtable/ob_memtable.cpp | 2 +- src/storage/memtable/ob_memtable_context.cpp | 22 +- src/storage/memtable/ob_memtable_context.h | 12 +- .../memtable/ob_memtable_interface.cpp | 4 +- src/storage/memtable/ob_mt_hash.h | 2 +- src/storage/memtable/ob_row_compactor.cpp | 2 +- src/storage/meta_mem/ob_meta_obj_struct.h | 12 +- src/storage/meta_mem/ob_meta_pointer.h | 10 +- .../meta_mem/ob_tenant_meta_mem_mgr.cpp | 24 +- .../meta_mem/ob_tenant_meta_obj_pool.h | 4 +- src/storage/ob_i_memtable_mgr.cpp | 4 +- src/storage/ob_i_memtable_mgr.h | 8 +- src/storage/ob_i_table.cpp | 12 +- src/storage/ob_locality_manager.cpp | 2 +- src/storage/ob_long_ops_monitor.cpp | 2 +- src/storage/ob_parallel_external_sort.h | 2 +- src/storage/ob_partition_range_spliter.h | 2 +- src/storage/ob_query_iterator_factory.cpp | 2 +- src/storage/ob_resource_map.h | 2 +- src/storage/ob_storage_schema.cpp | 4 +- src/storage/ob_storage_schema.h | 2 +- src/storage/ob_storage_struct.cpp | 4 +- src/storage/ob_storage_table_guard.cpp | 10 +- src/storage/ob_store_row_comparer.h | 4 +- src/storage/ob_super_block_struct.cpp | 4 +- src/storage/ob_table_store_stat_mgr.cpp | 2 +- src/storage/ob_tenant_tablet_stat_mgr.cpp | 6 +- .../restore/ob_ls_restore_task_mgr.cpp | 2 +- src/storage/slog/ob_storage_log_item.cpp | 2 +- src/storage/tablelock/ob_arena_object_pool.h | 6 +- .../tablelock/ob_mem_ctx_table_lock.cpp | 6 +- src/storage/tablelock/ob_obj_lock.cpp | 10 +- src/storage/tablet/ob_table_store_util.cpp | 12 +- src/storage/tablet/ob_tablet.cpp | 4 +- src/storage/tablet/ob_tablet.h | 2 +- .../tablet/ob_tablet_binding_helper.cpp | 4 +- src/storage/tablet/ob_tablet_memtable_mgr.cpp | 2 +- src/storage/tablet/ob_tablet_table_store.cpp | 6 +- src/storage/tx/ob_dup_table_rpc.cpp | 4 +- src/storage/tx/ob_gti_rpc.cpp | 4 +- src/storage/tx/ob_gts_rpc.cpp | 8 +- src/storage/tx/ob_multi_data_source.cpp | 2 +- src/storage/tx/ob_time_wheel.cpp | 10 +- src/storage/tx/ob_timestamp_service.cpp | 2 +- src/storage/tx/ob_trans_ctx.cpp | 4 +- src/storage/tx/ob_trans_ctx_lock.cpp | 2 +- src/storage/tx/ob_trans_ctx_lock.h | 2 +- src/storage/tx/ob_trans_ctx_mgr_v4.cpp | 12 +- src/storage/tx/ob_trans_deadlock_adapter.cpp | 6 +- src/storage/tx/ob_trans_define_v4.cpp | 2 +- src/storage/tx/ob_trans_event.cpp | 2 +- src/storage/tx/ob_trans_factory.cpp | 12 +- src/storage/tx/ob_trans_factory.h | 4 +- src/storage/tx/ob_trans_functor.h | 88 ++--- src/storage/tx/ob_trans_hashmap.h | 10 +- src/storage/tx/ob_trans_part_ctx.cpp | 29 +- src/storage/tx/ob_trans_rpc.cpp | 8 +- src/storage/tx/ob_trans_submit_log_cb.cpp | 2 +- src/storage/tx/ob_trans_submit_log_cb.h | 2 +- src/storage/tx/ob_trans_timer.cpp | 20 +- .../tx/ob_two_phase_upstream_committer.cpp | 2 +- src/storage/tx/ob_tx_2pc_msg_handler.cpp | 2 +- src/storage/tx/ob_tx_api.cpp | 4 +- src/storage/tx/ob_tx_data_define.cpp | 14 +- src/storage/tx/ob_tx_data_define.h | 2 +- src/storage/tx/ob_tx_free_route_rpc.cpp | 2 +- src/storage/tx/ob_tx_log.cpp | 2 +- src/storage/tx/ob_tx_replay_executor.cpp | 2 +- src/storage/tx/ob_tx_retain_ctx_mgr.cpp | 2 +- src/storage/tx/ob_tx_serialization.cpp | 4 +- src/storage/tx/ob_xa_ctx_mgr.h | 4 +- src/storage/tx/ob_xa_define.cpp | 20 +- src/storage/tx/ob_xa_rpc.cpp | 4 +- src/storage/tx/ob_xa_rpc.h | 4 +- src/storage/tx/ob_xa_service.cpp | 4 +- src/storage/tx/wrs/ob_black_list.cpp | 6 +- .../ob_tenant_weak_read_cluster_service.cpp | 6 +- .../tx/wrs/ob_tenant_weak_read_service.cpp | 4 +- .../tx/wrs/ob_weak_read_service_rpc.cpp | 4 +- src/storage/tx/wrs/ob_weak_read_util.cpp | 6 +- src/storage/tx_storage/ob_access_service.cpp | 2 +- .../tx_storage/ob_ls_freeze_thread.cpp | 2 +- src/storage/tx_storage/ob_ls_service.cpp | 4 +- src/storage/tx_storage/ob_tenant_freezer.cpp | 6 +- .../tx_table/ob_tx_data_memtable_mgr.cpp | 2 +- src/storage/tx_table/ob_tx_table_define.cpp | 2 +- .../all_virtual_sys_parameter_stat.result | 1 + tools/upgrade/tenant_upgrade_action.py | 17 + tools/upgrade/upgrade_post.py | 17 + tools/upgrade/upgrade_pre.py | 17 + unittest/libobcdc/test_ob_log_dlist.cpp | 2 +- .../mock_election_user.h | 6 +- .../logservice/test_fixed_sliding_window.cpp | 2 +- .../logservice/test_log_sliding_window.cpp | 2 +- unittest/logservice/test_lsn_allocator.cpp | 2 +- unittest/logservice/test_ob_election.cpp | 2 +- .../test_ob_election_with_priority.cpp | 2 +- .../observer/table/test_hfilter_parser.cpp | 2 +- .../share/scheduler/test_dag_scheduler.cpp | 4 +- .../engine/aggregate/test_hash_distinct.cpp | 4 +- .../engine/basic/test_chunk_datum_store.cpp | 18 +- .../sql/engine/basic/test_chunk_row_store.cpp | 60 +-- .../monitoring_dump/test_monitoring_dump.cpp | 2 +- .../sql/optimizer/test_optimizer_utils.cpp | 2 +- unittest/sql/parser/test_fast_parser.cpp | 3 +- unittest/sql/resolver/ddl_resolver.cpp | 2 +- unittest/sql/rewrite/test_query_range.cpp | 2 +- unittest/sql/test_sql_utils.cpp | 8 +- unittest/storage/backup/test_backup.h | 4 +- .../backup/test_backup_index_cache.cpp | 6 +- .../blocksstable/ob_data_file_prepare.h | 4 +- .../memtable/mvcc/test_mvcc_callback.cpp | 6 +- .../mockcontainer/mock_ob_iterator.cpp | 4 +- .../storage/mockcontainer/mock_ob_iterator.h | 6 +- .../storage/mockcontainer/mock_ob_server.cpp | 2 +- unittest/storage/test_io_manager.cpp | 4 +- unittest/storage/test_row_fuse.cpp | 2 +- .../transaction/test_ob_trans_factory.cpp | 8 +- unittest/storage/tx/it/test_tx.cpp | 2 +- unittest/storage/tx/ob_mock_2pc_ctx.cpp | 16 +- 796 files changed, 4465 insertions(+), 3036 deletions(-) rename deps/oblib/src/lib/{utility/ob_simple_rate_limiter.h => oblog/ob_syslog_rate_limiter.cpp} (52%) create mode 100644 deps/oblib/src/lib/oblog/ob_syslog_rate_limiter.h delete mode 100644 deps/oblib/src/lib/utility/ob_sample_rate_limiter.h diff --git a/deps/oblib/src/common/log/ob_log_data_writer.cpp b/deps/oblib/src/common/log/ob_log_data_writer.cpp index 1e18e4fc4..4a1a9d2f9 100644 --- a/deps/oblib/src/common/log/ob_log_data_writer.cpp +++ b/deps/oblib/src/common/log/ob_log_data_writer.cpp @@ -496,7 +496,7 @@ const char *ObLogDataWriter::select_pool_file(char *buf, const int64_t buf_len) char *result = NULL; int64_t len = 0; if (OB_ISNULL(buf) || buf_len < 0) { - SHARE_LOG(WARN, "invalid argument", KP(buf), K(buf_len)); + SHARE_LOG_RET(WARN, OB_INVALID_ARGUMENT, "invalid argument", KP(buf), K(buf_len)); } else if (OB_ISNULL(min_avail_file_id_getter_)) { // do nothing } else if (0 == min_file_id_) { @@ -504,16 +504,16 @@ const char *ObLogDataWriter::select_pool_file(char *buf, const int64_t buf_len) SHARE_LOG(INFO, "min_file_id has not inited, can not reuse file, " "will create new file num_file_to_add", K(num_file_to_add_)); } else if (min_file_id_ < 0) { - SHARE_LOG(ERROR, "min_file_id < 0", K(min_file_id_)); + SHARE_LOG_RET(ERROR, OB_ERROR, "min_file_id < 0", K(min_file_id_)); } else if (num_file_to_add_ > 0) { num_file_to_add_--; SHARE_LOG(INFO, "num_file_to_add >= 0 will create new file.", K(num_file_to_add_)); } else if (min_file_id_ > min_avail_file_id_ && min_file_id_ > (min_avail_file_id_ = min_avail_file_id_getter_->get())) { - SHARE_LOG(WARN, "can not select pool_file", K(min_file_id_), K(min_avail_file_id_)); + SHARE_LOG_RET(WARN, OB_ERROR, "can not select pool_file", K(min_file_id_), K(min_avail_file_id_)); } else if ((len = snprintf(buf, buf_len, "%s/%ld", log_dir_, min_file_id_)) < 0 || len >= buf_len) { - SHARE_LOG(ERROR, "gen fname fail", K(buf_len), KCSTRING(log_dir_), K(min_file_id_)); + SHARE_LOG_RET(ERROR, OB_ERROR, "gen fname fail", K(buf_len), KCSTRING(log_dir_), K(min_file_id_)); } else { result = buf; min_file_id_++; diff --git a/deps/oblib/src/common/ob_balance_filter.cpp b/deps/oblib/src/common/ob_balance_filter.cpp index 401be3043..066c9f642 100644 --- a/deps/oblib/src/common/ob_balance_filter.cpp +++ b/deps/oblib/src/common/ob_balance_filter.cpp @@ -176,12 +176,12 @@ uint64_t ObBalanceFilter::filt(const uint64_t input) void ObBalanceFilter::migrate(const int64_t bucket_pos, const int64_t thread_pos) { if (!inited_) { - _OB_LOG(WARN, "have not inited"); + _OB_LOG_RET(WARN, OB_NOT_INIT, "have not inited"); } else if (0 > bucket_pos || bucket_node_num_ <= bucket_pos || 0 > thread_pos || thread_node_num_ <= thread_pos) { - _OB_LOG(WARN, "invalid param, bucket_pos=%ld thread_pos=%ld", bucket_pos, thread_pos); + _OB_LOG_RET(WARN, OB_NOT_INIT, "invalid param, bucket_pos=%ld thread_pos=%ld", bucket_pos, thread_pos); } else { _OB_LOG(INFO, "migrate bucket_pos=%ld bucket_cnt=%ld thread_pos from %ld:%ld to %ld:%ld", bucket_pos, bucket_nodes_[bucket_pos].cnt, diff --git a/deps/oblib/src/common/ob_clock_generator.cpp b/deps/oblib/src/common/ob_clock_generator.cpp index 90f694241..17e17af3f 100644 --- a/deps/oblib/src/common/ob_clock_generator.cpp +++ b/deps/oblib/src/common/ob_clock_generator.cpp @@ -86,7 +86,7 @@ void ObClockGenerator::run1() break; } else { if (REACH_TIME_INTERVAL(PRINT_LOG_INTERVAL_US)) { - TRANS_LOG(WARN, "clock out of order", K(cur_ts), K(cur_ts_), K(delta)); + TRANS_LOG_RET(WARN, OB_ERR_SYS, "clock out of order", K(cur_ts), K(cur_ts_), K(delta)); } ::usleep(SLEEP_US); } diff --git a/deps/oblib/src/common/ob_clock_generator.h b/deps/oblib/src/common/ob_clock_generator.h index 043276640..cbe0ced1b 100644 --- a/deps/oblib/src/common/ob_clock_generator.h +++ b/deps/oblib/src/common/ob_clock_generator.h @@ -63,7 +63,7 @@ inline int64_t ObClockGenerator::getClock() int64_t ts = 0; if (OB_UNLIKELY(!clock_generator_.inited_)) { - TRANS_LOG(WARN, "clock generator not inited"); + TRANS_LOG_RET(WARN, common::OB_NOT_INIT, "clock generator not inited"); ts = clock_generator_.get_us(); } else { ts = ATOMIC_LOAD(&clock_generator_.cur_ts_); @@ -120,7 +120,7 @@ inline void ObClockGenerator::try_advance_cur_ts(const int64_t cur_ts) if (origin_cur_ts < cur_ts) { break; } else { - TRANS_LOG(WARN, "timestamp rollback, need advance cur ts", K(origin_cur_ts), K(cur_ts)); + TRANS_LOG_RET(WARN, common::OB_ERR_SYS, "timestamp rollback, need advance cur ts", K(origin_cur_ts), K(cur_ts)); } } while (false == ATOMIC_BCAS(&clock_generator_.cur_ts_, origin_cur_ts, cur_ts)); } diff --git a/deps/oblib/src/common/ob_learner_list.ipp b/deps/oblib/src/common/ob_learner_list.ipp index ae3e7d95c..bca847bf8 100644 --- a/deps/oblib/src/common/ob_learner_list.ipp +++ b/deps/oblib/src/common/ob_learner_list.ipp @@ -90,7 +90,7 @@ template T &BaseLearnerList::get_learner(const int64_t idx) { if (idx < 0) { - COMMON_LOG(ERROR, "get_index_by_addr failed", K(idx)); + COMMON_LOG_RET(ERROR, OB_INVALID_ARGUMENT, "get_index_by_addr failed", K(idx)); } return learner_array_[idx]; } @@ -233,7 +233,7 @@ BaseLearnerList &BaseLearnerList::operator=(const Base if (this != &learner_list) { int tmp_ret = OB_SUCCESS; if (OB_SUCCESS != (tmp_ret = deep_copy(learner_list))) { - COMMON_LOG(ERROR, "deep_copy failed", K(tmp_ret)); + COMMON_LOG_RET(ERROR, tmp_ret, "deep_copy failed", K(tmp_ret)); } } return *this; diff --git a/deps/oblib/src/common/ob_member_list.ipp b/deps/oblib/src/common/ob_member_list.ipp index 5672b125b..ff65ca99a 100644 --- a/deps/oblib/src/common/ob_member_list.ipp +++ b/deps/oblib/src/common/ob_member_list.ipp @@ -270,7 +270,7 @@ ObMemberListBase &ObMemberListBase::operator=(co if (this != &member_list) { int tmp_ret = OB_SUCCESS; if (OB_SUCCESS != (tmp_ret = deep_copy(member_list))) { - COMMON_LOG(WARN, "deep_copy failed", K(tmp_ret)); + COMMON_LOG_RET(WARN, tmp_ret, "deep_copy failed", K(tmp_ret)); } } return *this; @@ -301,7 +301,7 @@ int64_t ObMemberListBase::to_string(char *buf, const int64_t buf databuff_printf(buf, buf_len , pos, "%ld", member_number_); for (int64_t i = 0; i < member_number_; ++i) { if (OB_SUCCESS != (tmp_ret = databuff_print_obj(buf, buf_len, pos, member_[i]))) { - COMMON_LOG(WARN, "databuff_print_objfailed", K(tmp_ret)); + COMMON_LOG_RET(WARN, tmp_ret, "databuff_print_objfailed", K(tmp_ret)); } } return pos; diff --git a/deps/oblib/src/common/ob_queue_thread.cpp b/deps/oblib/src/common/ob_queue_thread.cpp index 52ea19cb5..0de4e3067 100644 --- a/deps/oblib/src/common/ob_queue_thread.cpp +++ b/deps/oblib/src/common/ob_queue_thread.cpp @@ -25,7 +25,7 @@ ObCond::ObCond(const int64_t spin_wait_num) : spin_wait_num_(spin_wait_num), { pthread_mutex_init(&mutex_, NULL); if (0 != pthread_cond_init(&cond_, NULL)) { - _OB_LOG(ERROR, "pthread_cond_init failed"); + _OB_LOG_RET(ERROR, common::OB_ERR_SYS, "pthread_cond_init failed"); } } @@ -423,7 +423,7 @@ void *S2MQueueThread::thread_func_(void *data) ThreadConf *const tc = (ThreadConf *)data; if (NULL == tc || NULL == tc->host) { - _OB_LOG(WARN, "thread_func param null pointer"); + _OB_LOG_RET(WARN, common::OB_INVALID_ARGUMENT, "thread_func param null pointer"); } else { tc->host->thread_index() = tc->index; void *pdata = tc->host->on_begin(); @@ -611,7 +611,7 @@ void *M2SQueueThread::thread_func_(void *data) { M2SQueueThread *const host = (M2SQueueThread *)data; if (NULL == host) { - _OB_LOG(WARN, "thread_func param null pointer"); + _OB_LOG_RET(WARN, common::OB_INVALID_ARGUMENT, "thread_func param null pointer"); } else { void *pdata = host->on_begin(); while (host->run_flag_) diff --git a/deps/oblib/src/common/ob_server_ext.cpp b/deps/oblib/src/common/ob_server_ext.cpp index 55dc4e688..4121f6b3c 100644 --- a/deps/oblib/src/common/ob_server_ext.cpp +++ b/deps/oblib/src/common/ob_server_ext.cpp @@ -28,19 +28,19 @@ ObServerExt::~ObServerExt() int ObServerExt::init(char *hname, common::ObAddr server) { - int err = OB_SUCCESS; + int ret = OB_SUCCESS; if (NULL == hname || static_cast(strlen(hname)) >= OB_MAX_HOST_NAME_LENGTH) { _OB_LOG(WARN, "invalid param, hname=%s", hname); - err = OB_INVALID_ARGUMENT; + ret = OB_INVALID_ARGUMENT; } else { MEMCPY(hostname_, hname, strlen(hname) + 1); if (!server_.set_ipv4_addr(server.get_ipv4(), server.get_port())) { - err = OB_ERR_UNEXPECTED; - _OB_LOG(WARN, "fail to set ipv4 addr, ret=%d", err); + ret = OB_ERR_UNEXPECTED; + _OB_LOG(WARN, "fail to set ipv4 addr, ret=%d", ret); } } _OB_LOG(INFO, "magic_num=%ld", magic_num_); - return err; + return ret; } const char *ObServerExt::get_hostname() const @@ -62,14 +62,14 @@ char *ObServerExt::get_hostname() } int ObServerExt::set_hostname(const char *hname) { - int err = OB_SUCCESS; + int ret = OB_SUCCESS; if (NULL == hname || static_cast(strlen(hname)) >= OB_MAX_HOST_NAME_LENGTH) { _OB_LOG(WARN, "invalid param, hname=%s", hname); - err = OB_INVALID_ARGUMENT; + ret = OB_INVALID_ARGUMENT; } else { MEMCPY(hostname_, hname, strlen(hname) + 1); } - return err; + return ret; } const ObAddr &ObServerExt::get_server()const @@ -84,16 +84,16 @@ ObAddr &ObServerExt::get_server() int ObServerExt::serialize(char *buf, const int64_t buf_len, int64_t &pos)const { - int err = OB_SUCCESS; + int ret = OB_SUCCESS; if (NULL == buf || buf_len <= 0 || pos >= buf_len) { _OB_LOG(WARN, "invalid param, buf=%p, buf_len=%ld, pos=%ld", buf, buf_len, pos); - err = OB_INVALID_ARGUMENT; + ret = OB_INVALID_ARGUMENT; } else { int64_t str_len = strlen(hostname_); if (pos + str_len + (int64_t)sizeof(int64_t) * 2 >= buf_len) { _OB_LOG(WARN, "buf is not enough, pos=%ld, buf_len=%ld", pos, buf_len); - err = OB_ERROR; + ret = OB_ERROR; } else { *(reinterpret_cast(buf + pos)) = magic_num_; pos += sizeof(int64_t); @@ -101,28 +101,28 @@ int ObServerExt::serialize(char *buf, const int64_t buf_len, int64_t &pos)const pos += sizeof(int64_t); strncpy(buf + pos, hostname_, str_len); pos += str_len; - err = server_.serialize(buf, buf_len, pos); - if (OB_SUCCESS != err) { + ret = server_.serialize(buf, buf_len, pos); + if (OB_SUCCESS != ret) { _OB_LOG(WARN, "ObAddr rs_server serialize fail"); } } } - return err; + return ret; } int ObServerExt::deserialize(const char *buf, const int64_t buf_len, int64_t &pos) { - int err = OB_SUCCESS; + int ret = OB_SUCCESS; if (NULL == buf || buf_len <= 0 || pos >= buf_len) { _OB_LOG(WARN, "invalid param, buf=%p, buf_len=%ld, pos=%ld", buf, buf_len, pos); - err = OB_INVALID_ARGUMENT; + ret = OB_INVALID_ARGUMENT; } else { int64_t magic_num = 0; magic_num = *(reinterpret_cast(buf + pos)); if (magic_num_ != magic_num) { - err = OB_NOT_THE_OBJECT; - _OB_LOG(WARN, "wrong magic num, can't deserilize the buffer to ObServerExt, err=%d", err); + ret = OB_NOT_THE_OBJECT; + _OB_LOG(WARN, "wrong magic num, can't deserilize the buffer to ObServerExt, ret=%d", ret); } else { pos += sizeof(int64_t); int64_t str_len = 0; @@ -131,13 +131,13 @@ int ObServerExt::deserialize(const char *buf, const int64_t buf_len, int64_t &po strncpy(hostname_, buf + pos, str_len); hostname_[str_len] = '\0'; pos += str_len; - err = server_.deserialize(buf, buf_len, pos); - if (OB_SUCCESS != err) { + ret = server_.deserialize(buf, buf_len, pos); + if (OB_SUCCESS != ret) { _OB_LOG(WARN, "ObAddr rs_server deserialize fail."); } } } - return err; + return ret; } int64_t ObServerExt::get_serialize_size(void)const diff --git a/deps/oblib/src/common/ob_timeout_ctx.cpp b/deps/oblib/src/common/ob_timeout_ctx.cpp index 3bc0287ee..324aefbf0 100644 --- a/deps/oblib/src/common/ob_timeout_ctx.cpp +++ b/deps/oblib/src/common/ob_timeout_ctx.cpp @@ -46,7 +46,7 @@ ObTimeoutCtx::~ObTimeoutCtx() { if (NULL != header()) { if (this != header()) { - LOG_ERROR("destruct timeout context should be header"); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "destruct timeout context should be header"); } else { header() = next_; } diff --git a/deps/oblib/src/common/ob_zone_status.h b/deps/oblib/src/common/ob_zone_status.h index c82b3a70e..50fb97a06 100644 --- a/deps/oblib/src/common/ob_zone_status.h +++ b/deps/oblib/src/common/ob_zone_status.h @@ -40,7 +40,7 @@ inline ObZoneStatus::Status ObZoneStatus::get_status(const common::ObString &sta } else if (status_str == common::ObString::make_string(get_status_str(ACTIVE))) { ret_status = ACTIVE; } else { - SERVER_LOG(WARN, "invalid status_str, return UNKNOWN status", K(status_str)); + SERVER_LOG_RET(WARN, common::OB_ERR_UNEXPECTED, "invalid status_str, return UNKNOWN status", K(status_str)); } return ret_status; } @@ -56,7 +56,7 @@ inline const char *ObZoneStatus::get_status_str(const ObZoneStatus::Status statu str = "INACTIVE"; break; default: - SERVER_LOG(WARN, "unknown zone status, fatal error", K(status)); + SERVER_LOG_RET(WARN, common::OB_ERR_UNEXPECTED, "unknown zone status, fatal error", K(status)); break; } diff --git a/deps/oblib/src/common/ob_zone_type.cpp b/deps/oblib/src/common/ob_zone_type.cpp index 18e1da5cc..3db4011f5 100644 --- a/deps/oblib/src/common/ob_zone_type.cpp +++ b/deps/oblib/src/common/ob_zone_type.cpp @@ -26,7 +26,7 @@ const char *zone_type_to_str(ObZoneType zone_type) { const char *zone_type_str = NULL; if (zone_type < ObZoneType::ZONE_TYPE_READWRITE || zone_type > ObZoneType::ZONE_TYPE_INVALID) { - LOG_ERROR("fatal error, unknown zone_type", K(zone_type)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "fatal error, unknown zone_type", K(zone_type)); } else { int index = static_cast(zone_type); zone_type_str = zone_type_strs[index]; @@ -38,7 +38,7 @@ ObZoneType str_to_zone_type(const char *zone_type_str) { ObZoneType zone_type = ObZoneType::ZONE_TYPE_INVALID; if (NULL == zone_type_str) { - LOG_ERROR("empty zone_type_str", KP(zone_type_str)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "empty zone_type_str", KP(zone_type_str)); } else { for (int64_t i = 0; i <= ObZoneType::ZONE_TYPE_INVALID; ++i) { if (0 == strncasecmp(zone_type_strs[i], zone_type_str, strlen(zone_type_strs[i]))) { diff --git a/deps/oblib/src/common/object/ob_obj_compare.cpp b/deps/oblib/src/common/object/ob_obj_compare.cpp index 914b459ea..1d94af937 100644 --- a/deps/oblib/src/common/object/ob_obj_compare.cpp +++ b/deps/oblib/src/common/object/ob_obj_compare.cpp @@ -37,7 +37,7 @@ bool is_calc_with_end_space(ObObjType type1, ObObjType type2, } #define OBJ_TYPE_CLASS_CHECK(obj, tc)\ if (OB_UNLIKELY(obj.get_type_class() != tc)) { \ - LOG_ERROR("unexpected error. mismatch function for comparison", K(obj), K(tc));\ + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "unexpected error. mismatch function for comparison", K(obj), K(tc));\ right_to_die_or_duty_to_live();\ } @@ -720,7 +720,7 @@ int ObObjCmpFuncs::cmp_func(const ObObj &obj1, \ if (CS_TYPE_INVALID == cs_type) { \ if (obj1.get_collation_type() != obj2.get_collation_type() \ || CS_TYPE_INVALID == obj1.get_collation_type()) { \ - LOG_ERROR("invalid collation", K(obj1.get_collation_type()), K(obj2.get_collation_type()), K(obj1), K(obj2)); \ + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "invalid collation", K(obj1.get_collation_type()), K(obj2.get_collation_type()), K(obj1), K(obj2)); \ } else { \ cs_type = obj1.get_collation_type(); \ } \ @@ -743,7 +743,7 @@ int ObObjCmpFuncs::cmp_func(const ObObj &obj1, \ if (CS_TYPE_INVALID == cs_type) { \ if (obj1.get_collation_type() != obj2.get_collation_type() \ || CS_TYPE_INVALID == obj1.get_collation_type()) { \ - LOG_ERROR("invalid collation", K(obj1.get_collation_type()), K(obj2.get_collation_type()), K(obj1), K(obj2)); \ + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "invalid collation", K(obj1.get_collation_type()), K(obj2.get_collation_type()), K(obj1), K(obj2)); \ } else { \ cs_type = obj1.get_collation_type(); \ } \ @@ -765,7 +765,7 @@ int ObObjCmpFuncs::cmp_func(const ObObj &obj1, \ OBJ_TYPE_CLASS_CHECK(obj2, ObRawTC); \ if (CS_TYPE_BINARY != obj1.get_collation_type() \ || CS_TYPE_BINARY != obj2.get_collation_type()) { \ - LOG_ERROR("invalid collation", K(obj1.get_collation_type()), K(obj2.get_collation_type()), K(cmp_ctx.cmp_cs_type_)); \ + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "invalid collation", K(obj1.get_collation_type()), K(obj2.get_collation_type()), K(cmp_ctx.cmp_cs_type_)); \ } else { \ ret = static_cast(ObCharset::strcmpsp(CS_TYPE_BINARY, obj1.v_.string_, obj1.val_len_, \ obj2.v_.string_, obj2.val_len_, CALC_WITH_END_SPACE(obj1, obj2, cmp_ctx)) op_str 0); \ @@ -784,7 +784,7 @@ int ObObjCmpFuncs::cmp_func(const ObObj &obj1, \ OBJ_TYPE_CLASS_CHECK(obj2, ObRawTC);\ if (CS_TYPE_BINARY != obj1.get_collation_type() \ || CS_TYPE_BINARY != obj2.get_collation_type()) { \ - LOG_ERROR("invalid collation", K(obj1.get_collation_type()), K(obj2.get_collation_type()), K(cmp_ctx.cmp_cs_type_)); \ + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "invalid collation", K(obj1.get_collation_type()), K(obj2.get_collation_type()), K(cmp_ctx.cmp_cs_type_)); \ } else { \ ret = INT_TO_CR(ObCharset::strcmpsp(CS_TYPE_BINARY, obj1.v_.string_, obj1.val_len_, \ obj2.v_.string_, obj2.val_len_, CALC_WITH_END_SPACE(obj1, obj2, cmp_ctx))); \ @@ -811,7 +811,7 @@ int ObObjCmpFuncs::cmp_func(const ObObj &obj1, \ if (CS_TYPE_INVALID == cs_type) { \ if (obj1.get_collation_type() != obj2.get_collation_type() \ || CS_TYPE_INVALID == obj1.get_collation_type()) { \ - LOG_ERROR("invalid collation", K(obj1.get_collation_type()), K(obj2.get_collation_type()), K(obj1), K(obj2)); \ + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "invalid collation", K(obj1.get_collation_type()), K(obj2.get_collation_type()), K(obj1), K(obj2)); \ } else { \ cs_type = obj1.get_collation_type(); \ } \ @@ -846,7 +846,7 @@ int ObObjCmpFuncs::cmp_func(const ObObj &obj1, \ if (CS_TYPE_INVALID == cs_type) { \ if (obj1.get_collation_type() != obj2.get_collation_type() \ || CS_TYPE_INVALID == obj1.get_collation_type()) { \ - LOG_ERROR("invalid collation", K(obj1.get_collation_type()), K(obj2.get_collation_type()), K(obj1), K(obj2)); \ + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "invalid collation", K(obj1.get_collation_type()), K(obj2.get_collation_type()), K(obj1), K(obj2)); \ } else { \ cs_type = obj1.get_collation_type(); \ } \ @@ -902,7 +902,7 @@ int ObObjCmpFuncs::cmp_func(const ObObj &obj1, \ if (CS_TYPE_INVALID == cs_type) { \ if (obj1.get_collation_type() != obj2.get_collation_type() \ || CS_TYPE_INVALID == obj1.get_collation_type()) { \ - LOG_ERROR("invalid collation", K(obj1.get_collation_type()), K(obj2.get_collation_type()), K(obj1), K(obj2)); \ + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "invalid collation", K(obj1.get_collation_type()), K(obj2.get_collation_type()), K(obj1), K(obj2)); \ } else { \ cs_type = obj1.get_collation_type(); \ } \ @@ -941,7 +941,7 @@ int ObObjCmpFuncs::cmp_func(const ObObj &obj1, \ if (CS_TYPE_INVALID == cs_type) { \ if (obj1.get_collation_type() != obj2.get_collation_type() \ || CS_TYPE_INVALID == obj1.get_collation_type()) { \ - LOG_ERROR("invalid collation", K(obj1.get_collation_type()), K(obj2.get_collation_type()), K(obj1), K(obj2)); \ + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "invalid collation", K(obj1.get_collation_type()), K(obj2.get_collation_type()), K(obj1), K(obj2)); \ } else { \ cs_type = obj1.get_collation_type(); \ } \ @@ -983,7 +983,7 @@ int ObObjCmpFuncs::cmp_func(const ObObj &obj1, \ int64_t v2 = obj2.get_datetime(); \ if (obj1.get_type() != obj2.get_type()) { \ if (OB_UNLIKELY(INVALID_TZ_OFF == cmp_ctx.tz_off_)) { \ - LOG_ERROR("invalid timezone offset", K(obj1), K(obj2)); \ + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "invalid timezone offset", K(obj1), K(obj2)); \ ret = CR_OB_ERROR; \ } else { \ /*same tc while not same type*/ \ @@ -1015,7 +1015,7 @@ int ObObjCmpFuncs::cmp_func(const ObObj &obj1, \ int64_t v2 = obj2.get_datetime();\ if (obj1.get_type() != obj2.get_type()) { \ if (OB_UNLIKELY(INVALID_TZ_OFF == cmp_ctx.tz_off_)) { \ - LOG_ERROR("invalid timezone offset", K(obj1), K(obj2)); \ + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "invalid timezone offset", K(obj1), K(obj2)); \ ret = CR_OB_ERROR; \ } else { \ /*same tc while not same type*/ \ @@ -1059,7 +1059,7 @@ int ObObjCmpFuncs::cmp_func(const ObObj &obj1, \ ObOTimestampData v2 = obj2.get_otimestamp_value();\ if (!obj2.is_timestamp_nano()) { \ if (OB_UNLIKELY(INVALID_TZ_OFF == cmp_ctx.tz_off_)) {\ - LOG_ERROR("invalid timezone offset", K(obj1), K(obj2)); \ + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "invalid timezone offset", K(obj1), K(obj2)); \ ret = CR_OB_ERROR; \ } else {\ v1.time_us_ -= cmp_ctx.tz_off_;\ @@ -1083,7 +1083,7 @@ int ObObjCmpFuncs::cmp_func(const ObObj &obj1, \ ObOTimestampData v2 = obj2.get_otimestamp_value(); \ if (!obj2.is_timestamp_nano()) { \ if (OB_UNLIKELY(INVALID_TZ_OFF == cmp_ctx.tz_off_)) {\ - LOG_ERROR("invalid timezone offset", K(obj1), K(obj2)); \ + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "invalid timezone offset", K(obj1), K(obj2)); \ ret = CR_OB_ERROR; \ } else {\ v1.time_us_ -= cmp_ctx.tz_off_;\ @@ -1115,7 +1115,7 @@ int ObObjCmpFuncs::cmp_func(const ObObj &obj1, \ v2.time_us_ = obj2.get_datetime();\ if (!obj1.is_timestamp_nano()) {\ if (OB_UNLIKELY(INVALID_TZ_OFF == cmp_ctx.tz_off_)) {\ - LOG_ERROR("invalid timezone offset", K(obj1), K(obj2)); \ + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "invalid timezone offset", K(obj1), K(obj2)); \ ret = CR_OB_ERROR; \ } else {\ v2.time_us_ -= cmp_ctx.tz_off_;\ @@ -1139,7 +1139,7 @@ int ObObjCmpFuncs::cmp_func(const ObObj &obj1, \ v2.time_us_ = obj2.get_datetime();\ if (!obj1.is_timestamp_nano()) {\ if (OB_UNLIKELY(INVALID_TZ_OFF == cmp_ctx.tz_off_)) {\ - LOG_ERROR("invalid timezone offset", K(obj1), K(obj2)); \ + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "invalid timezone offset", K(obj1), K(obj2)); \ ret = CR_OB_ERROR; \ } else {\ v2.time_us_ -= cmp_ctx.tz_off_;\ @@ -1168,7 +1168,7 @@ int ObObjCmpFuncs::cmp_func(const ObObj &obj1, \ ObOTimestampData v2 = obj2.get_otimestamp_value(); \ if (obj1.is_timestamp_nano() != obj2.is_timestamp_nano()) { \ if (OB_UNLIKELY(INVALID_TZ_OFF == cmp_ctx.tz_off_)) {\ - LOG_ERROR("invalid timezone offset", K(obj1), K(obj2)); \ + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "invalid timezone offset", K(obj1), K(obj2)); \ ret = CR_OB_ERROR; \ } else {\ if (obj1.is_timestamp_nano()) {\ @@ -1195,7 +1195,7 @@ int ObObjCmpFuncs::cmp_func(const ObObj &obj1, \ ObOTimestampData v2 = obj2.get_otimestamp_value();\ if (obj1.is_timestamp_nano() != obj2.is_timestamp_nano()) {\ if (OB_UNLIKELY(INVALID_TZ_OFF == cmp_ctx.tz_off_)) {\ - LOG_ERROR("invalid timezone offset", K(obj1), K(obj2)); \ + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "invalid timezone offset", K(obj1), K(obj2)); \ ret = CR_OB_ERROR; \ } else if (obj1.is_timestamp_nano()) {\ v1.time_us_ -= cmp_ctx.tz_off_;\ @@ -1225,7 +1225,7 @@ int ObObjCmpFuncs::cmp_func(const ObObj &obj1, \ OBJ_TYPE_CLASS_CHECK(obj2, ObIntervalTC); \ ObCmpRes ret = CR_FALSE;\ if (obj1.get_type() != obj2.get_type()) { \ - LOG_ERROR("different interval type can not compare", K(obj1), K(obj2)); \ + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "different interval type can not compare", K(obj1), K(obj2)); \ ret = CR_OB_ERROR; \ } else if (obj1.is_interval_ym()) { \ ret = obj1.get_interval_ym() op_str obj2.get_interval_ym() ? CR_TRUE : CR_FALSE; \ @@ -1247,7 +1247,7 @@ int ObObjCmpFuncs::cmp_func(const ObObj &obj1, \ OBJ_TYPE_CLASS_CHECK(obj2, ObIntervalTC); \ ObCmpRes ret = CR_FALSE; \ if (obj1.get_type() != obj2.get_type()) { \ - LOG_ERROR("different interval type can not compare", K(obj1), K(obj2)); \ + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "different interval type can not compare", K(obj1), K(obj2)); \ ret = CR_OB_ERROR; \ } else if (obj1.is_interval_ym()) { \ ObIntervalYMValue v1 = obj1.get_interval_ym(); \ @@ -1282,7 +1282,7 @@ int ObObjCmpFuncs::cmp_func(const ObObj &obj1, \ if (CS_TYPE_INVALID == cs_type) { \ if (obj1.get_collation_type() != obj2.get_collation_type() \ || CS_TYPE_INVALID == obj1.get_collation_type()) { \ - LOG_ERROR("invalid collation", K(obj1.get_collation_type()), K(obj2.get_collation_type()), K(obj1), K(obj2)); \ + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "invalid collation", K(obj1.get_collation_type()), K(obj2.get_collation_type()), K(obj1), K(obj2)); \ } else { \ cs_type = obj1.get_collation_type(); \ } \ @@ -1444,7 +1444,7 @@ int ObObjCmpFuncs::cmp_func(const ObObj &obj1, \ if (OB_UNLIKELY(obj1.get_type() != obj2.get_type()) || \ OB_UNLIKELY(!obj1.is_urowid())) { \ ret = CR_OB_ERROR; \ - LOG_ERROR("only support urowid for now", K(ret)); \ + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "only support urowid for now", K(ret)); \ } else { \ ret = \ static_cast(obj1.get_urowid().compare(obj2.get_urowid())); \ @@ -1463,7 +1463,7 @@ int ObObjCmpFuncs::cmp_func(const ObObj &obj1, \ if (OB_UNLIKELY(obj1.get_type() != obj2.get_type()) || \ OB_UNLIKELY(!obj1.is_urowid())) { \ ret = CR_OB_ERROR; \ - LOG_ERROR("only support urowid for now", K(ret)); \ + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "only support urowid for now", K(ret)); \ } else { \ ret = obj1.get_urowid() op_str obj2.get_urowid() ? CR_TRUE : CR_FALSE; \ } \ @@ -1660,7 +1660,7 @@ int ObObjCmpFuncs::cmp_func(const ObObj &obj1, \ if (CS_TYPE_INVALID == cs_type) { \ if (obj1.get_collation_type() != obj2.get_collation_type() \ || CS_TYPE_INVALID == obj1.get_collation_type()) { \ - LOG_ERROR("invalid collation", K(obj1.get_collation_type()), K(obj2.get_collation_type()), K(obj1), K(obj2)); \ + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "invalid collation", K(obj1.get_collation_type()), K(obj2.get_collation_type()), K(obj1), K(obj2)); \ } else { \ cs_type = obj1.get_collation_type(); \ } \ @@ -3729,7 +3729,7 @@ bool ObObjCmpFuncs::compare_oper_nullsafe(const ObObj &obj1, if (OB_UNLIKELY(ob_is_invalid_obj_type(type1) || ob_is_invalid_obj_type(type2) || ob_is_invalid_cmp_op_bool(cmp_op))) { - LOG_ERROR("invalid obj1 or obj2 or cmp_op", K(obj1), K(obj2), K(cmp_op)); + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "invalid obj1 or obj2 or cmp_op", K(obj1), K(obj2), K(cmp_op)); right_to_die_or_duty_to_live(); } else { obj_cmp_func cmp_op_func = NULL; @@ -3737,12 +3737,12 @@ bool ObObjCmpFuncs::compare_oper_nullsafe(const ObObj &obj1, obj2.get_meta(), cmp_op, cmp_op_func))) { - LOG_ERROR("obj1 and obj2 can't compare", K(obj1), K(obj2), K(cmp_op)); + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "obj1 and obj2 can't compare", K(obj1), K(obj2), K(cmp_op)); right_to_die_or_duty_to_live(); } else { ObCompareCtx cmp_ctx(ObMaxType, cs_type, true, INVALID_TZ_OFF, default_null_pos()); if (OB_UNLIKELY(CR_OB_ERROR == (cmp = cmp_op_func(obj1, obj2, cmp_ctx)))) { - LOG_ERROR("failed to compare obj1 and obj2", K(obj1), K(obj2), K(cmp_op)); + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "failed to compare obj1 and obj2", K(obj1), K(obj2), K(cmp_op)); right_to_die_or_duty_to_live(); } } @@ -3785,12 +3785,12 @@ int ObObjCmpFuncs::compare_nullsafe(const ObObj &obj1, obj2.get_meta(), CO_CMP, cmp_func))) { - LOG_ERROR("obj1 and obj2 can't compare", K(obj1), K(obj2), K(obj1.get_meta()), K(obj2.get_meta())); + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "obj1 and obj2 can't compare", K(obj1), K(obj2), K(obj1.get_meta()), K(obj2.get_meta())); right_to_die_or_duty_to_live(); } else { ObCompareCtx cmp_ctx(ObMaxType, cs_type, true, INVALID_TZ_OFF, lib::is_oracle_mode() ? NULL_LAST : NULL_FIRST); if (OB_UNLIKELY(CR_OB_ERROR == (cmp = cmp_func(obj1, obj2, cmp_ctx)))) { - LOG_ERROR("failed to compare obj1 and obj2", K(obj1), K(obj2), K(obj1.get_meta()), K(obj2.get_meta())); + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "failed to compare obj1 and obj2", K(obj1), K(obj2), K(obj1.get_meta()), K(obj2.get_meta())); right_to_die_or_duty_to_live(); } } @@ -3842,7 +3842,7 @@ int ObObjCmpFuncs::compare_nullsafe(const ObObj &obj1, // because this function is so fundamental and performance related. if (ob_is_invalid_obj_type(type1) || ob_is_invalid_obj_type(type2)) { - LOG_ERROR("invalid obj1 or obj2", K(obj1), K(obj2)); + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "invalid obj1 or obj2", K(obj1), K(obj2)); right_to_die_or_duty_to_live(); } else { obj_cmp_func cmp_func = NULL; @@ -3850,10 +3850,10 @@ int ObObjCmpFuncs::compare_nullsafe(const ObObj &obj1, obj2.get_meta(), CO_CMP, cmp_func))) { - LOG_ERROR("obj1 and obj2 can't compare", K(obj1), K(obj2)); + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "obj1 and obj2 can't compare", K(obj1), K(obj2)); right_to_die_or_duty_to_live(); } else if (OB_UNLIKELY(CR_OB_ERROR == (cmp = cmp_func(obj1, obj2, cmp_ctx)))) { - LOG_ERROR("failed to compare obj1 and obj2", K(obj1), K(obj2)); + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "failed to compare obj1 and obj2", K(obj1), K(obj2)); right_to_die_or_duty_to_live(); } else { // do nothing diff --git a/deps/oblib/src/common/object/ob_obj_funcs.h b/deps/oblib/src/common/object/ob_obj_funcs.h index f953218d2..92539170b 100644 --- a/deps/oblib/src/common/object/ob_obj_funcs.h +++ b/deps/oblib/src/common/object/ob_obj_funcs.h @@ -2258,10 +2258,10 @@ inline int64_t obj_val_get_serialize_size(const ObObj &obj) int64_t len = 0; OB_UNIS_ADD_LEN(obj.get_ext()); if (obj.is_pl_extend()) { - COMMON_LOG(ERROR, "Unexpected serialize", K(OB_NOT_SUPPORTED), K(obj), K(obj.get_meta().get_extend_type())); + COMMON_LOG_RET(ERROR, OB_NOT_SUPPORTED, "Unexpected serialize", K(OB_NOT_SUPPORTED), K(obj), K(obj.get_meta().get_extend_type())); return len; //TODO:@ryan.ly: close this feature before composite refactor if (NULL == composite_serialize_size_callback) { - COMMON_LOG(ERROR, "Unexpected callback", K(OB_ERR_UNEXPECTED), K(obj)); + COMMON_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "Unexpected callback", K(OB_ERR_UNEXPECTED), K(obj)); } else { len += composite_serialize_size_callback(obj); } diff --git a/deps/oblib/src/common/object/ob_object.cpp b/deps/oblib/src/common/object/ob_object.cpp index 1f1540a07..a5910b461 100644 --- a/deps/oblib/src/common/object/ob_object.cpp +++ b/deps/oblib/src/common/object/ob_object.cpp @@ -1303,7 +1303,7 @@ int ObObj::check_collation_free_and_compare(const ObObj &other) const || CS_TYPE_COLLATION_FREE != get_collation_type() || get_type() != other.get_type() || !is_character_type()) { - LOG_ERROR("unexpected error, invalid argument", K(*this), K(other)); + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "unexpected error, invalid argument", K(*this), K(other)); right_to_die_or_duty_to_live(); } else { // 只用于sortkey转换后的Obj比较 @@ -1809,7 +1809,7 @@ bool ObObj::check_collation_integrity() const } if (!is_ok) { if (REACH_TIME_INTERVAL(10 * 1000 * 1000)) { - BACKTRACE(WARN, true, "unexpected collation type: %s", to_cstring(get_meta())); + BACKTRACE_RET(WARN, true, common::OB_ERR_UNEXPECTED, "unexpected collation type: %s", to_cstring(get_meta())); } } #endif @@ -1866,7 +1866,7 @@ void ObObj::checksum(ObBatchChecksum &bc) const void ObObj::dump(const int32_t log_level /*= OB_LOG_LEVEL_DEBUG*/) const { - _OB_NUM_LEVEL_LOG(log_level, "%s", S(*this)); + _OB_NUM_LEVEL_LOG(log_level, 0, "%s", S(*this)); } int ObObj::print_varchar_literal(const ObIArray &type_infos, char *buffer, int64_t length, int64_t &pos) const diff --git a/deps/oblib/src/common/object/ob_object.h b/deps/oblib/src/common/object/ob_object.h index b761ae678..7f2abfbb5 100644 --- a/deps/oblib/src/common/object/ob_object.h +++ b/deps/oblib/src/common/object/ob_object.h @@ -678,7 +678,7 @@ struct ObMemLobCommon && (type_ > INVALID_LOB && type_ <= TEMP_DELTA_LOB) && ((is_simple_ & has_extern_) != 1); if (!bret) { - COMMON_LOG(WARN, "Invalid lob locator v2!", + COMMON_LOG_RET(WARN, common::OB_INVALID_ARGUMENT, "Invalid lob locator v2!", K(lob_common_), K(version_), K(type_), K(is_simple_), K(has_extern_), K(lbt())); } return bret; @@ -892,7 +892,7 @@ public: bret = false; } if (!bret) { - COMMON_LOG(WARN, "Invalid lob locator!", KP(ptr_), K(size_)); + COMMON_LOG_RET(WARN, common::OB_INVALID_ARGUMENT, "Invalid lob locator!", KP(ptr_), K(size_)); if (OB_NOT_NULL(loc) && is_assert) { OB_ASSERT(0); } @@ -1197,7 +1197,7 @@ public: OB_INLINE void set_type(const ObObjType &type) { if (OB_UNLIKELY(ObNullType > type || ObMaxType < type)) { - COMMON_LOG(ERROR, "invalid type", K(type)); + COMMON_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "invalid type", K(type)); meta_.set_type(ObUnknownType); } else { meta_.set_type(type); diff --git a/deps/oblib/src/common/row/ob_row.h b/deps/oblib/src/common/row/ob_row.h index 8e4e6e4e5..fbe86a84e 100644 --- a/deps/oblib/src/common/row/ob_row.h +++ b/deps/oblib/src/common/row/ob_row.h @@ -90,13 +90,13 @@ public: int64_t real_idx = index; if (projector_size_ > 0) { if (OB_ISNULL(projector_) || index >= projector_size_ || index < 0) { - COMMON_LOG(ERROR, "index is invalid", K(index), K_(projector_size), K_(projector)); + COMMON_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "index is invalid", K(index), K_(projector_size), K_(projector)); } else { real_idx = projector_[index]; } } if (real_idx >= count_) { - COMMON_LOG(ERROR, "real_idx is invalid", K_(count), K(real_idx)); + COMMON_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "real_idx is invalid", K_(count), K(real_idx)); } return cells_[real_idx]; } @@ -106,14 +106,14 @@ public: int64_t real_idx = index; if (projector_size_ > 0) { if (OB_ISNULL(projector_) || index >= projector_size_ || index < 0) { - COMMON_LOG(ERROR, "index is invalid", K(index), K_(projector_size), K_(projector)); + COMMON_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "index is invalid", K(index), K_(projector_size), K_(projector)); right_to_die_or_duty_to_live(); } else { real_idx = projector_[index]; } } if (real_idx >= count_) { - COMMON_LOG(ERROR, "real_idx is invalid", K_(count), K(real_idx)); + COMMON_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "real_idx is invalid", K_(count), K(real_idx)); right_to_die_or_duty_to_live(); } return cells_[real_idx]; diff --git a/deps/oblib/src/common/row/ob_row_store.cpp b/deps/oblib/src/common/row/ob_row_store.cpp index cead21a3a..e361c98c5 100644 --- a/deps/oblib/src/common/row/ob_row_store.cpp +++ b/deps/oblib/src/common/row/ob_row_store.cpp @@ -594,7 +594,7 @@ ObRowStore::BlockInfo* ObRowStore::new_block(int64_t block_size) ObMemAttr attr(tenant_id_, label_, ctx_id_); block = static_cast(alloc_.alloc(block_size, attr)); if (OB_ISNULL(block)) { - OB_LOG(WARN, "no memory"); + OB_LOG_RET(WARN, common::OB_ERR_UNEXPECTED, "no memory"); } else { block = new(block) BlockInfo(block_size); if (!has_big_block_ && block_size == BIG_BLOCK_SIZE) { @@ -610,11 +610,11 @@ ObRowStore::BlockInfo *ObRowStore::new_block() BlockInfo *blk = NULL; if (OB_LIKELY(!has_big_block_)) { // use config BLOCK size if (OB_ISNULL(blk = new_block(block_size_))) { - OB_LOG(WARN, "failed to new block", K_(block_size)); + OB_LOG_RET(WARN, common::OB_ERR_UNEXPECTED, "failed to new block", K_(block_size)); } } else { // use BIG_BLOCK if (OB_ISNULL(blk = new_block(BIG_BLOCK_SIZE))) { - OB_LOG(WARN, "failed to new big block", K(blk)); + OB_LOG_RET(WARN, common::OB_ERR_UNEXPECTED, "failed to new big block", K(blk)); } } return blk; @@ -900,15 +900,15 @@ ObRowStore *ObRowStore::clone(char *buffer, int64_t buffer_length) const ObRowStore *copy = NULL; int64_t used_length = 0; if (OB_ISNULL(buffer)) { - OB_LOG(WARN, "buffer is NULL"); + OB_LOG_RET(WARN, OB_INVALID_ARGUMENT, "buffer is NULL"); } else if (0 < reserved_columns_.count()) { - OB_LOG(ERROR, "row store with reserved columns should not be cloned"); + OB_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "row store with reserved columns should not be cloned"); } else if (OB_UNLIKELY(buffer_length < get_meta_size())) { - OB_LOG(WARN, "invalid buffer length", K(buffer_length), K(get_meta_size())); + OB_LOG_RET(WARN, OB_INVALID_ARGUMENT, "invalid buffer length", K(buffer_length), K(get_meta_size())); } else { copy = new(buffer) ObRowStore(); if (OB_ISNULL(copy)) { - OB_LOG(WARN, "fail to new ObRowStore", K(copy)); + OB_LOG_RET(WARN, OB_ALLOCATE_MEMORY_FAILED, "fail to new ObRowStore", K(copy)); } else { used_length += get_meta_size(); copy->is_read_only_ = true; @@ -927,20 +927,20 @@ ObRowStore *ObRowStore::clone(char *buffer, int64_t buffer_length) const used_length += sz; if (OB_UNLIKELY(buffer_length < used_length)) { copy = NULL; - OB_LOG(WARN, "invalid buffer length", K(buffer_length), K(used_length)); + OB_LOG_RET(WARN, OB_INVALID_ARGUMENT, "invalid buffer length", K(buffer_length), K(used_length)); break; } MEMCPY(buffer, bip, sz); tmp = new(buffer) BlockInfo(sz); if (OB_ISNULL(tmp)) { - OB_LOG(WARN, "fail to new BlockInfo"); + OB_LOG_RET(WARN, OB_ALLOCATE_MEMORY_FAILED, "fail to new BlockInfo"); copy = NULL; break; } else { tmp->set_curr_data_pos(bip->get_curr_data_pos()); int64_t tmp_ret = OB_SUCCESS; if (OB_SUCCESS != (tmp_ret = copy->blocks_.add_last(tmp))) { - OB_LOG(WARN, "fail to add last to block", K(tmp_ret)); + OB_LOG_RET(WARN, tmp_ret, "fail to add last to block", K(tmp_ret)); copy = NULL; break; } else { diff --git a/deps/oblib/src/common/rowkey/ob_rowkey.h b/deps/oblib/src/common/rowkey/ob_rowkey.h index ff2434e75..f3f020ca4 100644 --- a/deps/oblib/src/common/rowkey/ob_rowkey.h +++ b/deps/oblib/src/common/rowkey/ob_rowkey.h @@ -255,7 +255,7 @@ inline int64_t ObRowkey::get_deep_copy_size() const if (OB_UNLIKELY(!is_legal())) { tmp_ret = OB_INVALID_DATA; - COMMON_LOG(ERROR, "illegal rowkey.", + COMMON_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "illegal rowkey.", KP_(obj_ptr), K_(obj_cnt), K(tmp_ret)); } else { for (int64_t i = 0; i < obj_cnt_; ++i) { diff --git a/deps/oblib/src/common/rowkey/ob_rowkey_info.cpp b/deps/oblib/src/common/rowkey/ob_rowkey_info.cpp index 0e97da5af..4021c4f9c 100644 --- a/deps/oblib/src/common/rowkey/ob_rowkey_info.cpp +++ b/deps/oblib/src/common/rowkey/ob_rowkey_info.cpp @@ -130,10 +130,10 @@ const ObRowkeyColumn *ObRowkeyInfo::get_column(const int64_t index) const int tmp_ret = OB_SUCCESS; if (OB_UNLIKELY(index < 0 || index >= size_)) { tmp_ret = OB_INVALID_ARGUMENT; - COMMON_LOG(WARN, "Invalid argument.", K(index), K_(size), K(tmp_ret)); + COMMON_LOG_RET(WARN, tmp_ret, "Invalid argument.", K(index), K_(size), K(tmp_ret)); } else if (!is_valid()) { tmp_ret = OB_INVALID_DATA; - COMMON_LOG(WARN, "columns has not initialized.", + COMMON_LOG_RET(WARN, tmp_ret, "columns has not initialized.", KP_(columns), K_(size), K(index), K(tmp_ret)); } else { ret = &columns_[index]; diff --git a/deps/oblib/src/common/rowkey/ob_store_rowkey.cpp b/deps/oblib/src/common/rowkey/ob_store_rowkey.cpp index 88312bf84..2f1481686 100644 --- a/deps/oblib/src/common/rowkey/ob_store_rowkey.cpp +++ b/deps/oblib/src/common/rowkey/ob_store_rowkey.cpp @@ -32,7 +32,7 @@ ObStoreRowkey ObStoreRowkey::MAX_STORE_ROWKEY(&ObStoreRowkey::MAX_OBJECT, 1); //now it is used in liboblog,which is OK as liboblog only tests equality ObRowkey ObStoreRowkey::to_rowkey() const { - COMMON_LOG(WARN, "converting ObStoreRowkey to ObRowkey, potentially dangerous!"); + COMMON_LOG_RET(WARN, OB_SUCCESS, "converting ObStoreRowkey to ObRowkey, potentially dangerous!"); return key_; } diff --git a/deps/oblib/src/common/storage/ob_io_device.h b/deps/oblib/src/common/storage/ob_io_device.h index ce41e30c4..8c6ebc2cb 100644 --- a/deps/oblib/src/common/storage/ob_io_device.h +++ b/deps/oblib/src/common/storage/ob_io_device.h @@ -108,7 +108,7 @@ public: free_iocbs_.destroy(); if (OB_NOT_NULL(first_iocb_)) { if (OB_ISNULL(allocator_)) { - STORAGE_LOG(ERROR, "allocator is nullptr!!!", K_(is_inited), KP_(allocator), KP_(first_iocb)); + STORAGE_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "allocator is nullptr!!!", K_(is_inited), KP_(allocator), KP_(first_iocb)); } else { allocator_->free(first_iocb_); } @@ -147,7 +147,7 @@ public: free_iocbs_.push(ptr); } else { if (OB_ISNULL(allocator_)) { - STORAGE_LOG(ERROR, "allocator is nullptr!!!", K_(is_inited), KP_(allocator), KP_(first_iocb), KP(ptr)); + STORAGE_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "allocator is nullptr!!!", K_(is_inited), KP_(allocator), KP_(first_iocb), KP(ptr)); } else { allocator_->free(ptr); } diff --git a/deps/oblib/src/lib/CMakeLists.txt b/deps/oblib/src/lib/CMakeLists.txt index 9bb27df2c..042faf250 100644 --- a/deps/oblib/src/lib/CMakeLists.txt +++ b/deps/oblib/src/lib/CMakeLists.txt @@ -190,6 +190,7 @@ ob_set_subtarget(oblib_lib oblog oblog/ob_log_time_fmt.cpp oblog/ob_trace_log.cpp oblog/ob_warning_buffer.cpp + oblog/ob_syslog_rate_limiter.cpp ) diff --git a/deps/oblib/src/lib/alloc/block_set.cpp b/deps/oblib/src/lib/alloc/block_set.cpp index 4251dbd52..c987b1260 100644 --- a/deps/oblib/src/lib/alloc/block_set.cpp +++ b/deps/oblib/src/lib/alloc/block_set.cpp @@ -415,7 +415,7 @@ int64_t BlockSet::sync_wash(int64_t wash_size) result = ::madvise(data, len, MADV_DONTNEED); } while (result == -1 && errno == EAGAIN); if (-1 == result) { - _OB_LOG(WARN, "madvise failed, errno: %d", errno); + _OB_LOG_RET(WARN, OB_ERR_SYS, "madvise failed, errno: %d", errno); has_ignore = true; } else { take_off_free_block(block, cls, chunk); diff --git a/deps/oblib/src/lib/alloc/memory_dump.cpp b/deps/oblib/src/lib/alloc/memory_dump.cpp index 6d16d61cf..97caa26ad 100644 --- a/deps/oblib/src/lib/alloc/memory_dump.cpp +++ b/deps/oblib/src/lib/alloc/memory_dump.cpp @@ -60,7 +60,7 @@ void do_with_segv_catch(Function &&func, bool &has_segv, decltype(func()) &ret) } else if (1 == js) { has_segv = true; } else { - LOG_ERROR("unexpected error!!!", K(js)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "unexpected error!!!", K(js)); ob_abort(); } get_signal_handler() = handler_bak; @@ -92,7 +92,7 @@ ObMemoryDump &ObMemoryDump::get_instance() { static ObMemoryDump the_one; if (OB_UNLIKELY(!the_one.is_inited()) && REACH_TIME_INTERVAL(1 * 1000 * 1000)) { - LOG_WARN("memory dump not init"); + LOG_WARN_RET(OB_NOT_INIT, "memory dump not init"); } return the_one; } diff --git a/deps/oblib/src/lib/alloc/ob_tenant_ctx_allocator.cpp b/deps/oblib/src/lib/alloc/ob_tenant_ctx_allocator.cpp index 70c6168da..19a747d0c 100644 --- a/deps/oblib/src/lib/alloc/ob_tenant_ctx_allocator.cpp +++ b/deps/oblib/src/lib/alloc/ob_tenant_ctx_allocator.cpp @@ -29,7 +29,7 @@ void *ObTenantCtxAllocator::alloc(const int64_t size, const ObMemAttr &attr) SANITY_DISABLE_CHECK_RANGE(); // prevent sanity_check_range abort_unless(attr.tenant_id_ == tenant_id_); abort_unless(attr.ctx_id_ == ctx_id_); - BACKTRACE(WARN, !attr.label_.is_valid(), "[OB_MOD_DO_NOT_USE_ME ALLOC]size:%ld", size); + BACKTRACE_RET(WARN, OB_INVALID_ARGUMENT, !attr.label_.is_valid(), "[OB_MOD_DO_NOT_USE_ME ALLOC]size:%ld", size); void *ptr = NULL; AObject *obj = obj_mgr_.alloc_object(size, attr); if(OB_ISNULL(obj) && g_alloc_failed_ctx().need_wash()) { @@ -43,8 +43,9 @@ void *ObTenantCtxAllocator::alloc(const int64_t size, const ObMemAttr &attr) SANITY_POISON((void*)upper_align((int64_t)obj->data_ + obj->alloc_bytes_, 8), sizeof(AOBJECT_TAIL_MAGIC_CODE)); } if (NULL == ptr && REACH_TIME_INTERVAL(1 * 1000 * 1000)) { - _OB_LOG(WARN, "[OOPS] alloc failed reason: %s", alloc_failed_msg()); - _OB_LOG(WARN, "oops, alloc failed, tenant_id=%ld, ctx_id=%ld, ctx_name=%s, ctx_hold=%ld, " + const char *msg = alloc_failed_msg(); + LOG_DBA_WARN(OB_ALLOCATE_MEMORY_FAILED, "[OOPS]", "alloc failed reason", KCSTRING(msg)); + _OB_LOG_RET(WARN, OB_ALLOCATE_MEMORY_FAILED, "oops, alloc failed, tenant_id=%ld, ctx_id=%ld, ctx_name=%s, ctx_hold=%ld, " "ctx_limit=%ld, tenant_hold=%ld, tenant_limit=%ld", tenant_id_, ctx_id_, common::get_global_ctx_info().get_ctx_name(ctx_id_), @@ -67,7 +68,7 @@ void* ObTenantCtxAllocator::realloc(const void *ptr, const int64_t size, const O SANITY_DISABLE_CHECK_RANGE(); // prevent sanity_check_range void *nptr = NULL; AObject *obj = NULL; - BACKTRACE(WARN, !attr.label_.is_valid(), "[OB_MOD_DO_NOT_USE_ME REALLOC]size:%ld", size); + BACKTRACE_RET(WARN, OB_INVALID_ARGUMENT, !attr.label_.is_valid(), "[OB_MOD_DO_NOT_USE_ME REALLOC]size:%ld", size); if (NULL != ptr) { obj = reinterpret_cast((char*)ptr - AOBJECT_HEADER_SIZE); abort_unless(obj->is_valid()); @@ -87,8 +88,9 @@ void* ObTenantCtxAllocator::realloc(const void *ptr, const int64_t size, const O SANITY_UNPOISON(obj->data_, obj->alloc_bytes_); SANITY_POISON((void*)upper_align((int64_t)obj->data_ + obj->alloc_bytes_, 8), sizeof(AOBJECT_TAIL_MAGIC_CODE)); } else if (REACH_TIME_INTERVAL(1 * 1000 * 1000)) { - _OB_LOG(WARN, "[OOPS] alloc failed reason: %s", alloc_failed_msg()); - _OB_LOG(WARN, "oops, alloc failed, tenant_id=%ld, ctx_id=%ld, ctx_name=%s, ctx_hold=%ld, " + const char *msg = alloc_failed_msg(); + LOG_DBA_WARN(OB_ALLOCATE_MEMORY_FAILED, "[OOPS]", "alloc failed reason", KCSTRING(msg)); + _OB_LOG_RET(WARN, OB_ALLOCATE_MEMORY_FAILED, "oops, alloc failed, tenant_id=%ld, ctx_id=%ld, ctx_name=%s, ctx_hold=%ld, " "ctx_limit=%ld, tenant_hold=%ld, tenant_limit=%ld", tenant_id_, ctx_id_, common::get_global_ctx_info().get_ctx_name(ctx_id_), @@ -297,7 +299,7 @@ void ObTenantCtxAllocator::free_chunk(AChunk *chunk, const ObMemAttr &attr) push_chunk(chunk); } else { if (!resource_handle_.is_valid()) { - LIB_LOG(ERROR, "resource_handle is invalid", K_(tenant_id), K_(ctx_id)); + LIB_LOG_RET(ERROR, OB_INVALID_ERROR, "resource_handle is invalid", K_(tenant_id), K_(ctx_id)); } else { resource_handle_.get_memory_mgr()->free_chunk(chunk, attr); } @@ -308,7 +310,7 @@ bool ObTenantCtxAllocator::update_hold(const int64_t size) { bool update = false; if (!resource_handle_.is_valid()) { - LIB_LOG(ERROR, "resource_handle is invalid", K_(tenant_id), K_(ctx_id)); + LIB_LOG_RET(ERROR, OB_INVALID_ARGUMENT, "resource_handle is invalid", K_(tenant_id), K_(ctx_id)); } else { bool reach_ctx_limit = false; if (size <=0) { diff --git a/deps/oblib/src/lib/alloc/object_set.cpp b/deps/oblib/src/lib/alloc/object_set.cpp index 45e554970..f002f9a6d 100644 --- a/deps/oblib/src/lib/alloc/object_set.cpp +++ b/deps/oblib/src/lib/alloc/object_set.cpp @@ -31,7 +31,7 @@ const static int BT_BUF_LEN = 256; void __attribute__((weak)) has_unfree_callback(char *info) { - _OB_LOG(ERROR, "HAS UNFREE PTR!!! %s", info); + _OB_LOG_RET(ERROR, OB_ERROR, "HAS UNFREE PTR!!! %s", info); } ObjectSet::ObjectSet(__MemoryContext__ *mem_context, const uint32_t ablock_size) diff --git a/deps/oblib/src/lib/allocator/ob_allocator_v2.cpp b/deps/oblib/src/lib/allocator/ob_allocator_v2.cpp index 6b1f9477a..ffeb6477d 100644 --- a/deps/oblib/src/lib/allocator/ob_allocator_v2.cpp +++ b/deps/oblib/src/lib/allocator/ob_allocator_v2.cpp @@ -52,8 +52,8 @@ void *ObAllocator::alloc(const int64_t size, const ObMemAttr &attr) if (OB_UNLIKELY(nullptr == obj) && REACH_TIME_INTERVAL(1 * 1000 * 1000)) { auto ta = lib::ObMallocAllocator::get_instance()->get_tenant_ctx_allocator(attr_.tenant_id_, attr_.ctx_id_); - _OB_LOG(WARN, "[OOPS] alloc failed reason: %s", alloc_failed_msg()); - _OB_LOG(WARN, "oops, alloc failed, tenant_id=%ld, ctx_id=%ld, ctx_name=%s, ctx_hold=%ld, " + _OB_LOG_RET(WARN, OB_ALLOCATE_MEMORY_FAILED, "[OOPS] alloc failed reason: %s", alloc_failed_msg()); + _OB_LOG_RET(WARN, OB_ALLOCATE_MEMORY_FAILED, "oops, alloc failed, tenant_id=%ld, ctx_id=%ld, ctx_name=%s, ctx_hold=%ld, " "ctx_limit=%ld, tenant_hold=%ld, tenant_limit=%ld", inner_attr.tenant_id_, inner_attr.ctx_id_, common::get_global_ctx_info().get_ctx_name(inner_attr.ctx_id_), diff --git a/deps/oblib/src/lib/allocator/ob_allocator_v2.h b/deps/oblib/src/lib/allocator/ob_allocator_v2.h index d7b3df21e..7b79bd04a 100644 --- a/deps/oblib/src/lib/allocator/ob_allocator_v2.h +++ b/deps/oblib/src/lib/allocator/ob_allocator_v2.h @@ -99,7 +99,7 @@ private: if (OB_NOT_NULL(ta)) { ta->get_block_mgr().free_block(block); } else { - OB_LOG(ERROR, "tenant ctx allocator is null", K(tenant_id_), K(ctx_id_)); + OB_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "tenant ctx allocator is null", K(tenant_id_), K(ctx_id_)); } } virtual int64_t sync_wash(int64_t wash_size) override diff --git a/deps/oblib/src/lib/allocator/ob_block_alloc_mgr.h b/deps/oblib/src/lib/allocator/ob_block_alloc_mgr.h index 8956e6293..0d5ad75c9 100644 --- a/deps/oblib/src/lib/allocator/ob_block_alloc_mgr.h +++ b/deps/oblib/src/lib/allocator/ob_block_alloc_mgr.h @@ -37,7 +37,7 @@ public: if (!ignore_mem_limit && used_after_alloc > limit_) { ATOMIC_AAF(&hold_, -size); if (REACH_TIME_INTERVAL(1000 * 1000)) { - _OB_LOG(WARN, "block alloc over limit, limit=%ld alloc_size=%ld", limit_, size); + _OB_LOG_RET(WARN, common::OB_ERR_UNEXPECTED, "block alloc over limit, limit=%ld alloc_size=%ld", limit_, size); } } else if (NULL == (ret = (void*)ob_malloc(size, attr))) { ATOMIC_AAF(&hold_, -size); diff --git a/deps/oblib/src/lib/allocator/ob_cached_allocator.h b/deps/oblib/src/lib/allocator/ob_cached_allocator.h index f6f1f35a0..de722b79c 100644 --- a/deps/oblib/src/lib/allocator/ob_cached_allocator.h +++ b/deps/oblib/src/lib/allocator/ob_cached_allocator.h @@ -62,7 +62,7 @@ ObCachedAllocator::~ObCachedAllocator() --cached_count_; } if (0 != allocated_count_ || 0 != cached_count_) { - LIB_LOG(WARN, "some allocated object is not freed", + LIB_LOG_RET(WARN, common::OB_ERR_UNEXPECTED, "some allocated object is not freed", K(allocated_count_), K(cached_count_)); } } @@ -75,7 +75,7 @@ T *ObCachedAllocator::alloc() if (OB_SUCCESS != cached_objs_.pop_back(ret)) { void *p = pool_.alloc(); if (OB_ISNULL(p)) { - LIB_LOG(ERROR, "no memory"); + LIB_LOG_RET(ERROR, OB_ALLOCATE_MEMORY_FAILED, "no memory"); } else { ret = new(p) T(); ++ allocated_count_; diff --git a/deps/oblib/src/lib/allocator/ob_delay_free_allocator.cpp b/deps/oblib/src/lib/allocator/ob_delay_free_allocator.cpp index caad113e9..3d5d7195b 100644 --- a/deps/oblib/src/lib/allocator/ob_delay_free_allocator.cpp +++ b/deps/oblib/src/lib/allocator/ob_delay_free_allocator.cpp @@ -94,7 +94,7 @@ void *ObDelayFreeAllocator::alloc(const int64_t size) int64_t data_size = size + sizeof(DataMeta); if (!inited_) { - LIB_ALLOC_LOG(WARN, "The ObBlockLinkMemoryAllocator has not been inited."); + LIB_ALLOC_LOG_RET(WARN, OB_NOT_INIT, "The ObBlockLinkMemoryAllocator has not been inited."); } else { //alloc memory lib::ObMutexGuard guard(mutex_); @@ -105,13 +105,13 @@ void *ObDelayFreeAllocator::alloc(const int64_t size) } if (NULL == block) { - LIB_ALLOC_LOG(ERROR, "cannot malloc first meta memory block."); + LIB_ALLOC_LOG_RET(ERROR, OB_ERROR, "cannot malloc first meta memory block."); } else if (data_size <= block->remain()) { ptr_ret = block->alloc(data_size); } else if (NULL != (block = alloc_block(data_size))) { ptr_ret = block->alloc(data_size); } else { - LIB_ALLOC_LOG(ERROR, "cannot malloc memory ", "size", size); + LIB_ALLOC_LOG_RET(ERROR, OB_ALLOCATE_MEMORY_FAILED, "cannot malloc memory ", "size", size); } // set meta value @@ -128,16 +128,16 @@ void *ObDelayFreeAllocator::alloc(const int64_t size) void ObDelayFreeAllocator::free(void *ptr) { if (!inited_) { - LIB_ALLOC_LOG(WARN, "The ObBlockLinkMemoryAllocator has not been inited."); + LIB_ALLOC_LOG_RET(WARN, OB_NOT_INIT, "The ObBlockLinkMemoryAllocator has not been inited."); } else if (NULL == ptr) { - LIB_ALLOC_LOG(WARN, "the free ptr is NULL"); + LIB_ALLOC_LOG_RET(WARN, OB_ERROR, "the free ptr is NULL"); } else { lib::ObMutexGuard guard(mutex_); DataMeta *meta = reinterpret_cast(ptr) - 1; ObDelayFreeMemBlock *block = meta->mem_block_; if (NULL == block) { - LIB_ALLOC_LOG(ERROR, "the free ptr has null mem block ptr"); + LIB_ALLOC_LOG_RET(ERROR, OB_ERROR, "the free ptr has null mem block ptr"); } else { if (meta->data_len_ > 0) { memory_fragment_size_ += meta->data_len_; @@ -192,9 +192,9 @@ ObDelayFreeMemBlock *ObDelayFreeAllocator::alloc_block(const int64_t data_size) } if (NULL == (ptr = static_cast(allocator_.alloc(mem_block_size)))) { - LIB_ALLOC_LOG(ERROR, "cannot malloc memory of ", "mem_block_size", mem_block_size); + LIB_ALLOC_LOG_RET(ERROR, OB_ALLOCATE_MEMORY_FAILED, "cannot malloc memory of ", "mem_block_size", mem_block_size); } else if (NULL == (block_ret = new(ptr) ObDelayFreeMemBlock(ptr + mem_block_size))) { - LIB_ALLOC_LOG(ERROR, "placement new for MemBlock failed."); + LIB_ALLOC_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "placement new for MemBlock failed."); } else { total_size_ += mem_block_size; } @@ -210,7 +210,7 @@ ObDelayFreeMemBlock *ObDelayFreeAllocator::alloc_block(const int64_t data_size) void ObDelayFreeAllocator::free_block(ObDelayFreeMemBlock *block) { if (NULL == block) { - LIB_ALLOC_LOG(WARN, "The free block is NULL."); + LIB_ALLOC_LOG_RET(WARN, OB_ERR_UNEXPECTED, "The free block is NULL."); } else { working_list_.remove(block); free_list_.add_last(block); diff --git a/deps/oblib/src/lib/allocator/ob_fifo_allocator.cpp b/deps/oblib/src/lib/allocator/ob_fifo_allocator.cpp index d067020d0..d181aaf73 100644 --- a/deps/oblib/src/lib/allocator/ob_fifo_allocator.cpp +++ b/deps/oblib/src/lib/allocator/ob_fifo_allocator.cpp @@ -196,16 +196,16 @@ void ObFIFOAllocator::reset() } else if (OB_LIKELY(1 == current_using_->ref_count_)) { allocator_->free(current_using_); } else { - LOG_ERROR("current_using_ is still used now", + LOG_ERROR_RET(OB_ERROR, "current_using_ is still used now", "ref_count", current_using_->ref_count_, KP(current_using_)); } DLIST_FOREACH_NORET(iter, using_page_list_) { auto *page = iter->get_data(); - LOG_ERROR("dump using page list: ", KP(page)); + LOG_ERROR_RET(OB_ERROR, "dump using page list: ", KP(page)); } DLIST_FOREACH_NORET(iter, special_page_list_) { auto *page = iter->get_data(); - LOG_ERROR("dump special page list: ", KP(page)); + LOG_ERROR_RET(OB_ERROR, "dump special page list: ", KP(page)); } using_page_list_.clear(); current_using_ = nullptr; @@ -220,7 +220,7 @@ ObFIFOAllocator::BasePageHeader *ObFIFOAllocator::get_page_header(void *p) { BasePageHeader *page_header = nullptr; if (OB_ISNULL(p)) { - LOG_ERROR("invalid argument"); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "invalid argument"); } else { AllocHeader *alloc_header = static_cast(p) - 1; page_header = alloc_header->page_header_; @@ -233,14 +233,14 @@ bool ObFIFOAllocator::check_param(const int64_t size, const int64_t align) { bool bool_ret = true; if (align <= 0 || align > page_size_ / 2) { - LOG_WARN("align is negative or too big. ", K(align)); + LOG_WARN_RET(OB_ERROR, "align is negative or too big. ", K(align)); bool_ret = false; } else if (0 != (align & (align - 1))) { - LOG_WARN("align should be 2^K. ", K(align)); + LOG_WARN_RET(OB_ERROR, "align should be 2^K. ", K(align)); bool_ret = false; } else if (size <= 0 || size >= INT32_MAX) { // size shold < 4G, bcs we store @size at 4Bytes in alloc header. - LOG_WARN("size should be positive and not to big.", K(size)); + LOG_WARN_RET(OB_ERROR, "size should be positive and not to big.", K(size)); bool_ret = false; } else { bool_ret = true; @@ -253,7 +253,7 @@ bool ObFIFOAllocator::check_magic(void *p, int64_t &size) { bool bool_ret = true; if (OB_ISNULL(p)) { - LOG_WARN("invalid argument"); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "invalid argument"); } else { AllocHeader *alloc_header = static_cast(p) - 1; size = alloc_header->size_; @@ -261,12 +261,12 @@ bool ObFIFOAllocator::check_magic(void *p, int64_t &size) bool_ret = true; alloc_header->magic_num_ = ALREADY_FREE; } else if (alloc_header->magic_num_ == ALREADY_FREE) { - LOG_ERROR("Detect double free at address ", "addr", p); + LOG_ERROR_RET(OB_ERROR, "Detect double free at address ", "addr", p); bool_ret = false; } else { // This means parameter address in free(void* p) is not a pointer // allocated by FIFOAllocator OR there is an overwrite - LOG_ERROR("check allocation magic fail", "free address", p); + LOG_ERROR_RET(OB_ERROR, "check allocation magic fail", "free address", p); bool_ret = false; } } @@ -294,9 +294,9 @@ void *ObFIFOAllocator::alloc_align(const int64_t size, const int64_t align, cons ObLockGuard guard(lock_); void *ptr = nullptr; if (OB_UNLIKELY(!is_inited_)) { - LOG_WARN("ObFIFOAllocator not init"); + LOG_WARN_RET(OB_NOT_INIT, "ObFIFOAllocator not init"); } else if (!check_param(size, align)) { - LOG_WARN("ObFIFOAllocator alloc(size, align) parameter Error.", K(size), K(align)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "ObFIFOAllocator alloc(size, align) parameter Error.", K(size), K(align)); } else if (is_normal_page_enough(size, align)) { ptr = alloc_normal(size, align, attr); } else { @@ -310,7 +310,7 @@ void *ObFIFOAllocator::alloc_align(const int64_t size, const int64_t align, cons void ObFIFOAllocator::alloc_new_normal_page(const ObMemAttr &attr) { if (IS_NOT_INIT || OB_ISNULL(allocator_)) { - LOG_ERROR("ObFIFOAllocator not init"); + LOG_ERROR_RET(OB_NOT_INIT, "ObFIFOAllocator not init"); } else { NormalPageHeader *new_page = nullptr; if (free_page_list_.get_size() > 0) { @@ -322,7 +322,7 @@ void ObFIFOAllocator::alloc_new_normal_page(const ObMemAttr &attr) if (OB_NOT_NULL(ptr)) { new_page = new (ptr) NormalPageHeader(); } else { - LOG_WARN("underlying allocator return nullptr"); + LOG_WARN_RET(OB_ALLOCATE_MEMORY_FAILED, "underlying allocator return nullptr"); } } } @@ -331,7 +331,7 @@ void ObFIFOAllocator::alloc_new_normal_page(const ObMemAttr &attr) new_page->offset_ = reinterpret_cast(new_page) + sizeof(NormalPageHeader); current_using_->ref_count_--; if (0 == current_using_->ref_count_) { - LOG_ERROR("current_using_->ref_count_ is 0. This could not happen."); + LOG_ERROR_RET(OB_ERROR, "current_using_->ref_count_ is 0. This could not happen."); } // we do NOT link current using into page_using_list. // bcs current_using_ may be not used indeed. @@ -348,7 +348,7 @@ void *ObFIFOAllocator::try_alloc(int64_t size, int64_t align) { char *ptr = nullptr; if (nullptr == current_using_) { - LOG_ERROR("current_using_ is null"); + LOG_ERROR_RET(OB_ERROR, "current_using_ is null"); } else { abort_unless(PAGE_HEADER == current_using_->magic_num_); char *offset = current_using_->offset_; @@ -375,18 +375,18 @@ void ObFIFOAllocator::free(void *p) { ObLockGuard guard(lock_); if (OB_UNLIKELY(!is_inited_)) { - LOG_ERROR("ObFIFOAllocator not init"); + LOG_ERROR_RET(OB_NOT_INIT, "ObFIFOAllocator not init"); } else { int64_t size = 0; if (nullptr == p) { - LOG_ERROR("user try to free nullptr Pointer"); + LOG_ERROR_RET(OB_ERROR, "user try to free nullptr Pointer"); } else { if (!check_magic(p, size)) { - LOG_ERROR("Error, check magic number error."); + LOG_ERROR_RET(OB_ERROR, "Error, check magic number error."); } else { BasePageHeader *page_header = get_page_header(p); if (OB_ISNULL(page_header)) { - LOG_ERROR("page_header is null"); + LOG_ERROR_RET(OB_ERROR, "page_header is null"); } else { if (SPECIAL_FLAG == page_header->flag_) { // this is special page SpecialPageHeader *special_page = static_cast(page_header); @@ -406,14 +406,14 @@ void *ObFIFOAllocator::alloc_normal(int64_t size, int64_t align, const ObMemAttr void *ptr = nullptr; void *new_space = nullptr; if (OB_UNLIKELY(!is_inited_) || OB_UNLIKELY(nullptr == allocator_)) { - LOG_ERROR("ObFIFOAllocator not init"); + LOG_ERROR_RET(OB_NOT_INIT, "ObFIFOAllocator not init"); } else { if (nullptr == current_using_) { if (total() + page_size_ <= max_size_) { new_space = allocator_->alloc(page_size_, attr); } if (nullptr == new_space) { - LOG_WARN("can not allocate new page", K(page_size_)); + LOG_WARN_RET(OB_ALLOCATE_MEMORY_FAILED, "can not allocate new page", K(page_size_)); } else { current_using_ = new (new_space) NormalPageHeader(); current_using_->offset_ = reinterpret_cast(current_using_) + sizeof(NormalPageHeader); @@ -474,9 +474,9 @@ void *ObFIFOAllocator::alloc_special(int64_t size, int64_t align, const ObMemAtt void *ptr = NULL; if (OB_UNLIKELY(!is_inited_) || OB_UNLIKELY(NULL == allocator_)) { - LOG_ERROR("ObFIFOAllocator not init", K(is_inited_)); + LOG_ERROR_RET(OB_NOT_INIT, "ObFIFOAllocator not init", K(is_inited_)); } else if (OB_UNLIKELY(size <= 0) || OB_UNLIKELY(align <= 0)) { - LOG_ERROR("invalid argument", K(size), K(align)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "invalid argument", K(size), K(align)); } else { // we have to alloc up to @real_size bytes. // these bytes may be before (align 1) AND after user data (align 2). @@ -484,7 +484,7 @@ void *ObFIFOAllocator::alloc_special(int64_t size, int64_t align, const ObMemAtt int64_t real_size = size + sizeof(SpecialPageHeader) + sizeof(AllocHeader) + align - 1; void *new_space = allocator_->alloc(real_size, attr); if (NULL == new_space) { - LOG_WARN("can not alloc a page from underlying allocator", K(real_size)); + LOG_WARN_RET(OB_ALLOCATE_MEMORY_FAILED, "can not alloc a page from underlying allocator", K(real_size)); } else { ptr = reinterpret_cast(upper_align(reinterpret_cast(static_cast (new_space) + sizeof(SpecialPageHeader) + sizeof(AllocHeader)), align)); diff --git a/deps/oblib/src/lib/allocator/ob_fixed_size_block_allocator.h b/deps/oblib/src/lib/allocator/ob_fixed_size_block_allocator.h index 5ebf49fcd..e186325ab 100644 --- a/deps/oblib/src/lib/allocator/ob_fixed_size_block_allocator.h +++ b/deps/oblib/src/lib/allocator/ob_fixed_size_block_allocator.h @@ -406,7 +406,7 @@ template void ObFixedSizeBlockMemoryContext::destroy() { if (0 != used_block_num_) { - COMMON_LOG(ERROR, "not all block be freed, potential memory leak!", K(used_block_num_)); + COMMON_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "not all block be freed, potential memory leak!", K(used_block_num_)); } used_block_num_ = 0; is_inited_ = false; diff --git a/deps/oblib/src/lib/allocator/ob_hazard_ref.cpp b/deps/oblib/src/lib/allocator/ob_hazard_ref.cpp index 454fa0f87..0c525e3e7 100644 --- a/deps/oblib/src/lib/allocator/ob_hazard_ref.cpp +++ b/deps/oblib/src/lib/allocator/ob_hazard_ref.cpp @@ -52,7 +52,7 @@ void HazardRef::release_ref(uint64_t *ref) void HazardNodeList::push(HazardNode *node) { if (OB_ISNULL(node) || OB_ISNULL(tail_)) { - _OB_LOG(WARN, "invalid node"); + _OB_LOG_RET(WARN, OB_INVALID_ARGUMENT, "invalid node"); } else { count_++; node->next_ = tail_->next_; @@ -75,4 +75,4 @@ void RetireList::set_retire_version(uint64_t version) retire_list->prepare_list_.set_version(version); retire_list->retire_list_.concat(retire_list->prepare_list_); } -} \ No newline at end of file +} diff --git a/deps/oblib/src/lib/allocator/ob_libeasy_mem_pool.cpp b/deps/oblib/src/lib/allocator/ob_libeasy_mem_pool.cpp index 4f794a453..64e55985d 100644 --- a/deps/oblib/src/lib/allocator/ob_libeasy_mem_pool.cpp +++ b/deps/oblib/src/lib/allocator/ob_libeasy_mem_pool.cpp @@ -41,7 +41,7 @@ void *common::ob_easy_realloc(void *ptr, size_t size) ret = ob_realloc(ptr, size, attr); } if (ret == NULL) { - _OB_LOG(WARN, "ob_tc_realloc failed, ptr:%p, size:%lu", ptr, size); + _OB_LOG_RET(WARN, OB_ALLOCATE_MEMORY_FAILED, "ob_tc_realloc failed, ptr:%p, size:%lu", ptr, size); } } else if (ptr) { ob_free(ptr); diff --git a/deps/oblib/src/lib/allocator/ob_malloc.cpp b/deps/oblib/src/lib/allocator/ob_malloc.cpp index 14dbdc3cd..0a9eedb6c 100644 --- a/deps/oblib/src/lib/allocator/ob_malloc.cpp +++ b/deps/oblib/src/lib/allocator/ob_malloc.cpp @@ -64,7 +64,7 @@ void *oceanbase::common::ob_malloc_align(const int64_t alignment, const int64_t } int64_t padding = align_ptr - ptr; if (!(padding <= alignment && padding > 0)) { - _OB_LOG(ERROR, "invalid padding(padding=%ld, alignment=%ld", padding, alignment); + _OB_LOG_RET(ERROR, OB_INVALID_ARGUMENT, "invalid padding(padding=%ld, alignment=%ld", padding, alignment); } uint8_t *sign_ptr = reinterpret_cast(align_ptr - 1); int64_t *header_ptr = reinterpret_cast(align_ptr - 1 - sizeof(int64_t)); @@ -75,7 +75,7 @@ void *oceanbase::common::ob_malloc_align(const int64_t alignment, const int64_t *header_ptr = padding; } } else { - _OB_LOG(WARN, "ob_tc_malloc allocate memory failed, alignment[%ld], nbyte[%ld], label[%s].", + _OB_LOG_RET(WARN, OB_ALLOCATE_MEMORY_FAILED, "ob_tc_malloc allocate memory failed, alignment[%ld], nbyte[%ld], label[%s].", alignment, nbyte, (const char *)label); } return align_ptr; @@ -94,7 +94,7 @@ void *oceanbase::common::ob_malloc_align(const int64_t alignment, const int64_t } int64_t padding = align_ptr - ptr; if (!(padding <= alignment && padding > 0)) { - _OB_LOG(ERROR, "invalid padding(padding=%ld, alignment=%ld", padding, alignment); + _OB_LOG_RET(ERROR, OB_INVALID_ARGUMENT, "invalid padding(padding=%ld, alignment=%ld", padding, alignment); } uint8_t *sign_ptr = reinterpret_cast(align_ptr - 1); int64_t *header_ptr = reinterpret_cast(align_ptr - 1 - sizeof(int64_t)); @@ -105,7 +105,7 @@ void *oceanbase::common::ob_malloc_align(const int64_t alignment, const int64_t *header_ptr = padding; } } else { - _OB_LOG(WARN, "ob_tc_malloc allocate memory failed, alignment[%ld], nbyte[%ld], tenant_id[%lu], label[%s].", + _OB_LOG_RET(WARN, OB_ALLOCATE_MEMORY_FAILED, "ob_tc_malloc allocate memory failed, alignment[%ld], nbyte[%ld], tenant_id[%lu], label[%s].", alignment, nbyte, attr.tenant_id_, (const char*)attr.label_); } return align_ptr; @@ -114,7 +114,7 @@ void *oceanbase::common::ob_malloc_align(const int64_t alignment, const int64_t void oceanbase::common::ob_free_align(void *ptr) { if (NULL == ptr) { - _OB_LOG(WARN, "cannot free NULL pointer."); + _OB_LOG_RET(WARN, OB_INVALID_ARGUMENT, "cannot free NULL pointer."); } else if (oceanbase::lib::ObMallocAllocator::is_inited_) { uint8_t *sign_ptr = reinterpret_cast(static_cast(ptr) - 1); int64_t *header_ptr = reinterpret_cast(static_cast(ptr) - 1 - sizeof(int64_t)); diff --git a/deps/oblib/src/lib/allocator/ob_malloc.h b/deps/oblib/src/lib/allocator/ob_malloc.h index 329ce3982..a0c13f58c 100644 --- a/deps/oblib/src/lib/allocator/ob_malloc.h +++ b/deps/oblib/src/lib/allocator/ob_malloc.h @@ -37,7 +37,7 @@ inline void *ob_malloc(const int64_t nbyte, const ObMemAttr &attr = default_mema if (!OB_ISNULL(allocator)) { ptr = allocator->alloc(nbyte, attr); if (OB_ISNULL(ptr)) { - LIB_LOG(WARN, "allocate memory fail", K(attr), K(nbyte)); + LIB_LOG_RET(WARN, OB_ALLOCATE_MEMORY_FAILED, "allocate memory fail", K(attr), K(nbyte)); } } return ptr; @@ -61,7 +61,7 @@ inline void *ob_realloc(void *ptr, const int64_t nbyte, const ObMemAttr &attr) if (!OB_ISNULL(allocator)) { nptr = allocator->realloc(ptr, nbyte, attr); if (OB_ISNULL(nptr)) { - LIB_LOG(ERROR, "allocate memory fail", K(attr), K(nbyte)); + LIB_LOG_RET(ERROR, OB_ALLOCATE_MEMORY_FAILED, "allocate memory fail", K(attr), K(nbyte)); } } } diff --git a/deps/oblib/src/lib/allocator/ob_mem_leak_checker.cpp b/deps/oblib/src/lib/allocator/ob_mem_leak_checker.cpp index d06f23a3d..18f1ffe1a 100644 --- a/deps/oblib/src/lib/allocator/ob_mem_leak_checker.cpp +++ b/deps/oblib/src/lib/allocator/ob_mem_leak_checker.cpp @@ -17,7 +17,7 @@ namespace oceanbase { namespace common { -lib::ObSimpleRateLimiter ObMemLeakChecker::rl_ = {INT64_MAX}; +ObSimpleRateLimiter ObMemLeakChecker::rl_{INT64_MAX}; constexpr const char ObMemLeakChecker::MOD_INFO_MAP_STR[]; } // end of namespace common diff --git a/deps/oblib/src/lib/allocator/ob_mem_leak_checker.h b/deps/oblib/src/lib/allocator/ob_mem_leak_checker.h index 8fe6a96b7..76a24e6c9 100644 --- a/deps/oblib/src/lib/allocator/ob_mem_leak_checker.h +++ b/deps/oblib/src/lib/allocator/ob_mem_leak_checker.h @@ -15,7 +15,6 @@ #include "lib/utility/ob_defer.h" #include "lib/hash/ob_hashmap.h" #include "lib/alloc/alloc_struct.h" -#include "lib/utility/ob_simple_rate_limiter.h" namespace oceanbase @@ -282,7 +281,7 @@ private: int len_; mod_alloc_info_t malloc_info_; private: - static lib::ObSimpleRateLimiter rl_; + static ObSimpleRateLimiter rl_; }; }; // end namespace common }; // end namespace oceanbase diff --git a/deps/oblib/src/lib/allocator/ob_page_manager.cpp b/deps/oblib/src/lib/allocator/ob_page_manager.cpp index de537778f..f5e6f3753 100644 --- a/deps/oblib/src/lib/allocator/ob_page_manager.cpp +++ b/deps/oblib/src/lib/allocator/ob_page_manager.cpp @@ -80,7 +80,7 @@ AChunk *ObPageManagerCenter::alloc_from_thread_local_cache(int64_t tenant_id, in if (OB_SUCCESS == tmpret) { ret = alloc_from_thread_local_cache_(tenant_id, ctx_id); if (OB_SUCCESS != (tmpret = mutex_.unlock())) { - OB_LOG(ERROR, "unlock failed", K(tmpret)); + OB_LOG_RET(ERROR, tmpret, "unlock failed", K(tmpret)); } } return ret; diff --git a/deps/oblib/src/lib/allocator/ob_page_manager.h b/deps/oblib/src/lib/allocator/ob_page_manager.h index 10c933e6a..3c5f67754 100644 --- a/deps/oblib/src/lib/allocator/ob_page_manager.h +++ b/deps/oblib/src/lib/allocator/ob_page_manager.h @@ -208,7 +208,7 @@ inline ABlock *ObPageManager::alloc_block(uint64_t size, const ObMemAttr &attr) inline void ObPageManager::free_block(ABlock *block) { if (OB_UNLIKELY(get_itid() != itid_)) { - _OB_LOG(ERROR, "cross thread not supported, pm_tid: %ld, cur_tid: %ld", itid_, get_itid()); + _OB_LOG_RET(ERROR, OB_ERROR, "cross thread not supported, pm_tid: %ld, cur_tid: %ld", itid_, get_itid()); } else if (OB_LIKELY(block != nullptr)) { abort_unless(block); abort_unless(block->is_valid()); diff --git a/deps/oblib/src/lib/allocator/ob_pooled_allocator.h b/deps/oblib/src/lib/allocator/ob_pooled_allocator.h index 029ea549e..405ac311d 100644 --- a/deps/oblib/src/lib/allocator/ob_pooled_allocator.h +++ b/deps/oblib/src/lib/allocator/ob_pooled_allocator.h @@ -67,7 +67,7 @@ T *ObPooledAllocator::alloc() T *ret = NULL; void *p = the_pool_.alloc(); if (OB_ISNULL(p)) { - LIB_LOG(ERROR, "no memory"); + LIB_LOG_RET(ERROR, OB_ALLOCATE_MEMORY_FAILED, "no memory"); } else { ret = new(p) T(); } diff --git a/deps/oblib/src/lib/allocator/ob_qsync.h b/deps/oblib/src/lib/allocator/ob_qsync.h index e0864fcc0..971332319 100644 --- a/deps/oblib/src/lib/allocator/ob_qsync.h +++ b/deps/oblib/src/lib/allocator/ob_qsync.h @@ -41,7 +41,7 @@ public: int64_t idx = get_itid() % MAX_REF_CNT; const int64_t new_ref = add_ref(idx, 1); if (OB_UNLIKELY(0 >= new_ref)) { - COMMON_LOG(ERROR, "unexpected ref", K(new_ref), K(idx)); + COMMON_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "unexpected ref", K(new_ref), K(idx)); } return idx; } @@ -53,7 +53,7 @@ public: { const int64_t new_ref = add_ref(idx, -1); if (OB_UNLIKELY(0 > new_ref)) { - COMMON_LOG(ERROR, "unexpected ref", K(new_ref), K(idx)); + COMMON_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "unexpected ref", K(new_ref), K(idx)); } } void sync() @@ -169,7 +169,7 @@ public: int64_t idx = get_itid() % ref_num_; const int64_t new_ref = add_ref(idx, 1); if (OB_UNLIKELY(0 >= new_ref)) { - COMMON_LOG(ERROR, "unexpected ref", K(new_ref), K(idx)); + COMMON_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "unexpected ref", K(new_ref), K(idx)); } return idx; } @@ -181,7 +181,7 @@ public: { const int64_t new_ref = add_ref(idx, -1); if (OB_UNLIKELY(0 > new_ref)) { - COMMON_LOG(ERROR, "unexpected ref", K(new_ref), K(idx)); + COMMON_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "unexpected ref", K(new_ref), K(idx)); } } void sync() diff --git a/deps/oblib/src/lib/allocator/ob_retire_station.h b/deps/oblib/src/lib/allocator/ob_retire_station.h index 174bd5184..bfb1e2f58 100644 --- a/deps/oblib/src/lib/allocator/ob_retire_station.h +++ b/deps/oblib/src/lib/allocator/ob_retire_station.h @@ -45,7 +45,7 @@ public: slot_id = (slot_id + 1) % MAX_QCLOCK_SLOT_NUM; if (OB_UNLIKELY(begin_id == slot_id)) { if (REACH_TIME_INTERVAL(1 * 1000 * 1000)) { - COMMON_LOG(ERROR, "QClock slot maybe not enough", K(begin_id), K(MAX_QCLOCK_SLOT_NUM)); + COMMON_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "QClock slot maybe not enough", K(begin_id), K(MAX_QCLOCK_SLOT_NUM)); } } } diff --git a/deps/oblib/src/lib/allocator/ob_slice_alloc.cpp b/deps/oblib/src/lib/allocator/ob_slice_alloc.cpp index 6eea34864..a23ed9843 100644 --- a/deps/oblib/src/lib/allocator/ob_slice_alloc.cpp +++ b/deps/oblib/src/lib/allocator/ob_slice_alloc.cpp @@ -19,7 +19,7 @@ namespace common { void ObBlockSlicer::print_leak_slice() { if (OB_ISNULL(slice_alloc_)) { - LIB_LOG(WARN, "invalid slice allocator", KP(this)); + LIB_LOG_RET(WARN, OB_ERR_UNEXPECTED, "invalid slice allocator", KP(this)); return; } @@ -38,7 +38,7 @@ void ObBlockSlicer::print_leak_slice() { if (flist_.is_in_queue(item)) { // this item has been freed } else { - LIB_LOG(WARN, "leak info : ", KP(item), KP(slice)); + LIB_LOG_RET(WARN, OB_SUCCESS, "leak info : ", KP(item), KP(slice)); } } } @@ -64,8 +64,9 @@ void ObSliceAlloc::destroy() dlink = blk_list_.top(); } else { blk->print_leak_slice(); - _LIB_LOG( - ERROR, "there was memory leak, stock=%d, total=%d, remain=%d", blk->stock(), blk->total(), blk->remain()); + _LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, + "there was memory leak, stock=%d, total=%d, remain=%d", + blk->stock(), blk->total(), blk->remain()); dlink = nullptr; // break } } @@ -74,4 +75,4 @@ void ObSliceAlloc::destroy() } } // namespace common -} // namespace oceanbase \ No newline at end of file +} // namespace oceanbase diff --git a/deps/oblib/src/lib/allocator/ob_slice_alloc.h b/deps/oblib/src/lib/allocator/ob_slice_alloc.h index c76b5b2b9..87b0cc2c2 100644 --- a/deps/oblib/src/lib/allocator/ob_slice_alloc.h +++ b/deps/oblib/src/lib/allocator/ob_slice_alloc.h @@ -319,7 +319,7 @@ public: // slice_size is larger than block_size tmp_ret = OB_ERR_UNEXPECTED; if (REACH_TIME_INTERVAL(100 * 1000)) { - LIB_LOG(ERROR, "slice size is larger than block size, unexpected !", K(tmp_ret), K(isize_), K(slice_limit_)); + LIB_LOG_RET(ERROR, tmp_ret, "slice size is larger than block size, unexpected !", K(tmp_ret), K(isize_), K(slice_limit_)); } } while(NULL == ret && OB_SUCCESS == tmp_ret) { @@ -370,7 +370,7 @@ public: abort_unless(bsize_ != 0); #else if (this != blk->get_slice_alloc()) { - LIB_LOG(ERROR, "blk is freed or alloced by different slice_alloc", K(this), K(blk->get_slice_alloc())); + LIB_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "blk is freed or alloced by different slice_alloc", K(this), K(blk->get_slice_alloc())); return; } #endif diff --git a/deps/oblib/src/lib/allocator/ob_vslice_alloc.h b/deps/oblib/src/lib/allocator/ob_vslice_alloc.h index 53fae8633..f3875d8ea 100644 --- a/deps/oblib/src/lib/allocator/ob_vslice_alloc.h +++ b/deps/oblib/src/lib/allocator/ob_vslice_alloc.h @@ -111,7 +111,7 @@ public: destroy_block(old_blk); } else { // can not monitor all leak !!! - LIB_LOG(ERROR, "there was memory leak", K(old_blk->ref_)); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "there was memory leak", K(old_blk->ref_)); } } } @@ -213,7 +213,7 @@ public: abort_unless(bsize_ != 0); #else if (this != blk->get_vslice_alloc()) { - LIB_LOG(ERROR, "blk is freed or alloced by different vslice_alloc", K(this), K(blk->get_vslice_alloc())); + LIB_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "blk is freed or alloced by different vslice_alloc", K(this), K(blk->get_vslice_alloc())); return; } #endif diff --git a/deps/oblib/src/lib/allocator/page_arena.h b/deps/oblib/src/lib/allocator/page_arena.h index b6c9e2d21..d17a7c263 100644 --- a/deps/oblib/src/lib/allocator/page_arena.h +++ b/deps/oblib/src/lib/allocator/page_arena.h @@ -326,8 +326,9 @@ private: // helpers total_ += sz; ++pages_; } else { - _OB_LOG(WARN, "cannot allocate memory.sz=%ld, pages_=%ld,total_=%ld", - sz, pages_, total_); + _OB_LOG_RET(WARN, OB_ALLOCATE_MEMORY_FAILED, + "cannot allocate memory.sz=%ld, pages_=%ld,total_=%ld", + sz, pages_, total_); } return page; @@ -351,7 +352,8 @@ private: // helpers } else { page = alloc_new_page(sz); if (NULL == page) { - _OB_LOG(WARN, "extend_page sz =%ld cannot alloc new page", sz); + _OB_LOG_RET(WARN, OB_ALLOCATE_MEMORY_FAILED, + "extend_page sz =%ld cannot alloc new page", sz); } else { insert_tail(page); } @@ -466,7 +468,7 @@ public: // API enable_sanity_(enable_sanity) { if (page_size < (int64_t)sizeof(Page)) { - _OB_LOG(ERROR, "invalid page size(page_size=%ld, page=%ld)", page_size, + _OB_LOG_RET(ERROR, OB_ERROR, "invalid page size(page_size=%ld, page=%ld)", page_size, (int64_t)sizeof(Page)); } } @@ -586,7 +588,7 @@ public: // API T *ret = NULL; void *tmp = (void *)alloc_aligned(sizeof(T)); if (NULL == tmp) { - _OB_LOG(WARN, "fail to alloc mem for T"); + _OB_LOG_RET(WARN, OB_ALLOCATE_MEMORY_FAILED, "fail to alloc mem for T"); } else { ret = new(tmp)T(); } diff --git a/deps/oblib/src/lib/charset/ob_charset.cpp b/deps/oblib/src/lib/charset/ob_charset.cpp index 8a72b6adc..69494d63d 100644 --- a/deps/oblib/src/lib/charset/ob_charset.cpp +++ b/deps/oblib/src/lib/charset/ob_charset.cpp @@ -555,7 +555,7 @@ size_t ObCharset::scan_str(const char *str, ObCharsetInfo *cs = &ob_charset_bin; size_t result = 0; if (OB_ISNULL(str) || OB_ISNULL(end) || OB_ISNULL(cs)) { - BACKTRACE(ERROR, true, "invalid argument. str = %p, end = %p, cs = %p", str, end, cs); + BACKTRACE_RET(ERROR, OB_INVALID_ARGUMENT, true, "invalid argument. str = %p, end = %p, cs = %p", str, end, cs); } else { result = cs->cset->scan(cs, str, end, sq); } @@ -1060,11 +1060,11 @@ size_t ObCharset::charpos(const ObCollationType collation_type, if (OB_UNLIKELY(collation_type <= CS_TYPE_INVALID || collation_type >= CS_TYPE_MAX) || OB_ISNULL(ObCharset::charset_arr[collation_type])) { - LOG_ERROR("unexpected error. invalid argument(s)", K(collation_type)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "unexpected error. invalid argument(s)", K(collation_type)); } else { ObCharsetInfo *cs = static_cast(ObCharset::charset_arr[collation_type]); if (OB_ISNULL(cs->cset)) { - LOG_ERROR("unexpected error. invalid argument(s)", K(cs), K(cs->cset)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "unexpected error. invalid argument(s)", K(cs), K(cs->cset)); } else { res_pos = cs->cset->charpos(cs, str, str + str_len, length); if (res_pos > str_len) { @@ -1478,7 +1478,7 @@ ObCharsetType ObCharset::charset_type(const char *cs_name) { ObCharsetType ct = CHARSET_INVALID; if (OB_ISNULL(cs_name)) { - LOG_ERROR("unexpected error. invalid argument(s)", + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "unexpected error. invalid argument(s)", K(ct), KP(cs_name), K(ct)); } else { ObString cs_name_str = ObString::make_string(cs_name); @@ -2413,7 +2413,7 @@ bool ObCharset::case_mode_equal(const ObNameCaseMode case_mode, const ObString & bool is_equal = false; if (OB_UNLIKELY(OB_NAME_CASE_INVALID >= case_mode || case_mode >= OB_NAME_CASE_MAX)) { - LOG_ERROR("unexpected error. invalid cast_mode", + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "unexpected error. invalid cast_mode", K(case_mode)); } else { ObCollationType collation_type = CS_TYPE_INVALID; @@ -2496,7 +2496,7 @@ const ObCharsetInfo *ObCharset::get_charset(const ObCollationType collation_type ObCharsetInfo *ret = NULL; if (OB_UNLIKELY(collation_type <= CS_TYPE_INVALID || collation_type >= CS_TYPE_MAX)) { - LOG_ERROR("unexpected error. invalid argument(s)", + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "unexpected error. invalid argument(s)", K(collation_type)); } else { ret = static_cast(ObCharset::charset_arr[collation_type]); @@ -2610,7 +2610,7 @@ inline bool ObCharset::is_argument_valid(const ObCharsetInfo *cs, const char *st OB_ISNULL(cs->cset)) { is_arg_valid = false; const ObFatalErrExtraInfoGuard *extra_info = ObFatalErrExtraInfoGuard::get_thd_local_val_ptr(); - BACKTRACE(ERROR, true, "invalid argument. charset info = %p, str = %p, str_len = %ld, extra_info=(%s)", cs, str, str_len, (NULL == extra_info) ? NULL : to_cstring(*extra_info)); + BACKTRACE_RET(ERROR, OB_INVALID_ARGUMENT, true, "invalid argument. charset info = %p, str = %p, str_len = %ld, extra_info=(%s)", cs, str, str_len, (NULL == extra_info) ? NULL : to_cstring(*extra_info)); } } return is_arg_valid; @@ -2627,7 +2627,7 @@ inline bool ObCharset::is_argument_valid(const ObCollationType collation_type, c (OB_ISNULL(str2) && OB_UNLIKELY(0 != str_len2))) { is_arg_valid = false; const ObFatalErrExtraInfoGuard *extra_info = ObFatalErrExtraInfoGuard::get_thd_local_val_ptr(); - BACKTRACE(ERROR, true, "invalid argument." + BACKTRACE_RET(ERROR, OB_INVALID_ARGUMENT, true, "invalid argument." "collation_type = %d," "str1 = %p," "str1_len = %ld," @@ -2639,7 +2639,7 @@ inline bool ObCharset::is_argument_valid(const ObCollationType collation_type, c ObCharsetInfo *cs = static_cast(ObCharset::charset_arr[collation_type]); if (OB_ISNULL(cs->cset) || OB_ISNULL(cs->coll)) { is_arg_valid = false; - BACKTRACE(ERROR, true, "invalid argument." + BACKTRACE_RET(ERROR, OB_INVALID_ARGUMENT, true, "invalid argument." "collation_type = %d," "str1 = %p," "str1_len = %ld," @@ -2861,7 +2861,7 @@ bool ObCharset::is_cs_nonascii(ObCollationType collation_type) if (OB_UNLIKELY(collation_type <= CS_TYPE_INVALID || collation_type >= CS_TYPE_MAX) || OB_ISNULL(ObCharset::charset_arr[collation_type])) { - LOG_ERROR("unexpected error. invalid argument(s)", + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "unexpected error. invalid argument(s)", K(collation_type)); } else { ObCharsetInfo *cs = static_cast(ObCharset::charset_arr[collation_type]); diff --git a/deps/oblib/src/lib/checksum/ob_crc64.cpp b/deps/oblib/src/lib/checksum/ob_crc64.cpp index 1ba1ff917..b0aa172b9 100644 --- a/deps/oblib/src/lib/checksum/ob_crc64.cpp +++ b/deps/oblib/src/lib/checksum/ob_crc64.cpp @@ -1130,15 +1130,15 @@ uint64_t crc64_sse42_dispatch(uint64_t crc, const char *buf, int64_t len) if (strcmp((char*)vendor_info, "GenuineIntel") == 0) { ob_crc64_sse42_func = &ob_crc64_isal; - _OB_LOG(WARN, "Use ISAL for crc64 calculate"); + _OB_LOG_RET(WARN, OB_SUCCESS, "Use ISAL for crc64 calculate"); } else{ asm("cpuid" : "=a"(a), "=b"(b), "=c"(c), "=d"(d) : "0"(1)); if ((c & (1 << 20)) != 0) { ob_crc64_sse42_func = &crc64_sse42; - _OB_LOG(WARN, "Use CPU crc32 instructs for crc64 calculate"); + _OB_LOG_RET(WARN, OB_SUCCESS, "Use CPU crc32 instructs for crc64 calculate"); } else { ob_crc64_sse42_func = &fast_crc64_sse42_manually; - _OB_LOG(WARN, "Use manual crc32 table lookup for crc64 calculate"); + _OB_LOG_RET(WARN, OB_SUCCESS, "Use manual crc32 table lookup for crc64 calculate"); } } diff --git a/deps/oblib/src/lib/container/ob_2d_array.h b/deps/oblib/src/lib/container/ob_2d_array.h index 0fe8e8f72..1890c32a8 100644 --- a/deps/oblib/src/lib/container/ob_2d_array.h +++ b/deps/oblib/src/lib/container/ob_2d_array.h @@ -442,7 +442,7 @@ inline T &Ob2DArray::at(int64_t idx) { if (OB_UNLIKELY(0 > idx || idx >= count_)) { - LIB_LOG(ERROR, "invalid idx. Fatal!!!", K(idx), K_(count)); + LIB_LOG_RET(ERROR, OB_ARRAY_OUT_OF_RANGE, "invalid idx. Fatal!!!", K(idx), K_(count)); } return *get_obj_pos(idx); } @@ -454,7 +454,7 @@ inline const T &Ob2DArray::at(int64_t idx) const { if (OB_UNLIKELY(0 > idx || idx >= count_)) { - LIB_LOG(ERROR, "invalid idx. Fatal!!!", K(idx), K_(count)); + LIB_LOG_RET(ERROR, OB_ARRAY_OUT_OF_RANGE, "invalid idx. Fatal!!!", K(idx), K_(count)); } return *get_obj_pos(idx); } diff --git a/deps/oblib/src/lib/container/ob_array.h b/deps/oblib/src/lib/container/ob_array.h index 20b3cc843..745980fa3 100644 --- a/deps/oblib/src/lib/container/ob_array.h +++ b/deps/oblib/src/lib/container/ob_array.h @@ -50,7 +50,7 @@ struct NotImplementItemEncode UNUSED(buf_len); UNUSED(pos); UNUSED(item); - _OB_LOG(WARN, "call not implemented function."); + _OB_LOG_RET(WARN, OB_NOT_IMPLEMENT, "call not implemented function."); return OB_NOT_IMPLEMENT; } @@ -60,7 +60,7 @@ struct NotImplementItemEncode UNUSED(data_len); UNUSED(pos); UNUSED(item); - _OB_LOG(WARN, "call not implemented function."); + _OB_LOG_RET(WARN, OB_NOT_IMPLEMENT, "call not implemented function."); return OB_NOT_IMPLEMENT; } @@ -327,7 +327,7 @@ T *ObArrayImpl::alloc_place } count_++; } else { - _OB_LOG(WARN, "extend buf error, " + _OB_LOG_RET(WARN, OB_ALLOCATE_MEMORY_FAILED, "extend buf error, " "count_=%ld, data_size_=%ld, (int64_t)sizeof(T)=%ld, data_size_/(int64_t)sizeof(T)=%ld", count_, data_size_, static_cast(sizeof(T)), data_size_ / static_cast(sizeof(T))); } @@ -444,19 +444,19 @@ ObArrayImpl this->reset(); this->reserve(other.count()); if (OB_UNLIKELY(static_cast(data_size_) < (sizeof(T)*other.count_))) { - _OB_LOG(ERROR, "no memory"); error_ = OB_ALLOCATE_MEMORY_FAILED; + _OB_LOG_RET(ERROR, error_, "no memory"); } else { const int64_t assign = std::min(valid_count_, other.count_); for (int64_t i = 0; OB_LIKELY(OB_SUCCESS == error_) && i < assign; ++i) { if (OB_UNLIKELY(OB_SUCCESS != (error_ = copy_assign(data_[i], other.data_[i])))) { - LIB_LOG(WARN, "failed to copy data", K(error_)); + LIB_LOG_RET(WARN, error_, "failed to copy data", K(error_)); count_ = i; } } for (int64_t i = assign; OB_LIKELY(OB_SUCCESS == error_) && i < other.count_; ++i) { if (OB_UNLIKELY(OB_SUCCESS != (error_ = construct_assign(data_[i], other.data_[i])))) { - LIB_LOG(WARN, "failed to copy data", K(error_)); + LIB_LOG_RET(WARN, error_, "failed to copy data", K(error_)); count_ = i; } } diff --git a/deps/oblib/src/lib/container/ob_array_array.h b/deps/oblib/src/lib/container/ob_array_array.h index 3d210b71f..1ad6447c3 100644 --- a/deps/oblib/src/lib/container/ob_array_array.h +++ b/deps/oblib/src/lib/container/ob_array_array.h @@ -50,10 +50,10 @@ public: OB_INLINE T &at(const int64_t array_idx, const int64_t idx) { if (OB_UNLIKELY(0 > array_idx || array_idx >= count_)) { - LIB_LOG(ERROR, "Unexpected array idx", K_(count), K_(capacity), K(array_idx)); + LIB_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "Unexpected array idx", K_(count), K_(capacity), K(array_idx)); right_to_die_or_duty_to_live(); } else if (OB_ISNULL(array_ptrs_) || OB_ISNULL(array_ptrs_[array_idx])) { - LIB_LOG(ERROR, "Unexpected null array array ptr", K_(count), K_(capacity), K(array_idx), + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "Unexpected null array array ptr", K_(count), K_(capacity), K(array_idx), KP_(array_ptrs)); right_to_die_or_duty_to_live(); } @@ -62,10 +62,10 @@ public: OB_INLINE ObIArray &at(const int64_t array_idx) { if (OB_UNLIKELY(0 > array_idx || array_idx >= count_)) { - LIB_LOG(ERROR, "Unexpected array idx", K_(count), K_(capacity), K(array_idx)); + LIB_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "Unexpected array idx", K_(count), K_(capacity), K(array_idx)); right_to_die_or_duty_to_live(); } else if (OB_ISNULL(array_ptrs_) || OB_ISNULL(array_ptrs_[array_idx])) { - LIB_LOG(ERROR, "Unexpected null array array ptr", K_(count), K_(capacity), K(array_idx), + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "Unexpected null array array ptr", K_(count), K_(capacity), K(array_idx), KP_(array_ptrs)); right_to_die_or_duty_to_live(); } @@ -77,10 +77,10 @@ public: OB_INLINE int64_t count(const int64_t array_idx) const { if (OB_UNLIKELY(0 > array_idx || array_idx >= count_)) { - LIB_LOG(ERROR, "Unexpected array idx", K_(count), K_(capacity), K(array_idx)); + LIB_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "Unexpected array idx", K_(count), K_(capacity), K(array_idx)); right_to_die_or_duty_to_live(); } else if (OB_ISNULL(array_ptrs_) || OB_ISNULL(array_ptrs_[array_idx])) { - LIB_LOG(ERROR, "Unexpected null array array ptr", K_(count), K_(capacity), K(array_idx), + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "Unexpected null array array ptr", K_(count), K_(capacity), K(array_idx), KP_(array_ptrs)); right_to_die_or_duty_to_live(); } @@ -140,7 +140,7 @@ template::reset() { if (OB_ISNULL(array_ptrs_)) { - LIB_LOG(ERROR, "Unexpected null array array ptr", K_(count), K_(capacity), KP_(array_ptrs)); + LIB_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "Unexpected null array array ptr", K_(count), K_(capacity), KP_(array_ptrs)); array_ptrs_ = local_array_buf_; capacity_ = ARRAY_ARRAY_SIZE; } @@ -151,7 +151,7 @@ void ObArrayArray::reset alloc_.free(array_ptrs_[i]); array_ptrs_[i] = nullptr; } else { - LIB_LOG(ERROR, "Unexpected null array array ptr", K(i), K_(count), K_(capacity)); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "Unexpected null array array ptr", K(i), K_(count), K_(capacity)); } } if (array_ptrs_ != local_array_buf_) { @@ -168,7 +168,7 @@ template::reuse() { if (OB_ISNULL(array_ptrs_)) { - LIB_LOG(ERROR, "Unexpected null array array ptr", K_(count), K_(capacity), KP_(array_ptrs)); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "Unexpected null array array ptr", K_(count), K_(capacity), KP_(array_ptrs)); reset(); } @@ -176,7 +176,7 @@ void ObArrayArray::reuse if (OB_NOT_NULL(array_ptrs_[i])) { array_ptrs_[i]->reuse(); } else { - LIB_LOG(ERROR, "Unexpected null array array ptr", K(i), K_(count), K_(capacity)); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "Unexpected null array array ptr", K(i), K_(count), K_(capacity)); } } count_ = 0; diff --git a/deps/oblib/src/lib/container/ob_bit_set.h b/deps/oblib/src/lib/container/ob_bit_set.h index ecb8e22a3..01b57c08a 100644 --- a/deps/oblib/src/lib/container/ob_bit_set.h +++ b/deps/oblib/src/lib/container/ob_bit_set.h @@ -140,7 +140,7 @@ inline bool ObSegmentBitSet::has_member(int64_t index) const { bool bool_ret = false; if (OB_UNLIKELY(index < 0)) { - LIB_LOG(WARN, "negative bitmapset member not allowed", K(index)); + LIB_LOG_RET(WARN, common::OB_INVALID_ARGUMENT, "negative bitmapset member not allowed", K(index)); //just return false } else if (OB_UNLIKELY(index >= bit_count())) { //the bit is not set @@ -271,7 +271,7 @@ inline bool ObFixedBitSet::has_member(int64_t index) const { bool bool_ret = false; if (OB_UNLIKELY(index < 0)) { - LIB_LOG(WARN, "negative bitmapset member not allowed", K(index)); + LIB_LOG_RET(WARN, common::OB_INVALID_ARGUMENT, "negative bitmapset member not allowed", K(index)); //just return false } else if (OB_UNLIKELY(index >= bit_count())) { //the bit is not set @@ -747,7 +747,7 @@ inline bool ObBitSet::has_member(int64_t index) c { bool bool_ret = false; if (OB_UNLIKELY(index < 0)) { - LIB_LOG(WARN, "negative bitmapset member not allowed", K(index)); + LIB_LOG_RET(WARN, common::OB_INVALID_ARGUMENT, "negative bitmapset member not allowed", K(index)); //just return false } else if (OB_UNLIKELY(index >= bit_count())) { //the bit is not set diff --git a/deps/oblib/src/lib/container/ob_bitmap.h b/deps/oblib/src/lib/container/ob_bitmap.h index a51f8dbf4..b594700b6 100644 --- a/deps/oblib/src/lib/container/ob_bitmap.h +++ b/deps/oblib/src/lib/container/ob_bitmap.h @@ -466,12 +466,12 @@ ObBitmap::get_block(const size_type pos) const { ObBitmap::size_type result = 0; if (OB_UNLIKELY(valid_bits_ < pos)) { - LIB_LOG(WARN, "Index out of range when getting block from bitmap", K_(valid_bits), K(pos)); + LIB_LOG_RET(WARN, common::OB_INVALID_ARGUMENT, "Index out of range when getting block from bitmap", K_(valid_bits), K(pos)); } else { size_type inner_pos = pos; MemBlock *mem_block = find_block(pos, inner_pos); if (OB_ISNULL(mem_block)) { - LIB_LOG(WARN, "Null pointer error when finding memblock", K(pos)); + LIB_LOG_RET(WARN, common::OB_ERR_UNEXPECTED, "Null pointer error when finding memblock", K(pos)); } else { result = mem_block->bits_[block_index(inner_pos)]; } diff --git a/deps/oblib/src/lib/container/ob_ext_ring_buffer_impl.h b/deps/oblib/src/lib/container/ob_ext_ring_buffer_impl.h index b71116624..63ce6f65a 100644 --- a/deps/oblib/src/lib/container/ob_ext_ring_buffer_impl.h +++ b/deps/oblib/src/lib/container/ob_ext_ring_buffer_impl.h @@ -37,7 +37,7 @@ namespace erb static inline void on_fatal_error() { while(true) { - LIB_LOG(ERROR, "on_fatal_error"); + LIB_LOG_RET(ERROR, common::OB_ERROR, "on_fatal_error"); sleep(1); } } @@ -362,10 +362,10 @@ private: { Segment *pret = NULL; if (NULL == allocator_) { - LIB_LOG(ERROR, "err alloc"); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "err alloc"); } else if (NULL == (pret = static_cast(allocator_->alloc(seg_size_)))) { - LIB_LOG(WARN, "failed to alloc Segment", K(seg_size_)); + LIB_LOG_RET(WARN, common::OB_ALLOCATE_MEMORY_FAILED, "failed to alloc Segment", K(seg_size_)); } else { new(pret)Segment(); pret->reset(seg_capacity_, allocator_); @@ -408,9 +408,9 @@ private: Dir *pret = NULL; int64_t size = static_cast(sizeof(Dir) + (seg_cnt * sizeof(Segment*))); if (NULL == allocator_) { - LIB_LOG(ERROR, "err alloc"); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "err alloc"); } else if (NULL == (pret = static_cast(allocator_->alloc(size)))) { - LIB_LOG(WARN, "failed to alloc Dir", K(size)); + LIB_LOG_RET(WARN, common::OB_ALLOCATE_MEMORY_FAILED, "failed to alloc Dir", K(size)); } else { new(pret)Dir(); pret->reset(seg_cnt, seg_capacity_, allocator_); @@ -511,7 +511,7 @@ private: void expand_rearrange_(const int64_t ctrl_sn, Dir *dir, Dir *new_dir) { if (NULL == dir || NULL == new_dir) { - LIB_LOG(ERROR, "err dir", K(dir), K(new_dir)); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "err dir", K(dir), K(new_dir)); } else { SlotIdx slot_idx = calc_slot_idx_(ctrl_sn, dir); @@ -578,7 +578,7 @@ private: void shrink_rearrange_(const int64_t ctrl_sn, Dir *dir, Dir *new_dir) { if (NULL == dir || NULL == new_dir) { - LIB_LOG(ERROR, "err dir", K(dir), K(new_dir)); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "err dir", K(dir), K(new_dir)); } else { SlotIdx slot_idx = calc_slot_idx_(ctrl_sn + 1, dir); // Slot index of the next begin slot. diff --git a/deps/oblib/src/lib/container/ob_fast_array.h b/deps/oblib/src/lib/container/ob_fast_array.h index 04b4753a6..79539ba30 100644 --- a/deps/oblib/src/lib/container/ob_fast_array.h +++ b/deps/oblib/src/lib/container/ob_fast_array.h @@ -64,7 +64,7 @@ public: { T* buffer = get_buffer(); if (OB_UNLIKELY(0 > idx || idx >= count_ || buffer == NULL)) { - LIB_LOG(ERROR, "invalid argument", K(idx), K_(count), K(buffer)); + LIB_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "invalid argument", K(idx), K_(count), K(buffer)); common::right_to_die_or_duty_to_live(); } return buffer[idx]; @@ -73,7 +73,7 @@ public: { const T* buffer = get_buffer(); if (OB_UNLIKELY(0 > idx || idx >= count_ || buffer == NULL)) { - LIB_LOG(ERROR, "invalid argument", K(idx), K_(count), K(buffer)); + LIB_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "invalid argument", K(idx), K_(count), K(buffer)); common::right_to_die_or_duty_to_live(); } return buffer[idx]; diff --git a/deps/oblib/src/lib/container/ob_iarray.h b/deps/oblib/src/lib/container/ob_iarray.h index 0f1d13749..13f034167 100644 --- a/deps/oblib/src/lib/container/ob_iarray.h +++ b/deps/oblib/src/lib/container/ob_iarray.h @@ -47,7 +47,7 @@ public: virtual int assign(const ObIArray &other) = 0; virtual int prepare_allocate(int64_t capacity) = 0; virtual T *alloc_place_holder() - { OB_LOG(WARN, "Not supported"); return NULL; } + { OB_LOG_RET(WARN, OB_NOT_SUPPORTED, "Not supported"); return NULL; } virtual int64_t to_string(char* buf, int64_t buf_len) const { diff --git a/deps/oblib/src/lib/container/ob_id_map.h b/deps/oblib/src/lib/container/ob_id_map.h index b1eb5a3d5..cd4e35112 100644 --- a/deps/oblib/src/lib/container/ob_id_map.h +++ b/deps/oblib/src/lib/container/ob_id_map.h @@ -250,7 +250,7 @@ void ObIDMap::revert(const ID_TYPE id, const bool eras array_[pos].data = NULL; int tmp_ret = OB_SUCCESS; if (OB_SUCCESS != (tmp_ret = free_list_.push(&(array_[pos])))) { - _OB_LOG(ERROR, "push to free list fail ret=%d free list size=%ld", tmp_ret, + _OB_LOG_RET(ERROR, tmp_ret, "push to free list fail ret=%d free list size=%ld", tmp_ret, free_list_.get_total()); } } @@ -275,7 +275,7 @@ void ObIDMap::erase(const ID_TYPE id) array_[pos].data = NULL; int tmp_ret = OB_SUCCESS; if (OB_SUCCESS != (tmp_ret = free_list_.push(&(array_[pos])))) { - _OB_LOG(ERROR, "push to free list fail ret=%d free list size=%ld", tmp_ret, + _OB_LOG_RET(ERROR, tmp_ret, "push to free list fail ret=%d free list size=%ld", tmp_ret, free_list_.get_total()); } } diff --git a/deps/oblib/src/lib/container/ob_se_array.h b/deps/oblib/src/lib/container/ob_se_array.h index aadbd94e9..a6387b8c2 100644 --- a/deps/oblib/src/lib/container/ob_se_array.h +++ b/deps/oblib/src/lib/container/ob_se_array.h @@ -291,14 +291,14 @@ public: inline T &operator[](int64_t idx) // dangerous { if (OB_UNLIKELY(0 > idx || idx >= count_)) { - LIB_LOG(ERROR, "idx out of range", K(idx), K(count_)); + LIB_LOG_RET(ERROR, OB_ARRAY_OUT_OF_RANGE, "idx out of range", K(idx), K(count_)); } return data_[idx]; } inline const T &operator[](int64_t idx) const // dangerous { if (OB_UNLIKELY(0 > idx || idx >= count_)) { - LIB_LOG(ERROR, "idx out of range", K(idx), K(count_)); + LIB_LOG_RET(ERROR, OB_ARRAY_OUT_OF_RANGE, "idx out of range", K(idx), K(count_)); } return data_[idx]; } diff --git a/deps/oblib/src/lib/container/ob_seg_array.h b/deps/oblib/src/lib/container/ob_seg_array.h index 8319f984e..a01cb029d 100644 --- a/deps/oblib/src/lib/container/ob_seg_array.h +++ b/deps/oblib/src/lib/container/ob_seg_array.h @@ -397,7 +397,7 @@ Seg::Seg(const SegCreationType type) end_idx_ = 0; } else { // only used in this file, caller guarantee valid args - LIB_LOG(ERROR, "unkown SegCreationType", K(type), K(lbt())); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "unkown SegCreationType", K(type), K(lbt())); } } @@ -405,7 +405,7 @@ template Seg::Seg(const T &item) { if (SIZE <= 0) { - LIB_LOG(ERROR, "SIZE invalid", K(SIZE)); + LIB_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "SIZE invalid", K(SIZE)); } else { start_idx_ = 0; end_idx_ = 0; @@ -636,7 +636,7 @@ private: { bool bret = false; if (OB_UNLIKELY(0 == x->get_count())) { - LIB_LOG(ERROR, "invalid argument", "x.count", x->get_count()); + LIB_LOG_RET(ERROR, OB_INVALID_ARGUMENT, "invalid argument", "x.count", x->get_count()); } else { bret = (x->get_delegate() <= *y_); } diff --git a/deps/oblib/src/lib/container/ob_vector.h b/deps/oblib/src/lib/container/ob_vector.h index 0c464f79c..ae5ff6294 100644 --- a/deps/oblib/src/lib/container/ob_vector.h +++ b/deps/oblib/src/lib/container/ob_vector.h @@ -121,7 +121,7 @@ public: inline value_type &at(const int64_t index) const { if (OB_UNLIKELY(index < 0 || index >= size())) { - COMMON_LOG(ERROR, "invalid index", K(index)); + COMMON_LOG_RET(ERROR, OB_ARRAY_OUT_OF_RANGE, "invalid index", K(index)); } return *(mem_begin_ + index); } diff --git a/deps/oblib/src/lib/file/ob_file.cpp b/deps/oblib/src/lib/file/ob_file.cpp index aa9133d1e..85091d5d7 100644 --- a/deps/oblib/src/lib/file/ob_file.cpp +++ b/deps/oblib/src/lib/file/ob_file.cpp @@ -75,7 +75,7 @@ void IFileReader::close() { if (-1 != fd_) { if(0 != ::close(fd_)) { - OB_LOG(WARN, "fail to close file ", K_(fd), K(errno), KERRMSG); + OB_LOG_RET(WARN, OB_ERR_SYS, "fail to close file ", K_(fd), K(errno), KERRMSG); } fd_ = -1; } @@ -90,7 +90,7 @@ void IFileReader::revise(int64_t pos) { if (-1 != fd_) { if(0 != ::ftruncate(fd_, pos)) { - _OB_LOG(WARN, "ftruncate fail fd=%d file_pos=%ld errno=%u", fd_, pos, errno); + _OB_LOG_RET(WARN, OB_ERR_SYS, "ftruncate fail fd=%d file_pos=%ld errno=%u", fd_, pos, errno); } } } @@ -784,9 +784,9 @@ int64_t unintr_pwrite(const int fd, const void *buf, const int64_t count, const if (errno == EINTR) { // Blocking IO does not need to judge EAGAIN continue; } - _OB_LOG(ERROR, - "pwrite fail ret=%ld errno=%u fd=%d buf=%p size2write=%ld offset2write=%ld retry_num=%ld", - write_ret, errno, fd, (char *)buf + offset2write, length2write, offset + offset2write, retry); + _OB_LOG_RET(ERROR, OB_ERR_SYS, + "pwrite fail ret=%ld errno=%u fd=%d buf=%p size2write=%ld offset2write=%ld retry_num=%ld", + write_ret, errno, fd, (char *)buf + offset2write, length2write, offset + offset2write, retry); retry++; } else { break; @@ -816,7 +816,7 @@ int64_t unintr_write(const int fd, const void *buf, const int64_t count) if (errno == EINTR) { // Blocking IO does not need to judge EAGAIN continue; } - _OB_LOG(ERROR, + _OB_LOG_RET(ERROR, OB_ERR_SYS, "pwrite fail ret=%ld errno=%u fd=%d buf=%p size2write=%ld offset2write=%ld retry_num=%ld", write_ret, errno, fd, (char *)buf + offset2write, length2write, offset2write, retry); retry++; @@ -848,7 +848,7 @@ int64_t unintr_pread(const int fd, void *buf, const int64_t count, const int64_t if (errno == EINTR) { // Blocking IO does not need to judge EAGAIN continue; } - _OB_LOG(ERROR, + _OB_LOG_RET(ERROR, OB_ERR_SYS, "pread fail ret=%ld errno=%u fd=%d buf=%p size2read=%ld offset2read=%ld retry_num=%ld", read_ret, errno, fd, (char *)buf + offset2read, length2read, offset + offset2read, retry); retry++; @@ -1011,7 +1011,7 @@ int64_t ObFileBuffer::get_base_pos() void ObFileBuffer::set_base_pos(const int64_t pos) { if (pos > buffer_size_) { - _OB_LOG(WARN, "base_pos=%ld will be greater than buffer_size=%ld", pos, buffer_size_); + _OB_LOG_RET(WARN, OB_ERR_UNEXPECTED, "base_pos=%ld will be greater than buffer_size=%ld", pos, buffer_size_); } base_pos_ = pos; } @@ -1363,7 +1363,7 @@ ObFileAsyncAppender::ObFileAsyncAppender() : pool_(), memset(&ctx_, 0, sizeof(ctx_)); int tmp_ret = 0; if (0 != (tmp_ret = io_setup(AIO_MAXEVENTS, &ctx_))) { - _OB_LOG(ERROR, "io_setup fail ret=%d", tmp_ret); + _OB_LOG_RET(ERROR, OB_ERR_SYS, "io_setup fail ret=%d", tmp_ret); } } @@ -1437,13 +1437,13 @@ void ObFileAsyncAppender::close() if (-1 != fd_) { if (OB_SUCCESS != fsync()) { // Fatal error - _OB_LOG(ERROR, "fsync fail fd=%d, will set fd=-1, and the fd will leek", fd_); + _OB_LOG_RET(ERROR, OB_ERR_SYS, "fsync fail fd=%d, will set fd=-1, and the fd will leek", fd_); } else { if (0 != ftruncate(fd_, file_pos_)) { - OB_LOG(WARN, "fail to truncate file ", K_(fd), K(errno), KERRMSG); + OB_LOG_RET(WARN, OB_ERR_SYS, "fail to truncate file ", K_(fd), K(errno), KERRMSG); } if (0 != ::close(fd_)) { - OB_LOG(WARN, "fail to close file ", K_(fd), K(errno), KERRMSG); + OB_LOG_RET(WARN, OB_ERR_SYS, "fail to close file ", K_(fd), K(errno), KERRMSG); } @@ -1562,7 +1562,7 @@ ObFileAsyncAppender::AIOCB *ObFileAsyncAppender::get_iocb_() if (NULL != ret && NULL == ret->buffer) { if (NULL == (ret->buffer = (char *)memalign(align_size_, AIO_BUFFER_SIZE))) { - _OB_LOG(WARN, "alloc async buffer fail"); + _OB_LOG_RET(WARN, OB_ALLOCATE_MEMORY_FAILED, "alloc async buffer fail"); pool_.free_obj(ret); cur_iocb_ = NULL; ret = NULL; @@ -1589,7 +1589,7 @@ void ObFileAsyncAppender::wait() pool_.free_obj(iocb); } else { // Fatal error - _OB_LOG(ERROR, "iocb return fail iocb=%p res=%ld res2=%ld, will set fd=-1, and the fd will leek", + _OB_LOG_RET(ERROR, OB_ERR_SYS, "iocb return fail iocb=%p res=%ld res2=%ld, will set fd=-1, and the fd will leek", ioe[i].data, ioe[i].res, ioe[i].res2); fd_ = -1; cur_iocb_ = NULL; diff --git a/deps/oblib/src/lib/file/ob_file.h b/deps/oblib/src/lib/file/ob_file.h index 48df80462..2f5159321 100644 --- a/deps/oblib/src/lib/file/ob_file.h +++ b/deps/oblib/src/lib/file/ob_file.h @@ -417,7 +417,7 @@ ObWaitablePool::ObWaitablePool() : list_(NULL), ObMemAttr memattr; memattr.label_ = ObModIds::OB_WAITABLE_POOL; if (NULL == (objs_ = (Node *)ob_malloc(sizeof(Node) * SIZE, memattr))) { - _OB_LOG(ERROR, "alloc obj array fail"); + _OB_LOG_RET(ERROR, common::OB_ALLOCATE_MEMORY_FAILED, "alloc obj array fail"); } else { for (int64_t i = 0; i < SIZE; i++) { new(&objs_[i].data) T(); @@ -440,7 +440,7 @@ ObWaitablePool::~ObWaitablePool() } if (NULL != objs_) { if (SIZE != counter) { - _OB_LOG(ERROR, "still have %ld node not been free, memory=%p will leek", SIZE - counter, objs_); + _OB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "still have %ld node not been free, memory=%p will leek", SIZE - counter, objs_); } else { ob_free(objs_); } diff --git a/deps/oblib/src/lib/function/ob_function.h b/deps/oblib/src/lib/function/ob_function.h index d2861dd13..b9594c295 100644 --- a/deps/oblib/src/lib/function/ob_function.h +++ b/deps/oblib/src/lib/function/ob_function.h @@ -193,7 +193,7 @@ class ObFunction { } else { const char* class_name = typeid(Fn).name(); int class_size = sizeof(Derived); - OCCAM_LOG(ERROR, "ptr is nullptr", + OCCAM_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "ptr is nullptr", K(class_name), K(class_size), K(function::SMALL_OBJ_MAX_SIZE), KP(local_buffer)); } diff --git a/deps/oblib/src/lib/future/ob_future.h b/deps/oblib/src/lib/future/ob_future.h index 655f4ae25..7907101a0 100644 --- a/deps/oblib/src/lib/future/ob_future.h +++ b/deps/oblib/src/lib/future/ob_future.h @@ -92,7 +92,7 @@ #define CHECK_INITED() \ do {\ if (OB_UNLIKELY(!is_valid())) {\ - OCCAM_LOG(WARN, "not init", K(lbt()));\ + OCCAM_LOG_RET(WARN, common::OB_NOT_INIT, "not init", K(lbt()));\ return OB_NOT_INIT;\ }\ } while (0) diff --git a/deps/oblib/src/lib/geo/ob_geo_bin.cpp b/deps/oblib/src/lib/geo/ob_geo_bin.cpp index 7d35ecdd5..93fb245f1 100644 --- a/deps/oblib/src/lib/geo/ob_geo_bin.cpp +++ b/deps/oblib/src/lib/geo/ob_geo_bin.cpp @@ -422,7 +422,7 @@ ObWkbGeomCollection::size_type ObWkbGeomCollection::get_sub_size(const_pointer d break; } default: { - LOG_WARN("Invalid geo type.", K(type)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "Invalid geo type.", K(type)); } } return s; @@ -835,7 +835,7 @@ ObWkbGeogCollection::size_type ObWkbGeogCollection::get_sub_size(const_pointer d break; } default: { - LOG_WARN("Invalid geo type.", K(type)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "Invalid geo type.", K(type)); } } return s; @@ -850,4 +850,4 @@ ObGeoType ObWkbGeogCollection::get_sub_type(const_pointer data) const } } // namespace common -} // namespace oceanbase \ No newline at end of file +} // namespace oceanbase diff --git a/deps/oblib/src/lib/geo/ob_geo_ibin.cpp b/deps/oblib/src/lib/geo/ob_geo_ibin.cpp index 32694d9d8..a7dde3c53 100644 --- a/deps/oblib/src/lib/geo/ob_geo_ibin.cpp +++ b/deps/oblib/src/lib/geo/ob_geo_ibin.cpp @@ -27,7 +27,7 @@ bool ObIWkbGeometry::is_empty() const if (OB_NOT_NULL(ptr)) { empty = this->is_empty_inner(); } else { - LOG_WARN("Try to access NULL pointer.", K(OB_ERR_NULL_VALUE)); + LOG_WARN_RET(OB_ERR_NULL_VALUE, "Try to access NULL pointer.", K(OB_ERR_NULL_VALUE)); } return empty; } @@ -39,7 +39,7 @@ uint64_t ObIWkbGeometry::length() const if (OB_NOT_NULL(ptr)) { s = this->length_inner(); } else { - LOG_WARN("Try to access NULL pointer.", K(OB_ERR_NULL_VALUE)); + LOG_WARN_RET(OB_ERR_NULL_VALUE, "Try to access NULL pointer.", K(OB_ERR_NULL_VALUE)); } return s; } @@ -51,7 +51,7 @@ double ObIWkbGeomPoint::x() const if (OB_NOT_NULL(ptr)) { val = ptr->get<0>(); } else { - LOG_WARN("Try to access NULL pointer.", K(OB_ERR_NULL_VALUE)); + LOG_WARN_RET(OB_ERR_NULL_VALUE, "Try to access NULL pointer.", K(OB_ERR_NULL_VALUE)); } return val; } @@ -63,7 +63,7 @@ double ObIWkbGeomPoint::y() const if (OB_NOT_NULL(ptr)) { val = ptr->get<1>(); } else { - LOG_WARN("Try to access NULL pointer.", K(OB_ERR_NULL_VALUE)); + LOG_WARN_RET(OB_ERR_NULL_VALUE, "Try to access NULL pointer.", K(OB_ERR_NULL_VALUE)); } return val; } @@ -74,7 +74,7 @@ void ObIWkbGeomPoint::x(double d) if (OB_NOT_NULL(ptr)) { ptr->set<0>(d); } else { - LOG_WARN("Try to access NULL pointer.", K(OB_ERR_NULL_VALUE)); + LOG_WARN_RET(OB_ERR_NULL_VALUE, "Try to access NULL pointer.", K(OB_ERR_NULL_VALUE)); } } @@ -84,7 +84,7 @@ void ObIWkbGeomPoint::y(double d) if (OB_NOT_NULL(ptr)) { ptr->set<1>(d); } else { - LOG_WARN("Try to access NULL pointer.", K(OB_ERR_NULL_VALUE)); + LOG_WARN_RET(OB_ERR_NULL_VALUE, "Try to access NULL pointer.", K(OB_ERR_NULL_VALUE)); } } @@ -147,7 +147,7 @@ double ObIWkbGeogPoint::x() const if (OB_NOT_NULL(ptr)) { val = ptr->get<0>(); } else { - LOG_WARN("Try to access NULL pointer.", K(OB_ERR_NULL_VALUE)); + LOG_WARN_RET(OB_ERR_NULL_VALUE, "Try to access NULL pointer.", K(OB_ERR_NULL_VALUE)); } return val; } @@ -159,7 +159,7 @@ double ObIWkbGeogPoint::y() const if (OB_NOT_NULL(ptr)) { val = ptr->get<1>(); } else { - LOG_WARN("Try to access NULL pointer.", K(OB_ERR_NULL_VALUE)); + LOG_WARN_RET(OB_ERR_NULL_VALUE, "Try to access NULL pointer.", K(OB_ERR_NULL_VALUE)); } return val; } @@ -170,7 +170,7 @@ void ObIWkbGeogPoint::x(double d) if (OB_NOT_NULL(ptr)) { ptr->set<0>(d); } else { - LOG_WARN("Try to access NULL pointer.", K(OB_ERR_NULL_VALUE)); + LOG_WARN_RET(OB_ERR_NULL_VALUE, "Try to access NULL pointer.", K(OB_ERR_NULL_VALUE)); } } @@ -180,7 +180,7 @@ void ObIWkbGeogPoint::y(double d) if (OB_NOT_NULL(ptr)) { ptr->set<1>(d); } else { - LOG_WARN("Try to access NULL pointer.", K(OB_ERR_NULL_VALUE)); + LOG_WARN_RET(OB_ERR_NULL_VALUE, "Try to access NULL pointer.", K(OB_ERR_NULL_VALUE)); } } diff --git a/deps/oblib/src/lib/geo/ob_geo_utils.cpp b/deps/oblib/src/lib/geo/ob_geo_utils.cpp index 5bbc8b4a8..c13a910e8 100644 --- a/deps/oblib/src/lib/geo/ob_geo_utils.cpp +++ b/deps/oblib/src/lib/geo/ob_geo_utils.cpp @@ -137,7 +137,7 @@ ObGeoType ObGeoTypeUtil::get_geo_type_by_name(ObString &name) } else if (0 == name.case_compare("geometrycollection")) { geo_type = ObGeoType::GEOMETRYCOLLECTION; } else { - LOG_WARN("get type by name failed", K(geo_type)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "get type by name failed", K(geo_type)); } return geo_type; @@ -176,7 +176,7 @@ const char *ObGeoTypeUtil::get_geo_name_by_type(ObGeoType type) break; } default:{ - LOG_WARN("unknown geometry type", K(type)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "unknown geometry type", K(type)); break; } } diff --git a/deps/oblib/src/lib/geo/ob_geometry_cast.cpp b/deps/oblib/src/lib/geo/ob_geometry_cast.cpp index b7792a4e8..fb04e1570 100644 --- a/deps/oblib/src/lib/geo/ob_geometry_cast.cpp +++ b/deps/oblib/src/lib/geo/ob_geometry_cast.cpp @@ -65,7 +65,7 @@ const char *ObGeometryTypeCastUtil::get_cast_name(ObGeoType type) break; } default:{ - LOG_WARN("unknown geometry type", K(type)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "unknown geometry type", K(type)); break; } } @@ -168,7 +168,7 @@ bool ObGeometryTypeCastUtil::is_point_equal(const P &p_left, const P &p_right) if ((p_left.template get<0>() != p_right.template get<0>()) || (p_left.template get<1>() != p_right.template get<1>())) { is_equal = false; - LOG_WARN("the back and front of the linestring are not the same point", + LOG_WARN_RET(OB_ERR_UNEXPECTED, "the back and front of the linestring are not the same point", K(p_left.template get<0>()), K(p_right.template get<0>()), K(p_left.template get<1>()), K(p_right.template get<1>())); } @@ -1064,4 +1064,4 @@ int ObGeomcollectionTypeCast::cast(const ObGeometry &src, } } // namespace common -} // namespace oceanbase \ No newline at end of file +} // namespace oceanbase diff --git a/deps/oblib/src/lib/guard/ob_unique_guard.h b/deps/oblib/src/lib/guard/ob_unique_guard.h index f422ed22c..3aaeef315 100644 --- a/deps/oblib/src/lib/guard/ob_unique_guard.h +++ b/deps/oblib/src/lib/guard/ob_unique_guard.h @@ -224,9 +224,9 @@ public: allocator_->free(data_); } } else if (!OB_ISNULL(data_)) { - OCCAM_LOG(ERROR, "should never go here", K(*this)); + OCCAM_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "should never go here", K(*this)); } else if (!OB_ISNULL(allocator_)) { - OCCAM_LOG(ERROR, "should never go here", K(*this)); + OCCAM_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "should never go here", K(*this)); } else {}// it'ok that both data_ and allocator_ are nullptr, ObUniqueGuard has been reset data_ = nullptr; deleter_ = nullptr; diff --git a/deps/oblib/src/lib/hash/ob_build_in_hashmap.h b/deps/oblib/src/lib/hash/ob_build_in_hashmap.h index 45b70dda1..1a852b9e1 100644 --- a/deps/oblib/src/lib/hash/ob_build_in_hashmap.h +++ b/deps/oblib/src/lib/hash/ob_build_in_hashmap.h @@ -113,7 +113,7 @@ public: if (NULL != (bucket_ = BucketChain::next(bucket_))) { // found non-empty next bucket. value_ = bucket_->chain_.head_; if (OB_ISNULL(value_)) { - OB_LOG(ERROR, "NULL value", KP_(value)); // if bucket is in chain, must be non-empty. + OB_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "NULL value", KP_(value)); // if bucket is in chain, must be non-empty. } } } diff --git a/deps/oblib/src/lib/hash/ob_concurrent_hash_map.cpp b/deps/oblib/src/lib/hash/ob_concurrent_hash_map.cpp index d1e79035c..5e724fd78 100644 --- a/deps/oblib/src/lib/hash/ob_concurrent_hash_map.cpp +++ b/deps/oblib/src/lib/hash/ob_concurrent_hash_map.cpp @@ -82,7 +82,7 @@ void *ArrayAlloc::alloc(const int64_t sz) { void *ptr = NULL; if (sz <= 0) { - COMMON_LOG(WARN, "invalid argument", K(sz)); + COMMON_LOG_RET(WARN, OB_INVALID_ARGUMENT, "invalid argument", K(sz)); } else { ObMemAttr attr(tenant_id_, label_); ptr = ob_malloc(sz, attr); diff --git a/deps/oblib/src/lib/hash/ob_concurrent_hash_map.h b/deps/oblib/src/lib/hash/ob_concurrent_hash_map.h index d10c1eb99..bd5b33eea 100644 --- a/deps/oblib/src/lib/hash/ob_concurrent_hash_map.h +++ b/deps/oblib/src/lib/hash/ob_concurrent_hash_map.h @@ -279,7 +279,7 @@ bool ObConcurrentHashMap::RemoveIf::operator()(Key &key, V if (OB_SUCCESS != (tmp_ret = hash_.remove_refactored(key))) { //if remove failed, stop traversing. bool_ret = false; - COMMON_LOG(WARN, "hash remove error", K(tmp_ret), K(key), K(value)); + COMMON_LOG_RET(WARN, tmp_ret, "hash remove error", K(tmp_ret), K(key), K(value)); } } return bool_ret; diff --git a/deps/oblib/src/lib/hash/ob_concurrent_hash_map_with_hazard_value.h b/deps/oblib/src/lib/hash/ob_concurrent_hash_map_with_hazard_value.h index 4fdd073fc..cdface511 100644 --- a/deps/oblib/src/lib/hash/ob_concurrent_hash_map_with_hazard_value.h +++ b/deps/oblib/src/lib/hash/ob_concurrent_hash_map_with_hazard_value.h @@ -217,7 +217,7 @@ template void ObConcurrentHashMapWithHazardValue::DefaultValueReclaimCallback::reclaim_value(Value *value) { if (OB_ISNULL(alloc_)) { - COMMON_LOG(WARN, "DefaultValueReclaimCallback wrong status", KP(alloc_)); + COMMON_LOG_RET(WARN, common::OB_ERR_UNEXPECTED, "DefaultValueReclaimCallback wrong status", KP(alloc_)); } else { alloc_->free(value); value = NULL; @@ -241,7 +241,7 @@ template void ObConcurrentHashMapWithHazardValue::HazardPtrReclaimCallback::reclaim_ptr(uintptr_t ptr) { if (OB_ISNULL(value_reclaim_callback_)) { - COMMON_LOG(ERROR, "HazardPtrReclaimCallback wrong status", K(value_reclaim_callback_)); + COMMON_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "HazardPtrReclaimCallback wrong status", K(value_reclaim_callback_)); } else { value_reclaim_callback_->reclaim_value(reinterpret_cast(ptr)); } @@ -266,11 +266,11 @@ void ObConcurrentHashMapWithHazardValue::HashReclaimCallback::recl { UNUSED(key); if (OB_ISNULL(hazard_ptr_)) { - COMMON_LOG(ERROR, "HashReclaimCallback status error", KP(hazard_ptr_)); + COMMON_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "HashReclaimCallback status error", KP(hazard_ptr_)); } else { - int tmp_ret = hazard_ptr_->retire(reinterpret_cast(value)); - if (OB_SUCCESS != tmp_ret) { - COMMON_LOG(ERROR, "retire ptr error", K(value), K(tmp_ret)); + int ret = hazard_ptr_->retire(reinterpret_cast(value)); + if (OB_SUCCESS != ret) { + COMMON_LOG(ERROR, "retire ptr error", K(value), K(ret)); } } } diff --git a/deps/oblib/src/lib/hash/ob_cuckoo_hashmap.h b/deps/oblib/src/lib/hash/ob_cuckoo_hashmap.h index 721413b8a..d537c9d94 100644 --- a/deps/oblib/src/lib/hash/ob_cuckoo_hashmap.h +++ b/deps/oblib/src/lib/hash/ob_cuckoo_hashmap.h @@ -69,7 +69,7 @@ public: HashMapIterator &operator ++() { if (OB_ISNULL(map_)) { - OB_LOG(ERROR, "hash map must not be NULL", K(lbt())); + OB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "hash map must not be NULL", K(lbt())); } else if (bucket_pos_ == map_->bucket_num_ && slot_pos_ >= map_->overflow_count_) { // do nothing } else { @@ -155,7 +155,7 @@ public: HashMapConstIterator &operator ++() { if (OB_ISNULL(map_)) { - OB_LOG(ERROR, "hash map must not be NULL", K(lbt())); + OB_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "hash map must not be NULL", K(lbt())); } else if (bucket_pos_ == map_->bucket_num_ && slot_pos_ >= map_->overflow_count_) { // do nothing } else { diff --git a/deps/oblib/src/lib/hash/ob_darray.h b/deps/oblib/src/lib/hash/ob_darray.h index 7038539ed..6f57ae9ee 100644 --- a/deps/oblib/src/lib/hash/ob_darray.h +++ b/deps/oblib/src/lib/hash/ob_darray.h @@ -192,7 +192,7 @@ private: { int64_t tid = get_itid(); if (tid >= MAX_THREAD_NUM) { - COMMON_LOG(ERROR, "set_ref error", K(tid)); + COMMON_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "set_ref error", K(tid)); } else { ATOMIC_STORE(&read_ref_[tid].value_, x); } @@ -302,7 +302,7 @@ public: { bool bool_ret = false; if (OB_ISNULL(lock)) { - COMMON_LOG(ERROR, "ArrayHeadHandler try_wrlock error, null lock addr"); + COMMON_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "ArrayHeadHandler try_wrlock error, null lock addr"); } else { bool_ret = LockHandler::try_wrlock_hard(read_ref_, lock); } @@ -316,7 +316,7 @@ public: void wrunlock(uint32_t *lock) { if (OB_ISNULL(lock)) { - COMMON_LOG(ERROR, "ArrayHeadHandler wrunlock error, null lock addr"); + COMMON_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "ArrayHeadHandler wrunlock error, null lock addr"); } else { LockHandler::wrunlock(read_ref_, lock); } @@ -355,7 +355,7 @@ public: void print(FILE *fp, int64_t slot_idx = 0, int indent = 0) { if (OB_ISNULL(this) || OB_ISNULL(fp)) { - COMMON_LOG(ERROR, "print error, invalid argument or null this", KP(this), KP(fp)); + COMMON_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "print error, invalid argument or null this", KP(this), KP(fp)); } else { fprintf(fp, "%*s%ldL%d: ", indent * 4, "C", slot_idx, level_); if (level_ != 1) { @@ -496,7 +496,7 @@ public: path_size_++; if (OB_UNLIKELY(path_size_ >= MAX_LEVEL)) { err = -EOVERFLOW; - COMMON_LOG(ERROR, "path size over flow, idx is too large", + COMMON_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "path size over flow, idx is too large", K(err), K(idx), K(path_size_)); } } while ((idx > 0 || path_size_ < root_level_) && OB_LIKELY(0 == err)); @@ -747,7 +747,7 @@ public: Node *old_root = NULL; if (OB_ISNULL(root)) { err = -EINVAL; - COMMON_LOG(ERROR, "root is null"); + COMMON_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "root is null"); } else if (0 != (err = handle.acquire_ref())) { } else if (0 != (err = handle.search(old_root = ATOMIC_LOAD(root), idx))) { } else if (0 != (err = handle.get(val))) { @@ -761,7 +761,7 @@ public: Node *new_root = NULL; if (OB_ISNULL(root) || OB_ISNULL(val)) { err = -EINVAL; - COMMON_LOG(ERROR, "root is null"); + COMMON_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "root is null"); } else if (0 != (err = handle.acquire_ref())) { } else if (0 != (err = handle.search(old_root = ATOMIC_LOAD(root), idx))) { } else if (0 != (err = handle.insert(val, new_root))) { @@ -780,7 +780,7 @@ public: Node *old_root = NULL; if (OB_ISNULL(root)) { err = -EINVAL; - COMMON_LOG(ERROR, "root is null"); + COMMON_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "root is null"); } else if (0 != (err = handle.acquire_ref())) { } else if (0 != (err = handle.search(old_root = ATOMIC_LOAD(root), idx))) { } else if (0 != (err = handle.del(val, need_reclaim_root))) { diff --git a/deps/oblib/src/lib/hash/ob_dchash.h b/deps/oblib/src/lib/hash/ob_dchash.h index 75decceaf..31291f7d2 100644 --- a/deps/oblib/src/lib/hash/ob_dchash.h +++ b/deps/oblib/src/lib/hash/ob_dchash.h @@ -250,11 +250,11 @@ public: min_size_(min_size), max_size_(max_size), target_size_(min_size) { if (OB_UNLIKELY(min_size_ < BATCH_SIZE)) { - _OB_LOG(ERROR, "min_size(%ld) is smaller than BATCH_SIZE(%u)", min_size_, BATCH_SIZE); + _OB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "min_size(%ld) is smaller than BATCH_SIZE(%u)", min_size_, BATCH_SIZE); min_size_ = BATCH_SIZE; } if (OB_UNLIKELY(min_size_ > max_size_)) { - OB_LOG(ERROR, "bad min/max size", K(min_size_), K(max_size_)); + OB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "bad min/max size", K(min_size_), K(max_size_)); } } ~DCHash() { destroy(); } diff --git a/deps/oblib/src/lib/hash/ob_hash.h b/deps/oblib/src/lib/hash/ob_hash.h index bb256fa9e..384a6e384 100644 --- a/deps/oblib/src/lib/hash/ob_hash.h +++ b/deps/oblib/src/lib/hash/ob_hash.h @@ -369,7 +369,7 @@ public: void print_list(FILE *fp) { if (OB_UNLIKELY(NULL == fp)) { - COMMON_LOG(ERROR, "print list error, fp is null", K(lbt())); + COMMON_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "print list error, fp is null", K(lbt())); } else { Node *head = get_head(); fprintf(fp, "Hash: "); @@ -617,7 +617,7 @@ public: bool is_deleted = false; if (OB_ISNULL(start) || OB_ISNULL(target)) { err = -EINVAL; - COMMON_LOG(ERROR, "search in list error, start is null", K(err), K(lbt())); + COMMON_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "search in list error, start is null", K(err), K(lbt())); } else { pre = start; next = NULL; @@ -638,7 +638,7 @@ public: Node *next = NULL; if (OB_ISNULL(target)) { err = -EINVAL; - COMMON_LOG(ERROR, "get from list error, target is null", K(err), K(lbt())); + COMMON_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "get from list error, target is null", K(err), K(lbt())); } else if (0 != (err = search_in_list(start, target, pre, next))) { } else if (NULL == next || 0 != target->compare(next)) { err = -ENOENT; @@ -654,13 +654,13 @@ public: Node *next = NULL; if (OB_ISNULL(target)) { err = -EINVAL; - COMMON_LOG(ERROR, "get from list error, target is null", K(err), K(lbt())); + COMMON_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "get from list error, target is null", K(err), K(lbt())); } else if (0 != (err = search_in_list(start, target, pre, next))) { } else if (NULL != next && 0 == target->compare(next)) { err = -EEXIST; } else if (OB_ISNULL(pre)) { err = -EINVAL; - COMMON_LOG(ERROR, "pre is null", K(err), K(lbt())); + COMMON_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "pre is null", K(err), K(lbt())); } else if (!pre->cas_next(target->next_ = next, target)) { err = -EAGAIN; } @@ -673,7 +673,7 @@ public: Node *next = NULL; if (OB_ISNULL(target)) { err = -EINVAL; - COMMON_LOG(ERROR, "get from list error, target is null", K(err), K(lbt())); + COMMON_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "get from list error, target is null", K(err), K(lbt())); } else if (0 != (err = search_in_list(start, target, pre, next))) { } else if (NULL == next || 0 != target->compare(next)) { err = -ENOENT; @@ -681,7 +681,7 @@ public: err = -EAGAIN; } else if (OB_ISNULL(pre)) { err = -EINVAL; - COMMON_LOG(ERROR, "pre is null", K(err), K(lbt())); + COMMON_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "pre is null", K(err), K(lbt())); } else if (!pre->cas_next(next, next->get_next())) { err = -EAGAIN; next->clear_delete_mark(); @@ -709,7 +709,7 @@ public: { //fprintf(fp, "%s\n", repr(root)); if (OB_ISNULL(root.root_)) { - COMMON_LOG(ERROR, "hash root is null", K(lbt())); + COMMON_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "hash root is null", K(lbt())); } else { root.root_->print(fp); } diff --git a/deps/oblib/src/lib/hash/ob_hashtable.h b/deps/oblib/src/lib/hash/ob_hashtable.h index f968d9615..f18b3c873 100644 --- a/deps/oblib/src/lib/hash/ob_hashtable.h +++ b/deps/oblib/src/lib/hash/ob_hashtable.h @@ -121,7 +121,7 @@ public: { _value_type *p = NULL; if (OB_ISNULL(node_)) { - HASH_WRITE_LOG(HASH_FATAL, "node is null, backtrace=%s", lbt()); + HASH_WRITE_LOG_RET(HASH_FATAL, OB_ERR_UNEXPECTED, "node is null, backtrace=%s", lbt()); } else { p = &(node_->data); } @@ -201,7 +201,7 @@ public: { _value_type *p = NULL; if (OB_ISNULL(node_)) { - HASH_WRITE_LOG(HASH_FATAL, "node is null, backtrace=%s", lbt()); + HASH_WRITE_LOG_RET(HASH_FATAL, OB_ERR_UNEXPECTED, "node is null, backtrace=%s", lbt()); } else { p = &(node_->data); } @@ -389,7 +389,7 @@ public: iterator &operator ++() { if (OB_ISNULL(ht_)) { - HASH_WRITE_LOG(HASH_FATAL, "node is null, backtrace=%s", lbt()); + HASH_WRITE_LOG_RET(HASH_FATAL, OB_ERR_UNEXPECTED, "node is null, backtrace=%s", lbt()); } else if (++bucket_pos_ >= ht_->bucket_num_) { bucket_ = nullptr; } else { @@ -492,7 +492,7 @@ public: { _value_type *p = NULL; if (OB_ISNULL(node_)) { - HASH_WRITE_LOG(HASH_FATAL, "node is null, backtrace=%s", lbt()); + HASH_WRITE_LOG_RET(HASH_FATAL, OB_ERR_UNEXPECTED, "node is null, backtrace=%s", lbt()); } else { p = &(node_->data); } @@ -512,7 +512,7 @@ public: iterator &operator ++() { if (OB_ISNULL(ht_)) { - HASH_WRITE_LOG(HASH_FATAL, "node is null, backtrace=%s", lbt()); + HASH_WRITE_LOG_RET(HASH_FATAL, OB_ERR_UNEXPECTED, "node is null, backtrace=%s", lbt()); } else if (NULL != node_ && NULL != (node_ = node_->next)) { // do nothing } else { @@ -643,7 +643,7 @@ public: const_iterator &operator ++() { if (OB_ISNULL(ht_)) { - HASH_WRITE_LOG(HASH_FATAL, "ht_ is null, backtrace=%s", lbt()); + HASH_WRITE_LOG_RET(HASH_FATAL, OB_ERR_UNEXPECTED, "ht_ is null, backtrace=%s", lbt()); } else if (NULL != node_ && NULL != (node_ = node_->next)) { // do nothing } else { @@ -894,7 +894,7 @@ public: int64_t bucket_pos = 0; //if (NULL == buckets_ || NULL == allocer_) if (OB_UNLIKELY(!inited(buckets_)) || OB_UNLIKELY(NULL == allocer_)) { - HASH_WRITE_LOG(HASH_WARNING, "hashtable not init, backtrace=%s", lbt()); + HASH_WRITE_LOG_RET(HASH_WARNING, OB_NOT_INIT, "hashtable not init, backtrace=%s", lbt()); } else { bucket = &buckets_[bucket_pos]; } @@ -912,7 +912,7 @@ public: int64_t bucket_pos = 0; //if (NULL == buckets_ || NULL == allocer_) if (OB_UNLIKELY(!inited(buckets_)) || OB_UNLIKELY(NULL == allocer_)) { - HASH_WRITE_LOG(HASH_WARNING, "hashtable not init, backtrace=%s", lbt()); + HASH_WRITE_LOG_RET(HASH_WARNING, OB_NOT_INIT, "hashtable not init, backtrace=%s", lbt()); } else { while (NULL == node && bucket_pos < bucket_num_) { node = buckets_[bucket_pos].node; @@ -934,7 +934,7 @@ public: hashnode *node = NULL; int64_t bucket_pos = 0; if (OB_UNLIKELY(!inited(buckets_)) || OB_UNLIKELY(NULL == allocer_)) { - HASH_WRITE_LOG(HASH_WARNING, "hashtable not init, backtrace=%s", lbt()); + HASH_WRITE_LOG_RET(HASH_WARNING, OB_NOT_INIT, "hashtable not init, backtrace=%s", lbt()); } else { while (NULL == node && bucket_pos < bucket_num_) { node = buckets_[bucket_pos].node; diff --git a/deps/oblib/src/lib/hash/ob_hashutils.h b/deps/oblib/src/lib/hash/ob_hashutils.h index cfcd59b6d..5fae856c4 100644 --- a/deps/oblib/src/lib/hash/ob_hashutils.h +++ b/deps/oblib/src/lib/hash/ob_hashutils.h @@ -40,8 +40,12 @@ #define HASH_WRITE_LOG(_loglevel_, _fmt_, args...) { \ _OB_LOG(_loglevel_, _fmt_, ##args); \ } +#define HASH_WRITE_LOG_RET(_loglevel_, errcode, _fmt_, args...) { \ + _OB_LOG_RET(_loglevel_, errcode, _fmt_, ##args); \ + } #else #define HASH_WRITE_LOG(_loglevel_, _fmt_, args...) { \ +#define HASH_WRITE_LOG_RET(_loglevel_, errcode, _fmt_, args...) { \ } #endif @@ -89,7 +93,7 @@ public: explicit SpinLocker(pthread_spinlock_t &spin) : succ_(false), spin_(NULL) { if (0 != pthread_spin_lock(&spin)) { - HASH_WRITE_LOG(HASH_WARNING, "lock spin fail errno=%u", errno); + HASH_WRITE_LOG_RET(HASH_WARNING, OB_ERR_SYS, "lock spin fail errno=%u", errno); } else { //HASH_WRITE_LOG(HASH_DEBUG, "lock spin succ spin=%p", &spin); spin_ = &spin; @@ -120,7 +124,7 @@ public: explicit MutexLocker(pthread_mutex_t &mutex) : succ_(false), mutex_(NULL) { if (0 != pthread_mutex_lock(&mutex)) { - HASH_WRITE_LOG(HASH_WARNING, "lock mutex fail errno=%u", errno); + HASH_WRITE_LOG_RET(HASH_WARNING, OB_ERR_SYS, "lock mutex fail errno=%u", errno); } else { //HASH_WRITE_LOG(HASH_DEBUG, "lock mutex succ mutex=%p", &mutex); mutex_ = &mutex; @@ -173,7 +177,7 @@ public: explicit ReadLocker(pthread_rwlock_t &rwlock) : succ_(false), rwlock_(NULL) { if (0 != pthread_rwlock_rdlock(&rwlock)) { - HASH_WRITE_LOG(HASH_WARNING, "rdlock rwlock fail errno=%u", errno); + HASH_WRITE_LOG_RET(HASH_WARNING, OB_ERR_SYS, "rdlock rwlock fail errno=%u", errno); } else { //HASH_WRITE_LOG(HASH_DEBUG, "rdlock rwlock succ rwlock=%p", &rwlock); rwlock_ = &rwlock; @@ -204,7 +208,7 @@ public: explicit WriteLocker(pthread_rwlock_t &rwlock) : succ_(false), rwlock_(NULL) { if (0 != pthread_rwlock_wrlock(&rwlock)) { - HASH_WRITE_LOG(HASH_WARNING, "wrlock wrlock fail errno=%u", errno); + HASH_WRITE_LOG_RET(HASH_WARNING, OB_ERR_SYS, "wrlock wrlock fail errno=%u", errno); } else { //HASH_WRITE_LOG(HASH_DEBUG, "wrlock rwlock succ rwlock=%p", &rwlock); rwlock_ = &rwlock; @@ -235,7 +239,7 @@ public: explicit RWLockIniter(pthread_rwlock_t &rwlock) : succ_(false) { if (0 != pthread_rwlock_init(&rwlock, NULL)) { - HASH_WRITE_LOG(HASH_WARNING, "init rwlock fail errno=%u rwlock=%p", errno, &rwlock); + HASH_WRITE_LOG_RET(HASH_WARNING, OB_ERR_SYS, "init rwlock fail errno=%u rwlock=%p", errno, &rwlock); } else { succ_ = true; } @@ -320,7 +324,7 @@ public: explicit SpinReadLocker(SpinRWLock &rwlock) : succ_(false), rwlock_(NULL) { if (0 != rwlock.rdlock()) { - HASH_WRITE_LOG(HASH_WARNING, "rdlock rwlock fail errno=%u", errno); + HASH_WRITE_LOG_RET(HASH_WARNING, OB_ERR_SYS, "rdlock rwlock fail errno=%u", errno); } else { rwlock_ = &rwlock; succ_ = true; @@ -349,7 +353,7 @@ public: explicit SpinWriteLocker(SpinRWLock &rwlock) : succ_(false), rwlock_(NULL) { if (0 != rwlock.wrlock()) { - HASH_WRITE_LOG(HASH_WARNING, "wrlock wrlock fail errno=%u", errno); + HASH_WRITE_LOG_RET(HASH_WARNING, OB_ERR_SYS, "wrlock wrlock fail errno=%u", errno); } else { rwlock_ = &rwlock; succ_ = true; @@ -378,7 +382,7 @@ public: explicit SpinIniter(pthread_spinlock_t &spin) : succ_(false) { if (0 != pthread_spin_init(&spin, PTHREAD_PROCESS_PRIVATE)) { - HASH_WRITE_LOG(HASH_WARNING, "init mutex fail errno=%u spin=%p", errno, &spin); + HASH_WRITE_LOG_RET(HASH_WARNING, OB_ERR_SYS, "init mutex fail errno=%u spin=%p", errno, &spin); } else { succ_ = true; } @@ -399,7 +403,7 @@ public: explicit MutexIniter(pthread_mutex_t &mutex) : succ_(false) { if (0 != pthread_mutex_init(&mutex, NULL)) { - HASH_WRITE_LOG(HASH_WARNING, "init mutex fail errno=%u mutex=%p", errno, &mutex); + HASH_WRITE_LOG_RET(HASH_WARNING, OB_ERR_SYS, "init mutex fail errno=%u mutex=%p", errno, &mutex); } else { succ_ = true; } @@ -1117,8 +1121,8 @@ int do_create(Array &array, const int64_t total_size, const int64_t array_size, if (total_size <= 0 || item_size <= 0) { ret = -1; } else if (NULL == (array = (Array)alloc.alloc(total_size * item_size))) { - _OB_LOG(WARN, "alloc memory failed,size:%ld", total_size * item_size); ret = -1; + _OB_LOG(WARN, "alloc memory failed,size:%ld", total_size * item_size); } else { //BACKTRACE(WARN, total_size * item_size > 65536, "hashutil create init size=%ld", total_size * item_size); memset(array, 0, total_size * item_size); @@ -1278,7 +1282,7 @@ public: while (NULL != iter) { Block *next = iter->next; if (0 != iter->ref_cnt) { - HASH_WRITE_LOG(HASH_FATAL, "there is still node has not been free, ref_cnt=%d block=%p cur_pos=%d", + HASH_WRITE_LOG_RET(HASH_FATAL, OB_ERR_UNEXPECTED, "there is still node has not been free, ref_cnt=%d block=%p cur_pos=%d", iter->ref_cnt, iter, iter->cur_pos); } else { //delete iter; @@ -1297,7 +1301,7 @@ public: if (NULL != free_list_head_) { Node *node = free_list_head_; if (NODE_MAGIC1 != node->magic1 || NODE_MAGIC2 != node->magic2 || NULL == node->block) { - HASH_WRITE_LOG(HASH_FATAL, "magic broken magic1=%x magic2=%x", node->magic1, node->magic2); + HASH_WRITE_LOG_RET(HASH_FATAL, OB_ERR_UNEXPECTED, "magic broken magic1=%x magic2=%x", node->magic1, node->magic2); } else { free_list_head_ = node->next; node->block->ref_cnt++; @@ -1308,7 +1312,7 @@ public: if (NULL == block || block->cur_pos >= (int32_t)NODE_NUM) { //if (NULL == (block = new(std::nothrow) Block())) if (NULL == (block = (Block *)allocer_.alloc(sizeof(Block)))) { - HASH_WRITE_LOG(HASH_WARNING, "new block fail"); + HASH_WRITE_LOG_RET(HASH_WARNING, OB_ERR_UNEXPECTED, "new block fail"); } else { // BACKTRACE(WARN, ((int64_t)sizeof(Block))>DEFAULT_BLOCK_SIZE, // "hashutil alloc block=%ld node=%ld T=%ld N=%d", @@ -1341,11 +1345,11 @@ public: { mutexlocker locker(lock_); if (NULL == data) { - HASH_WRITE_LOG(HASH_WARNING, "invalid param null pointer"); + HASH_WRITE_LOG_RET(HASH_WARNING, OB_INVALID_ARGUMENT, "invalid param null pointer"); } else { Node *node = (Node *)data; if (NODE_MAGIC1 != node->magic1 || NODE_MAGIC2 != node->magic2) { - HASH_WRITE_LOG(HASH_FATAL, "magic broken magic1=%x magic2=%x", node->magic1, node->magic2); + HASH_WRITE_LOG_RET(HASH_FATAL, OB_ERR_UNEXPECTED, "magic broken magic1=%x magic2=%x", node->magic1, node->magic2); } else { data->~T(); node->block->ref_cnt--; diff --git a/deps/oblib/src/lib/hash/ob_iteratable_hashset.h b/deps/oblib/src/lib/hash/ob_iteratable_hashset.h index 45ca7456a..0dd05ea7c 100644 --- a/deps/oblib/src/lib/hash/ob_iteratable_hashset.h +++ b/deps/oblib/src/lib/hash/ob_iteratable_hashset.h @@ -142,7 +142,7 @@ public: it != other.end(); ++it) { if (OB_SUCCESS != (tmp_ret = set_refactored(*it))) { - _OB_LOG(ERROR, "fail set value. tmp_ret=%d", tmp_ret); + _OB_LOG_RET(ERROR, tmp_ret, "fail set value. tmp_ret=%d", tmp_ret); break; } } diff --git a/deps/oblib/src/lib/hash/ob_linear_hash_map.h b/deps/oblib/src/lib/hash/ob_linear_hash_map.h index dc1855924..17212aa6f 100644 --- a/deps/oblib/src/lib/hash/ob_linear_hash_map.h +++ b/deps/oblib/src/lib/hash/ob_linear_hash_map.h @@ -789,7 +789,7 @@ void ObLinearHashMap::Cnter::add(const int64_t cnt, const int64_t th_id) { if (NULL == cnter_) { - LIB_LOG(ERROR, "invalid cnter, not init", K(cnter_)); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "invalid cnter, not init", K(cnter_)); } else { // Use thread id mod counter cnt to assign counter. // get cpu id may be used in the future. @@ -1175,7 +1175,7 @@ ObLinearHashMap::cons_seg_(uint64_t seg_sz) { Bucket *ret = NULL; if (NULL == (ret = static_cast(ob_malloc(seg_sz, memattr_)))) { - LIB_LOG(WARN, "failed to alloc segment", K(seg_sz)); + LIB_LOG_RET(WARN, OB_ALLOCATE_MEMORY_FAILED, "failed to alloc segment", K(seg_sz)); } else { DISABLE_WARNING_GCC_PUSH #ifdef __clang__ @@ -1212,10 +1212,10 @@ ObLinearHashMap::cons_dir_(uint64_t dir_sz, Bucket **old_ uint64_t old_seg_n = (old_dir == NULL) ? 0 : (old_dir_sz / sizeof(Bucket*)); uint64_t dir_seg_n_lmt = dir_sz / sizeof(Bucket*); if (dir_seg_n_lmt <= old_seg_n) { - LIB_LOG(WARN, "err seg n", K(dir_seg_n_lmt), K(old_seg_n)); + LIB_LOG_RET(WARN, OB_ERR_UNEXPECTED, "err seg n", K(dir_seg_n_lmt), K(old_seg_n)); } else if (NULL == (ret = static_cast(mem_mgr_.get_dir_alloc().alloc(dir_sz)))) { - LIB_LOG(WARN, "failed to alloc directory", K(dir_sz)); + LIB_LOG_RET(WARN, OB_ALLOCATE_MEMORY_FAILED, "failed to alloc directory", K(dir_sz)); } else { for (uint64_t idx = 0; idx < old_seg_n; ++idx) { ret[idx] = old_dir[idx]; @@ -1255,7 +1255,7 @@ template void ObLinearHashMap::set_bkt_lock_(Bucket *bkt, bool to_lock) { if (NULL == bkt) { - LIB_LOG(ERROR, "err set bkt lock"); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "err set bkt lock"); } else { if (to_lock) { bool locked = false; @@ -1285,7 +1285,7 @@ template void ObLinearHashMap::set_bkt_active_(Bucket *bkt, bool to_activate) { if (NULL == bkt) { - LIB_LOG(ERROR, "err set bkt active"); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "err set bkt active"); } else { bkt->flag_ = static_cast(to_activate ? (bkt->flag_ | BKT_ACTIVE_MASK) : (bkt->flag_ & ~BKT_ACTIVE_MASK)); } @@ -1296,7 +1296,7 @@ bool ObLinearHashMap::is_bkt_active_(const Bucket *bkt) { bool bret = false; if (NULL == bkt) { - LIB_LOG(ERROR, "err set bkt nonempty"); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "err set bkt nonempty"); } else { bret = (bkt->flag_ & BKT_ACTIVE_MASK) != 0; } @@ -1307,7 +1307,7 @@ template void ObLinearHashMap::set_bkt_nonempty_(Bucket *bkt, bool to_nonempty) { if (NULL == bkt) { - LIB_LOG(ERROR, "err set bkt nonempty"); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "err set bkt nonempty"); } else { bkt->flag_ = static_cast(to_nonempty ? (bkt->flag_ | BKT_NONEMPTY_MASK) : (bkt->flag_ & ~BKT_NONEMPTY_MASK)); } @@ -1444,12 +1444,12 @@ void ObLinearHashMap::load_expand_d_seg_bkts_(uint64_t L, Bucket* &dst_bkt) { if (NULL == dir_) { - LIB_LOG(ERROR, "err dir", K(dir_)); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "err dir", K(dir_)); } else { Bucket *src_seg = dir_[seg_idx_(p)]; Bucket *dst_seg = dir_[seg_idx_((L0_bkt_n_ << L) + p)]; if (NULL == src_seg || NULL == dst_seg) { - LIB_LOG(ERROR, "err seg", K(src_seg), K(dst_seg)); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "err seg", K(src_seg), K(dst_seg)); } else { src_bkt = &src_seg[seg_bkt_idx_(p)]; dst_bkt = &dst_seg[seg_bkt_idx_((L0_bkt_n_ << L) + p)]; @@ -1465,7 +1465,7 @@ void ObLinearHashMap::split_expand_d_seg_bkts_(uint64_t L Bucket *src_bkt, Bucket *dst_bkt) { if (NULL == src_bkt || NULL == dst_bkt) { - LIB_LOG(ERROR, "err bkt ptr", K(src_bkt), K(dst_bkt)); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "err bkt ptr", K(src_bkt), K(dst_bkt)); } else if (is_bkt_nonempty_(src_bkt)) { Node *split_nodes[2] = { NULL, NULL }; @@ -1514,7 +1514,7 @@ template void ObLinearHashMap::unload_expand_d_seg_bkts_(Bucket *src_bkt, Bucket *dst_bkt) { if (NULL == src_bkt || NULL == dst_bkt) { - LIB_LOG(ERROR, "err bkt ptr", K(src_bkt), K(dst_bkt)); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "err bkt ptr", K(src_bkt), K(dst_bkt)); } else { src_bkt->bkt_L_ = (uint8_t) (src_bkt->bkt_L_ + 1); dst_bkt->bkt_L_ = src_bkt->bkt_L_; @@ -1528,12 +1528,12 @@ void ObLinearHashMap::load_shrink_d_seg_bkts_(uint64_t L, Bucket* &dst_bkt) { if (NULL == dir_) { - LIB_LOG(ERROR, "err dir", K(dir_)); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "err dir", K(dir_)); } else { Bucket *src_seg = dir_[seg_idx_((L0_bkt_n_ << L) + p)]; Bucket *dst_seg = dir_[seg_idx_(p)]; if (NULL == src_seg || NULL == dst_seg) { - LIB_LOG(ERROR, "err seg", K(src_seg), K(dst_seg)); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "err seg", K(src_seg), K(dst_seg)); } else { src_bkt = &src_seg[seg_bkt_idx_((L0_bkt_n_ << L) + p)]; dst_bkt = &dst_seg[seg_bkt_idx_(p)]; @@ -1584,7 +1584,7 @@ void ObLinearHashMap::unload_shrink_d_seg_bkts_(Bucket *s bool succ) { if (NULL == src_bkt || NULL == dst_bkt) { - LIB_LOG(ERROR, "err bkt ptr", K(src_bkt), K(dst_bkt)); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "err bkt ptr", K(src_bkt), K(dst_bkt)); } else { if (succ) { dst_bkt->bkt_L_ = (uint8_t) (dst_bkt->bkt_L_ - 1); @@ -1755,7 +1755,7 @@ template void ObLinearHashMap::unload_access_bkt_(Bucket *bkt, Bucket* bkt_seg) { if (NULL == bkt) { - LIB_LOG(ERROR, "err bkt", K(bkt)); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "err bkt", K(bkt)); } else { set_bkt_lock_(bkt, false); unload_haz_seg_(bkt_seg); @@ -1788,7 +1788,7 @@ uint64_t ObLinearHashMap::do_clear_seg_(Bucket *seg, uint { uint64_t cnt = 0; if (NULL == seg) { - LIB_LOG(ERROR, "err seg", K(seg)); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "err seg", K(seg)); } else { for (uint64_t idx = 0; idx < bkt_n; ++idx) { Bucket *bkt = &seg[idx]; @@ -2331,7 +2331,7 @@ template bool ObLinearHashMap::DoRemoveIfOnBkt::operator()(ObLinearHashMap &host, Bucket *bkt, Function &fn) { if (NULL == bkt) { - LIB_LOG(ERROR, "err bkt", K(bkt)); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "err bkt", K(bkt)); } else { Node *remove_list = NULL; Node **next_ptr = NULL; diff --git a/deps/oblib/src/lib/hash/ob_link_hashmap.h b/deps/oblib/src/lib/hash/ob_link_hashmap.h index 803cfbe41..8baf04fa9 100644 --- a/deps/oblib/src/lib/hash/ob_link_hashmap.h +++ b/deps/oblib/src/lib/hash/ob_link_hashmap.h @@ -324,7 +324,7 @@ public: abort_unless(magic_code_ == MAGIC_CODE); #else if (OB_UNLIKELY(node->host_ != this || magic_code_ != MAGIC_CODE)) { - COMMON_LOG(ERROR, "unexpected error", K(node->host_), K(this), K(magic_code_)); + COMMON_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "unexpected error", K(node->host_), K(this), K(magic_code_)); } #endif if (OB_NOT_NULL(node)) { diff --git a/deps/oblib/src/lib/hash/ob_link_hashmap_deps.h b/deps/oblib/src/lib/hash/ob_link_hashmap_deps.h index dbadee210..a57750c8d 100644 --- a/deps/oblib/src/lib/hash/ob_link_hashmap_deps.h +++ b/deps/oblib/src/lib/hash/ob_link_hashmap_deps.h @@ -43,7 +43,7 @@ public: { void *ptr = nullptr; if (sz <= 0) { - COMMON_LOG(WARN, "invalid argument", K(sz)); + COMMON_LOG_RET(WARN, common::OB_INVALID_ARGUMENT, "invalid argument", K(sz)); } else { ObMemAttr attr(tenant_id_, label_); ptr = ob_malloc(sz, attr); diff --git a/deps/oblib/src/lib/hash/ob_multi_mod_ref_mgr.h b/deps/oblib/src/lib/hash/ob_multi_mod_ref_mgr.h index 1be618827..a5d333cc2 100644 --- a/deps/oblib/src/lib/hash/ob_multi_mod_ref_mgr.h +++ b/deps/oblib/src/lib/hash/ob_multi_mod_ref_mgr.h @@ -86,7 +86,7 @@ public: bool can_release = false; const int mod = static_cast(t); if (mod < 0 || mod >= static_cast(T::TOTAL_MAX_MOD)) { - COMMON_LOG(WARN, "dec ref", "type", typeid(T).name(), K(this), K(mod)); + COMMON_LOG_RET(WARN, common::OB_INVALID_ARGUMENT, "dec ref", "type", typeid(T).name(), K(this), K(mod)); } else { int32_t idx = (int32_t)(get_itid() % MAX_CPU_NUM); // lock one slot diff --git a/deps/oblib/src/lib/hash/ob_pointer_hashmap.h b/deps/oblib/src/lib/hash/ob_pointer_hashmap.h index 22159045d..26287380f 100644 --- a/deps/oblib/src/lib/hash/ob_pointer_hashmap.h +++ b/deps/oblib/src/lib/hash/ob_pointer_hashmap.h @@ -52,7 +52,7 @@ public: Iterator &operator++() { if (pos_ == end_) { - COMMON_LOG(ERROR, "pos is equal to end, unexpected error!"); + COMMON_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "pos is equal to end, unexpected error!"); } else { ++pos_; advance_past_empty_and_deleted(); @@ -259,7 +259,7 @@ public: int64_t pos = 0; if (OB_SUCCESS == placement_hash_search(key, pos)) { if (pos < 0 || pos >= capacity_) { - COMMON_LOG(ERROR, "unexpected error", K(pos), K_(capacity)); + COMMON_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "unexpected error", K(pos), K_(capacity)); } else { ret = &cells_[pos]; } @@ -591,8 +591,8 @@ public: int hash_ret = OB_HASH_NOT_EXIST; if (OB_UNLIKELY(NULL == sub_maps_[0])) { - COMMON_LOG(WARN, "not initialize pointer hash map"); hash_ret = OB_NOT_INIT; + COMMON_LOG_RET(WARN, hash_ret, "not initialize pointer hash map"); } else { for (int64_t i = 0; i < sub_map_count_; ++i) { if (OB_HASH_NOT_EXIST != (hash_ret = sub_maps_[i]->get_refactored(key, value))) { @@ -613,7 +613,7 @@ public: const V *ret = NULL; if (OB_UNLIKELY(NULL == sub_maps_[0])) { - COMMON_LOG(WARN, "not initialize pointer hash map"); + COMMON_LOG_RET(WARN, common::OB_NOT_INIT, "not initialize pointer hash map"); } else { for (int64_t i = 0; i < sub_map_count_; ++i) { if (NULL != (ret = sub_maps_[i]->get(key))) { @@ -630,7 +630,7 @@ public: V *ret = NULL; if (OB_UNLIKELY(NULL == sub_maps_[0])) { - COMMON_LOG(WARN, "not initialize pointer hash map"); + COMMON_LOG_RET(WARN, common::OB_NOT_INIT, "not initialize pointer hash map"); } else { for (int64_t i = 0; i < sub_map_count_; ++i) { if (NULL != (ret = sub_maps_[i]->get(key))) { @@ -647,7 +647,7 @@ public: void dump_keys(void) const { if (OB_UNLIKELY(NULL == sub_maps_[0])) { - COMMON_LOG(WARN, "not initialize pointer hash map"); + COMMON_LOG_RET(WARN, common::OB_NOT_INIT, "not initialize pointer hash map"); } else { for (int64_t i = 0; i < sub_map_count_; ++i) { sub_maps_[i]->dump_keys(); @@ -743,7 +743,7 @@ public: if (OB_UNLIKELY(sub_map_id >= 0) && OB_UNLIKELY(sub_map_id < sub_map_count_)) { iter = sub_maps_[sub_map_id]->begin(); } else { - COMMON_LOG(ERROR, "invalid sub map id", K(sub_map_id), K(sub_map_count_)); + COMMON_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "invalid sub map id", K(sub_map_id), K(sub_map_count_)); } return iter; } @@ -754,7 +754,7 @@ public: if (OB_UNLIKELY(sub_map_id >= 0) && OB_UNLIKELY(sub_map_id < sub_map_count_)) { iter = sub_maps_[sub_map_id]->end(); } else { - COMMON_LOG(ERROR, "invalid sub map id", K(sub_map_id), K(sub_map_count_)); + COMMON_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "invalid sub map id", K(sub_map_id), K(sub_map_count_)); } return iter; } @@ -776,7 +776,7 @@ private: void *sub_map_mem = NULL; if (NULL == (sub_map_mem = allocator_.alloc(sub_map_mem_size_))) { - COMMON_LOG(ERROR, "failed to allocate memory for sub map", K_(sub_map_mem_size)); + COMMON_LOG_RET(ERROR, common::OB_ALLOCATE_MEMORY_FAILED, "failed to allocate memory for sub map", K_(sub_map_mem_size)); } else if (NULL != sub_map_in) { sub_map = new(sub_map_mem) SubMap(*sub_map_in); } else { @@ -870,7 +870,7 @@ private: if (OB_MALLOC_NORMAL_BLOCK_SIZE == sub_map_mem_size_) { resize_to = sub_map_count_ * extend_size; if (resize_to > OB_MALLOC_BIG_BLOCK_SIZE) { - COMMON_LOG(ERROR, "unexpected error", K(resize_to)); + COMMON_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "unexpected error", K(resize_to)); } } else if (OB_MALLOC_BIG_BLOCK_SIZE == sub_map_mem_size_) { resize_to = sub_map_count_ * extend_size; @@ -889,7 +889,7 @@ private: } } else { // overfollow, return NULL - COMMON_LOG(ERROR, "can't add more sub map", K_(sub_map_count)); + COMMON_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "can't add more sub map", K_(sub_map_count)); } } else { ObPointerHashMap tmp(*this, resize_to); diff --git a/deps/oblib/src/lib/hash/ob_serialization.h b/deps/oblib/src/lib/hash/ob_serialization.h index b1898e1b4..3e03d5660 100644 --- a/deps/oblib/src/lib/hash/ob_serialization.h +++ b/deps/oblib/src/lib/hash/ob_serialization.h @@ -67,7 +67,7 @@ public: void destroy() { if (-1 == fd_) { - HASH_WRITE_LOG(HASH_WARNING, "have not inited"); + HASH_WRITE_LOG_RET(HASH_WARNING, OB_NOT_INIT, "have not inited"); } else { close(fd_); } diff --git a/deps/oblib/src/lib/json_type/ob_json_base.cpp b/deps/oblib/src/lib/json_type/ob_json_base.cpp index 330eff4a1..630a3cdec 100644 --- a/deps/oblib/src/lib/json_type/ob_json_base.cpp +++ b/deps/oblib/src/lib/json_type/ob_json_base.cpp @@ -35,7 +35,7 @@ struct ObJsonBaseCmp { } else if (a->is_bin() && b->is_bin()) { is_eq = (a->get_data() == b->get_data()); } else { - LOG_WARN("unexpected type", K(OB_ERR_UNEXPECTED), K(*a), K(*b)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "unexpected type", K(OB_ERR_UNEXPECTED), K(*a), K(*b)); } return is_eq; } @@ -6023,7 +6023,7 @@ ObObjType ObJsonBaseUtil::get_time_type(ObJsonNodeType json_type) break; } default: - LOG_WARN("undefined datetime json type", K(json_type)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "undefined datetime json type", K(json_type)); break; } return type; diff --git a/deps/oblib/src/lib/json_type/ob_json_bin.cpp b/deps/oblib/src/lib/json_type/ob_json_bin.cpp index 910dd6960..30f00c33b 100644 --- a/deps/oblib/src/lib/json_type/ob_json_bin.cpp +++ b/deps/oblib/src/lib/json_type/ob_json_bin.cpp @@ -4604,7 +4604,7 @@ uint64_t ObJsonVar::get_var_size(uint8_t type) break; } default: { - LOG_WARN("invalid var type.", K(OB_NOT_SUPPORTED), K(size)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "invalid var type.", K(OB_NOT_SUPPORTED), K(size)); break; } } @@ -4681,7 +4681,7 @@ uint64_t ObJsonVar::var_int2uint(int64_t var) break; } default: { - LOG_WARN("invalid var type.", K(size)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "invalid var type.", K(size)); break; } } @@ -4718,7 +4718,7 @@ int64_t ObJsonVar::var_uint2int(uint64_t var) break; } default: { - LOG_WARN("invalid var type.", K(size)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "invalid var type.", K(size)); break; } } diff --git a/deps/oblib/src/lib/json_type/ob_json_parse.cpp b/deps/oblib/src/lib/json_type/ob_json_parse.cpp index 3a313e4a1..cd1b443fb 100644 --- a/deps/oblib/src/lib/json_type/ob_json_parse.cpp +++ b/deps/oblib/src/lib/json_type/ob_json_parse.cpp @@ -267,7 +267,7 @@ bool ObRapidJsonHandler::seeing_value(ObJsonNode *value) } default: { - LOG_WARN("unexpected json value", K(next_state_)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "unexpected json value", K(next_state_)); is_continue = false; break; } @@ -282,7 +282,7 @@ bool ObRapidJsonHandler::is_start_object_or_array(ObJsonNode *value, ObJsonExpec bool is_continue = false; if (ObJsonParser::is_json_doc_over_depth(depth_)) { - LOG_WARN("current json doc is over depth", K(OB_ERR_JSON_OUT_OF_DEPTH)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "current json doc is over depth", K(OB_ERR_JSON_OUT_OF_DEPTH)); } else { depth_++; is_continue = seeing_value(value); @@ -302,7 +302,7 @@ bool ObRapidJsonHandler::is_end_object_or_array() if (OB_ISNULL(parent)) { // current is root if (depth_ != 0) { is_continue = false; - LOG_WARN("unexpected tree depth", K(depth_)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "unexpected tree depth", K(depth_)); } else { next_state_ = ObJsonExpectNextState::EXPECT_EOF; } @@ -333,7 +333,7 @@ bool ObRapidJsonHandler::Null() void *buf = alloc(sizeof(ObJsonNull)); if (OB_ISNULL(buf)) { - LOG_WARN("fail to alloc memory for null json node", K(OB_ALLOCATE_MEMORY_FAILED)); + LOG_WARN_RET(OB_ALLOCATE_MEMORY_FAILED, "fail to alloc memory for null json node", K(OB_ALLOCATE_MEMORY_FAILED)); } else { ObJsonNull *node = new (buf) ObJsonNull(); is_continue = seeing_value(node); @@ -348,7 +348,7 @@ bool ObRapidJsonHandler::Bool(bool value) void *buf = alloc(sizeof(ObJsonBoolean)); if (OB_ISNULL(buf)) { - LOG_WARN("fail to alloc memory for boolean json node", K(OB_ALLOCATE_MEMORY_FAILED)); + LOG_WARN_RET(OB_ALLOCATE_MEMORY_FAILED, "fail to alloc memory for boolean json node", K(OB_ALLOCATE_MEMORY_FAILED)); } else { ObJsonBoolean *node = new (buf) ObJsonBoolean(value); is_continue = seeing_value(node); @@ -363,7 +363,7 @@ bool ObRapidJsonHandler::Int(int value) void *buf = alloc(sizeof(ObJsonInt)); if (OB_ISNULL(buf)) { - LOG_WARN("fail to alloc memory for int json node", K(OB_ALLOCATE_MEMORY_FAILED)); + LOG_WARN_RET(OB_ALLOCATE_MEMORY_FAILED, "fail to alloc memory for int json node", K(OB_ALLOCATE_MEMORY_FAILED)); } else { ObJsonInt *node = new (buf) ObJsonInt(value); is_continue = seeing_value(node); @@ -378,7 +378,7 @@ bool ObRapidJsonHandler::Uint(unsigned value) void *buf = alloc(sizeof(ObJsonInt)); // adapt mysql, use ObJsonInt if (OB_ISNULL(buf)) { - LOG_WARN("fail to alloc memory for uint json node", K(OB_ALLOCATE_MEMORY_FAILED)); + LOG_WARN_RET(OB_ALLOCATE_MEMORY_FAILED, "fail to alloc memory for uint json node", K(OB_ALLOCATE_MEMORY_FAILED)); } else { ObJsonInt *node = new (buf) ObJsonInt(value); is_continue = seeing_value(node); @@ -393,7 +393,7 @@ bool ObRapidJsonHandler::Int64(int64_t value) void *buf = alloc(sizeof(ObJsonInt)); if (OB_ISNULL(buf)) { - LOG_WARN("fail to alloc memory for int64 json node", K(OB_ALLOCATE_MEMORY_FAILED)); + LOG_WARN_RET(OB_ALLOCATE_MEMORY_FAILED, "fail to alloc memory for int64 json node", K(OB_ALLOCATE_MEMORY_FAILED)); } else { ObJsonInt *node = new (buf) ObJsonInt(value); is_continue = seeing_value(node); @@ -408,7 +408,7 @@ bool ObRapidJsonHandler::Uint64(uint64_t value) void *buf = alloc(sizeof(ObJsonUint)); if (OB_ISNULL(buf)) { - LOG_WARN("fail to alloc memory for uint64 json node", K(OB_ALLOCATE_MEMORY_FAILED)); + LOG_WARN_RET(OB_ALLOCATE_MEMORY_FAILED, "fail to alloc memory for uint64 json node", K(OB_ALLOCATE_MEMORY_FAILED)); } else { ObJsonUint *node = new (buf) ObJsonUint(value); is_continue = seeing_value(node); @@ -422,11 +422,11 @@ bool ObRapidJsonHandler::Double(double value) bool is_continue = false; if (!std::isfinite(value)) { - LOG_WARN("value is not finite", K(value)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "value is not finite", K(value)); } else { void *buf = alloc(sizeof(ObJsonDouble)); if (OB_ISNULL(buf)) { - LOG_WARN("fail to alloc memory for double json node", K(OB_ALLOCATE_MEMORY_FAILED)); + LOG_WARN_RET(OB_ALLOCATE_MEMORY_FAILED, "fail to alloc memory for double json node", K(OB_ALLOCATE_MEMORY_FAILED)); } else { ObJsonDouble *node = new (buf) ObJsonDouble(value); is_continue = seeing_value(node); @@ -450,14 +450,14 @@ bool ObRapidJsonHandler::String(const char *str, rapidjson::SizeType length, boo void *buf = alloc(sizeof(ObJsonString)); if (OB_ISNULL(buf)) { - LOG_WARN("fail to alloc memory for string json node", K(OB_ALLOCATE_MEMORY_FAILED)); + LOG_WARN_RET(OB_ALLOCATE_MEMORY_FAILED, "fail to alloc memory for string json node", K(OB_ALLOCATE_MEMORY_FAILED)); } else { if (copy) { void *dst_buf = NULL; ObString src_str(length, str); if (length > 0) { if (OB_ISNULL(dst_buf = allocator_->alloc(length))) { - LOG_WARN("allocate memory fail", K(length)); + LOG_WARN_RET(OB_ALLOCATE_MEMORY_FAILED, "allocate memory fail", K(length)); } else { MEMCPY(dst_buf, src_str.ptr(), src_str.length()); ObJsonString *node = new (buf) ObJsonString(static_cast(dst_buf), length); @@ -483,7 +483,7 @@ bool ObRapidJsonHandler::StartObject() void *buf = alloc(sizeof(ObJsonObject)); if (OB_ISNULL(buf)) { - LOG_WARN("fail to alloc memory for object json node", K(OB_ALLOCATE_MEMORY_FAILED)); + LOG_WARN_RET(OB_ALLOCATE_MEMORY_FAILED, "fail to alloc memory for object json node", K(OB_ALLOCATE_MEMORY_FAILED)); } else { ObJsonObject *node= new (buf) ObJsonObject(allocator_); is_continue = is_start_object_or_array(node, ObJsonExpectNextState::EXPECT_OBJECT_KEY); @@ -499,7 +499,7 @@ bool ObRapidJsonHandler::EndObject(rapidjson::SizeType length) if (next_state_ != ObJsonExpectNextState::EXPECT_OBJECT_KEY) { is_continue = false; - LOG_WARN("unexpected next json state", K(next_state_)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "unexpected next json state", K(next_state_)); } else { is_continue = is_end_object_or_array(); } @@ -513,7 +513,7 @@ bool ObRapidJsonHandler::StartArray() void *buf = alloc(sizeof(ObJsonArray)); if (OB_ISNULL(buf)) { - LOG_WARN("fail to alloc memory for array json node", K(OB_ALLOCATE_MEMORY_FAILED)); + LOG_WARN_RET(OB_ALLOCATE_MEMORY_FAILED, "fail to alloc memory for array json node", K(OB_ALLOCATE_MEMORY_FAILED)); } else { ObJsonArray *node = new (buf) ObJsonArray(allocator_); is_continue = is_start_object_or_array(node, ObJsonExpectNextState::EXPECT_ARRAY_VALUE); @@ -529,7 +529,7 @@ bool ObRapidJsonHandler::EndArray(rapidjson::SizeType length) if (next_state_ != ObJsonExpectNextState::EXPECT_ARRAY_VALUE) { is_continue = false; - LOG_WARN("unexpected next json state", K(next_state_)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "unexpected next json state", K(next_state_)); } else { is_continue = is_end_object_or_array(); } @@ -542,7 +542,7 @@ bool ObRapidJsonHandler::Key(const char *str, rapidjson::SizeType length, bool c bool is_continue = false; if (next_state_ != ObJsonExpectNextState::EXPECT_OBJECT_KEY) { - LOG_WARN("unexpected next json state", K(next_state_)); + LOG_WARN_RET(OB_ALLOCATE_MEMORY_FAILED, "unexpected next json state", K(next_state_)); } else { // need deep-copy if (copy) { @@ -550,7 +550,7 @@ bool ObRapidJsonHandler::Key(const char *str, rapidjson::SizeType length, bool c ObString src_str(length, str); if (length > 0) { if (OB_ISNULL(dst_buf = allocator_->alloc(length))) { - LOG_WARN("allocate memory fail", K(length)); + LOG_WARN_RET(OB_ALLOCATE_MEMORY_FAILED, "allocate memory fail", K(length)); } else { MEMCPY(dst_buf, src_str.ptr(), src_str.length()); key_.assign_ptr(static_cast(dst_buf), length); diff --git a/deps/oblib/src/lib/json_type/ob_json_path.cpp b/deps/oblib/src/lib/json_type/ob_json_path.cpp index dbab284e0..84ff0b3cc 100644 --- a/deps/oblib/src/lib/json_type/ob_json_path.cpp +++ b/deps/oblib/src/lib/json_type/ob_json_path.cpp @@ -221,7 +221,7 @@ bool ObJsonPathBasicNode::is_autowrap() const } default:{ - LOG_WARN("invalid node type", K(node_type_)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "invalid node type", K(node_type_)); break; } } @@ -252,7 +252,7 @@ bool ObJsonPathBasicNode::is_multi_array_autowrap() const } default:{ - LOG_WARN("invalid node type", K(node_type_)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "invalid node type", K(node_type_)); break; } } @@ -2662,7 +2662,7 @@ bool ObJsonPathUtil::is_ecmascript_identifier(const char* name, uint64_t length) bool first_codepoint = (last_pos == 0); if (!rapidjson::UTF8::Decode(input_stream, &codepoint)) { ret_bool = false; - LOG_WARN("fail to decode.", + LOG_WARN_RET(OB_ERR_UNEXPECTED, "fail to decode.", K(ret_bool), K(codepoint), K(input_stream.Tell()), KCSTRING(name)); } @@ -2677,7 +2677,7 @@ bool ObJsonPathUtil::is_ecmascript_identifier(const char* name, uint64_t length) more possibilities are available for subsequent characters. */ ret_bool = false; - LOG_WARN("first character must be $, _ or letter.", + LOG_WARN_RET(OB_ERR_UNEXPECTED, "first character must be $, _ or letter.", K(ret_bool), K(codepoint), K(input_stream.Tell()), KCSTRING(name)); } else if (unicode_combining_mark(codepoint) || isdigit(codepoint) || is_connector_punctuation(codepoint) @@ -2689,7 +2689,7 @@ bool ObJsonPathUtil::is_ecmascript_identifier(const char* name, uint64_t length) } else { // nope ret_bool = false; - LOG_WARN("not ecmascript identifier.", + LOG_WARN_RET(OB_ERR_UNEXPECTED, "not ecmascript identifier.", K(ret_bool), K(codepoint), K(input_stream.Tell()), KCSTRING(name)); } } @@ -4678,4 +4678,4 @@ int ObJsonPath::parse_filter_node() } } // namespace common -} // namespace oceanbase \ No newline at end of file +} // namespace oceanbase diff --git a/deps/oblib/src/lib/json_type/ob_json_tree.cpp b/deps/oblib/src/lib/json_type/ob_json_tree.cpp index e02639817..082bc8759 100644 --- a/deps/oblib/src/lib/json_type/ob_json_tree.cpp +++ b/deps/oblib/src/lib/json_type/ob_json_tree.cpp @@ -905,9 +905,9 @@ ObJsonNode *ObJsonArray::operator[](uint64_t index) const ObJsonNode *node = NULL; if (index >= element_count()) { - LOG_WARN("index is out of range", K(index)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "index is out of range", K(index)); } else if (node_vector_[index]->get_parent() != this) { - LOG_WARN("unexpected parent json node", K(index)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "unexpected parent json node", K(index)); } else { node = node_vector_[index]; } @@ -1043,7 +1043,7 @@ ObJsonNode *ObJsonTreeUtil::clone_new_node(ObIAllocator* allocator, Args &&... a T *new_node = NULL; if (OB_ISNULL(buf)) { - LOG_WARN("fail to alloc memory for ObJsonNode"); + LOG_WARN_RET(OB_ALLOCATE_MEMORY_FAILED, "fail to alloc memory for ObJsonNode"); } else { new_node = new(buf)T(std::forward(args)...); } diff --git a/deps/oblib/src/lib/list/ob_atomic_list.h b/deps/oblib/src/lib/list/ob_atomic_list.h index 6f5c12fab..ca08b84cc 100644 --- a/deps/oblib/src/lib/list/ob_atomic_list.h +++ b/deps/oblib/src/lib/list/ob_atomic_list.h @@ -165,10 +165,10 @@ inline void *ObAtomicList::push(void *item) #ifdef DOUBLE_FREE_CHECK if (TO_PTR(h) == item) { - OB_LOG(ERROR, "atomic list push: trying to free item twice"); + OB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "atomic list push: trying to free item twice"); } if (((reinterpret_cast(TO_PTR(h))) & 3) != 0) { - OB_LOG(ERROR, "atomic list push: bad list"); + OB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "atomic list push: bad list"); } #endif @@ -199,10 +199,10 @@ inline void *ObAtomicList::batch_push(void *head_item, void *tail_item) #ifdef DOUBLE_FREE_CHECK if (TO_PTR(h) == tail_item) { - OB_LOG(ERROR, "atomic list push: trying to free item twice"); + OB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "atomic list push: trying to free item twice"); } if ((reinterpret_cast(TO_PTR(h))) & 3) { - OB_LOG(ERROR, "atomic list push: bad list"); + OB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "atomic list push: bad list"); } #endif @@ -242,10 +242,10 @@ inline void *ObAtomicList::pop() #ifdef DOUBLE_FREE_CHECK if (result) { if (FREELIST_POINTER(item) == TO_PTR(FREELIST_POINTER(next))) { - OB_LOG(ERROR, "atomic list pop: loop detected"); + OB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "atomic list pop: loop detected"); } if (((reinterpret_cast(TO_PTR(FREELIST_POINTER(next)))) & 3) != 0) { - OB_LOG(ERROR, "atomic list pop: bad list"); + OB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "atomic list pop: bad list"); } } #endif diff --git a/deps/oblib/src/lib/list/ob_free_list.h b/deps/oblib/src/lib/list/ob_free_list.h index a73af9b98..2d807ea31 100644 --- a/deps/oblib/src/lib/list/ob_free_list.h +++ b/deps/oblib/src/lib/list/ob_free_list.h @@ -81,7 +81,7 @@ public: err = OB_INIT_TWICE; } else if (0 != (syserr = pthread_key_create(&key_, (void (*)(void *))do_destroy_free_list))) { err = OB_ERR_UNEXPECTED; - _OB_LOG(ERROR, "pthread_key_create()=>%d", syserr); + _OB_LOG_RET(ERROR, err, "pthread_key_create()=>%d", syserr); } else { free_handler_ = free_handler; allocator_ = allocator; @@ -94,7 +94,7 @@ public: else if (NULL == (global_free_list_ = create_free_list(glimit))) { err = OB_ERR_UNEXPECTED; destroy(); - _OB_LOG(ERROR, "create_free_list(%ld)=>%d", glimit, err); + _OB_LOG_RET(ERROR, err, "create_free_list(%ld)=>%d", glimit, err); } return err; } @@ -188,7 +188,7 @@ protected: if (NULL != free_list) { LockGuard guard(lock_); if (!free_list_set_.add_last(free_list)) { - _OB_LOG(ERROR, "add_last fail, this should not happen"); + _OB_LOG_RET(ERROR, OB_ERROR, "add_last fail, this should not happen"); } } return free_list; diff --git a/deps/oblib/src/lib/lock/cond.cpp b/deps/oblib/src/lib/lock/cond.cpp index c34f8af6e..f72728b43 100644 --- a/deps/oblib/src/lib/lock/cond.cpp +++ b/deps/oblib/src/lib/lock/cond.cpp @@ -13,21 +13,24 @@ #include #include "lib/lock/cond.h" #include "lib/oblog/ob_log.h" + +using namespace oceanbase::common; + namespace obutil { Cond::Cond() { int rt = pthread_cond_init(&_cond, NULL); if (0 != rt) { - _OB_LOG(WARN, "Failed to init cond, err=%d", rt); + _OB_LOG_RET(WARN, OB_ERR_SYS, "Failed to init cond, err=%d", rt); } } Cond::~Cond() { - int ret = pthread_cond_destroy(&_cond); - if (0 != ret) { - _OB_LOG(WARN, "Failed to destroy cond, err=%d", ret); + int rt = pthread_cond_destroy(&_cond); + if (0 != rt) { + _OB_LOG_RET(WARN, OB_ERR_SYS, "Failed to destroy cond, err=%d", rt); } } @@ -35,7 +38,7 @@ void Cond::signal() { const int rt = pthread_cond_signal(&_cond); if (0 != rt) { - _OB_LOG(WARN, "Failed to signal condition, err=%d", rt); + _OB_LOG_RET(WARN, OB_ERR_SYS, "Failed to signal condition, err=%d", rt); } } @@ -43,7 +46,7 @@ void Cond::broadcast() { const int rt = pthread_cond_broadcast(&_cond); if (0 != rt) { - _OB_LOG(WARN, "Failed to broadcast condition, err=%d", rt); + _OB_LOG_RET(WARN, OB_ERR_SYS, "Failed to broadcast condition, err=%d", rt); } } }//end namespace obutil diff --git a/deps/oblib/src/lib/lock/mutex.cpp b/deps/oblib/src/lib/lock/mutex.cpp index 5ff889ecf..e284c5650 100644 --- a/deps/oblib/src/lib/lock/mutex.cpp +++ b/deps/oblib/src/lib/lock/mutex.cpp @@ -12,6 +12,7 @@ #include "lib/lock/mutex.h" #include "lib/oblog/ob_log.h" +using namespace oceanbase::common; namespace obutil { ObUtilMutex::ObUtilMutex() @@ -20,7 +21,7 @@ ObUtilMutex::ObUtilMutex() #ifdef _NO_EXCEPTION assert( rt == 0 ); if ( rt != 0 ) { - _OB_LOG(ERROR,"%s","ThreadSyscallException"); + _OB_LOG_RET(ERROR,OB_ERR_SYS, "%s","ThreadSyscallException"); } #else if ( rt != 0 ) { @@ -34,7 +35,7 @@ ObUtilMutex::~ObUtilMutex() const int rt = pthread_mutex_destroy(&_mutex); assert(rt == 0); if ( rt != 0 ) { - _OB_LOG(ERROR,"%s","ThreadSyscallException"); + _OB_LOG_RET(ERROR,OB_ERR_SYS, "%s","ThreadSyscallException"); } } @@ -44,9 +45,9 @@ bool ObUtilMutex::trylock() const #ifdef _NO_EXCEPTION if ( rt != 0 && rt !=EBUSY ) { if ( rt == EDEADLK ) { - _OB_LOG(ERROR,"%s","ThreadLockedException "); + _OB_LOG_RET(ERROR,OB_ERR_SYS, "%s","ThreadLockedException "); } else { - _OB_LOG(ERROR,"%s","ThreadSyscallException"); + _OB_LOG_RET(ERROR,OB_ERR_SYS, "%s","ThreadSyscallException"); } return false; } @@ -69,9 +70,9 @@ void ObUtilMutex::lock() const assert( rt == 0 ); if ( rt != 0 ) { if ( rt == EDEADLK ) { - _OB_LOG(ERROR,"%s","ThreadLockedException "); + _OB_LOG_RET(ERROR,OB_ERR_SYS, "%s","ThreadLockedException "); } else { - _OB_LOG(ERROR,"%s","ThreadSyscallException"); + _OB_LOG_RET(ERROR,OB_ERR_SYS, "%s","ThreadSyscallException"); } } #else @@ -95,7 +96,7 @@ void ObUtilMutex::unlock() const #ifdef _NO_EXCEPTION assert( rt == 0 ); if ( rt != 0 ) { - _OB_LOG(ERROR,"%s","ThreadSyscallException"); + _OB_LOG_RET(ERROR,OB_ERR_SYS, "%s","ThreadSyscallException"); } #else if ( rt != 0 ) { diff --git a/deps/oblib/src/lib/lock/ob_bucket_lock.cpp b/deps/oblib/src/lib/lock/ob_bucket_lock.cpp index ab6a6ab2f..06be0dcfa 100644 --- a/deps/oblib/src/lib/lock/ob_bucket_lock.cpp +++ b/deps/oblib/src/lib/lock/ob_bucket_lock.cpp @@ -326,7 +326,7 @@ ObMultiBucketLockGuard::~ObMultiBucketLockGuard() int tmp_ret = OB_SUCCESS; for (int64_t i = 0; i < latch_array_.count(); ++i) { if (OB_UNLIKELY(OB_SUCCESS != (tmp_ret = lock_.unlock_latch_idx(latch_array_.at(i))))) { - COMMON_LOG(ERROR, "Fail to unlock bucket, ", K(tmp_ret), "latch_idx", latch_array_.at(i)); + COMMON_LOG_RET(ERROR, tmp_ret, "Fail to unlock bucket, ", K(tmp_ret), "latch_idx", latch_array_.at(i)); } } }; diff --git a/deps/oblib/src/lib/lock/ob_bucket_lock.h b/deps/oblib/src/lib/lock/ob_bucket_lock.h index 26709d441..45e348eaa 100644 --- a/deps/oblib/src/lib/lock/ob_bucket_lock.h +++ b/deps/oblib/src/lib/lock/ob_bucket_lock.h @@ -75,7 +75,7 @@ public: lock_start_ts_(0) { if (OB_UNLIKELY(OB_SUCCESS != (ret_ = lock_.rdlock(index_)))) { - COMMON_LOG(WARN, "Fail to read lock bucket, ", K_(index), K_(ret)); + COMMON_LOG_RET(WARN, ret_, "Fail to read lock bucket, ", K_(index), K_(ret)); } else { lock_start_ts_ = ObTimeUtility::fast_current_time(); } @@ -84,7 +84,7 @@ public: { if (OB_LIKELY(OB_SUCCESS == ret_)) { if (OB_UNLIKELY(OB_SUCCESS != (ret_ = lock_.unlock(index_)))) { - COMMON_LOG(WARN, "Fail to unlock bucket, ", K_(ret)); + COMMON_LOG_RET(WARN, ret_, "Fail to unlock bucket, ", K_(ret)); } else { const int64_t lock_end_ts = ObTimeUtility::fast_current_time(); if (lock_end_ts - lock_start_ts_ > 5 * 1000 * 1000) { @@ -116,7 +116,7 @@ public: lock_start_ts_(0) { if (OB_UNLIKELY(OB_SUCCESS != (ret_ = lock_.wrlock(index_)))) { - COMMON_LOG(WARN, "Fail to write lock bucket, ", K_(index), K_(ret)); + COMMON_LOG_RET(WARN, ret_, "Fail to write lock bucket, ", K_(index), K_(ret)); } else { lock_start_ts_ = ObTimeUtility::current_time(); } @@ -125,7 +125,7 @@ public: { if (OB_LIKELY(OB_SUCCESS == ret_)) { if (OB_UNLIKELY(OB_SUCCESS != (ret_ = lock_.unlock(index_)))) { - COMMON_LOG(WARN, "Fail to unlock bucket, ", K_(index), K_(ret)); + COMMON_LOG_RET(WARN, ret_, "Fail to unlock bucket, ", K_(index), K_(ret)); } else { const int64_t lock_end_ts = ObTimeUtility::current_time(); if (lock_end_ts - lock_start_ts_ > 5 * 1000 * 1000) { @@ -156,7 +156,7 @@ public: lock_start_ts_(0) { if (OB_UNLIKELY(OB_SUCCESS != (ret_ = lock_.wrlock_all()))) { - COMMON_LOG(WARN, "Fail to try write lock all buckets", K_(ret)); + COMMON_LOG_RET(WARN, ret_, "Fail to try write lock all buckets", K_(ret)); } else { lock_start_ts_ = ObTimeUtility::current_time(); } @@ -165,7 +165,7 @@ public: { if (OB_LIKELY(OB_SUCCESS == ret_)) { if (OB_UNLIKELY(OB_SUCCESS != (ret_ = lock_.unlock_all()))) { - COMMON_LOG(WARN, "Fail to unlock all buckets, ", K_(ret)); + COMMON_LOG_RET(WARN, ret_, "Fail to unlock all buckets, ", K_(ret)); } else { const int64_t lock_end_ts = ObTimeUtility::current_time(); if (lock_end_ts - lock_start_ts_ > 5 * 1000 * 1000) { @@ -196,10 +196,10 @@ public: { if (OB_UNLIKELY(OB_SUCCESS != (ret_ = lock_.try_wrlock_all()))) { if (OB_EAGAIN != ret_) { - COMMON_LOG(WARN, "Fail to try read lock all buckets", K_(ret), K(lbt())); + COMMON_LOG_RET(WARN, ret_, "Fail to try read lock all buckets", K_(ret), K(lbt())); } else { if (REACH_COUNT_INTERVAL(1000)) {// print one log per 1000 times. - COMMON_LOG(WARN, "fail to lock all buckets, need to try again", K_(ret), K(lbt())); + COMMON_LOG_RET(WARN, ret_, "fail to lock all buckets, need to try again", K_(ret), K(lbt())); } } } else { @@ -210,7 +210,7 @@ public: { if (OB_LIKELY(OB_SUCCESS == ret_)) { if (OB_UNLIKELY(OB_SUCCESS != (ret_ = lock_.unlock_all()))) { - COMMON_LOG(WARN, "Fail to unlock all buckets, ", K_(ret)); + COMMON_LOG_RET(WARN, ret_, "Fail to unlock all buckets, ", K_(ret)); } else { const int64_t lock_end_ts = ObTimeUtility::current_time(); if (lock_end_ts - lock_start_ts_ > 5 * 1000 * 1000) { @@ -241,10 +241,10 @@ public: { if (OB_UNLIKELY(OB_SUCCESS != (ret_ = lock_.try_rdlock_all()))) { if (OB_EAGAIN != ret_) { - COMMON_LOG(WARN, "Fail to try read lock all buckets", K_(ret), K(lbt())); + COMMON_LOG_RET(WARN, ret_, "Fail to try read lock all buckets", K_(ret), K(lbt())); } else { if (REACH_COUNT_INTERVAL(1000)) {// print one log per 1000 times. - COMMON_LOG(WARN, "fail to lock all buckets, need to try again", K_(ret), K(lbt())); + COMMON_LOG_RET(WARN, ret_, "fail to lock all buckets, need to try again", K_(ret), K(lbt())); } } } else { @@ -255,7 +255,7 @@ public: { if (OB_LIKELY(OB_SUCCESS == ret_)) { if (OB_UNLIKELY(OB_SUCCESS != (ret_ = lock_.unlock_all()))) { - COMMON_LOG(WARN, "Fail to unlock all buckets, ", K_(ret)); + COMMON_LOG_RET(WARN, ret_, "Fail to unlock all buckets, ", K_(ret)); } else { const int64_t lock_end_ts = ObTimeUtility::current_time(); if (lock_end_ts - lock_start_ts_ > 5 * 1000 * 1000) { diff --git a/deps/oblib/src/lib/lock/ob_bucket_qsync_lock.h b/deps/oblib/src/lib/lock/ob_bucket_qsync_lock.h index a05197b1e..3164629ff 100644 --- a/deps/oblib/src/lib/lock/ob_bucket_qsync_lock.h +++ b/deps/oblib/src/lib/lock/ob_bucket_qsync_lock.h @@ -76,7 +76,7 @@ public: ret_(OB_SUCCESS) { if (OB_UNLIKELY(OB_SUCCESS != (ret_ = lock_.rdlock(index_)))) { - SHARE_LOG(WARN, "Fail to read lock bucket, ", K_(index), K_(ret)); + SHARE_LOG_RET(WARN, ret_, "Fail to read lock bucket, ", K_(index), K_(ret)); } else { lock_start_ts_ = ObClockGenerator::getClock();; } @@ -85,7 +85,7 @@ public: { if (OB_LIKELY(OB_SUCCESS == ret_)) { if (OB_UNLIKELY(OB_SUCCESS != (ret_ = lock_.rdunlock(index_)))) { - SHARE_LOG(WARN, "Fail to unlock bucket, ", K_(ret)); + SHARE_LOG_RET(WARN, ret_, "Fail to unlock bucket, ", K_(ret)); } else { const int64_t lock_end_ts = ObClockGenerator::getClock();; if (lock_end_ts - lock_start_ts_ > 5 * 1000 * 1000) { @@ -117,7 +117,7 @@ public: ret_(OB_SUCCESS) { if (OB_UNLIKELY(OB_SUCCESS != (ret_ = lock_.wrlock(index_)))) { - SHARE_LOG(WARN, "Fail to write lock bucket, ", K_(index), K_(ret)); + SHARE_LOG_RET(WARN, ret_, "Fail to write lock bucket, ", K_(index), K_(ret)); } else { lock_start_ts_ = ObClockGenerator::getClock();; } @@ -126,7 +126,7 @@ public: { if (OB_LIKELY(OB_SUCCESS == ret_)) { if (OB_UNLIKELY(OB_SUCCESS != (ret_ = lock_.wrunlock(index_)))) { - SHARE_LOG(WARN, "Fail to unlock bucket, ", K_(index), K_(ret)); + SHARE_LOG_RET(WARN, ret_, "Fail to unlock bucket, ", K_(index), K_(ret)); } else { const int64_t lock_end_ts = ObClockGenerator::getClock();; if (lock_end_ts - lock_start_ts_ > 5 * 1000 * 1000) { @@ -185,7 +185,7 @@ public: ret_(OB_SUCCESS) { if (OB_UNLIKELY(OB_SUCCESS != (ret_ = lock_.wrlock_all()))) { - SHARE_LOG(WARN, "Fail to try write lock all buckets", K_(ret)); + SHARE_LOG_RET(WARN, ret_, "Fail to try write lock all buckets", K_(ret)); } else { lock_start_ts_ = ObClockGenerator::getClock();; } @@ -194,7 +194,7 @@ public: { if (OB_LIKELY(OB_SUCCESS == ret_)) { if (OB_UNLIKELY(OB_SUCCESS != (ret_ = lock_.wrunlock_all()))) { - SHARE_LOG(WARN, "Fail to unlock all buckets, ", K_(ret)); + SHARE_LOG_RET(WARN, ret_, "Fail to unlock all buckets, ", K_(ret)); } else { const int64_t lock_end_ts = ObClockGenerator::getClock();; if (lock_end_ts - lock_start_ts_ > 5 * 1000 * 1000) { @@ -225,10 +225,10 @@ public: { if (OB_UNLIKELY(OB_SUCCESS != (ret_ = lock_.try_rdlock_all()))) { if (OB_EAGAIN != ret_) { - SHARE_LOG(WARN, "Fail to try read lock all buckets", K_(ret), K(lbt())); + SHARE_LOG_RET(WARN, ret_, "Fail to try read lock all buckets", K_(ret), K(lbt())); } else { if (REACH_COUNT_INTERVAL(1000)) {// print one log per 1000 times. - SHARE_LOG(WARN, "fail to lock all buckets, need to try again", K_(ret), K(lbt())); + SHARE_LOG_RET(WARN, ret_, "fail to lock all buckets, need to try again", K_(ret), K(lbt())); } } } else { @@ -239,7 +239,7 @@ public: { if (OB_LIKELY(OB_SUCCESS == ret_)) { if (OB_UNLIKELY(OB_SUCCESS != (ret_ = lock_.rdunlock_all()))) { - SHARE_LOG(WARN, "Fail to unlock all buckets, ", K_(ret)); + SHARE_LOG_RET(WARN, ret_, "Fail to unlock all buckets, ", K_(ret)); } else { const int64_t lock_end_ts = ObClockGenerator::getClock();; if (lock_end_ts - lock_start_ts_ > 5 * 1000 * 1000) { diff --git a/deps/oblib/src/lib/lock/ob_drw_lock.h b/deps/oblib/src/lib/lock/ob_drw_lock.h index 4667cbe23..2d6f3ef6c 100644 --- a/deps/oblib/src/lib/lock/ob_drw_lock.h +++ b/deps/oblib/src/lib/lock/ob_drw_lock.h @@ -38,14 +38,14 @@ public: [[nodiscard]] explicit RDLockGuard(DRWLock &rwlock): rwlock_(rwlock), ret_(OB_SUCCESS) { if (OB_UNLIKELY(OB_SUCCESS != (ret_ = rwlock_.rdlock()))) { - COMMON_LOG(WARN, "Fail to read lock, ", K_(ret)); + COMMON_LOG_RET(WARN, ret_, "Fail to read lock, ", K_(ret)); } } ~RDLockGuard() { if (OB_LIKELY(OB_SUCCESS == ret_)) { if (OB_UNLIKELY(OB_SUCCESS != (ret_ = rwlock_.rdunlock()))) { - COMMON_LOG(WARN, "Fail to read unlock, ", K_(ret)); + COMMON_LOG_RET(WARN, ret_, "Fail to read unlock, ", K_(ret)); } } } @@ -62,14 +62,14 @@ public: [[nodiscard]] explicit WRLockGuard(DRWLock &rwlock): rwlock_(rwlock), ret_(OB_SUCCESS) { if (OB_UNLIKELY(OB_SUCCESS != (ret_ = rwlock_.wrlock()))) { - COMMON_LOG(WARN, "Fail to write lock, ", K_(ret)); + COMMON_LOG_RET(WARN, ret_, "Fail to write lock, ", K_(ret)); } } ~WRLockGuard() { if (OB_LIKELY(OB_SUCCESS == ret_)) { if (OB_UNLIKELY(OB_SUCCESS != (ret_ = rwlock_.wrunlock()))) { - COMMON_LOG(WARN, "Fail to write unlock, ", K_(ret)); + COMMON_LOG_RET(WARN, ret_, "Fail to write unlock, ", K_(ret)); } } } @@ -87,7 +87,7 @@ public: { while(OB_UNLIKELY(OB_SUCCESS != (ret_ = rwlock_.wrlock(timeout)))) { if (REACH_TIME_INTERVAL(10 * 1000 * 1000)) { - COMMON_LOG(WARN, "Fail to write lock for 10s, ", K_(ret)); + COMMON_LOG_RET(WARN, ret_, "Fail to write lock for 10s, ", K_(ret)); } ob_usleep(timeout); } @@ -96,7 +96,7 @@ public: { if (OB_LIKELY(OB_SUCCESS == ret_)) { if (OB_UNLIKELY(OB_SUCCESS != (ret_ = rwlock_.wrunlock()))) { - COMMON_LOG(WARN, "Fail to write unlock, ", K_(ret)); + COMMON_LOG_RET(WARN, ret_, "Fail to write unlock, ", K_(ret)); } } } diff --git a/deps/oblib/src/lib/lock/ob_latch.h b/deps/oblib/src/lib/lock/ob_latch.h index 5d7466d0f..8b771b53c 100644 --- a/deps/oblib/src/lib/lock/ob_latch.h +++ b/deps/oblib/src/lib/lock/ob_latch.h @@ -73,7 +73,7 @@ extern bool USE_CO_LATCH; if (NULL != dsi) { \ latch_stat.wait_time_ += dsi->get_curr_wait().wait_time_; \ if (dsi->get_curr_wait().wait_time_ > 1000 * 1000) { \ - COMMON_LOG(WARN, "The Latch wait too much time, ", \ + COMMON_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "The Latch wait too much time, ", \ K(dsi->get_curr_wait()), KCSTRING(lbt())); \ } \ } \ @@ -374,14 +374,14 @@ public: : lock_(lock), ret_(OB_SUCCESS) { if (OB_UNLIKELY(OB_SUCCESS != (ret_ = lock_.lock(latch_id)))) { - COMMON_LOG(ERROR, "lock error", K(latch_id), K(ret_)); + COMMON_LOG_RET(ERROR, ret_, "lock error", K(latch_id), K(ret_)); } } ~ObLatchMutexGuard() { if (OB_LIKELY(OB_SUCCESS == ret_)) { if (OB_UNLIKELY(OB_SUCCESS != (ret_ = lock_.unlock()))) { - COMMON_LOG(ERROR, "unlock error", K(ret_)); + COMMON_LOG_RET(ERROR, ret_, "unlock error", K(ret_)); } } } @@ -401,14 +401,14 @@ public: ret_(OB_SUCCESS) { if (OB_UNLIKELY(OB_SUCCESS != (ret_ = lock_.rdlock(latch_id)))) { - COMMON_LOG(ERROR, "lock error, ", K(latch_id), K(ret_)); + COMMON_LOG_RET(ERROR, ret_, "lock error, ", K(latch_id), K(ret_)); } } ~ObLatchRGuard() { if (OB_LIKELY(OB_SUCCESS == ret_)) { if (OB_UNLIKELY(OB_SUCCESS != (ret_ = lock_.unlock()))) { - COMMON_LOG(ERROR, "unlock error, ", K(ret_)); + COMMON_LOG_RET(ERROR, ret_, "unlock error, ", K(ret_)); } } } @@ -429,14 +429,14 @@ public: ret_(OB_SUCCESS) { if (OB_UNLIKELY(OB_SUCCESS != (ret_ = lock_.wrlock(latch_id)))) { - COMMON_LOG(ERROR, "lock error, ", K(latch_id), K(ret_)); + COMMON_LOG_RET(ERROR, ret_, "lock error, ", K(latch_id), K(ret_)); } } ~ObLatchWGuard() { if (OB_LIKELY(OB_SUCCESS == ret_)) { if (OB_UNLIKELY(OB_SUCCESS != (ret_ = lock_.unlock()))) { - COMMON_LOG(ERROR, "unlock error, ", K(ret_)); + COMMON_LOG_RET(ERROR, ret_, "unlock error, ", K(ret_)); } } } diff --git a/deps/oblib/src/lib/lock/ob_lock_guard.h b/deps/oblib/src/lib/lock/ob_lock_guard.h index e907ba4bb..62408a9f1 100644 --- a/deps/oblib/src/lib/lock/ob_lock_guard.h +++ b/deps/oblib/src/lib/lock/ob_lock_guard.h @@ -48,7 +48,7 @@ inline ObLockGuard::ObLockGuard(LockT &lock) ret_(common::OB_SUCCESS) { if (OB_UNLIKELY(common::OB_SUCCESS != (ret_ = lock_.lock()))) { - COMMON_LOG(ERROR, "Fail to lock, ", K_(ret)); + COMMON_LOG_RET(ERROR, ret_, "Fail to lock, ", K_(ret)); } } @@ -57,7 +57,7 @@ inline ObLockGuard::~ObLockGuard() { if (OB_LIKELY(common::OB_SUCCESS == ret_)) { if (OB_UNLIKELY(common::OB_SUCCESS != (ret_ = lock_.unlock()))) { - COMMON_LOG(ERROR, "Fail to unlock, ", K_(ret)); + COMMON_LOG_RET(ERROR, ret_, "Fail to unlock, ", K_(ret)); } } } diff --git a/deps/oblib/src/lib/lock/ob_spin_rwlock.h b/deps/oblib/src/lib/lock/ob_spin_rwlock.h index af7498dd5..a129b049c 100644 --- a/deps/oblib/src/lib/lock/ob_spin_rwlock.h +++ b/deps/oblib/src/lib/lock/ob_spin_rwlock.h @@ -64,14 +64,14 @@ public: : lock_(const_cast(lock)), ret_(OB_SUCCESS) { if (OB_UNLIKELY(OB_SUCCESS != (ret_ = lock_.rdlock()))) { - COMMON_LOG(WARN, "Fail to read lock, ", K_(ret)); + COMMON_LOG_RET(WARN, ret_, "Fail to read lock, ", K_(ret)); } } ~SpinRLockGuard() { if (OB_LIKELY(OB_SUCCESS == ret_)) { if (OB_UNLIKELY(OB_SUCCESS != (ret_ = lock_.unlock()))) { - COMMON_LOG(WARN, "Fail to unlock, ", K_(ret)); + COMMON_LOG_RET(WARN, ret_, "Fail to unlock, ", K_(ret)); } } } @@ -90,14 +90,14 @@ public: : lock_(const_cast(lock)), ret_(OB_SUCCESS) { if (OB_UNLIKELY(OB_SUCCESS != (ret_ = lock_.wrlock()))) { - COMMON_LOG(WARN, "Fail to write lock, ", K_(ret)); + COMMON_LOG_RET(WARN, ret_, "Fail to write lock, ", K_(ret)); } } ~SpinWLockGuard() { if (OB_LIKELY(OB_SUCCESS == ret_)) { if (OB_UNLIKELY(OB_SUCCESS != (ret_ = lock_.unlock()))) { - COMMON_LOG(WARN, "Fail to unlock, ", K_(ret)); + COMMON_LOG_RET(WARN, ret_, "Fail to unlock, ", K_(ret)); } } } diff --git a/deps/oblib/src/lib/lock/ob_tc_ref.h b/deps/oblib/src/lib/lock/ob_tc_ref.h index b42765dd1..effbc463a 100644 --- a/deps/oblib/src/lib/lock/ob_tc_ref.h +++ b/deps/oblib/src/lib/lock/ob_tc_ref.h @@ -28,7 +28,7 @@ public: { total_ref_count_ = MAX_CPU_NUM * ref_count_per_thread_; if (OB_ISNULL(ref_ = (int32_t **)ob_malloc_align(64, total_ref_count_ * sizeof(int32_t *), "TCREF"))) { - COMMON_LOG(ERROR, "memory alloc failed", K(ref_count_per_thread_), K(total_ref_count_)); + COMMON_LOG_RET(ERROR, common::OB_ALLOCATE_MEMORY_FAILED, "memory alloc failed", K(ref_count_per_thread_), K(total_ref_count_)); } else { memset(ref_, 0, total_ref_count_ * sizeof(int32_t *)); } diff --git a/deps/oblib/src/lib/lock/ob_tc_rwlock.h b/deps/oblib/src/lib/lock/ob_tc_rwlock.h index 6102efcc7..6fc7ce5db 100644 --- a/deps/oblib/src/lib/lock/ob_tc_rwlock.h +++ b/deps/oblib/src/lib/lock/ob_tc_rwlock.h @@ -291,14 +291,14 @@ public: : lock_(const_cast(lock)), ret_(OB_SUCCESS) { if (OB_UNLIKELY(OB_SUCCESS != (ret_ = lock_.wrlock()))) { - COMMON_LOG(WARN, "Fail to write lock, ", K_(ret)); + COMMON_LOG_RET(WARN, ret_, "Fail to write lock, ", K_(ret)); } } ~TCWLockGuard() { if (OB_LIKELY(OB_SUCCESS == ret_)) { if (OB_UNLIKELY(OB_SUCCESS != (ret_ = lock_.wrunlock()))) { - COMMON_LOG(WARN, "Fail to unlock, ", K_(ret)); + COMMON_LOG_RET(WARN, ret_, "Fail to unlock, ", K_(ret)); } } } @@ -317,14 +317,14 @@ public: : lock_(const_cast(lock)), ret_(OB_SUCCESS), slot_id_(0) { if (OB_UNLIKELY(OB_SUCCESS != (ret_ = lock_.rdlock(INT64_MAX, slot_id_)))) { - COMMON_LOG(WARN, "Fail to read lock, ", K_(ret)); + COMMON_LOG_RET(WARN, ret_, "Fail to read lock, ", K_(ret)); } } ~TCRLockGuard() { if (OB_LIKELY(OB_SUCCESS == ret_)) { if (OB_UNLIKELY(OB_SUCCESS != (ret_ = lock_.rdunlock(slot_id_)))) { - COMMON_LOG(WARN, "Fail to unlock, ", K_(ret)); + COMMON_LOG_RET(WARN, ret_, "Fail to unlock, ", K_(ret)); } } } diff --git a/deps/oblib/src/lib/mysqlclient/ob_connection_allocator.h b/deps/oblib/src/lib/mysqlclient/ob_connection_allocator.h index 2859e5a9d..101e03574 100644 --- a/deps/oblib/src/lib/mysqlclient/ob_connection_allocator.h +++ b/deps/oblib/src/lib/mysqlclient/ob_connection_allocator.h @@ -196,7 +196,7 @@ public: if (is_inited_) { FreeConnsOp op(this); if (OB_SUCCESS != sessionid_to_conns_map_.foreach_refactored(op)) { - _OB_LOG(WARN, "failed to foreach sessionid_to_conns_map_"); + _OB_LOG_RET(WARN, common::OB_ERR_UNEXPECTED, "failed to foreach sessionid_to_conns_map_"); } sessionid_to_conns_map_.destroy(); } 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 8a089832c..c04eb5271 100644 --- a/deps/oblib/src/lib/mysqlclient/ob_mysql_connection_pool.cpp +++ b/deps/oblib/src/lib/mysqlclient/ob_mysql_connection_pool.cpp @@ -105,7 +105,7 @@ ObMySQLConnectionPool::ObMySQLConnectionPool() init_sql_[0] = '\0'; if (OB_UNLIKELY(0 != mysql_library_init(0, NULL, NULL))) { - LOG_WARN("could not initialize MySQL library"); + LOG_WARN_RET(OB_ERROR, "could not initialize MySQL library"); } else if (OB_FAIL(tenant_server_pool_map_.init(ObModIds::LIB_OBSQL))) { LOG_WARN("init tenant_server_pool_map_ failed", K(ret)); } @@ -581,7 +581,7 @@ int ObMySQLConnectionPool::release(ObMySQLConnection *connection, const bool suc } else { const int64_t cost_time = ::oceanbase::common::ObTimeUtility::current_time() - connection->get_timestamp(); if (cost_time > config_.connection_pool_warn_time_) { - LOG_WARN("this connection cost too much time", K(this), K(cost_time), + LOG_WARN_RET(OB_ERR_TOO_MUCH_TIME, "this connection cost too much time", K(this), K(cost_time), K(config_.connection_pool_warn_time_), K(connection->get_server()), "start time", time2str(connection->get_timestamp())); } @@ -1055,7 +1055,7 @@ bool ObMySQLConnectionPool::TenantServerConnPoolPurger::operator()( bool need_purge = false; if (OB_ISNULL(tenant_server_pool)) { - LOG_ERROR("tenant_server_pool must not be null", K(tenant_key)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "tenant_server_pool must not be null", K(tenant_key)); } else if (is_tenant_not_serve_(tenant_key.tenant_id_)) { need_purge = true; purge_count_++; diff --git a/deps/oblib/src/lib/mysqlclient/ob_mysql_prepared_statement.cpp b/deps/oblib/src/lib/mysqlclient/ob_mysql_prepared_statement.cpp index 2f8504c94..2f9c1e68f 100644 --- a/deps/oblib/src/lib/mysqlclient/ob_mysql_prepared_statement.cpp +++ b/deps/oblib/src/lib/mysqlclient/ob_mysql_prepared_statement.cpp @@ -146,7 +146,7 @@ int ObMySQLPreparedStatement::set_int(const int64_t col_idx, const int64_t int_v // TODO UNUSED(col_idx); UNUSED(int_val); - LOG_WARN("call not implemented function."); + LOG_WARN_RET(OB_NOT_IMPLEMENT, "call not implemented function."); return OB_NOT_IMPLEMENT; } @@ -155,7 +155,7 @@ int ObMySQLPreparedStatement::set_varchar(const int64_t col_idx, const ObString // TODO UNUSED(col_idx); UNUSED(varchar_val); - LOG_WARN("call not implemented function."); + LOG_WARN_RET(OB_NOT_IMPLEMENT, "call not implemented function."); return OB_NOT_IMPLEMENT; } diff --git a/deps/oblib/src/lib/mysqlclient/ob_mysql_result.h b/deps/oblib/src/lib/mysqlclient/ob_mysql_result.h index c37e2f620..141db13fb 100644 --- a/deps/oblib/src/lib/mysqlclient/ob_mysql_result.h +++ b/deps/oblib/src/lib/mysqlclient/ob_mysql_result.h @@ -954,6 +954,7 @@ 从cur_default_value或者new_default_value获取,这里做了兼容处理,用default_value_v2_version做这两种情况的区分 */ #define EXTRACT_DEFAULT_VALUE_FIELD_MYSQL(result, column_name, data_type, class_obj,is_cur_default_value, default_value_v2_version, tenant_id) \ + [&]() { /*+ The original macro use too much stack space, wrap to lambda to avoid it. */ \ if (OB_SUCC(ret)) \ { \ ObString str_value; \ @@ -1078,7 +1079,8 @@ { \ SQL_LOG(WARN, "fail to default value field mysql. ", K(ret)); \ } \ - } + } \ + } () #define EXTRACT_CREATE_TIME_FIELD_MYSQL(result, column_name, field, type) \ EXTRACT_INT_FIELD_MYSQL(result, column_name, field, type) diff --git a/deps/oblib/src/lib/mysqlclient/ob_single_connection_proxy.h b/deps/oblib/src/lib/mysqlclient/ob_single_connection_proxy.h index 74c4930e1..4e4fedf5e 100644 --- a/deps/oblib/src/lib/mysqlclient/ob_single_connection_proxy.h +++ b/deps/oblib/src/lib/mysqlclient/ob_single_connection_proxy.h @@ -73,7 +73,7 @@ inline bool ObSingleConnectionProxy::check_inner_stat() const { bool bret = (OB_SUCCESS == errno_ && NULL != pool_ && NULL != conn_); if (!bret) { - COMMON_MYSQLP_LOG(WARN, "invalid inner stat", "errno", errno_, K_(pool), K_(conn)); + COMMON_MYSQLP_LOG_RET(WARN, errno_, "invalid inner stat", "errno", errno_, K_(pool), K_(conn)); } return bret; } diff --git a/deps/oblib/src/lib/net/ob_addr.cpp b/deps/oblib/src/lib/net/ob_addr.cpp index c93a170cc..2c7cabe5f 100644 --- a/deps/oblib/src/lib/net/ob_addr.cpp +++ b/deps/oblib/src/lib/net/ob_addr.cpp @@ -378,7 +378,7 @@ int64_t ObAddr::get_ipv4_server_id() const server_id <<= 32; server_id |= port_; } else { - LOG_ERROR("this is ipv6 addr", K(*this)); + LOG_ERROR_RET(OB_ERROR, "this is ipv6 addr", K(*this)); } return server_id; } @@ -403,7 +403,6 @@ ObAddr &ObAddr::as_mask(const int64_t mask_bits) ip_.v6_[bytes++] = 0xff; mask -= 8; } - LOG_WARN("LICQ - as_mask", K(*this)); if (bytes < IPV6_LEN && mask > 0) { ip_.v6_[bytes] = static_cast(((static_cast(1) << mask) - 1) << (8 - mask)); } @@ -425,7 +424,7 @@ bool ObAddr::operator <(const ObAddr &rv) const { int64_t ipcmp = 0; if (version_ != rv.version_) { - LOG_ERROR("comparision between different IP versions hasn't supported!"); + LOG_ERROR_RET(common::OB_NOT_SUPPORTED, "comparision between different IP versions hasn't supported!"); } else if (IPV4 == version_) { ipcmp = static_cast(ip_.v4_) - static_cast(rv.ip_.v4_); } else if (IPV6 == version_) { @@ -441,7 +440,7 @@ bool ObAddr::operator >(const ObAddr &rv) const { int64_t ipcmp = 0; if (version_ != rv.version_) { - LOG_ERROR("comparision between different IP versions hasn't supported!"); + LOG_ERROR_RET(common::OB_NOT_SUPPORTED, "comparision between different IP versions hasn't supported!"); } else if (IPV4 == version_) { ipcmp = static_cast(ip_.v4_) - static_cast(rv.ip_.v4_); } else if (IPV6 == version_) { diff --git a/deps/oblib/src/lib/number/ob_number_v2.cpp b/deps/oblib/src/lib/number/ob_number_v2.cpp index d6c29417d..8b806dae5 100644 --- a/deps/oblib/src/lib/number/ob_number_v2.cpp +++ b/deps/oblib/src/lib/number/ob_number_v2.cpp @@ -1305,7 +1305,7 @@ bool ObNumber::is_valid_uint64(uint64_t &uint64) const uint64_t tmp_int_parts = 0; uint64_t tmp_decimal_parts = 0; if (OB_UNLIKELY(OB_SUCCESS != check_range(&bret, NULL, tmp_int_parts, tmp_decimal_parts))) { - LOG_WARN("can't to check the param range", K(bret)); + LOG_WARN_RET(OB_ERROR, "can't to check the param range", K(bret)); } else { uint64 = tmp_int_parts; bret = bret && (0 == tmp_decimal_parts);//Should not use if-test. @@ -1320,7 +1320,7 @@ bool ObNumber::is_valid_int64(int64_t &int64) const uint64_t tmp_int_parts = 0; uint64_t tmp_decimal_parts = 0; if (OB_UNLIKELY(OB_SUCCESS != check_range(NULL, &bret, tmp_int_parts, tmp_decimal_parts))) { - LOG_WARN("can't to check the param range", K(bret)); + LOG_WARN_RET(OB_ERROR, "can't to check the param range", K(bret)); } else { int64 = is_negative() ? (-1 * tmp_int_parts) : tmp_int_parts; bret = bret && (0 == tmp_decimal_parts); @@ -1511,7 +1511,7 @@ bool ObNumber::is_valid_int() const uint64_t tmp_int_parts = 0; uint64_t tmp_decimal_parts = 0; if (OB_UNLIKELY(OB_SUCCESS != check_range(NULL, &bret, tmp_int_parts, tmp_decimal_parts))) { - LOG_WARN("can't to check the param range", K(bret)); + LOG_WARN_RET(OB_ERROR, "can't to check the param range", K(bret)); } else { bret = bret && (0 == tmp_decimal_parts); } @@ -1525,7 +1525,7 @@ bool ObNumber::is_int_parts_valid_int64(int64_t &int_parts, int64_t &decimal_par uint64_t tmp_int_parts = 0; uint64_t tmp_decimal_parts = 0; if (OB_UNLIKELY(OB_SUCCESS != check_range(NULL, &bret, tmp_int_parts, tmp_decimal_parts))) { - LOG_WARN("can't to check the param range", K(bret)); + LOG_WARN_RET(OB_ERROR, "can't to check the param range", K(bret)); } else { decimal_parts = tmp_decimal_parts; int_parts = is_negative() ? (-1 * tmp_int_parts) : tmp_int_parts; @@ -3058,7 +3058,7 @@ const char *ObNumber::format() const if (OB_ISNULL(buffers)) { buffer = nullptr; } else if(OB_UNLIKELY(OB_SUCCESS != format(buffer, BUFFER_SIZE, length, -1))) { - LOG_ERROR("fail to format buffer"); + LOG_ERROR_RET(OB_ERROR, "fail to format buffer"); } else { buffer[length] = '\0'; } @@ -6902,7 +6902,7 @@ bool ObNumber::is_valid_sci_tail_(const char *str, void ObNumber::set_one() { if (OB_ISNULL(digits_)) { - _OB_LOG(ERROR, "number digit ptr is null where set to one!"); + _OB_LOG_RET(ERROR, OB_ERROR, "number digit ptr is null where set to one!"); right_to_die_or_duty_to_live(); } else { d_.len_ = 1; @@ -8289,9 +8289,9 @@ uint64_t ObCalcVector::at(const int64_t idx) const { uint64_t ret_digit = 0; if (OB_ISNULL(digits_)) { - LOG_ERROR("the pointer is null"); + LOG_ERROR_RET(OB_ERROR, "the pointer is null"); } else if (OB_UNLIKELY(idx <0 || idx > length_)) { - LOG_ERROR("the param is invalid"); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "the param is invalid"); } else { ret_digit = digits_[idx]; } @@ -8399,7 +8399,7 @@ ObCalcVector ObCalcVector::ref(const int64_t start, const int64_t end) const { ObCalcVector ret_calc_vec; if (OB_ISNULL(digits_)) { - LOG_ERROR("the pinter is null"); + LOG_ERROR_RET(OB_ERROR, "the pinter is null"); } else { ret_calc_vec.length_ = end - start + 1; ret_calc_vec.digits_ = &digits_[start]; diff --git a/deps/oblib/src/lib/number/ob_number_v2.h b/deps/oblib/src/lib/number/ob_number_v2.h index c7de5b511..129de6807 100644 --- a/deps/oblib/src/lib/number/ob_number_v2.h +++ b/deps/oblib/src/lib/number/ob_number_v2.h @@ -2054,7 +2054,7 @@ inline int ObNumber::uint32cmp(const uint32_t *s1, const uint32_t *s2, const int { int cret = 0; if (n > 0 && (OB_ISNULL(s1) || OB_ISNULL(s2))) { - LIB_LOG(ERROR, "the poniter is null"); + LIB_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "the poniter is null"); } else { for (int64_t i = 0; i < n; ++i) { if (s1[i] < s2[i]) { @@ -3084,7 +3084,7 @@ inline bool ObNumber::is_integer() const bret = true; } else if (OB_ISNULL(digits_) || OB_UNLIKELY(0 >= d_.len_)) { bret = false; - _OB_LOG(ERROR, "not init"); + _OB_LOG_RET(ERROR, common::OB_NOT_INIT, "not init"); } else { if (POSITIVE == d_.sign_) { int_len = d_.se_ - POSITIVE_EXP_BOUNDARY; @@ -3122,7 +3122,7 @@ inline bool ObNumber::is_integer(const int32_t expr_value) const bret = true; } else if (OB_ISNULL(digits_) || OB_UNLIKELY(0 >= d_.len_)) { bret = false; - _OB_LOG(ERROR, "not init"); + _OB_LOG_RET(ERROR, common::OB_NOT_INIT, "not init"); } else if (expr_value < 0 || (expr_value + 1 < d_.len_)) { bret = false; } else { diff --git a/deps/oblib/src/lib/ob_errno.h b/deps/oblib/src/lib/ob_errno.h index 1841418ab..b7bd2bc98 100644 --- a/deps/oblib/src/lib/ob_errno.h +++ b/deps/oblib/src/lib/ob_errno.h @@ -105,6 +105,7 @@ constexpr int OB_ERR_ALREADY_EXISTS = -4181; constexpr int OB_SEARCH_NOT_FOUND = -4182; constexpr int OB_ITEM_NOT_MATCH = -4187; constexpr int OB_INVALID_DATE_FORMAT_END = -4190; +constexpr int OB_DDL_TASK_EXECUTE_TOO_MUCH_TIME = -4192; constexpr int OB_HASH_EXIST = -4200; constexpr int OB_HASH_NOT_EXIST = -4201; constexpr int OB_HASH_GET_TIMEOUT = -4204; @@ -131,6 +132,9 @@ constexpr int OB_DATETIME_FUNCTION_OVERFLOW = -4261; constexpr int OB_ERR_DOUBLE_TRUNCATED = -4262; constexpr int OB_CACHE_FREE_BLOCK_NOT_ENOUGH = -4273; constexpr int OB_LAST_LOG_NOT_COMPLETE = -4278; +constexpr int OB_UNEXPECT_INTERNAL_ERROR = -4388; +constexpr int OB_ERR_TOO_MUCH_TIME = -4389; +constexpr int OB_ERR_THREAD_PANIC = -4396; constexpr int OB_ERR_INTERVAL_PARTITION_EXIST = -4728; constexpr int OB_ERR_INTERVAL_PARTITION_ERROR = -4729; constexpr int OB_FROZEN_INFO_ALREADY_EXIST = -4744; diff --git a/deps/oblib/src/lib/objectpool/ob_concurrency_objpool.cpp b/deps/oblib/src/lib/objectpool/ob_concurrency_objpool.cpp index 9391baf22..f50192e08 100644 --- a/deps/oblib/src/lib/objectpool/ob_concurrency_objpool.cpp +++ b/deps/oblib/src/lib/objectpool/ob_concurrency_objpool.cpp @@ -36,7 +36,7 @@ static ObThreadCache *&get_thread_cache(const int64_t thread_cache_idx) if (OB_ISNULL(g_thread_caches)) { g_thread_caches = reinterpret_cast(&g_thread_caches_buf[0]); if (0 != pthread_setspecific(ObObjFreeListList::objpool_key_, (void *)(g_thread_caches))) { - OB_LOG(ERROR, "failed to pthread_setspecific"); + OB_LOG_RET(ERROR, OB_ERR_SYS, "failed to pthread_setspecific"); } } return g_thread_caches[thread_cache_idx]; @@ -84,7 +84,7 @@ int64_t ObObjFreeList::get_chunk_item_magic_idx( idx = (reinterpret_cast(item) - reinterpret_cast((*chunk_info)->head_)) / type_size_; if (do_check && (idx >= obj_count_per_chunk_ || (0 != (reinterpret_cast(item) - reinterpret_cast((*chunk_info)->head_)) % type_size_))) { - _OB_LOG(ERROR, "Invalid address:%p, chunk_addr:%p, type_size:%ld, obj_count:%ld, idx:%ld", + _OB_LOG_RET(ERROR, OB_ERROR, "Invalid address:%p, chunk_addr:%p, type_size:%ld, obj_count:%ld, idx:%ld", item, (*chunk_info)->head_, type_size_, obj_count_per_chunk_, idx); } @@ -96,7 +96,7 @@ void ObObjFreeList::set_chunk_item_magic(ObChunkInfo *chunk_info, void *item) int64_t idx = 0; idx = get_chunk_item_magic_idx(item, &chunk_info); if (0 != chunk_info->item_magic_[idx]) { - OB_LOG(ERROR, "the chunk is free, but the magic is not zero", "magic", chunk_info->item_magic_[idx]); + OB_LOG_RET(ERROR, OB_ERROR, "the chunk is free, but the magic is not zero", "magic", chunk_info->item_magic_[idx]); } chunk_info->item_magic_[idx] = ITEM_MAGIC; } @@ -106,7 +106,7 @@ void ObObjFreeList::clear_chunk_item_magic(ObChunkInfo *chunk_info, void *item) int64_t idx = 0; idx = get_chunk_item_magic_idx(item, &chunk_info, true); if (ITEM_MAGIC != chunk_info->item_magic_[idx]) { - OB_LOG(ERROR, "the chunk is used, but without the right magic", + OB_LOG_RET(ERROR, OB_ERROR, "the chunk is used, but without the right magic", "actual_magic", chunk_info->item_magic_[idx], "expected_magic", ITEM_MAGIC); } chunk_info->item_magic_[idx] = 0; @@ -133,7 +133,7 @@ ObChunkInfo *ObObjFreeList::chunk_create(ObThreadCache *thread_cache) ObChunkInfo *chunk_info = NULL; if (NULL == (chunk_addr = ob_malloc_align(alignment_, chunk_byte_size_, label_))) { - OB_LOG(ERROR, "failed to allocate chunk", K_(chunk_byte_size)); + OB_LOG_RET(ERROR, OB_ALLOCATE_MEMORY_FAILED, "failed to allocate chunk", K_(chunk_byte_size)); } else { chunk_info = new (reinterpret_cast(chunk_addr) + type_size_ * obj_count_per_chunk_) ObChunkInfo(); #ifdef DOUBLE_FREE_CHECK @@ -172,7 +172,7 @@ void ObObjFreeList::chunk_delete(ObThreadCache *thread_cache, ObChunkInfo *chunk { void *chunk_addr = chunk_info->head_; if (OB_UNLIKELY(0 != chunk_info->allocated_)) { - OB_LOG(ERROR, "the chunk allocated size isn't 0 when it deleting", K(chunk_info->allocated_)); + OB_LOG_RET(ERROR, OB_ERROR, "the chunk allocated size isn't 0 when it deleting", K(chunk_info->allocated_)); } thread_cache->nr_chunks_--; thread_cache->nr_total_ -= obj_count_per_chunk_; @@ -434,7 +434,7 @@ void *ObObjFreeList::global_alloc() do { if (obj_free_list_.empty()) { if (NULL == (chunk_addr = ob_malloc_align(alignment_, chunk_byte_size_, label_))) { - OB_LOG(ERROR, "failed to allocate chunk", K_(chunk_byte_size)); + OB_LOG_RET(ERROR, OB_ALLOCATE_MEMORY_FAILED, "failed to allocate chunk", K_(chunk_byte_size)); break_loop = true; } else { (void)ATOMIC_FAA(&allocated_, obj_count_per_chunk_); @@ -655,7 +655,7 @@ void *ObObjFreeList::alloc() // no thread cache, create it if (OB_ISNULL(thread_cache = get_thread_cache(thread_cache_idx_))) { if (OB_ISNULL(thread_cache = init_thread_cache())) { - OB_LOG(ERROR, "failed to init object free list thread cache"); + OB_LOG_RET(ERROR, OB_ERROR, "failed to init object free list thread cache"); ret = NULL; // allocate failed } } @@ -728,7 +728,7 @@ void ObObjFreeList::free(void *item) // no thread cache, create it if (OB_ISNULL(thread_cache = get_thread_cache(thread_cache_idx_))) { if (OB_ISNULL(thread_cache = init_thread_cache())) { - OB_LOG(ERROR, "failed to init object free list thread cache"); + OB_LOG_RET(ERROR, OB_ERROR, "failed to init object free list thread cache"); } } diff --git a/deps/oblib/src/lib/objectpool/ob_concurrency_objpool.h b/deps/oblib/src/lib/objectpool/ob_concurrency_objpool.h index f41de2ab2..a3436518d 100644 --- a/deps/oblib/src/lib/objectpool/ob_concurrency_objpool.h +++ b/deps/oblib/src/lib/objectpool/ob_concurrency_objpool.h @@ -466,7 +466,7 @@ public: if (OB_LIKELY(NULL != instance)) { if (common::OB_SUCCESS != instance->init(typeid(T).name(), RND16(sizeof(T)), obj_count, RND16(alignment), cache_type, is_meta, label)) { - _OB_LOG(ERROR, "failed to init class allocator %s", typeid(T).name()); + _OB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "failed to init class allocator %s", typeid(T).name()); delete instance; instance = NULL; ATOMIC_BCAS(&once_, 1, 0); @@ -617,7 +617,7 @@ public: instance = new (std::nothrow) ObObjFreeListList(); if (OB_LIKELY(NULL != instance)) { if (common::OB_SUCCESS != instance->init()) { - _OB_LOG(ERROR, "failed to init object freelist list"); + _OB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "failed to init object freelist list"); delete instance; instance = NULL; (void)ATOMIC_BCAS(&once_, 1, 0); diff --git a/deps/oblib/src/lib/objectpool/ob_global_factory.h b/deps/oblib/src/lib/objectpool/ob_global_factory.h index bc62c8eed..2e820504c 100644 --- a/deps/oblib/src/lib/objectpool/ob_global_factory.h +++ b/deps/oblib/src/lib/objectpool/ob_global_factory.h @@ -65,7 +65,7 @@ inline ObTCBlock *ObTCBlock::new_block(int32_t obj_size, const lib::ObLabel &lab ObMemAttr memattr(OB_SERVER_TENANT_ID, label); void *ptr = ob_malloc(BLOCK_SIZE, memattr); if (OB_ISNULL(ptr)) { - LIB_LOG(WARN, "no memory"); + LIB_LOG_RET(WARN, common::OB_ALLOCATE_MEMORY_FAILED, "no memory"); } else { blk_ret = new(ptr) ObTCBlock(obj_size); } @@ -75,7 +75,7 @@ inline ObTCBlock *ObTCBlock::new_block(int32_t obj_size, const lib::ObLabel &lab inline void ObTCBlock::delete_block(ObTCBlock *blk) { if (OB_ISNULL(blk) || OB_UNLIKELY(false == blk->can_delete())) { - LIB_LOG(ERROR, "block is NULL or block can not be deleted", K(blk)); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "block is NULL or block can not be deleted", K(blk)); } else { blk->~ObTCBlock(); ob_free(blk); @@ -86,7 +86,7 @@ inline int32_t ObTCBlock::get_batch_count_by_obj_size(int32_t obj_size) { // Checking the parameters here is just to hit the log if (OB_UNLIKELY(obj_size < 0)) { - LIB_LOG(ERROR, "obj_size < 0, is invalid"); + LIB_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "obj_size < 0, is invalid"); } else {} int32_t batch_count = static_cast(BLOCK_SIZE) / obj_size; if (batch_count < 2) { @@ -105,7 +105,7 @@ inline ObTCBlock *ObTCBlock::get_block_by_obj(void *obj) inline void ObTCBlock::freelist_push(void *ptr) { if (OB_ISNULL(ptr)) { - LIB_LOG(ERROR, "invalid argument, ptr is NULL"); + LIB_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "invalid argument, ptr is NULL"); } else { FreeNode *node = reinterpret_cast(ptr); node->next_ = freelist_; @@ -180,9 +180,9 @@ inline void *ObTCBlock::alloc() inline void ObTCBlock::free(void *ptr) { if (OB_ISNULL(ptr)) { - LIB_LOG(ERROR, "ptr is NULL"); + LIB_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "ptr is NULL"); } else if (OB_UNLIKELY((char *)ptr - (char *)this >= BLOCK_SIZE)) { - LIB_LOG(ERROR, "size is larger than BLOCK_SIZE", K(ptr), K(this), + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "size is larger than BLOCK_SIZE", K(ptr), K(this), K(((char *)ptr - (char *)this)), LITERAL_K(BLOCK_SIZE)); } else { freelist_push(ptr); @@ -267,7 +267,7 @@ public: "nonempty_blocks_num", nonempty_blocks_.get_size()); DLIST_FOREACH_NORET(blk, nonempty_blocks_) { if (OB_ISNULL(blk)) { - LIB_LOG(ERROR, "nonempty_block is NULL"); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "nonempty_block is NULL"); } else { const int32_t obj_size = blk->get_obj_size(); LIB_LOG(INFO, "[GFACTORY_STAT] nonempty_block", @@ -286,15 +286,15 @@ private: DLIST_REMOVE_ALL_NORET(ptr, range) { ObTCBlock *blk = NULL; if (OB_ISNULL(ptr)) { - LIB_LOG(ERROR, "obj ptr is NULL"); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "obj ptr is NULL"); } else if (OB_ISNULL(blk = ObTCBlock::get_block_by_obj(ptr))) { - LIB_LOG(ERROR, "block is NULL"); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "block is NULL"); } else { if (blk->is_empty()) { // move from empty list to nonempty list empty_blocks_.remove(blk); if (OB_UNLIKELY(false == nonempty_blocks_.add_last(blk))) { - LIB_LOG(ERROR, "fail to add block to nonempty_blocks_'s tail"); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "fail to add block to nonempty_blocks_'s tail"); } } else {} ptr->~T(); @@ -476,7 +476,7 @@ ObGlobalFactory *ObGlobalFactory block_pool_.get_obj_size()) { - LIB_LOG(ERROR, "Wrong block size", K(sz), K(block_pool_.get_obj_size())); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "Wrong block size", K(sz), K(block_pool_.get_obj_size())); } else { ptr_ret = block_pool_.alloc(); } diff --git a/deps/oblib/src/lib/objectpool/ob_pool.ipp b/deps/oblib/src/lib/objectpool/ob_pool.ipp index 9064e7e89..37265a228 100644 --- a/deps/oblib/src/lib/objectpool/ob_pool.ipp +++ b/deps/oblib/src/lib/objectpool/ob_pool.ipp @@ -31,10 +31,10 @@ ObPool::ObPool(int64_t obj_size, int64_t block_size, lock_() { if (OB_UNLIKELY(obj_size_ < static_cast(sizeof(FreeNode)))) { - LIB_LOG(ERROR, "obj_size_ < size of FreeNode"); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "obj_size_ < size of FreeNode"); } else {} if (block_size_ < (obj_size_ + static_cast(sizeof(BlockHeader)))) { - LIB_LOG(WARN, "obj size larger than block size", K(obj_size_), K(block_size_)); + LIB_LOG_RET(WARN, common::OB_ERR_UNEXPECTED, "obj size larger than block size", K(obj_size_), K(block_size_)); block_size_ = obj_size_ + sizeof(BlockHeader); } else {} } @@ -145,7 +145,7 @@ void ObPool::freelist_push(void *obj) if (NULL != obj) { FreeNode *node = static_cast(obj); if (OB_ISNULL(node)) { - LIB_LOG(ERROR, "node is NULL"); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "node is NULL"); } else { node->next_ = freelist_; freelist_ = node; diff --git a/deps/oblib/src/lib/objectpool/ob_resource_pool.h b/deps/oblib/src/lib/objectpool/ob_resource_pool.h index 21164641a..4e44c5de5 100644 --- a/deps/oblib/src/lib/objectpool/ob_resource_pool.h +++ b/deps/oblib/src/lib/objectpool/ob_resource_pool.h @@ -180,7 +180,7 @@ public: (void)ATOMIC_STORE(&updating_, 0); } } else { - _COMMON_LOG(ERROR, "resource pool constuctor may be failed, this=%p type=%s", this, typeid(T).name()); + _COMMON_LOG_RET(ERROR, OB_ERROR, "resource pool constuctor may be failed, this=%p type=%s", this, typeid(T).name()); } return ret; }; @@ -189,7 +189,7 @@ public: if (NULL != ptr) { Node *node = (Node *)ptr; if (ALLOC_MAGIC_NUM != node->magic) { - _COMMON_LOG(ERROR, "node=%p magic=%lx not match %lx", node, node->magic, + _COMMON_LOG_RET(ERROR, OB_ERROR, "node=%p magic=%lx not match %lx", node, node->magic, ALLOC_MAGIC_NUM); } else { free_node_(node); @@ -249,7 +249,7 @@ protected: bool need_free = true; if (ATOMIC_LOAD(&inner_allocated_num_) < max_idle_num_) { if (common::OB_SUCCESS != free_list_.push(ptr)) { - _COMMON_LOG(ERROR, "free node to list fail, size=%ld ptr=%p", free_list_.get_total(), ptr); + _COMMON_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "free node to list fail, size=%ld ptr=%p", free_list_.get_total(), ptr); } else { need_free = false; } @@ -263,7 +263,7 @@ protected: ptr->~Node(); common::ob_free(ptr); } else { - _COMMON_LOG(ERROR, "invalid flag=%lu", ptr->flag); + _COMMON_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "invalid flag=%lu", ptr->flag); } } } diff --git a/deps/oblib/src/lib/objectpool/ob_server_object_pool.h b/deps/oblib/src/lib/objectpool/ob_server_object_pool.h index 1f50a2cc7..8b15c6344 100644 --- a/deps/oblib/src/lib/objectpool/ob_server_object_pool.h +++ b/deps/oblib/src/lib/objectpool/ob_server_object_pool.h @@ -223,7 +223,7 @@ public: ObMemAttr attr(tenant_id_, ObModIds::OB_SERVER_OBJECT_POOL); char *p = static_cast(ob_malloc(item_size_, attr)); if (NULL == p) { - COMMON_LOG(ERROR, "allocate memory failed", K(typeid(T).name()), K(item_size_)); + COMMON_LOG_RET(ERROR, common::OB_ALLOCATE_MEMORY_FAILED, "allocate memory failed", K(typeid(T).name()), K(item_size_)); } else { Meta *cmeta = reinterpret_cast(p); cmeta->next = NULL; @@ -241,9 +241,9 @@ public: void return_object(T* x) { if (NULL == x) { - COMMON_LOG(ERROR, "allocate memory failed", K(typeid(T).name()), K(item_size_), K(get_itid())); + COMMON_LOG_RET(ERROR, common::OB_ALLOCATE_MEMORY_FAILED, "allocate memory failed", K(typeid(T).name()), K(item_size_), K(get_itid())); } else if (OB_UNLIKELY(!is_inited_)){ - COMMON_LOG(ERROR, "unexpected return", K(typeid(T).name()), K(item_size_), K(get_itid())); + COMMON_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "unexpected return", K(typeid(T).name()), K(item_size_), K(get_itid())); } else { Meta *cmeta = PTR_OBJ2META(x); int64_t aid = cmeta->arena_id; @@ -379,7 +379,7 @@ public: is_inited_ = false; } if (has_unfree) { - COMMON_LOG(ERROR, "server object leak", K(tenant_id_), K(typeid(T).name())); + COMMON_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "server object leak", K(tenant_id_), K(typeid(T).name())); } } } diff --git a/deps/oblib/src/lib/objectpool/ob_tc_factory.h b/deps/oblib/src/lib/objectpool/ob_tc_factory.h index 0b661df26..e1d212edd 100644 --- a/deps/oblib/src/lib/objectpool/ob_tc_factory.h +++ b/deps/oblib/src/lib/objectpool/ob_tc_factory.h @@ -38,7 +38,7 @@ public: void push(T *ptr) { if (OB_UNLIKELY(false == list_.add_last(ptr))) { - LIB_LOG(ERROR, "fail to add ptr to list_'s tail"); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "fail to add ptr to list_'s tail"); } } T *pop() @@ -87,7 +87,7 @@ template void ob_tc_factory_callback_on_put(T *obj, BoolType) { if (OB_ISNULL(obj)) { - LIB_LOG(ERROR, "obj is NULL"); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "obj is NULL"); } else { obj->reset(); } @@ -169,7 +169,7 @@ ObTCFactory { auto *instance = GET_TSI(self_t); if (OB_ISNULL(instance)) { - LIB_LOG(ERROR, "failed to init tc_factory"); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "failed to init tc_factory"); } else { // link all the tc_factory of all threads volatile self_t *old_v = NULL; @@ -192,11 +192,11 @@ T *ObTCFactory::get( UNUSED(tenant_id); T *ptr_ret = NULL; if (OB_UNLIKELY(0 > type_id) || OB_UNLIKELY(type_id >= MAX_CLASS_NUM)) { - LIB_LOG(ERROR, "invalid class type id", K(type_id)); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "invalid class type id", K(type_id)); } else { global_factory_t *gfactory = global_factory_t::get_instance(); if (OB_ISNULL(gfactory)) { - LIB_LOG(ERROR, "gfactory is NULL"); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "gfactory is NULL"); } else { const int32_t obj_size = gfactory->get_obj_size(type_id); //OB_PHY_OP_INC(type_id); @@ -223,11 +223,11 @@ template get_batch_count(type_id); const int32_t move_num = std::min(batch_count, list.get_max_length()); @@ -272,7 +272,7 @@ void ObTCFactory::put( if (OB_LIKELY(NULL != ptr)) { global_factory_t *gfactory = global_factory_t::get_instance(); if (OB_ISNULL(gfactory)) { - LIB_LOG(ERROR, "gfactory is NULL"); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "gfactory is NULL"); } else { const int32_t type_id = static_cast(ptr->get_type()); const int32_t obj_size = gfactory->get_obj_size(type_id); @@ -301,7 +301,7 @@ void ObTCFactory::list { global_factory_t *gfactory = global_factory_t::get_instance(); if (OB_ISNULL(gfactory)) { - LIB_LOG(ERROR, "gfactory is NULL"); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "gfactory is NULL"); } else { const int32_t batch_count = gfactory->get_batch_count(type_id); // release batch_count objs to the global factory diff --git a/deps/oblib/src/lib/oblog/ob_easy_log.cpp b/deps/oblib/src/lib/oblog/ob_easy_log.cpp index cca0a9ca3..fd0a0961e 100644 --- a/deps/oblib/src/lib/oblog/ob_easy_log.cpp +++ b/deps/oblib/src/lib/oblog/ob_easy_log.cpp @@ -56,7 +56,7 @@ void ob_easy_log_format(int level, const char *file, int line, const char *funct tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec, (int)((now - static_cast(t)) * 1000 * 1000)))) { - OB_LOG(ERROR, "fail to snprint timestr to buf", KCSTRING(time_str)); + OB_LOG_RET(ERROR, OB_ERR_SYS, "fail to snprint timestr to buf", KCSTRING(time_str)); } } @@ -72,7 +72,7 @@ void ob_easy_log_format(int level, const char *file, int line, const char *funct // Remove the last'\n' while (buffer[len - 1] == '\n') { len --; } if (OB_UNLIKELY(len >= buf_len - 1)) { - OB_LOG(WARN, "invalid buf len", K(len), K(buf_len)); + OB_LOG_RET(WARN, OB_INVALID_ARGUMENT, "invalid buf len", K(len), K(buf_len)); } else { buffer[len++] = '\n'; buffer[len] = '\0'; diff --git a/deps/oblib/src/lib/oblog/ob_log.cpp b/deps/oblib/src/lib/oblog/ob_log.cpp index af88c5968..059d00188 100644 --- a/deps/oblib/src/lib/oblog/ob_log.cpp +++ b/deps/oblib/src/lib/oblog/ob_log.cpp @@ -38,13 +38,19 @@ namespace oceanbase { namespace common { + +const char* __attribute__((weak)) ob_strerror(const int oberr) +{ + const char* ret = "ob_strerror"; + return ret; +} _RLOCAL(ByteBuf, ObLogger::local_buf_); extern void update_easy_log_level(); lib::ObRateLimiter *ObLogger::default_log_limiter_ = nullptr; _RLOCAL(lib::ObRateLimiter*, ObLogger::tl_log_limiter_); static const int64_t limiter_initial = 1000; static const int64_t limiter_thereafter = 100; -lib::ObSampleRateLimiter ObLogger::per_log_limiters_[]; +ObSyslogSampleRateLimiter ObLogger::per_log_limiters_[]; _RLOCAL(int32_t, ObLogger::tl_type_); _RLOCAL(uint64_t, ObLogger::curr_logging_seq_); _RLOCAL(uint64_t, ObLogger::last_logging_seq_); @@ -53,6 +59,7 @@ _RLOCAL(time_t, ObLogger::last_unix_sec_); _RLOCAL(struct tm, ObLogger::last_localtime_); _RLOCAL(bool, ObLogger::disable_logging_); _RLOCAL(bool, ObLogger::trace_mode_); +_RLOCAL(int64_t, ObLogger::limited_left_log_size_); static int64_t last_check_file_ts = 0; //last file sample timestamps static int64_t last_check_disk_ts = 0; //last disk sample timestamps @@ -65,8 +72,6 @@ static const int64_t MAX_BUFFER_ITEM_CNT = 512 << 10; static const int64_t POP_COMPENSATED_TIME[5] = {0, 1, 2, 3, 4};//for pop timeout -static const int64_t NORMAL_LOG_SIZE = 1 << 10; - ObPLogFDType get_fd_type(const char *mod_name) { ObPLogFDType type = FD_SVR_FILE; @@ -446,23 +451,24 @@ void ObLogger::print_trace_buffer(const char* mod_name, }; // invoke log_it isn't workable,that will recycle infinitely do_log_message(is_async_log_used(), mod_name, level, file, line, function, - false, location_hash_val, log_data_func); + false, location_hash_val, 0, log_data_func); tb->reset();//reset, than reuse the TraceBuffer } } -const char *const ObLogger::errstr_[] = {"ERROR", "USER_ERR", "WARN", "INFO", "TRACE", "DEBUG"}; +const char *const ObLogger::errstr_[] = {"ERROR", "WARN", "INFO", "EDIAG", "WDIAG", "TRACE", "DEBUG"}; ObLogger::ObLogger() : ObBaseLogWriter(), log_file_(), max_file_size_(DEFAULT_MAX_FILE_SIZE), max_file_index_(0), - name_id_map_(), id_level_map_(), wf_level_(OB_LOG_LEVEL_WARN), level_version_(0), + name_id_map_(), id_level_map_(), wf_level_(OB_LOG_LEVEL_DBA_WARN), level_version_(0), disable_thread_log_level_(false), force_check_(false), redirect_flag_(false), open_wf_flag_(false), enable_wf_flag_(false), rec_old_file_flag_(false), can_print_(true), enable_async_log_(true), use_multi_flush_(false), stop_append_log_(false), enable_perf_mode_(false), last_async_flush_count_per_sec_(0), log_mem_limiter_(nullptr), - allocator_(nullptr), error_allocator_(nullptr), enable_log_limit_(true), is_arb_replica_(false) + allocator_(nullptr), error_allocator_(nullptr), enable_log_limit_(true), is_arb_replica_(false), + new_file_info_(nullptr), info_as_wdiag_(true) { - id_level_map_.set_level(OB_LOG_LEVEL_ERROR); + id_level_map_.set_level(OB_LOG_LEVEL_DBA_ERROR); (void)pthread_mutex_init(&file_size_mutex_, NULL); (void)pthread_mutex_init(&file_index_mutex_, NULL); @@ -549,11 +555,14 @@ void ObLogger::set_file_name(const char *filename, //open wf file open_wf_flag_ = open_wf; enable_wf_flag_ = open_wf; - if (OB_FAIL(log_file_[FD_SVR_FILE].open(filename, open_wf, redirect_flag_))) { + if (OB_FAIL(log_file_[FD_SVR_FILE].open(filename, open_wf, redirect_flag_)) + && OB_FAIL(log_new_file_info(log_file_[FD_SVR_FILE]))) { LOG_STDERR("fail to open log_file = %p, ret=%d\n", filename, ret); - } else if (NULL != rs_filename && OB_FAIL(log_file_[FD_RS_FILE].open(rs_filename, open_wf, false))) { + } else if (NULL != rs_filename && OB_FAIL(log_file_[FD_RS_FILE].open(rs_filename, open_wf, false)) + && OB_FAIL(log_new_file_info(log_file_[FD_RS_FILE]))) { LOG_STDERR("fail to open log_file = %p, ret=%d\n", rs_filename, ret); - } else if (NULL != elec_filename && OB_FAIL(log_file_[FD_ELEC_FILE].open(elec_filename, open_wf, false))) { + } else if (NULL != elec_filename && OB_FAIL(log_file_[FD_ELEC_FILE].open(elec_filename, open_wf, false)) + && OB_FAIL(log_new_file_info(log_file_[FD_ELEC_FILE]))) { LOG_STDERR("fail to open log_file = %p, ret=%d\n", elec_filename, ret); } else if (NULL != trace_filename && OB_FAIL(log_file_[FD_TRACE_FILE].open(trace_filename, false, false))) { LOG_STDERR("fail to open log_file = %p, ret=%d\n", trace_filename, ret); @@ -627,6 +636,7 @@ int ObLogger::log_head(const char *mod_name, const char *file, const int32_t line, const char *function, + const int errcode, char *buf, const int64_t buf_len, int64_t &pos) { int ret = OB_SUCCESS; @@ -641,6 +651,15 @@ int ObLogger::log_head(const char *mod_name, struct tm tm; ob_fast_localtime(last_unix_sec_, last_localtime_, static_cast(tv.tv_sec), &tm); const uint64_t *trace_id = ObCurTraceId::get(); + const int32_t errcode_buf_size = 32; + char errcode_buf[errcode_buf_size]; + errcode_buf[0] = '\0'; + if (level == OB_LOG_LEVEL_DBA_ERROR + || level == OB_LOG_LEVEL_DBA_WARN + || level == OB_LOG_LEVEL_WARN + || level == OB_LOG_LEVEL_ERROR) { + snprintf(errcode_buf, errcode_buf_size, "[errcode=%d]", errcode); + } if (get_fd_type(mod_name) == FD_TRACE_FILE) { //forbid modify the format of logdata_printf ret = logdata_printf(buf, buf_len, pos, @@ -654,12 +673,12 @@ int ObLogger::log_head(const char *mod_name, (void)snprintf(cluster_id_buf, cluster_id_buf_len, "[C%lu]", GET_CLUSTER_ID()); ret = logdata_printf(buf, buf_len, pos, "[%04d-%02d-%02d %02d:%02d:%02d.%06ld] " - "%-5s %s%s (%s:%d) [%ld][%s]%s[T%lu][" TRACE_ID_FORMAT_V2 "] [lt=%ld] ", + "%-5s %s%s (%s:%d) [%ld][%s]%s[T%lu][" TRACE_ID_FORMAT_V2 "] [lt=%ld]%s ", tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec, tv.tv_usec, errstr_[level], mod_name, function, base_file_name, line, GETTID(), GETTNAME(), is_arb_replica_ ? cluster_id_buf : "", GET_TENANT_ID(), TRACE_ID_FORMAT_PARAM(trace_id), - last_logging_cost_time_us_); + last_logging_cost_time_us_, errcode_buf); } } return ret; @@ -673,6 +692,9 @@ void ObLogger::rotate_log(const int64_t size, const bool redirect_flag, rotate_log(log_struct.filename_, fd_type, redirect_flag, log_struct.fd_, log_struct.wf_fd_, log_struct.file_list_, log_struct.wf_file_list_); (void)ATOMIC_SET(&log_struct.file_size_, 0); + if (fd_type <= FD_ELEC_FILE) { + (void)log_new_file_info(log_struct); + } (void)pthread_mutex_unlock(&file_size_mutex_); } } @@ -1125,6 +1147,8 @@ int ObLogger::level_str2int(const char *level_name, int8_t &level_int) if (!find_level) { ret = OB_LOG_LEVEL_INVALID; LOG_WARN("Invalid log level", K(ret)); + } else if (OB_LOG_LEVEL_INFO == level_int && info_as_wdiag_) { + level_int = OB_LOG_LEVEL_WARN; } } return ret; @@ -1337,7 +1361,7 @@ int ObLogger::init(const ObBaseLogWriterCfg &log_cfg, LOG_STDERR("alloc failed"); } else { for (int i = 0; i < ARRAYSIZEOF(per_log_limiters_); i++) { - new (&per_log_limiters_[i])lib::ObSampleRateLimiter(limiter_initial, limiter_thereafter); + new (&per_log_limiters_[i])ObSyslogSampleRateLimiter(limiter_initial, limiter_thereafter); } const int64_t limit = ObBaseLogWriterCfg::DEFAULT_MAX_BUFFER_ITEM_CNT * OB_MALLOC_BIG_BLOCK_SIZE / 2; // 512M log_mem_limiter_ = new (buf) ObBlockAllocMgr(limit); @@ -1575,64 +1599,39 @@ int ObLogger::backtrace_if_needed(ObPLogItem &log_item, const bool force) return ret; } -int ObLogger::precheck_tl_log_limiter(const int32_t level, bool &allow) +int ObLogger::check_tl_log_limiter(const uint64_t location_hash_val, + const int32_t level, + const int errcode, + const int64_t log_size, + bool &allow) { int ret = OB_SUCCESS; allow = true; auto log_limiter = (nullptr != tl_log_limiter_ ? tl_log_limiter_ : default_log_limiter_); - if (enable_log_limit_ - && nullptr != log_limiter - && OB_SUCCESS != log_limiter->try_acquire(NORMAL_LOG_SIZE) - && !log_limiter->is_force_allows() - && (0 == log_limiter->rate() || OB_LOG_LEVEL_ERROR != level)) { - allow = false; - } - return ret; -} - -int ObLogger::check_tl_log_limiter(ObPLogItem &log_item, const uint64_t location_hash_val) -{ - int ret = OB_SUCCESS; - static const char *EXCEED_INFO = " REACH SYSLOG RATE LIMIT"; - auto log_limiter = (nullptr != tl_log_limiter_ ? tl_log_limiter_ : default_log_limiter_); - const int64_t log_size = log_item.get_data_len(); - bool limit = nullptr != log_limiter - && (log_size <= NORMAL_LOG_SIZE ? false : (OB_SUCCESS != log_limiter->try_acquire(log_size - NORMAL_LOG_SIZE))); - bool per_log_limit = false; - int limiter_1st = 0; - int limiter_2nd = 0; - if (enable_log_limit_ - && (limit || - (per_log_limit = ({bool r1 = OB_SUCCESS != per_log_limiters_[limiter_1st = (location_hash_val >> 32) % N_LIMITER].try_acquire(); - bool r2 = OB_SUCCESS != per_log_limiters_[limiter_2nd = ((location_hash_val << 32) >> 32) % N_LIMITER].try_acquire(); r1 && r2;}))) - && nullptr != log_limiter - && !log_limiter->is_force_allows() - && (0 == log_limiter->rate() || OB_LOG_LEVEL_ERROR != log_item.get_log_level()) - && !log_item.is_trace_file()) { - if (TC_REACH_TIME_INTERVAL(1 * 1000L * 1000L)) { // every sec - int64_t pos = log_item.get_header_len(); - char *buf = log_item.get_buf(); - const int64_t buf_size = log_item.get_buf_size(); - char msg[128]; - const char *limiter_name = limit ? log_limiter->name() : - ({snprintf(msg, sizeof(msg), "per_log_limit, limiter_1st: %d, limiter_2nd: %d", limiter_1st, limiter_2nd); msg;}); - if (OB_FAIL(logdata_print_info(buf, buf_size, pos, limiter_name))) { - //do nothing - } - - if (FAILEDx(logdata_print_info(buf, buf_size, pos, EXCEED_INFO))) { - //do nothing - } else { - check_log_end(log_item, pos); - } - } else { - LOG_STDOUT("log limited, no need save it"); - ret = OB_ERR_UNEXPECTED; + if (enable_log_limit_) { + if (nullptr != log_limiter) { + allow = OB_SUCCESS == log_limiter->try_acquire(log_size, level, errcode); + } + if (allow) { + int64_t idx0 = (location_hash_val >> 32) % N_LIMITER; + int64_t idx1 = ((location_hash_val << 32) >> 32) % N_LIMITER; + bool r0 = OB_SUCCESS == per_log_limiters_[idx0].try_acquire(1, level, errcode); + bool r1 = OB_SUCCESS == per_log_limiters_[idx1].try_acquire(1, level, errcode); + allow = r0 || r1; + } + if (!allow && nullptr != log_limiter && log_limiter->is_force_allows()) { + allow = true; } } return ret; } +bool ObLogger::need_print_log_limit_msg() +{ + return TC_REACH_TIME_INTERVAL(1L * 1000 * 1000); +} + + int64_t ObLogger::get_wait_us(const int32_t level) { int64_t ret_timeout_us = 0; @@ -1641,6 +1640,8 @@ int64_t ObLogger::get_wait_us(const int32_t level) ret_timeout_us = 100;//100us } else { switch (level) { + case OB_LOG_LEVEL_DBA_ERROR: // pass + case OB_LOG_LEVEL_DBA_WARN: // pass case OB_LOG_LEVEL_ERROR: { ret_timeout_us = 100;//100us break; @@ -1674,7 +1675,11 @@ int ObLogger::alloc_log_item(const int32_t level, const int32_t size, ObPLogItem log_item = NULL; if (!stop_append_log_) { char *buf = nullptr; - auto* p_alloc = level != LOG_ERROR ? (ObIAllocator*)allocator_ : (ObIAllocator*)error_allocator_; + auto *p_alloc = (level == OB_LOG_LEVEL_ERROR + || level == OB_LOG_LEVEL_DBA_WARN + || level == OB_LOG_LEVEL_DBA_ERROR) + ? (ObIAllocator *)error_allocator_ + : (ObIAllocator *)allocator_; if (OB_UNLIKELY(nullptr == p_alloc)) { ret = OB_NOT_INIT; LOG_STDERR("uninit error, ret=%d, level=%d\n", ret, level); @@ -1709,7 +1714,12 @@ int ObLogger::alloc_log_item(const int32_t level, const int32_t size, ObPLogItem void ObLogger::free_log_item(ObPLogItem *log_item) { if (NULL != log_item) { - auto* p_alloc = log_item->get_log_level() != LOG_ERROR ? (ObIAllocator*)allocator_ : (ObIAllocator*)error_allocator_; + const int level = log_item->get_log_level(); + auto *p_alloc = (level == OB_LOG_LEVEL_ERROR + || level == OB_LOG_LEVEL_DBA_WARN + || level == OB_LOG_LEVEL_DBA_ERROR) + ? (ObIAllocator *)error_allocator_ + : (ObIAllocator *)allocator_; abort_unless(p_alloc); log_item->~ObPLogItem(); p_alloc->free(log_item); @@ -1719,7 +1729,7 @@ void ObLogger::free_log_item(ObPLogItem *log_item) void ObLogger::inc_dropped_log_count(const int32_t level) { if (OB_LIKELY(level <= OB_LOG_LEVEL_DEBUG) - && OB_LIKELY(level >= OB_LOG_LEVEL_ERROR)) { + && OB_LIKELY(level >= OB_LOG_LEVEL_DBA_ERROR)) { //recode dropped count ATOMIC_AAF(dropped_log_count_ + level, 1); } @@ -1731,6 +1741,44 @@ void ObLogger::inc_dropped_log_count(const int32_t level) } } +int ObLogger::log_new_file_info(const ObPLogFileStruct &log_file) +{ + int ret = OB_SUCCESS; + if (nullptr != new_file_info_ + && (log_file.fd_ > 0 || log_file.wf_fd_ > 0)) { + static const int64_t max_buf_len = 512; + char buf[max_buf_len]; + struct timeval tv; + (void)gettimeofday(&tv, NULL); + struct tm tm; + ob_fast_localtime(last_unix_sec_, last_localtime_, static_cast(tv.tv_sec), &tm); + snprintf(buf, max_buf_len, "[%04d-%02d-%02d %02d:%02d:%02d.%06ld] INFO New syslog file info: [%s]\n", + tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, tm.tm_hour, tm.tm_min, + tm.tm_sec, tv.tv_usec, new_file_info_); + buf[max_buf_len - 2] = '\n'; + buf[max_buf_len - 1] = '\0'; + if (OB_SUCC(ret) && log_file.fd_ > STDOUT_FILENO) { + if (-1 == ::write(log_file.fd_, buf, strlen(buf)) < 0) { + ret = OB_ERR_SYS; + } + } + if (OB_SUCC(ret) && log_file.wf_fd_ > STDERR_FILENO) { + if (-1 == ::write(log_file.wf_fd_, buf, strlen(buf)) < 0) { + ret = OB_ERR_SYS; + } + } + } + return ret; +} + +void ObLogger::issue_dba_error(const int errcode, const char *file, const int line, const char *info_str) +{ + const char *base_file_name = strrchr(file, '/'); + base_file_name = (NULL != base_file_name) ? base_file_name + 1 : file; + LOG_DBA_ERROR(OB_UNEXPECT_INTERNAL_ERROR, + "errcode", errcode, "file", base_file_name, "line_no", line, "info", info_str); +} + } } diff --git a/deps/oblib/src/lib/oblog/ob_log.h b/deps/oblib/src/lib/oblog/ob_log.h index 7e6cdc959..5643eda48 100644 --- a/deps/oblib/src/lib/oblog/ob_log.h +++ b/deps/oblib/src/lib/oblog/ob_log.h @@ -39,8 +39,8 @@ #include "lib/oblog/ob_log_module.h" #include "lib/oblog/ob_log_level.h" #include "lib/oblog/ob_async_log_struct.h" -#include "lib/utility/ob_sample_rate_limiter.h" #include "lib/utility/ob_defer.h" +#include "lib/oblog/ob_syslog_rate_limiter.h" #include "common/ob_local_store.h" #define OB_LOG_MAX_PAR_MOD_SIZE 32 @@ -272,12 +272,14 @@ public: static const int64_t GROUP_COMMIT_MIN_ITEM_COUNT = 1; static const int64_t GROUP_COMMIT_MAX_ITEM_COUNT = 4; static const char *PERF_LEVEL; + static const int64_t NORMAL_LOG_SIZE = 1 << 10; static const char *const SECURITY_AUDIT_FILE_NAME_FORMAT; //mainly for ob_localtime RLOCAL_STATIC(time_t, last_unix_sec_); RLOCAL_STATIC(struct tm, last_localtime_); + RLOCAL_STATIC(int64_t, limited_left_log_size_); enum UserMsgLevel { @@ -287,17 +289,6 @@ public: USER_NOTE }; - enum LogLevel - { - LOG_ERROR = 0, - LOG_USER_ERROR, - LOG_WARN, - LOG_INFO, - LOG_TRACE, - LOG_DEBUG, - LOG_MAX_LEVEL, - }; - struct FileName { //can not add other member and virtual function in this class. @@ -364,11 +355,11 @@ public: int64_t get_schema_log_dropped_count() const { return dropped_count_[4]; } int64_t get_force_allow_log_dropped_count() const { return dropped_count_[5]; } - int64_t get_dropped_error_log_count() const { return dropped_log_count_[LOG_ERROR]; } - int64_t get_dropped_warn_log_count() const { return dropped_log_count_[LOG_WARN]; } - int64_t get_dropped_info_log_count() const { return dropped_log_count_[LOG_INFO]; } - int64_t get_dropped_trace_log_count() const { return dropped_log_count_[LOG_TRACE]; } - int64_t get_dropped_debug_log_count() const { return dropped_log_count_[LOG_DEBUG]; } + int64_t get_dropped_error_log_count() const { return dropped_log_count_[OB_LOG_LEVEL_ERROR]; } + int64_t get_dropped_warn_log_count() const { return dropped_log_count_[OB_LOG_LEVEL_WARN]; } + int64_t get_dropped_info_log_count() const { return dropped_log_count_[OB_LOG_LEVEL_INFO]; } + int64_t get_dropped_trace_log_count() const { return dropped_log_count_[OB_LOG_LEVEL_TRACE]; } + int64_t get_dropped_debug_log_count() const { return dropped_log_count_[OB_LOG_LEVEL_DEBUG]; } int64_t get_async_flush_log_speed() const { return last_async_flush_count_per_sec_; } bool enable_async_log() const { return enable_async_log_; } @@ -428,13 +419,15 @@ public: const int32_t line, const char *function, const uint64_t location_hash_val, - const char *fmt, ...) __attribute__((format(printf, 8, 9))); + const int errcode, + const char *fmt, ...) __attribute__((format(printf, 9, 10))); void log_message_va(const char *mod_name, int32_t level, const char *file, int32_t line, const char *function, const uint64_t location_hash_val, + const int errcode, const char *fmt, va_list args); void log_user_error_line_column(const UserMsgLevel user_msg_level, @@ -497,7 +490,7 @@ public: template __attribute__((noinline, cold)) void log_message_kv(const char *mod_name, const int32_t level, const char *file, const int32_t line, const char *function, - const uint64_t location_hash_val, + const uint64_t location_hash_val, const int errcode, const char *info, Args const && ... args) { auto &&log_data_func = [&] (char *buf, const int64_t buf_len, int64_t &pos) { @@ -506,7 +499,7 @@ public: std::forward(args)...); return ret; }; - log_it(mod_name, level, file, line, function, location_hash_val, log_data_func); + log_it(mod_name, level, file, line, function, location_hash_val, errcode, log_data_func); } @@ -631,6 +624,14 @@ public: RLOCAL_INLINE(bool, guard); return guard; } + + void set_new_file_info(const char *info) { new_file_info_ = info; } + void set_info_as_wdiag(const bool v) { info_as_wdiag_ = v; } + bool is_info_as_wdiag() const { return info_as_wdiag_; } + + // issue a ERROR message for each EDIAG log right now + void issue_dba_error(const int errcode, const char *file, const int line, const char *info_str); + private: //@brief If version <= 0, return true. //If version > 0, return version > level_version_ and if true, update level_version_. @@ -643,6 +644,7 @@ private: const char *file, const int32_t line, const char *function, + const int errcode, char *buf, const int64_t buf_len, int64_t &pos); void insert_warning_buffer_line_column_info(const UserMsgLevel user_msg_level, @@ -700,8 +702,9 @@ private: void check_log_end(ObPLogItem &log_item, int64_t pos); int backtrace_if_needed(ObPLogItem &log_item, const bool force); - int precheck_tl_log_limiter(const int32_t level, bool &allow); - int check_tl_log_limiter(ObPLogItem &log_item, const uint64_t location_hash_val); + int check_tl_log_limiter(const uint64_t location_hash_val, const int32_t level, const int errcode, + const int64_t log_size, bool &allow); + bool need_print_log_limit_msg(); int alloc_log_item(const int32_t level, const int32_t size, ObPLogItem *&log_item); void free_log_item(ObPLogItem *log_item); @@ -715,6 +718,7 @@ private: const char *function, const bool with_head, const uint64_t location_hash_val, + const int errcode, Function &log_data_func); template @@ -724,6 +728,7 @@ private: const int32_t line, const char *function, const uint64_t location_hash_val, + const int errcode, Function &&log_data_func); void check_probe( const char* file, @@ -731,13 +736,15 @@ private: const uint64_t location_hash_val, bool& force_bt, bool& disable); + + int log_new_file_info(const ObPLogFileStruct &log_file); private: static const char *const errstr_[]; // default log rate limiter if there's no tl_log_limiger static ::oceanbase::lib::ObRateLimiter *default_log_limiter_; RLOCAL_STATIC(lib::ObRateLimiter*, tl_log_limiter_); static constexpr int N_LIMITER = 4096; - static lib::ObSampleRateLimiter per_log_limiters_[N_LIMITER]; + static ObSyslogSampleRateLimiter per_log_limiters_[N_LIMITER]; RLOCAL_STATIC(int32_t, tl_type_); //used for stat logging time and log dropped RLOCAL_STATIC(uint64_t, curr_logging_seq_); @@ -779,7 +786,7 @@ private: bool stop_append_log_;//whether stop product log bool enable_perf_mode_; //used for statistics - int64_t dropped_log_count_[LOG_MAX_LEVEL]; + int64_t dropped_log_count_[OB_LOG_LEVEL_MAX]; int64_t last_async_flush_count_per_sec_; int64_t dropped_count_[MAX_TASK_LOG_TYPE + 1];//last one is force allow count @@ -799,6 +806,10 @@ private: } probes_[8]; int probe_cnt_ = 0; bool is_arb_replica_; + + // This info will be logged when log file created. + const char *new_file_info_; + bool info_as_wdiag_; }; inline ObLogger& ObLogger::get_logger() @@ -906,11 +917,12 @@ void ObLogger::log_it(const char *mod_name, const int32_t line, const char *function, const uint64_t location_hash_val, + const int errcode, Function &&log_data_func) { int ret = OB_SUCCESS; if (OB_LIKELY(level <= OB_LOG_LEVEL_DEBUG) - && OB_LIKELY(level >= OB_LOG_LEVEL_ERROR) + && OB_LIKELY(level >= OB_LOG_LEVEL_DBA_ERROR) && OB_LIKELY(is_enable_logging()) && OB_NOT_NULL(mod_name) && OB_NOT_NULL(file) && OB_NOT_NULL(function) && OB_NOT_NULL(function)) { @@ -923,7 +935,7 @@ void ObLogger::log_it(const char *mod_name, int64_t buf_len = tb->get_cap(); int64_t &pos = tb->get_pos(); int64_t orig_pos = pos; - ret = log_head(mod_name, level, file, line, function, buf, buf_len, pos); + ret = log_head(mod_name, level, file, line, function, errcode, buf, buf_len, pos); if (OB_SUCC(ret)) { ret = log_data_func(buf, buf_len, pos); } @@ -942,7 +954,7 @@ void ObLogger::log_it(const char *mod_name, } } else { do_log_message(is_async_log_used(), mod_name, level, file, line, function, true, - location_hash_val, log_data_func); + location_hash_val, errcode, log_data_func); } } UNUSED(ret); @@ -954,13 +966,14 @@ inline void ObLogger::log_message_fmt(const char *mod_name, const int32_t line, const char *function, const uint64_t location_hash_val, + const int errcode, const char *fmt, ...) { if (OB_NOT_NULL(fmt)) { va_list args; va_start(args, fmt); DEFER(va_end(args)); - log_message_va(mod_name, level, file, line, function, location_hash_val, fmt, args); + log_message_va(mod_name, level, file, line, function, location_hash_val, errcode, fmt, args); } } @@ -970,6 +983,7 @@ inline void ObLogger::log_message_va(const char *mod_name, const int32_t line, const char *function, const uint64_t location_hash_val, + const int errcode, const char *fmt, va_list args) { @@ -980,7 +994,7 @@ inline void ObLogger::log_message_va(const char *mod_name, DEFER(va_end(args_cpy)); return logdata_vprintf(buf, buf_len, pos, fmt, args_cpy); }; - log_it(mod_name, level, file, line, function, location_hash_val, log_data_func); + log_it(mod_name, level, file, line, function, location_hash_val, errcode, log_data_func); } } @@ -997,9 +1011,9 @@ bool __attribute__((weak, noinline, cold)) ObLogger::need_to_print(const uint64_ inline int32_t ObLogger::get_log_level() const { - int8_t cur_level = OB_LOG_LEVEL_INFO; + int8_t cur_level = OB_LOG_LEVEL_WARN; if (enable_perf_mode_) { - cur_level = OB_LOG_LEVEL_ERROR; + cur_level = OB_LOG_LEVEL_DBA_ERROR; } else { cur_level = id_level_map_.get_level(); @@ -1018,9 +1032,9 @@ inline int32_t ObLogger::get_log_level() const inline int32_t ObLogger::get_log_level(const uint64_t par_mod_id) const { - int8_t cur_level = OB_LOG_LEVEL_INFO; + int8_t cur_level = OB_LOG_LEVEL_WARN; if (enable_perf_mode_) { - cur_level = OB_LOG_LEVEL_ERROR; + cur_level = OB_LOG_LEVEL_DBA_ERROR; } else { cur_level = id_level_map_.get_level(par_mod_id); @@ -1039,9 +1053,9 @@ inline int32_t ObLogger::get_log_level(const uint64_t par_mod_id) const inline int32_t ObLogger::get_log_level(const uint64_t par_mod_id, const uint64_t sub_mod_id) const { - int8_t cur_level = OB_LOG_LEVEL_INFO; + int8_t cur_level = OB_LOG_LEVEL_WARN; if (enable_perf_mode_) { - cur_level = OB_LOG_LEVEL_ERROR; + cur_level = OB_LOG_LEVEL_DBA_ERROR; } else { cur_level = id_level_map_.get_level(par_mod_id, sub_mod_id); @@ -1128,6 +1142,7 @@ inline void ObLogger::do_log_message(const bool is_async, const char *function, const bool with_head, const uint64_t location_hash_val, + const int errcode, Function &log_data_func) { int ret = OB_SUCCESS; @@ -1140,11 +1155,13 @@ inline void ObLogger::do_log_message(const bool is_async, bool disable = false; check_probe(file, line, location_hash_val, force_bt, disable); if(OB_UNLIKELY(disable)) return; - const int64_t logging_time_us_begin = get_cur_us(); auto fd_type = get_fd_type(mod_name); - if (OB_FAIL(precheck_tl_log_limiter(level, allow))) { + const int64_t log_size = limited_left_log_size_ + NORMAL_LOG_SIZE; + limited_left_log_size_ = 0; + const int64_t logging_time_us_begin = get_cur_us(); + if (OB_FAIL(check_tl_log_limiter(location_hash_val, level, errcode, log_size, allow))) { LOG_STDERR("precheck_tl_log_limiter error, ret=%d\n", ret); - } else if (OB_UNLIKELY(!allow) && FD_TRACE_FILE != fd_type) { + } else if (OB_UNLIKELY(!allow) && !need_print_log_limit_msg()) { inc_dropped_log_count(level); } else { ++curr_logging_seq_; @@ -1161,7 +1178,7 @@ inline void ObLogger::do_log_message(const bool is_async, int64_t buf_len = log_item->get_buf_size(); int64_t pos = log_item->get_data_len(); if (with_head) { - if (OB_FAIL(log_head(mod_name, level, file, line, function, + if (OB_FAIL(log_head(mod_name, level, file, line, function, errcode, buf, buf_len, pos))) { LOG_STDERR("log_header error ret = %d\n", ret); } @@ -1184,14 +1201,20 @@ inline void ObLogger::do_log_message(const bool is_async, } } - // check log limiter - if (OB_SUCC(ret) && is_async) { - if (OB_FAIL(check_tl_log_limiter(*log_item, location_hash_val))) { - LOG_STDERR("check_tl_log_limiter error ret = %d\n", ret); + if (OB_SUCC(ret) && !allow) { + static const char *EXCEED_INFO = " REACH SYSLOG RATE LIMIT"; + int64_t pos = log_item->get_header_len(); + if (OB_FAIL(logdata_print_info(log_item->get_buf(), log_item->get_buf_size(), pos, + EXCEED_INFO))) { + // do nothing + } else { + check_log_end(*log_item, pos); } } + if (OB_SUCC(ret)) { + limited_left_log_size_ = std::max(0L, log_item->get_data_len() - NORMAL_LOG_SIZE); if (is_async) { // clone by data_size ObPLogItem *new_log_item = nullptr; @@ -1241,14 +1264,18 @@ _Pragma("GCC diagnostic pop") template void OB_PRINT(const char *mod_name, const int32_t level, const char *file, const int32_t line, - const char *function, const uint64_t location_hash_val, const char *info_string, + const char *function, const uint64_t location_hash_val, + const int errcode, const char *info_string, const char *, /* placeholder */ Args const && ... args) { int ret = OB_SUCCESS; + if (OB_LOG_LEVEL_ERROR == level) { + OB_LOGGER.issue_dba_error(errcode, file, line, info_string); + } if (OB_LIKELY(!OB_LOGGER.get_guard())) { OB_LOGGER.get_guard() = true; - OB_LOGGER.log_message_kv(mod_name, level, file, line, function, location_hash_val, + OB_LOGGER.log_message_kv(mod_name, level, file, line, function, location_hash_val, errcode, info_string, std::forward(args)...); OB_LOGGER.get_guard() = false; UNUSED(ret); diff --git a/deps/oblib/src/lib/oblog/ob_log_level.h b/deps/oblib/src/lib/oblog/ob_log_level.h index 860a96ca7..65e54faf2 100644 --- a/deps/oblib/src/lib/oblog/ob_log_level.h +++ b/deps/oblib/src/lib/oblog/ob_log_level.h @@ -20,14 +20,29 @@ namespace oceanbase { namespace common { + #define OB_LOG_LEVEL_NONE 7 + #define OB_LOG_LEVEL_NP -1 //set this level, would not print log -#define OB_LOG_LEVEL_ERROR 0 -//#define OB_LOG_LEVEL_USER_ERROR 1 -#define OB_LOG_LEVEL_WARN 2 -#define OB_LOG_LEVEL_INFO 3 -#define OB_LOG_LEVEL_TRACE 4 -#define OB_LOG_LEVEL_DEBUG 5 + +// ERROR log, show as "ERROR" in log file +#define OB_LOG_LEVEL_DBA_ERROR 0 + +// WARN log, show as "WARN" in log file +#define OB_LOG_LEVEL_DBA_WARN 1 +#define OB_LOG_LEVEL_INFO 2 + +// Error Diagnosis log, LEVEL_ERROR is an alias of EDIAG, show as "EDIAG" in log file +#define OB_LOG_LEVEL_ERROR 3 +#define OB_LOG_LEVEL_EDIAG 3 + +// Warning diagnosis log LEVEL_WARN is an alias of WDIAG, show as "WDIAG" in log file +#define OB_LOG_LEVEL_WARN 4 +#define OB_LOG_LEVEL_WDIAG 4 + +#define OB_LOG_LEVEL_TRACE 5 +#define OB_LOG_LEVEL_DEBUG 6 +#define OB_LOG_LEVEL_MAX 7 struct ObLogIdLevelMap; //@class ObThreadLogLevel diff --git a/deps/oblib/src/lib/oblog/ob_log_module.h b/deps/oblib/src/lib/oblog/ob_log_module.h index 6fd5dc1db..ad2679e86 100644 --- a/deps/oblib/src/lib/oblog/ob_log_module.h +++ b/deps/oblib/src/lib/oblog/ob_log_module.h @@ -240,8 +240,10 @@ LOG_MOD_END(PL) #define OB_LOG_LOCATION_HASH_VAL \ ({constexpr uint64_t hash_val= oceanbase::common::hash::fnv_hash_for_logger(__FILE__":"STRINGIZE(__LINE__)); hash_val;}) #define OB_LOG_LEVEL(level) \ - OB_LOG_LEVEL_##level, __FILE__, __LINE__, _fun_name_, OB_LOG_LOCATION_HASH_VAL + OB_LOG_LEVEL_##level, __FILE__, __LINE__, _fun_name_, OB_LOG_LOCATION_HASH_VAL, GET_LOG_ERRCODE(level) #define OB_LOG_LEVEL_DIRECT(level) \ + OB_LOG_LEVEL_##level, __FILE__, __LINE__, __FUNCTION__, OB_LOG_LOCATION_HASH_VAL, GET_LOG_ERRCODE(level) +#define OB_LOG_LEVEL_DIRECT_NO_ERRCODE(level) \ OB_LOG_LEVEL_##level, __FILE__, __LINE__, __FUNCTION__, OB_LOG_LOCATION_HASH_VAL #define OB_LOG_NUM_LEVEL(level) level, __FILE__, __LINE__, __FUNCTION__, OB_LOG_LOCATION_HASH_VAL @@ -252,6 +254,8 @@ LOG_MOD_END(PL) #define MACRO_CALL(x, y) x(y) #define MACRO_ARGS(x) MACRO_ARGS_## x, FOR_DEFAULT #define MACRO_ARGS_DEBUG , FOR_DEBUG +#define MACRO_ARGS_DBA_WARN , FOR_DBA_WARN +#define MACRO_ARGS_DBA_ERROR , FOR_DBA_ERROR #ifdef ENABLE_DEBUG_LOG #define IS_LOG_ENABLED_FOR_DEBUG true @@ -262,13 +266,24 @@ LOG_MOD_END(PL) #define IS_LOG_ENABLED_FOR_DEBUG true #endif #endif +#define IS_LOG_ENABLED_FOR_DBA_WARN PLEASE_USE___LOG_DBA_WARN____MACRO +#define IS_LOG_ENABLED_FOR_DBA_ERROR PLEASE_USE___LOG_DBA_ERROR___MACRO #define IS_LOG_ENABLED_FOR_DEFAULT true #define IS_LOG_ENABLED(level) LOG_MACRO_JOIN(IS_LOG_ENABLED_, MACRO_CALL(GET_SECOND, MACRO_ARGS(level))) #define GET_LOG_FUNC_ATTR_FOR_DEBUG always_inline #define GET_LOG_FUNC_ATTR_FOR_DEFAULT noinline,cold +#define GET_LOG_FUNC_ATTR_FOR_DBA_WARN noinline,cold +#define GET_LOG_FUNC_ATTR_FOR_DBA_ERROR noinline,cold #define GET_LOG_FUNC_ATTR(level) LOG_MACRO_JOIN(GET_LOG_FUNC_ATTR_, MACRO_CALL(GET_SECOND, MACRO_ARGS(level))) +#define LOG_ERRCODE_FOR_ERROR ret +#define LOG_ERRCODE_FOR_WARN ret +#define LOG_ERRCODE_FOR_INFO 0 +#define LOG_ERRCODE_FOR_TRACE 0 +#define LOG_ERRCODE_FOR_DEBUG 0 +#define GET_LOG_ERRCODE(level) LOG_MACRO_JOIN(LOG_ERRCODE_FOR_, level) + #define OB_LOG(level, infoString, args...) \ do { if (IS_LOG_ENABLED(level)) { \ if (OB_LOG_NEED_TO_PRINT(level)) \ @@ -282,18 +297,18 @@ LOG_MOD_END(PL) { _OB_PRINT("", level, _fmt_, ##args); } \ }(__FUNCTION__); } } while (false) -#define _OB_NUM_LEVEL_LOG(level, _fmt_, args...) \ +#define _OB_NUM_LEVEL_LOG(level, errcode, _fmt_, args...) \ (OB_LOGGER.need_to_print(level) ? \ - OB_LOGGER.log_message_fmt("", OB_LOG_NUM_LEVEL(level), _fmt_, ##args) : (void) 0) + OB_LOGGER.log_message_fmt("", OB_LOG_NUM_LEVEL(level), errcode, _fmt_, ##args) : (void) 0) -#define _OB_NUM_LEVEL_PRINT(level, _fmt_, args...) \ - OB_LOGGER.log_message("", OB_LOG_NUM_LEVEL(level), _fmt_, ##args) +#define _OB_NUM_LEVEL_PRINT(level, errcode, _fmt_, args...) \ + OB_LOGGER.log_message("", OB_LOG_NUM_LEVEL(level), errcode, _fmt_, ##args) #define IS_OB_LOG_TRACE_MODE() OB_LOGGER.is_trace_mode() #define SET_OB_LOG_TRACE_MODE() OB_LOGGER.set_trace_mode(true) #define CANCLE_OB_LOG_TRACE_MODE() OB_LOGGER.set_trace_mode(false) #define PRINT_OB_LOG_TRACE_BUF(mod_name, level) \ - (OB_LOG_NEED_TO_PRINT(level) ? OB_LOGGER.print_trace_buffer("["#mod_name"] ", OB_LOG_LEVEL_DIRECT(level)) : (void) 0) + (OB_LOG_NEED_TO_PRINT(level) ? OB_LOGGER.print_trace_buffer("["#mod_name"] ", OB_LOG_LEVEL_DIRECT_NO_ERRCODE(level)) : (void) 0) //for tests/ob_log_test or others #define OB_LOG_MOD_NEED_TO_PRINT(parMod, level) \ @@ -336,6 +351,7 @@ LOG_MOD_END(PL) _OB_PRINT("["#parMod"."#subMod"] ", level, _fmt_, ##args) : (void) 0); \ }(__FUNCTION__); } } while (false) +// BEGIN MODULE LOG MACRO DEFINE //define ParMod_LOG #define BLSST_LOG(level, info_string, args...) OB_MOD_LOG(BLSST, level, info_string, ##args) #define _BLSST_LOG(level, _fmt_, args...) _OB_MOD_LOG(BLSST, level, _fmt_, ##args) @@ -805,6 +821,295 @@ LOG_MOD_END(PL) #define OBLOG_SORTER_LOG(level, fmt, args...) OB_SUB_MOD_LOG(TLOG, SORTER, level, fmt, ##args) #define _OBLOG_SORTER_LOG(level, fmt, args...) _OB_SUB_MOD_LOG(TLOG, SORTER, level, fmt, ##args) +// END MODULE LOG MACRO DEFINE + +#define _OB_LOG_RET(level, errcode, args...) { int ret = errcode; _OB_LOG(level, ##args); } +#define OB_LOG_RET(level, errcode, args...) { int ret = errcode; OB_LOG(level, ##args); } + +// +// The following LOG MACROS are used for logging with specified error code, which are generated with the shell script: +// sed -n '/BEGIN[^[]MODULE LOG MACRO DEFINE/,/END[^[]MODULE LOG MACRO DEFINE/p' deps/oblib/src/lib/oblog/ob_log_module.h | grep 'define[[:space:]]*[[:alnum:]_]*_LOG(level' -o | sed -e 's/^define//g' -e 's/(level//g' | while read l ; do echo "#define ${l}_RET(level, errcode, args...) { int ret = errcode; $l(level, ##args); }"; done + +// BEGIN XXX_LOG_RET MACRO DEFINE +#define BLSST_LOG_RET(level, errcode, args...) { int ret = errcode; BLSST_LOG(level, ##args); } +#define _BLSST_LOG_RET(level, errcode, args...) { int ret = errcode; _BLSST_LOG(level, ##args); } +#define CLIENT_LOG_RET(level, errcode, args...) { int ret = errcode; CLIENT_LOG(level, ##args); } +#define _CLIENT_LOG_RET(level, errcode, args...) { int ret = errcode; _CLIENT_LOG(level, ##args); } +#define CLOG_LOG_RET(level, errcode, args...) { int ret = errcode; CLOG_LOG(level, ##args); } +#define _CLOG_LOG_RET(level, errcode, args...) { int ret = errcode; _CLOG_LOG(level, ##args); } +#define EXTLOG_LOG_RET(level, errcode, args...) { int ret = errcode; EXTLOG_LOG(level, ##args); } +#define _EXTLOG_LOG_RET(level, errcode, args...) { int ret = errcode; _EXTLOG_LOG(level, ##args); } +#define CSR_LOG_RET(level, errcode, args...) { int ret = errcode; CSR_LOG(level, ##args); } +#define _CSR_LOG_RET(level, errcode, args...) { int ret = errcode; _CSR_LOG(level, ##args); } +#define COMMON_LOG_RET(level, errcode, args...) { int ret = errcode; COMMON_LOG(level, ##args); } +#define _COMMON_LOG_RET(level, errcode, args...) { int ret = errcode; _COMMON_LOG(level, ##args); } +#define ELECT_LOG_RET(level, errcode, args...) { int ret = errcode; ELECT_LOG(level, ##args); } +#define _ELECT_LOG_RET(level, errcode, args...) { int ret = errcode; _ELECT_LOG(level, ##args); } +#define OCCAM_LOG_RET(level, errcode, args...) { int ret = errcode; OCCAM_LOG(level, ##args); } +#define _OCCAM_LOG_RET(level, errcode, args...) { int ret = errcode; _OCCAM_LOG(level, ##args); } +#define IMPS_LOG_RET(level, errcode, args...) { int ret = errcode; IMPS_LOG(level, ##args); } +#define _IMPS_LOG_RET(level, errcode, args...) { int ret = errcode; _IMPS_LOG(level, ##args); } +#define WRS_LOG_RET(level, errcode, args...) { int ret = errcode; WRS_LOG(level, ##args); } +#define _WRS_LOG_RET(level, errcode, args...) { int ret = errcode; _WRS_LOG(level, ##args); } +#define ARCHIVE_LOG_RET(level, errcode, args...) { int ret = errcode; ARCHIVE_LOG(level, ##args); } +#define _ARCHIVE_LOG_RET(level, errcode, args...) { int ret = errcode; _ARCHIVE_LOG(level, ##args); } +#define PHYSICAL_RESTORE_ARCHIVE_LOG_RET(level, errcode, args...) { int ret = errcode; PHYSICAL_RESTORE_ARCHIVE_LOG(level, ##args); } +#define _PHYSICAL_RESTORE_ARCHIVE_LOG_RET(level, errcode, args...) { int ret = errcode; _PHYSICAL_RESTORE_ARCHIVE_LOG(level, ##args); } +#define LIB_LOG_RET(level, errcode, args...) { int ret = errcode; LIB_LOG(level, ##args); } +#define _LIB_LOG_RET(level, errcode, args...) { int ret = errcode; _LIB_LOG(level, ##args); } +#define MEMT_LOG_RET(level, errcode, args...) { int ret = errcode; MEMT_LOG(level, ##args); } +#define _MEMT_LOG_RET(level, errcode, args...) { int ret = errcode; _MEMT_LOG(level, ##args); } +#define MRSST_LOG_RET(level, errcode, args...) { int ret = errcode; MRSST_LOG(level, ##args); } +#define _MRSST_LOG_RET(level, errcode, args...) { int ret = errcode; _MRSST_LOG(level, ##args); } +#define MYSQL_LOG_RET(level, errcode, args...) { int ret = errcode; MYSQL_LOG(level, ##args); } +#define _MYSQL_LOG_RET(level, errcode, args...) { int ret = errcode; _MYSQL_LOG(level, ##args); } +#define OFS_LOG_RET(level, errcode, args...) { int ret = errcode; OFS_LOG(level, ##args); } +#define _OFS_LOG_RET(level, errcode, args...) { int ret = errcode; _OFS_LOG(level, ##args); } +#define PS_LOG_RET(level, errcode, args...) { int ret = errcode; PS_LOG(level, ##args); } +#define _PS_LOG_RET(level, errcode, args...) { int ret = errcode; _PS_LOG(level, ##args); } +#define RPC_LOG_RET(level, errcode, args...) { int ret = errcode; RPC_LOG(level, ##args); } +#define _RPC_LOG_RET(level, errcode, args...) { int ret = errcode; _RPC_LOG(level, ##args); } +#define RS_LOG_RET(level, errcode, args...) { int ret = errcode; RS_LOG(level, ##args); } +#define _RS_LOG_RET(level, errcode, args...) { int ret = errcode; _RS_LOG(level, ##args); } +#define BOOTSTRAP_LOG_RET(level, errcode, args...) { int ret = errcode; BOOTSTRAP_LOG(level, ##args); } +#define _BOOTSTRAP_LOG_RET(level, errcode, args...) { int ret = errcode; _BOOTSTRAP_LOG(level, ##args); } +#define SERVER_LOG_RET(level, errcode, args...) { int ret = errcode; SERVER_LOG(level, ##args); } +#define _SERVER_LOG_RET(level, errcode, args...) { int ret = errcode; _SERVER_LOG(level, ##args); } +#define SHARE_LOG_RET(level, errcode, args...) { int ret = errcode; SHARE_LOG(level, ##args); } +#define _SHARE_LOG_RET(level, errcode, args...) { int ret = errcode; _SHARE_LOG(level, ##args); } +#define SQL_LOG_RET(level, errcode, args...) { int ret = errcode; SQL_LOG(level, ##args); } +#define _SQL_LOG_RET(level, errcode, args...) { int ret = errcode; _SQL_LOG(level, ##args); } +#define PL_LOG_RET(level, errcode, args...) { int ret = errcode; PL_LOG(level, ##args); } +#define _PL_LOG_RET(level, errcode, args...) { int ret = errcode; _PL_LOG(level, ##args); } +#define JIT_LOG_RET(level, errcode, args...) { int ret = errcode; JIT_LOG(level, ##args); } +#define _JIT_LOG_RET(level, errcode, args...) { int ret = errcode; _JIT_LOG(level, ##args); } +#define STORAGE_LOG_RET(level, errcode, args...) { int ret = errcode; STORAGE_LOG(level, ##args); } +#define _STORAGE_LOG_RET(level, errcode, args...) { int ret = errcode; _STORAGE_LOG(level, ##args); } +#define TX_LOG_RET(level, errcode, args...) { int ret = errcode; TX_LOG(level, ##args); } +#define TRANS_LOG_RET(level, errcode, args...) { int ret = errcode; TRANS_LOG(level, ##args); } +#define _TRANS_LOG_RET(level, errcode, args...) { int ret = errcode; _TRANS_LOG(level, ##args); } +#define TABLELOCK_LOG_RET(level, errcode, args...) { int ret = errcode; TABLELOCK_LOG(level, ##args); } +#define _TABLELOCK_LOG_RET(level, errcode, args...) { int ret = errcode; _TABLELOCK_LOG(level, ##args); } +#define RU_LOG_RET(level, errcode, args...) { int ret = errcode; RU_LOG(level, ##args); } +#define _RU_LOG_RET(level, errcode, args...) { int ret = errcode; _RU_LOG(level, ##args); } +#define REPLAY_LOG_RET(level, errcode, args...) { int ret = errcode; REPLAY_LOG(level, ##args); } +#define _REPLAY_LOG_RET(level, errcode, args...) { int ret = errcode; _REPLAY_LOG(level, ##args); } +#define IMC_LOG_RET(level, errcode, args...) { int ret = errcode; IMC_LOG(level, ##args); } +#define _IMC_LOG_RET(level, errcode, args...) { int ret = errcode; _IMC_LOG(level, ##args); } +#define OBLOG_LOG_RET(level, errcode, args...) { int ret = errcode; OBLOG_LOG(level, ##args); } +#define _OBLOG_LOG_RET(level, errcode, args...) { int ret = errcode; _OBLOG_LOG(level, ##args); } +#define LOGTOOL_LOG_RET(level, errcode, args...) { int ret = errcode; LOGTOOL_LOG(level, ##args); } +#define _LOGTOOL_LOG_RET(level, errcode, args...) { int ret = errcode; _LOGTOOL_LOG(level, ##args); } +#define DETECT_LOG_RET(level, errcode, args...) { int ret = errcode; DETECT_LOG(level, ##args); } +#define _DETECT_LOG_RET(level, errcode, args...) { int ret = errcode; _DETECT_LOG(level, ##args); } +#define PALF_LOG_RET(level, errcode, args...) { int ret = errcode; PALF_LOG(level, ##args); } +#define _PALF_LOG_RET(level, errcode, args...) { int ret = errcode; _PALF_LOG(level, ##args); } +#define STANDBY_LOG_RET(level, errcode, args...) { int ret = errcode; STANDBY_LOG(level, ##args); } +#define _STANDBY_LOG_RET(level, errcode, args...) { int ret = errcode; _STANDBY_LOG(level, ##args); } +#define COORDINATOR_LOG_RET(level, errcode, args...) { int ret = errcode; COORDINATOR_LOG(level, ##args); } +#define _COORDINATOR_LOG_RET(level, errcode, args...) { int ret = errcode; _COORDINATOR_LOG(level, ##args); } +#define OBTRACE_LOG_RET(level, errcode, args...) { int ret = errcode; OBTRACE_LOG(level, ##args); } +#define _OBTRACE_LOG_RET(level, errcode, args...) { int ret = errcode; _OBTRACE_LOG(level, ##args); } +#define MVCC_LOG_RET(level, errcode, args...) { int ret = errcode; MVCC_LOG(level, ##args); } +#define _MVCC_LOG_RET(level, errcode, args...) { int ret = errcode; _MVCC_LOG(level, ##args); } +#define WRS_CLUSTER_LOG_RET(level, errcode, args...) { int ret = errcode; WRS_CLUSTER_LOG(level, ##args); } +#define _WRS_CLUSTER_LOG_RET(level, errcode, args...) { int ret = errcode; _WRS_CLUSTER_LOG(level, ##args); } +#define WRS_SERVER_LOG_RET(level, errcode, args...) { int ret = errcode; WRS_SERVER_LOG(level, ##args); } +#define _WRS_SERVER_LOG_RET(level, errcode, args...) { int ret = errcode; _WRS_SERVER_LOG(level, ##args); } +#define LIB_ALLOC_LOG_RET(level, errcode, args...) { int ret = errcode; LIB_ALLOC_LOG(level, ##args); } +#define _LIB_ALLOC_LOG_RET(level, errcode, args...) { int ret = errcode; _LIB_ALLOC_LOG(level, ##args); } +#define LIB_CHARSET_LOG_RET(level, errcode, args...) { int ret = errcode; LIB_CHARSET_LOG(level, ##args); } +#define _LIB_CHARSET_LOG_RET(level, errcode, args...) { int ret = errcode; _LIB_CHARSET_LOG(level, ##args); } +#define LIB_CONTAIN_LOG_RET(level, errcode, args...) { int ret = errcode; LIB_CONTAIN_LOG(level, ##args); } +#define _LIB_CONTAIN_LOG_RET(level, errcode, args...) { int ret = errcode; _LIB_CONTAIN_LOG(level, ##args); } +#define LIB_CPU_LOG_RET(level, errcode, args...) { int ret = errcode; LIB_CPU_LOG(level, ##args); } +#define _LIB_CPU_LOG_RET(level, errcode, args...) { int ret = errcode; _LIB_CPU_LOG(level, ##args); } +#define LIB_ENCRYPT_LOG_RET(level, errcode, args...) { int ret = errcode; LIB_ENCRYPT_LOG(level, ##args); } +#define _LIB_ENCRYPT_LOG_RET(level, errcode, args...) { int ret = errcode; _LIB_ENCRYPT_LOG(level, ##args); } +#define LIB_FILE_LOG_RET(level, errcode, args...) { int ret = errcode; LIB_FILE_LOG(level, ##args); } +#define _LIB_FILE_LOG_RET(level, errcode, args...) { int ret = errcode; _LIB_FILE_LOG(level, ##args); } +#define LIB_HASH_LOG_RET(level, errcode, args...) { int ret = errcode; LIB_HASH_LOG(level, ##args); } +#define _LIB_HASH_LOG_RET(level, errcode, args...) { int ret = errcode; _LIB_HASH_LOG(level, ##args); } +#define LIB_JASON_LOG_RET(level, errcode, args...) { int ret = errcode; LIB_JASON_LOG(level, ##args); } +#define _LIB_JASON_LOG_RET(level, errcode, args...) { int ret = errcode; _LIB_JASON_LOG(level, ##args); } +#define LIB_LIST_LOG_RET(level, errcode, args...) { int ret = errcode; LIB_LIST_LOG(level, ##args); } +#define _LIB_LIST_LOG_RET(level, errcode, args...) { int ret = errcode; _LIB_LIST_LOG(level, ##args); } +#define LIB_LOCK_LOG_RET(level, errcode, args...) { int ret = errcode; LIB_LOCK_LOG(level, ##args); } +#define _LIB_LOCK_LOG_RET(level, errcode, args...) { int ret = errcode; _LIB_LOCK_LOG(level, ##args); } +#define LIB_MYSQLC_LOG_RET(level, errcode, args...) { int ret = errcode; LIB_MYSQLC_LOG(level, ##args); } +#define _LIB_MYSQLC_LOG_RET(level, errcode, args...) { int ret = errcode; _LIB_MYSQLC_LOG(level, ##args); } +#define LIB_NUM_LOG_RET(level, errcode, args...) { int ret = errcode; LIB_NUM_LOG(level, ##args); } +#define _LIB_NUM_LOG_RET(level, errcode, args...) { int ret = errcode; _LIB_NUM_LOG(level, ##args); } +#define LIB_OBJP_LOG_RET(level, errcode, args...) { int ret = errcode; LIB_OBJP_LOG(level, ##args); } +#define _LIB_OBJP_LOG_RET(level, errcode, args...) { int ret = errcode; _LIB_OBJP_LOG(level, ##args); } +#define LIB_PROB_LOG_RET(level, errcode, args...) { int ret = errcode; LIB_PROB_LOG(level, ##args); } +#define _LIB_PROB_LOG_RET(level, errcode, args...) { int ret = errcode; _LIB_PROB_LOG(level, ##args); } +#define LIB_PROFILE_LOG_RET(level, errcode, args...) { int ret = errcode; LIB_PROFILE_LOG(level, ##args); } +#define _LIB_PROFILE_LOG_RET(level, errcode, args...) { int ret = errcode; _LIB_PROFILE_LOG(level, ##args); } +#define LIB_QUEUE_LOG_RET(level, errcode, args...) { int ret = errcode; LIB_QUEUE_LOG(level, ##args); } +#define _LIB_QUEUE_LOG_RET(level, errcode, args...) { int ret = errcode; _LIB_QUEUE_LOG(level, ##args); } +#define LIB_REGEX_LOG_RET(level, errcode, args...) { int ret = errcode; LIB_REGEX_LOG(level, ##args); } +#define _LIB_REGEX_LOG_RET(level, errcode, args...) { int ret = errcode; _LIB_REGEX_LOG(level, ##args); } +#define LIB_STRING_LOG_RET(level, errcode, args...) { int ret = errcode; LIB_STRING_LOG(level, ##args); } +#define _LIB_STRING_LOG_RET(level, errcode, args...) { int ret = errcode; _LIB_STRING_LOG(level, ##args); } +#define LIB_TASK_LOG_RET(level, errcode, args...) { int ret = errcode; LIB_TASK_LOG(level, ##args); } +#define _LIB_TASK_LOG_RET(level, errcode, args...) { int ret = errcode; _LIB_TASK_LOG(level, ##args); } +#define LIB_TRHEADL_LOG_RET(level, errcode, args...) { int ret = errcode; LIB_TRHEADL_LOG(level, ##args); } +#define _LIB_TRHEADL_LOG_RET(level, errcode, args...) { int ret = errcode; _LIB_TRHEADL_LOG(level, ##args); } +#define LIB_TIME_LOG_RET(level, errcode, args...) { int ret = errcode; LIB_TIME_LOG(level, ##args); } +#define _LIB_TIME_LOG_RET(level, errcode, args...) { int ret = errcode; _LIB_TIME_LOG(level, ##args); } +#define LIB_UTILITY_LOG_RET(level, errcode, args...) { int ret = errcode; LIB_UTILITY_LOG(level, ##args); } +#define _LIB_UTILITY_LOG_RET(level, errcode, args...) { int ret = errcode; _LIB_UTILITY_LOG(level, ##args); } +#define LIB_WS_LOG_RET(level, errcode, args...) { int ret = errcode; LIB_WS_LOG(level, ##args); } +#define _LIB_WS_LOG_RET(level, errcode, args...) { int ret = errcode; _LIB_WS_LOG(level, ##args); } +#define LIB_OCI_LOG_RET(level, errcode, args...) { int ret = errcode; LIB_OCI_LOG(level, ##args); } +#define _LIB_OCI_LOG_RET(level, errcode, args...) { int ret = errcode; _LIB_OCI_LOG(level, ##args); } +#define OFS_BLOCK_LOG_RET(level, errcode, args...) { int ret = errcode; OFS_BLOCK_LOG(level, ##args); } +#define _OFS_BLOCK_LOG_RET(level, errcode, args...) { int ret = errcode; _OFS_BLOCK_LOG(level, ##args); } +#define OFS_BLOCKSERVER_LOG_RET(level, errcode, args...) { int ret = errcode; OFS_BLOCKSERVER_LOG(level, ##args); } +#define _OFS_BLOCKSERVER_LOG_RET(level, errcode, args...) { int ret = errcode; _OFS_BLOCKSERVER_LOG(level, ##args); } +#define OFS_CLIENT_LOG_RET(level, errcode, args...) { int ret = errcode; OFS_CLIENT_LOG(level, ##args); } +#define _OFS_CLIENT_LOG_RET(level, errcode, args...) { int ret = errcode; _OFS_CLIENT_LOG(level, ##args); } +#define OFS_CLUSTER_LOG_RET(level, errcode, args...) { int ret = errcode; OFS_CLUSTER_LOG(level, ##args); } +#define _OFS_CLUSTER_LOG_RET(level, errcode, args...) { int ret = errcode; _OFS_CLUSTER_LOG(level, ##args); } +#define OFS_COMMON_LOG_RET(level, errcode, args...) { int ret = errcode; OFS_COMMON_LOG(level, ##args); } +#define _OFS_COMMON_LOG_RET(level, errcode, args...) { int ret = errcode; _OFS_COMMON_LOG(level, ##args); } +#define OFS_FILE_LOG_RET(level, errcode, args...) { int ret = errcode; OFS_FILE_LOG(level, ##args); } +#define _OFS_FILE_LOG_RET(level, errcode, args...) { int ret = errcode; _OFS_FILE_LOG(level, ##args); } +#define OFS_FS_LOG_RET(level, errcode, args...) { int ret = errcode; OFS_FS_LOG(level, ##args); } +#define _OFS_FS_LOG_RET(level, errcode, args...) { int ret = errcode; _OFS_FS_LOG(level, ##args); } +#define OFS_MASTER_LOG_RET(level, errcode, args...) { int ret = errcode; OFS_MASTER_LOG(level, ##args); } +#define _OFS_MASTER_LOG_RET(level, errcode, args...) { int ret = errcode; _OFS_MASTER_LOG(level, ##args); } +#define OFS_REGRESSION_LOG_RET(level, errcode, args...) { int ret = errcode; OFS_REGRESSION_LOG(level, ##args); } +#define _OFS_REGRESSION_LOG_RET(level, errcode, args...) { int ret = errcode; _OFS_REGRESSION_LOG(level, ##args); } +#define OFS_RPC_LOG_RET(level, errcode, args...) { int ret = errcode; OFS_RPC_LOG(level, ##args); } +#define _OFS_RPC_LOG_RET(level, errcode, args...) { int ret = errcode; _OFS_RPC_LOG(level, ##args); } +#define OFS_STREAM_LOG_RET(level, errcode, args...) { int ret = errcode; OFS_STREAM_LOG(level, ##args); } +#define _OFS_STREAM_LOG_RET(level, errcode, args...) { int ret = errcode; _OFS_STREAM_LOG(level, ##args); } +#define OFS_UTIL_LOG_RET(level, errcode, args...) { int ret = errcode; OFS_UTIL_LOG(level, ##args); } +#define _OFS_UTIL_LOG_RET(level, errcode, args...) { int ret = errcode; _OFS_UTIL_LOG(level, ##args); } +#define OFS_LIBS_LOG_RET(level, errcode, args...) { int ret = errcode; OFS_LIBS_LOG(level, ##args); } +#define _OFS_LIBS_LOG_RET(level, errcode, args...) { int ret = errcode; _OFS_LIBS_LOG(level, ##args); } +#define OFS_SHARE_LOG_RET(level, errcode, args...) { int ret = errcode; OFS_SHARE_LOG(level, ##args); } +#define _OFS_SHARE_LOG_RET(level, errcode, args...) { int ret = errcode; _OFS_SHARE_LOG(level, ##args); } +#define PL_DEBUG_LOG_RET(level, errcode, args...) { int ret = errcode; PL_DEBUG_LOG(level, ##args); } +#define _PL_DEBUG_LOG_RET(level, errcode, args...) { int ret = errcode; _PL_DEBUG_LOG(level, ##args); } +#define PL_CACHE_LOG_RET(level, errcode, args...) { int ret = errcode; PL_CACHE_LOG(level, ##args); } +#define _PL_CACHE_LOG_RET(level, errcode, args...) { int ret = errcode; _PL_CACHE_LOG(level, ##args); } +#define RPC_FRAME_LOG_RET(level, errcode, args...) { int ret = errcode; RPC_FRAME_LOG(level, ##args); } +#define _RPC_FRAME_LOG_RET(level, errcode, args...) { int ret = errcode; _RPC_FRAME_LOG(level, ##args); } +#define RPC_OBRPC_LOG_RET(level, errcode, args...) { int ret = errcode; RPC_OBRPC_LOG(level, ##args); } +#define _RPC_OBRPC_LOG_RET(level, errcode, args...) { int ret = errcode; _RPC_OBRPC_LOG(level, ##args); } +#define RPC_OBMYSQL_LOG_RET(level, errcode, args...) { int ret = errcode; RPC_OBMYSQL_LOG(level, ##args); } +#define _RPC_OBMYSQL_LOG_RET(level, errcode, args...) { int ret = errcode; _RPC_OBMYSQL_LOG(level, ##args); } +#define RPC_TEST_LOG_RET(level, errcode, args...) { int ret = errcode; RPC_TEST_LOG(level, ##args); } +#define _RPC_TEST_LOG_RET(level, errcode, args...) { int ret = errcode; _RPC_TEST_LOG(level, ##args); } +#define COMMON_CACHE_LOG_RET(level, errcode, args...) { int ret = errcode; COMMON_CACHE_LOG(level, ##args); } +#define _COMMON_CACHE_LOG_RET(level, errcode, args...) { int ret = errcode; _COMMON_CACHE_LOG(level, ##args); } +#define COMMON_EXPR_LOG_RET(level, errcode, args...) { int ret = errcode; COMMON_EXPR_LOG(level, ##args); } +#define _COMMON_EXPR_LOG_RET(level, errcode, args...) { int ret = errcode; _COMMON_EXPR_LOG(level, ##args); } +#define COMMON_LEASE_LOG_RET(level, errcode, args...) { int ret = errcode; COMMON_LEASE_LOG(level, ##args); } +#define _COMMON_LEASE_LOG_RET(level, errcode, args...) { int ret = errcode; _COMMON_LEASE_LOG(level, ##args); } +#define COMMON_MYSQLP_LOG_RET(level, errcode, args...) { int ret = errcode; COMMON_MYSQLP_LOG(level, ##args); } +#define _COMMON_MYSQLP_LOG_RET(level, errcode, args...) { int ret = errcode; _COMMON_MYSQLP_LOG(level, ##args); } +#define COMMON_PRI_LOG_RET(level, errcode, args...) { int ret = errcode; COMMON_PRI_LOG(level, ##args); } +#define _COMMON_PRI_LOG_RET(level, errcode, args...) { int ret = errcode; _COMMON_PRI_LOG(level, ##args); } +#define COMMON_STAT_LOG_RET(level, errcode, args...) { int ret = errcode; COMMON_STAT_LOG(level, ##args); } +#define _COMMON_STAT_LOG_RET(level, errcode, args...) { int ret = errcode; _COMMON_STAT_LOG(level, ##args); } +#define COMMON_UPSR_LOG_RET(level, errcode, args...) { int ret = errcode; COMMON_UPSR_LOG(level, ##args); } +#define _COMMON_UPSR_LOG_RET(level, errcode, args...) { int ret = errcode; _COMMON_UPSR_LOG(level, ##args); } +#define SHARE_CONFIG_LOG_RET(level, errcode, args...) { int ret = errcode; SHARE_CONFIG_LOG(level, ##args); } +#define _SHARE_CONFIG_LOG_RET(level, errcode, args...) { int ret = errcode; _SHARE_CONFIG_LOG(level, ##args); } +#define SHARE_FILE_LOG_RET(level, errcode, args...) { int ret = errcode; SHARE_FILE_LOG(level, ##args); } +#define _SHARE_FILE_LOG_RET(level, errcode, args...) { int ret = errcode; _SHARE_FILE_LOG(level, ##args); } +#define SHARE_INNERT_LOG_RET(level, errcode, args...) { int ret = errcode; SHARE_INNERT_LOG(level, ##args); } +#define _SHARE_INNERT_LOG_RET(level, errcode, args...) { int ret = errcode; _SHARE_INNERT_LOG(level, ##args); } +#define SHARE_INTERFACE_LOG_RET(level, errcode, args...) { int ret = errcode; SHARE_INTERFACE_LOG(level, ##args); } +#define _SHARE_INTERFACE_LOG_RET(level, errcode, args...) { int ret = errcode; _SHARE_INTERFACE_LOG(level, ##args); } +#define SHARE_LOG_LOG_RET(level, errcode, args...) { int ret = errcode; SHARE_LOG_LOG(level, ##args); } +#define _SHARE_LOG_LOG_RET(level, errcode, args...) { int ret = errcode; _SHARE_LOG_LOG(level, ##args); } +#define SHARE_PT_LOG_RET(level, errcode, args...) { int ret = errcode; SHARE_PT_LOG(level, ##args); } +#define _SHARE_PT_LOG_RET(level, errcode, args...) { int ret = errcode; _SHARE_PT_LOG(level, ##args); } +#define SHARE_SCHEMA_LOG_RET(level, errcode, args...) { int ret = errcode; SHARE_SCHEMA_LOG(level, ##args); } +#define _SHARE_SCHEMA_LOG_RET(level, errcode, args...) { int ret = errcode; _SHARE_SCHEMA_LOG(level, ##args); } +#define SHARE_TRIGGER_LOG_RET(level, errcode, args...) { int ret = errcode; SHARE_TRIGGER_LOG(level, ##args); } +#define _SHARE_TRIGGER_LOG_RET(level, errcode, args...) { int ret = errcode; _SHARE_TRIGGER_LOG(level, ##args); } +#define SHARE_LOCATION_LOG_RET(level, errcode, args...) { int ret = errcode; SHARE_LOCATION_LOG(level, ##args); } +#define _SHARE_LOCATION_LOG_RET(level, errcode, args...) { int ret = errcode; _SHARE_LOCATION_LOG(level, ##args); } +#define STORAGE_REDO_LOG_RET(level, errcode, args...) { int ret = errcode; STORAGE_REDO_LOG(level, ##args); } +#define _STORAGE_REDO_LOG_RET(level, errcode, args...) { int ret = errcode; _STORAGE_REDO_LOG(level, ##args); } +#define STORAGE_COMPACTION_LOG_RET(level, errcode, args...) { int ret = errcode; STORAGE_COMPACTION_LOG(level, ##args); } +#define _STORAGE_COMPACTION_LOG_RET(level, errcode, args...) { int ret = errcode; _STORAGE_COMPACTION_LOG(level, ##args); } +#define STORAGE_BLKMGR_LOG_RET(level, errcode, args...) { int ret = errcode; STORAGE_BLKMGR_LOG(level, ##args); } +#define _STORAGE_BLKMGR_LOG_RET(level, errcode, args...) { int ret = errcode; _STORAGE_BLKMGR_LOG(level, ##args); } +#define SQL_ENG_LOG_RET(level, errcode, args...) { int ret = errcode; SQL_ENG_LOG(level, ##args); } +#define _SQL_ENG_LOG_RET(level, errcode, args...) { int ret = errcode; _SQL_ENG_LOG(level, ##args); } +#define SQL_EXE_LOG_RET(level, errcode, args...) { int ret = errcode; SQL_EXE_LOG(level, ##args); } +#define _SQL_EXE_LOG_RET(level, errcode, args...) { int ret = errcode; _SQL_EXE_LOG(level, ##args); } +#define SQL_OPT_LOG_RET(level, errcode, args...) { int ret = errcode; SQL_OPT_LOG(level, ##args); } +#define _SQL_OPT_LOG_RET(level, errcode, args...) { int ret = errcode; _SQL_OPT_LOG(level, ##args); } +#define SQL_JO_LOG_RET(level, errcode, args...) { int ret = errcode; SQL_JO_LOG(level, ##args); } +#define _SQL_JO_LOG_RET(level, errcode, args...) { int ret = errcode; _SQL_JO_LOG(level, ##args); } +#define SQL_PARSER_LOG_RET(level, errcode, args...) { int ret = errcode; SQL_PARSER_LOG(level, ##args); } +#define _SQL_PARSER_LOG_RET(level, errcode, args...) { int ret = errcode; _SQL_PARSER_LOG(level, ##args); } +#define SQL_PC_LOG_RET(level, errcode, args...) { int ret = errcode; SQL_PC_LOG(level, ##args); } +#define _SQL_PC_LOG_RET(level, errcode, args...) { int ret = errcode; _SQL_PC_LOG(level, ##args); } +#define _SQL_PLANCACHE_LOG_RET(level, errcode, args...) { int ret = errcode; _SQL_PLANCACHE_LOG(level, ##args); } +#define SQL_RESV_LOG_RET(level, errcode, args...) { int ret = errcode; SQL_RESV_LOG(level, ##args); } +#define _SQL_RESV_LOG_RET(level, errcode, args...) { int ret = errcode; _SQL_RESV_LOG(level, ##args); } +#define SQL_REWRITE_LOG_RET(level, errcode, args...) { int ret = errcode; SQL_REWRITE_LOG(level, ##args); } +#define _SQL_REWRITE_LOG_RET(level, errcode, args...) { int ret = errcode; _SQL_REWRITE_LOG(level, ##args); } +#define SQL_SESSION_LOG_RET(level, errcode, args...) { int ret = errcode; SQL_SESSION_LOG(level, ##args); } +#define _SQL_SESSION_LOG_RET(level, errcode, args...) { int ret = errcode; _SQL_SESSION_LOG(level, ##args); } +#define SQL_CG_LOG_RET(level, errcode, args...) { int ret = errcode; SQL_CG_LOG(level, ##args); } +#define _SQL_CG_LOG_RET(level, errcode, args...) { int ret = errcode; _SQL_CG_LOG(level, ##args); } +#define SQL_MONITOR_LOG_RET(level, errcode, args...) { int ret = errcode; SQL_MONITOR_LOG(level, ##args); } +#define _SQL_MONITOR_LOG_RET(level, errcode, args...) { int ret = errcode; _SQL_MONITOR_LOG(level, ##args); } +#define SQL_DTL_LOG_RET(level, errcode, args...) { int ret = errcode; SQL_DTL_LOG(level, ##args); } +#define _SQL_DTL_LOG_RET(level, errcode, args...) { int ret = errcode; _SQL_DTL_LOG(level, ##args); } +#define SQL_DAS_LOG_RET(level, errcode, args...) { int ret = errcode; SQL_DAS_LOG(level, ##args); } +#define _SQL_DAS_LOG_RET(level, errcode, args...) { int ret = errcode; _SQL_DAS_LOG(level, ##args); } +#define SQL_SPM_LOG_RET(level, errcode, args...) { int ret = errcode; SQL_SPM_LOG(level, ##args); } +#define _SQL_SPM_LOG_RET(level, errcode, args...) { int ret = errcode; _SQL_SPM_LOG(level, ##args); } +#define SQL_QRR_LOG_RET(level, errcode, args...) { int ret = errcode; SQL_QRR_LOG(level, ##args); } +#define _SQL_QRR_LOG_RET(level, errcode, args...) { int ret = errcode; _SQL_QRR_LOG(level, ##args); } +#define DETECT_LOG_LOG_RET(level, errcode, args...) { int ret = errcode; DETECT_LOG_LOG(level, ##args); } +#define _DETECT_LOG_LOG_RET(level, errcode, args...) { int ret = errcode; _DETECT_LOG_LOG(level, ##args); } +#define SERVER_OMT_LOG_RET(level, errcode, args...) { int ret = errcode; SERVER_OMT_LOG(level, ##args); } +#define _SERVER_OMT_LOG_RET(level, errcode, args...) { int ret = errcode; _SERVER_OMT_LOG(level, ##args); } +#define RS_LB_LOG_RET(level, errcode, args...) { int ret = errcode; RS_LB_LOG(level, ##args); } +#define RS_RESTORE_LOG_RET(level, errcode, args...) { int ret = errcode; RS_RESTORE_LOG(level, ##args); } +#define _RS_RESTORE_LOG_RET(level, errcode, args...) { int ret = errcode; _RS_RESTORE_LOG(level, ##args); } +#define STORAGETEST_LOG_RET(level, errcode, args...) { int ret = errcode; STORAGETEST_LOG(level, ##args); } +#define _STORAGETEST_LOG_RET(level, errcode, args...) { int ret = errcode; _STORAGETEST_LOG(level, ##args); } +#define OBLOG_FETCHER_LOG_RET(level, errcode, args...) { int ret = errcode; OBLOG_FETCHER_LOG(level, ##args); } +#define _OBLOG_FETCHER_LOG_RET(level, errcode, args...) { int ret = errcode; _OBLOG_FETCHER_LOG(level, ##args); } +#define OBLOG_PARSER_LOG_RET(level, errcode, args...) { int ret = errcode; OBLOG_PARSER_LOG(level, ##args); } +#define _OBLOG_PARSER_LOG_RET(level, errcode, args...) { int ret = errcode; _OBLOG_PARSER_LOG(level, ##args); } +#define OBLOG_SEQUENCER_LOG_RET(level, errcode, args...) { int ret = errcode; OBLOG_SEQUENCER_LOG(level, ##args); } +#define _OBLOG_SEQUENCER_LOG_RET(level, errcode, args...) { int ret = errcode; _OBLOG_SEQUENCER_LOG(level, ##args); } +#define OBLOG_FORMATTER_LOG_RET(level, errcode, args...) { int ret = errcode; OBLOG_FORMATTER_LOG(level, ##args); } +#define _OBLOG_FORMATTER_LOG_RET(level, errcode, args...) { int ret = errcode; _OBLOG_FORMATTER_LOG(level, ##args); } +#define OBLOG_COMMITTER_LOG_RET(level, errcode, args...) { int ret = errcode; OBLOG_COMMITTER_LOG(level, ##args); } +#define _OBLOG_COMMITTER_LOG_RET(level, errcode, args...) { int ret = errcode; _OBLOG_COMMITTER_LOG(level, ##args); } +#define OBLOG_TAILF_LOG_RET(level, errcode, args...) { int ret = errcode; OBLOG_TAILF_LOG(level, ##args); } +#define _OBLOG_TAILF_LOG_RET(level, errcode, args...) { int ret = errcode; _OBLOG_TAILF_LOG(level, ##args); } +#define OBLOG_SCHEMA_LOG_RET(level, errcode, args...) { int ret = errcode; OBLOG_SCHEMA_LOG(level, ##args); } +#define _OBLOG_SCHEMA_LOG_RET(level, errcode, args...) { int ret = errcode; _OBLOG_SCHEMA_LOG(level, ##args); } +#define OBLOG_STORAGER_LOG_RET(level, errcode, args...) { int ret = errcode; OBLOG_STORAGER_LOG(level, ##args); } +#define _OBLOG_STORAGER_LOG_RET(level, errcode, args...) { int ret = errcode; _OBLOG_STORAGER_LOG(level, ##args); } +#define OBLOG_READER_LOG_RET(level, errcode, args...) { int ret = errcode; OBLOG_READER_LOG(level, ##args); } +#define _OBLOG_READER_LOG_RET(level, errcode, args...) { int ret = errcode; _OBLOG_READER_LOG(level, ##args); } +#define OBLOG_DISPATCHER_LOG_RET(level, errcode, args...) { int ret = errcode; OBLOG_DISPATCHER_LOG(level, ##args); } +#define _OBLOG_DISPATCHER_LOG_RET(level, errcode, args...) { int ret = errcode; _OBLOG_DISPATCHER_LOG(level, ##args); } +#define OBLOG_SORTER_LOG_RET(level, errcode, args...) { int ret = errcode; OBLOG_SORTER_LOG(level, ##args); } +#define _OBLOG_SORTER_LOG_RET(level, errcode, args...) { int ret = errcode; _OBLOG_SORTER_LOG(level, ##args); } +// END XXX_LOG_RET MACRO DEFINE + +#define DDLOG_RET(level, errcode, args...){ int ret = errcode; DDLOG(level, ##args); } + + + // used for the log return for user; // if you want to return ERROR message for user, and the error message parameters returned // in mysql mode and oracle mode are the same. you should use LOG_USER_ERROR or FORWARD_USER_ERROR. @@ -819,7 +1124,7 @@ LOG_MOD_END(PL) #define _LOG_USER_MSG(level, errcode, umsg, args...) \ do {\ OB_LOGGER.log_user_message(level, errcode, umsg, ##args);\ - OB_LOGGER.log_message_fmt("", OB_LOG_NUM_LEVEL(level), umsg, ##args);\ + OB_LOGGER.log_message_fmt("", OB_LOG_NUM_LEVEL(OB_LOG_LEVEL_WARN), errcode, umsg, ##args);\ } while(0) // @@ -831,7 +1136,7 @@ LOG_MOD_END(PL) #define CHECK_LOG_USER_CONST_FMT(x) \ static_assert(__builtin_constant_p(x) == 1, \ - "LOG_USER_XX(errcode..) need use const errcode instead of vairable ret"); + "LOG_USER_XX(errcode..)/LOG_DBA_XXX(errcoce) need use const errcode instead of vairable ret"); #else #define CHECK_LOG_USER_CONST_FMT(x) #endif @@ -908,10 +1213,36 @@ LOG_MOD_END(PL) if (OB_NOT_NULL(msg)) { \ OB_LOGGER.insert_warning_buffer(::oceanbase::common::ObLogger::USER_NOTE, errcode, msg, static_cast(strlen(msg))); \ if (OB_LOGGER.need_to_print(OB_LOG_LEVEL_WARN)) { \ - ::oceanbase::common::OB_PRINT("", OB_LOG_LEVEL_DIRECT(WARN), msg, LOG_KVS("ret", errcode)); \ + ::oceanbase::common::OB_PRINT("", OB_LOG_LEVEL_DIRECT_NO_ERRCODE(WARN), errcode, msg, LOG_KVS("ret", errcode)); \ } \ } +namespace oceanbase { +namespace common { +extern const char *ob_strerror(const int oberr); +} // end namespace common +} // end namespace oceanbase + +#define LOG_DBA_ERROR(errcode, args...) \ + do \ + { \ + CHECK_LOG_USER_CONST_FMT(errcode); \ + if (OB_LOG_NEED_TO_PRINT(DBA_ERROR)) { \ + ::oceanbase::common::OB_PRINT("", OB_LOG_LEVEL_DIRECT_NO_ERRCODE(DBA_ERROR), errcode, ob_strerror(errcode), LOG_KVS(args)); \ + } \ + } while (0) + +#define LOG_DBA_WARN(errcode, args...) \ + do \ + { \ + CHECK_LOG_USER_CONST_FMT(errcode); \ + if (OB_LOG_NEED_TO_PRINT(DBA_WARN)) { \ + ::oceanbase::common::OB_PRINT("", OB_LOG_LEVEL_DIRECT_NO_ERRCODE(DBA_WARN), errcode, ob_strerror(errcode), LOG_KVS(args)); \ + } \ + } while (0) + + + // define USING_LOG_PREFIX in .cpp file to use LOG_ERROR, LOG_WARN ... macros // // example: @@ -919,9 +1250,13 @@ LOG_MOD_END(PL) // LOG_ERROR(...) will expand to COMMON_LOG(ERROR, ...) #define LOG_ERROR(args...) LOG_MACRO_JOIN(USING_LOG_PREFIX, _LOG) (ERROR, ##args) +#define LOG_ERROR_RET(args...) LOG_MACRO_JOIN(USING_LOG_PREFIX, _LOG_RET) (ERROR, ##args) #define _LOG_ERROR(args...) _LOG_MACRO_JOIN(USING_LOG_PREFIX, _LOG) (ERROR, ##args) +#define _LOG_ERROR_RET(args...) _LOG_MACRO_JOIN(USING_LOG_PREFIX, _LOG_RET) (ERROR, ##args) #define LOG_WARN(args...) LOG_MACRO_JOIN(USING_LOG_PREFIX, _LOG) (WARN, ##args) +#define LOG_WARN_RET(args...) LOG_MACRO_JOIN(USING_LOG_PREFIX, _LOG_RET) (WARN, ##args) #define _LOG_WARN(args...) _LOG_MACRO_JOIN(USING_LOG_PREFIX, _LOG) (WARN, ##args) +#define _LOG_WARN_RET(args...) _LOG_MACRO_JOIN(USING_LOG_PREFIX, _LOG_RET) (WARN, ##args) #define LOG_INFO(args...) LOG_MACRO_JOIN(USING_LOG_PREFIX, _LOG) (INFO, ##args) #define _LOG_INFO(args...) _LOG_MACRO_JOIN(USING_LOG_PREFIX, _LOG) (INFO, ##args) #define LOG_TRACE(args...) LOG_MACRO_JOIN(USING_LOG_PREFIX, _LOG) (TRACE, ##args) @@ -933,6 +1268,8 @@ LOG_MOD_END(PL) #define LOG_PRINT_EXPR(level, statement, expr, args...) \ LOG_##level(statement, "expr", ::oceanbase::common::ObLogPrintName<__typeof__(expr)>(expr), ##args); +#define LOG_PRINT_EXPR_RET(level, errcode, args...) { int ret = errcode; LOG_PRINT_EXPR(level, ##args); } + // When key is the name of value, can use K(value) for key and value. // example: // SQL_LOG(INFO, "test for K", K(value)); diff --git a/deps/oblib/src/lib/oblog/ob_log_print_kv.h b/deps/oblib/src/lib/oblog/ob_log_print_kv.h index 6a8aa2814..2399ff3f3 100644 --- a/deps/oblib/src/lib/oblog/ob_log_print_kv.h +++ b/deps/oblib/src/lib/oblog/ob_log_print_kv.h @@ -720,5 +720,4 @@ private: #define LOG_KVS_(N, ...) CONCAT(LOG_KVS_, N)(__VA_ARGS__) #define LOG_KVS(...) "placeholder" LOG_KVS_(ARGS_NUM(__VA_ARGS__), __VA_ARGS__) - #endif diff --git a/deps/oblib/src/lib/utility/ob_simple_rate_limiter.h b/deps/oblib/src/lib/oblog/ob_syslog_rate_limiter.cpp similarity index 52% rename from deps/oblib/src/lib/utility/ob_simple_rate_limiter.h rename to deps/oblib/src/lib/oblog/ob_syslog_rate_limiter.cpp index da7169030..7ae2a83ed 100644 --- a/deps/oblib/src/lib/utility/ob_simple_rate_limiter.h +++ b/deps/oblib/src/lib/oblog/ob_syslog_rate_limiter.cpp @@ -10,53 +10,45 @@ * See the Mulan PubL v2 for more details. */ -#ifndef OB_SIMPLE_RATE_LIMITER_H -#define OB_SIMPLE_RATE_LIMITER_H -#include -#include -#include -#include "lib/atomic/ob_atomic.h" -#include "lib/utility/ob_rate_limiter.h" -#include "lib/ob_errno.h" +#include "ob_syslog_rate_limiter.h" +#include "lib/time/ob_time_utility.h" -namespace oceanbase { -namespace lib { -class ObSimpleRateLimiter - : public lib::ObRateLimiter +using namespace oceanbase; +using namespace common; + +ObSimpleRateLimiterImpl::ObSimpleRateLimiterImpl(int64_t &rate) + : rate_(rate), permits_(rate), last_ts_(ObTimeUtility::current_time()) { - static constexpr int64_t DEFAULT_RATE = 100; -public: - ObSimpleRateLimiter(int64_t rate=DEFAULT_RATE) - : last_ts_(0), permits_(rate) - { - last_ts_ = current_time(); - set_rate(rate); - } - - bool is_force_allows() const override { return false; } - void reset_force_allows() override { }; - int acquire(int64_t permits=1) override; - int try_acquire(int64_t permits=1) override; - -public: - // This is a copy of ObTimeUtility::current_time() that depends on - // nothing other than system library. - static int64_t current_time(); - -private: - int64_t last_ts_; - int64_t permits_; -}; - -inline int ObSimpleRateLimiter::acquire(int64_t permits) -{ - UNUSED(permits); - return common::OB_NOT_SUPPORTED; } -inline int ObSimpleRateLimiter::try_acquire(int64_t permits) +ObSyslogSimpleRateLimiter::ObSyslogSimpleRateLimiter(int64_t rate) + : ObISyslogRateLimiter(rate), impl_(rate_) +{ +} + +ObSyslogSampleRateLimiter::ObSyslogSampleRateLimiter(int64_t initial, int64_t thereafter, + int64_t duration) + : initial_(initial), thereafter_(thereafter), duration_(duration), + reset_ts_(ObTimeUtility::current_time()), count_(0) +{ + set_rate(initial); +} + +int64_t ObSimpleRateLimiterImpl::current_time() +{ + int64_t time = 0; + struct timeval t; + if (gettimeofday(&t, nullptr) >= 0) { + time = (static_cast(t.tv_sec) + * static_cast(1000000) + + static_cast(t.tv_usec)); + } + return time; +} + +int ObSimpleRateLimiterImpl::try_acquire(int64_t permits) { int ret = common::OB_SUCCESS; constexpr int64_t SEC2MICROS = 1000000L; @@ -84,19 +76,29 @@ inline int ObSimpleRateLimiter::try_acquire(int64_t permits) return ret; } -inline int64_t ObSimpleRateLimiter::current_time() +int ObSyslogSampleRateLimiter::do_acquire(int64_t permits, int log_level, int errcode) { - int64_t time = 0; - struct timeval t; - if (gettimeofday(&t, nullptr) >= 0) { - time = (static_cast(t.tv_sec) - * static_cast(1000000) - + static_cast(t.tv_usec)); + UNUSED(log_level); + UNUSED(errcode); + int ret = common::OB_SUCCESS; + int64_t cur_ts = ObTimeUtility::current_time(); + int64_t reset_ts = ATOMIC_LOAD(&reset_ts_); + int64_t n = 0; + if (cur_ts < reset_ts) { + n = ATOMIC_AAF(&count_, permits); + } else { + ATOMIC_STORE(&count_, permits); + int64_t new_reset_ts = cur_ts + duration_; + if (!ATOMIC_BCAS(&reset_ts_, reset_ts, new_reset_ts)) { + n = ATOMIC_AAF(&count_, permits); + } else { + n = permits; + } } - return time; + if (n > initial_ && (n - initial_) % thereafter_ != 0) { + ret = common::OB_EAGAIN; + } + return ret; } -} // lib -} // oceanbase -#endif /* OB_SIMPLE_RATE_LIMITER_H */ diff --git a/deps/oblib/src/lib/oblog/ob_syslog_rate_limiter.h b/deps/oblib/src/lib/oblog/ob_syslog_rate_limiter.h new file mode 100644 index 000000000..25f8b15bd --- /dev/null +++ b/deps/oblib/src/lib/oblog/ob_syslog_rate_limiter.h @@ -0,0 +1,149 @@ +/** + * Copyright (c) 2021 OceanBase + * OceanBase CE is licensed under Mulan PubL v2. + * You can use this software according to the terms and conditions of the Mulan PubL v2. + * You may obtain a copy of Mulan PubL v2 at: + * http://license.coscl.org.cn/MulanPubL-2.0 + * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, + * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, + * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. + * See the Mulan PubL v2 for more details. + */ + +#ifndef OB_SYSLOG_RATE_LIMITER_H +#define OB_SYSLOG_RATE_LIMITER_H + +#include +#include +#include +#include "lib/atomic/ob_atomic.h" +#include "lib/utility/ob_rate_limiter.h" +#include "lib/ob_errno.h" +#include "lib/oblog/ob_log_level.h" +#include "lib/coro/co_var.h" + +namespace oceanbase +{ +namespace common +{ + +class ObISyslogRateLimiter : public lib::ObRateLimiter +{ +public: + ObISyslogRateLimiter(const int64_t rate = 0, const char *name = nullptr) + : lib::ObRateLimiter(rate, name) + { + } + + virtual int acquire(const int64_t permits = 1, + const int64_t arg0 = 0, + const int64_t arg1 = 0) override + { + return common::OB_NOT_SUPPORTED; + } + + virtual int try_acquire(const int64_t permits = 1, + const int64_t arg0 = 0, + const int64_t arg1 = 0) override + { + RLOCAL_INLINE(bool, in_acquire); + int ret = common::OB_SUCCESS; + int log_level = arg0; + int errcode = arg1; + if (!in_acquire) { + if (0 == rate_) { + ret = common::OB_EAGAIN; + } else if (OB_LOG_LEVEL_ERROR == log_level + || OB_LOG_LEVEL_DBA_WARN == log_level + || OB_LOG_LEVEL_DBA_ERROR == log_level) { + // allow + } else { + in_acquire = 1; + ret = do_acquire(permits, log_level, errcode); + in_acquire = 0; + } + } + return ret; + } + + virtual int do_acquire(int64_t permits, int log_level, int errcode) = 0; +}; + +class ObSimpleRateLimiterImpl +{ +public: + explicit ObSimpleRateLimiterImpl(int64_t &rate); + int try_acquire(int64_t premits); +private: + static int64_t current_time(); +private: + int64_t &rate_; + int64_t permits_; + int64_t last_ts_; +}; + +class ObSimpleRateLimiter : public lib::ObRateLimiter +{ +public: + explicit ObSimpleRateLimiter(int64_t rate) : ObRateLimiter(rate), impl_(rate_) {} + virtual int acquire(const int64_t permits = 1, + const int64_t arg0 = 0, + const int64_t arg1 = 0) override + { + return common::OB_NOT_SUPPORTED; + } + bool is_force_allows() const override { return false; } + void reset_force_allows() override { }; + + virtual int try_acquire(const int64_t permits = 1, + const int64_t arg0 = 0, + const int64_t arg1 = 0) override + { + UNUSED(arg0); + UNUSED(arg1); + return impl_.try_acquire(permits); + } +private: + ObSimpleRateLimiterImpl impl_; +}; + +class ObSyslogSimpleRateLimiter : public ObISyslogRateLimiter +{ + static constexpr int64_t DEFAULT_RATE = 100; +public: + explicit ObSyslogSimpleRateLimiter(int64_t rate = DEFAULT_RATE); + + bool is_force_allows() const override { return false; } + void reset_force_allows() override { }; + int do_acquire(int64_t permits, int log_level, int errcode) override + { + UNUSED(log_level); + UNUSED(errcode); + return impl_.try_acquire(permits); + } + +private: + ObSimpleRateLimiterImpl impl_; +}; + +class ObSyslogSampleRateLimiter : public ObISyslogRateLimiter +{ +public: + ObSyslogSampleRateLimiter(int64_t initial = 1000, int64_t thereafter = 100, + int64_t duration=1000L * 1000L/*1s*/); + bool is_force_allows() const override { return false; } + void reset_force_allows() override { }; + int do_acquire(int64_t permits, int log_level, int errcode) override; + +private: + int64_t initial_; + int64_t thereafter_; + int64_t duration_; + int64_t reset_ts_; + int64_t count_; +}; + +} // common +} // oceanbase + +#endif /* OB_SYSLOG_RATE_LIMITER_H */ diff --git a/deps/oblib/src/lib/oblog/ob_trace_log.cpp b/deps/oblib/src/lib/oblog/ob_trace_log.cpp index a0feaddc7..752cfae6d 100644 --- a/deps/oblib/src/lib/oblog/ob_trace_log.cpp +++ b/deps/oblib/src/lib/oblog/ob_trace_log.cpp @@ -20,7 +20,7 @@ namespace oceanbase namespace common { const char *const ObTraceLogConfig::LOG_LEVEL_ENV_KEY = "_OB_TRACE_LOG_LEVEL_"; -const char *const ObTraceLogConfig::level_strs_[] = {"ERROR", "USER_ERR", "WARN", "INFO", "TRACE", "DEBUG"}; +const char *const ObTraceLogConfig::level_strs_[] = {"ERROR", "WARN", "INFO", "EDIAG", "WDIAG", "TRACE", "DEBUG"}; volatile int ObTraceLogConfig::log_level_ = OB_LOG_LEVEL_TRACE; bool ObTraceLogConfig::got_env_ = false; diff --git a/deps/oblib/src/lib/oblog/ob_trace_log.h b/deps/oblib/src/lib/oblog/ob_trace_log.h index a25e7785b..307a7c088 100644 --- a/deps/oblib/src/lib/oblog/ob_trace_log.h +++ b/deps/oblib/src/lib/oblog/ob_trace_log.h @@ -74,7 +74,7 @@ OB_INLINE bool CHECK_TRACE_TIMES(uint64_t times, const uint64_t *cur_trace_id) //For logs that are forced to be printed, you can also judge according to the log level: if it is ERROR level, it will not print, and other levels will be forced to print #define FORCE_PRINT_TRACE(log_buffer, HEAD) \ - if (oceanbase::lib::is_trace_log_enabled() && OB_LOGGER.get_log_level() != ObLogger::LogLevel::LOG_ERROR) { \ + if (oceanbase::lib::is_trace_log_enabled() && OB_LOGGER.get_log_level() != OB_LOG_LEVEL_DBA_ERROR) { \ _Pragma("GCC diagnostic push") \ _Pragma("GCC diagnostic ignored \"-Wtautological-pointer-compare\"") \ if (NULL != log_buffer) { \ diff --git a/deps/oblib/src/lib/profile/ob_perf_event.cpp b/deps/oblib/src/lib/profile/ob_perf_event.cpp index faba8088a..7b287caa5 100644 --- a/deps/oblib/src/lib/profile/ob_perf_event.cpp +++ b/deps/oblib/src/lib/profile/ob_perf_event.cpp @@ -29,7 +29,7 @@ void ObPerfConfig::start() ObPerfWriter *perf_writer = get_perf_writer(); if (OB_NOT_NULL(perf_writer) && !perf_writer->is_opened()) { if (OB_SUCCESS != (err = perf_writer->open(data_filename_))) { - LOG_WARN("failed to open obperf data file", K(err)); + LOG_WARN_RET(err, "failed to open obperf data file", K(err)); } else { enabled_ = true; } @@ -43,7 +43,7 @@ void ObPerfConfig::stop() int err = OB_SUCCESS; if (OB_NOT_NULL(perf_writer) && perf_writer->is_opened()) { if (OB_SUCCESS != (err = perf_writer->close())) { - LOG_WARN("failed to close obperf data file", K(err)); + LOG_WARN_RET(err, "failed to close obperf data file", K(err)); } } } diff --git a/deps/oblib/src/lib/queue/ob_co_seq_queue.h b/deps/oblib/src/lib/queue/ob_co_seq_queue.h index 36163ee77..cf33faea4 100644 --- a/deps/oblib/src/lib/queue/ob_co_seq_queue.h +++ b/deps/oblib/src/lib/queue/ob_co_seq_queue.h @@ -72,11 +72,11 @@ public: { bool bret = false; if (NULL == items_) { - LIB_LOG(ERROR, "invalid item", K(items_)); + LIB_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "invalid item", K(items_)); } else if (id < 0) { - LIB_LOG(ERROR, "invalid id", K(id)); + LIB_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "invalid id", K(id)); } else if (0 == len_) { - LIB_LOG(ERROR, "invalid len", K(len_)); + LIB_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "invalid len", K(len_)); } else { bret = items_[id % len_] >= id + READY; } diff --git a/deps/oblib/src/lib/queue/ob_dedup_queue.cpp b/deps/oblib/src/lib/queue/ob_dedup_queue.cpp index e4a9a626f..301b79f99 100644 --- a/deps/oblib/src/lib/queue/ob_dedup_queue.cpp +++ b/deps/oblib/src/lib/queue/ob_dedup_queue.cpp @@ -192,14 +192,14 @@ IObDedupTask *ObDedupQueue::copy_task_(const IObDedupTask &task) { IObDedupTask *ret = NULL; if (IS_NOT_INIT) { - COMMON_LOG(WARN, "ObDedupQueue is not inited"); + COMMON_LOG_RET(WARN, OB_NOT_INIT, "ObDedupQueue is not inited"); } else { int64_t deep_copy_size = task.get_deep_copy_size(); char *memory = NULL; if (NULL == (memory = (char *)allocator_.alloc(deep_copy_size))) { - COMMON_LOG(WARN, "alloc memory fail", K(deep_copy_size), K(task.get_type())); + COMMON_LOG_RET(WARN, OB_ALLOCATE_MEMORY_FAILED, "alloc memory fail", K(deep_copy_size), K(task.get_type())); } else if (NULL == (ret = task.deep_copy(memory, deep_copy_size))) { - COMMON_LOG(WARN, "deep copy task object fail", K(deep_copy_size), KP(memory)); + COMMON_LOG_RET(WARN, OB_ERROR, "deep copy task object fail", K(deep_copy_size), KP(memory)); } else { COMMON_LOG(DEBUG, "deep copy task succ", K(ret), KP(memory), K(deep_copy_size)); ret->set_memory_ptr(memory); @@ -217,9 +217,9 @@ IObDedupTask *ObDedupQueue::copy_task_(const IObDedupTask &task) void ObDedupQueue::destroy_task_(IObDedupTask *task) { if (IS_NOT_INIT) { - COMMON_LOG(WARN, "ObDedupQueue is not inited"); + COMMON_LOG_RET(WARN, OB_NOT_INIT, "ObDedupQueue is not inited"); } else if (OB_ISNULL(task)) { - COMMON_LOG(WARN, "invalid argument"); + COMMON_LOG_RET(WARN, OB_INVALID_ARGUMENT, "invalid argument"); } else { char *memory = task->get_memory_ptr(); task->~IObDedupTask(); @@ -341,7 +341,7 @@ bool ObDedupQueue::gc_() if (OB_SUCCESS != hash_ret) { const int64_t type = task_list[i]->get_type(); task_list[i]->unlock(); - COMMON_LOG(WARN, "unexpected erase from task_map fail", K(hash_ret), K(type), K(task_list_size)); + COMMON_LOG_RET(WARN, OB_ERR_UNEXPECTED, "unexpected erase from task_map fail", K(hash_ret), K(type), K(task_list_size)); } else { task_list[i]->unlock(); destroy_task_(task_list[i]); @@ -365,7 +365,7 @@ void ObDedupQueue::run1() IObDedupTask *task2process = NULL; if (thread_pos < work_thread_num_) { if (OB_SUCCESS != (tmp_ret = task_queue_.pop(task2process)) && OB_UNLIKELY(tmp_ret != OB_ENTRY_NOT_EXIST)) { - COMMON_LOG(WARN, "task_queue_.pop error", K(tmp_ret), K(task2process)); + COMMON_LOG_RET(WARN, tmp_ret, "task_queue_.pop error", K(tmp_ret), K(task2process)); } else if (NULL != task2process) { thread_meta.on_process_start(task2process); task2process->process(); @@ -398,7 +398,7 @@ void ObDedupQueue::run1() if (0 == task_queue_.get_total()) { if (OB_SUCCESS != (tmp_ret = task_queue_sync_.wait(QUEUE_WAIT_TIME_MS))) { if (OB_TIMEOUT != tmp_ret) { - COMMON_LOG(WARN, "Fail to wait task queue sync, ", K(tmp_ret)); + COMMON_LOG_RET(WARN, tmp_ret, "Fail to wait task queue sync, ", K(tmp_ret)); } } } @@ -408,7 +408,7 @@ void ObDedupQueue::run1() if (thread_pos >= work_thread_num_) { if (OB_SUCCESS != (tmp_ret = work_thread_sync_.wait(MAX_QUEUE_WAIT_TIME_MS))) { if (OB_TIMEOUT != tmp_ret) { - COMMON_LOG(WARN, "Fail to wait work thread sync, ", K(tmp_ret)); + COMMON_LOG_RET(WARN, tmp_ret, "Fail to wait work thread sync, ", K(tmp_ret)); } } } diff --git a/deps/oblib/src/lib/rc/context.h b/deps/oblib/src/lib/rc/context.h index c8b94974b..4b100650c 100644 --- a/deps/oblib/src/lib/rc/context.h +++ b/deps/oblib/src/lib/rc/context.h @@ -789,7 +789,7 @@ public: ~_SBase() { if (OB_UNLIKELY(0 == i_)) { - OB_LOG(ERROR, "has break statement!!!"); + OB_LOG_RET(ERROR, OB_ERROR, "has break statement!!!"); } } int i_; diff --git a/deps/oblib/src/lib/resource/achunk_mgr.cpp b/deps/oblib/src/lib/resource/achunk_mgr.cpp index 4911ee3fb..d88c5f86e 100644 --- a/deps/oblib/src/lib/resource/achunk_mgr.cpp +++ b/deps/oblib/src/lib/resource/achunk_mgr.cpp @@ -101,7 +101,7 @@ void *AChunkMgr::direct_alloc(const uint64_t size, const bool can_use_huge_page, ATOMIC_FAA(&large_maps_, 1); } } else { - LOG_ERROR("low alloc fail", K(size), K(orig_errno), K(errno)); + LOG_ERROR_RET(OB_ALLOCATE_MEMORY_FAILED, "low alloc fail", K(size), K(orig_errno), K(errno)); auto &afc = g_alloc_failed_ctx(); afc.reason_ = PHYSICAL_MEMORY_EXHAUST; afc.alloc_size_ = size; @@ -143,7 +143,7 @@ void *AChunkMgr::low_alloc(const uint64_t size, const bool can_use_huge_page, bo if (SANITY_BOOL_EXPR(alloc_shadow)) { int64_t new_addr = ATOMIC_FAA(&global_canonical_addr, size); if (!SANITY_ADDR_IN_RANGE((void*)new_addr)) { - LOG_WARN("sanity address exhausted", K(errno), KP(new_addr)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "sanity address exhausted", K(errno), KP(new_addr)); ATOMIC_FAA(&global_canonical_addr, -size); ptr = NULL; // let it goon, it means no shadow, same as out of checker! // in aarch64, mmap will return EPERM error when NULL address and MAP_FIXED are privided at the same time @@ -173,7 +173,7 @@ void *AChunkMgr::low_alloc(const uint64_t size, const bool can_use_huge_page, bo void *shad_ptr = SANITY_TO_SHADOW(ptr); ssize_t shad_size = SANITY_TO_SHADOW_SIZE(size); if (MAP_FAILED == ::mmap(shad_ptr, shad_size, prot, flags, fd, offset)) { - LOG_ERROR("sanity alloc shadow failed", K(errno), KP(shad_ptr)); + LOG_ERROR_RET(OB_ALLOCATE_MEMORY_FAILED, "sanity alloc shadow failed", K(errno), KP(shad_ptr)); abort(); } else { IGNORE_RETURN ATOMIC_FAA(&shadow_hold_, shad_size); @@ -253,8 +253,8 @@ AChunk *AChunkMgr::alloc_chunk(const uint64_t size, bool high_prio) } SANITY_UNPOISON(chunk, all_size); // maybe no need? } else if (REACH_TIME_INTERVAL(1 * 1000 * 1000)) { - _OB_LOG(WARN, "oops, over total memory limit, hold=%ld limit=%ld", - get_hold(), get_limit()); + LOG_DBA_WARN(OB_ALLOCATE_MEMORY_FAILED, "msg", "oops, over total memory limit" , + "hold", get_hold(), "limit", get_limit()); } return chunk; @@ -321,8 +321,8 @@ AChunk *AChunkMgr::alloc_co_chunk(const uint64_t size) } //SANITY_UNPOISON(chunk, all_size); // maybe no need? } else if (REACH_TIME_INTERVAL(1 * 1000 * 1000)) { - _OB_LOG(WARN, "oops, over total memory limit, hold=%ld limit=%ld", - get_hold(), get_limit()); + LOG_DBA_WARN(OB_ALLOCATE_MEMORY_FAILED, "msg", "oops, over total memory limit" , + "hold", get_hold(), "limit", get_limit()); } return chunk; diff --git a/deps/oblib/src/lib/resource/ob_resource_mgr.cpp b/deps/oblib/src/lib/resource/ob_resource_mgr.cpp index 58a37707a..5fc35eec8 100644 --- a/deps/oblib/src/lib/resource/ob_resource_mgr.cpp +++ b/deps/oblib/src/lib/resource/ob_resource_mgr.cpp @@ -158,7 +158,7 @@ AChunk *ObTenantMemoryMgr::alloc_chunk(const int64_t size, const ObMemAttr &attr void ObTenantMemoryMgr::free_chunk(AChunk *chunk, const ObMemAttr &attr) { if (tenant_id_ != attr.tenant_id_) { - LOG_ERROR("tenant_id not match", K_(tenant_id), K(attr)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "tenant_id not match", K_(tenant_id), K(attr)); } else if (NULL != chunk) { bool reach_ctx_limit = false; const int64_t hold_size = static_cast(chunk->hold()); @@ -310,7 +310,7 @@ bool ObTenantMemoryMgr::update_ctx_hold(const uint64_t ctx_id, const int64_t siz afc.ctx_limit_ = limit; } } else { - LOG_ERROR("invalid ctx_id", K(ctx_id)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "invalid ctx_id", K(ctx_id)); } return updated; } @@ -564,7 +564,7 @@ void ObResourceMgr::dec_ref(ObTenantResourceMgr *tenant_resource_mgr) } } } else if (ref_cnt < 0) { - LOG_ERROR("ref_cnt negative", K(ref_cnt)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "ref_cnt negative", K(ref_cnt)); } } } diff --git a/deps/oblib/src/lib/restore/ob_object_device.cpp b/deps/oblib/src/lib/restore/ob_object_device.cpp index a0861538a..d67dafc8d 100644 --- a/deps/oblib/src/lib/restore/ob_object_device.cpp +++ b/deps/oblib/src/lib/restore/ob_object_device.cpp @@ -590,21 +590,21 @@ int ObObjectDevice::rename(const char *oldpath, const char *newpath) { UNUSED(oldpath); UNUSED(newpath); - OB_LOG(WARN, "rename is not support in object device !", K(device_type_)); + OB_LOG_RET(WARN, OB_NOT_SUPPORTED, "rename is not support in object device !", K(device_type_)); return OB_NOT_SUPPORTED; } int ObObjectDevice::reconfig(const ObIODOpts &opts) { UNUSED(opts); - OB_LOG(WARN, "reconfig is not support in object device !", K(device_type_)); + OB_LOG_RET(WARN, OB_NOT_SUPPORTED, "reconfig is not support in object device !", K(device_type_)); return OB_NOT_SUPPORTED; } int ObObjectDevice::seal_file(const ObIOFd &fd) { UNUSED(fd); - OB_LOG(WARN, "seal file is not support in object device !", K(fd)); + OB_LOG_RET(WARN, OB_NOT_SUPPORTED, "seal file is not support in object device !", K(fd)); return OB_NOT_SUPPORTED; } @@ -612,14 +612,14 @@ int ObObjectDevice::scan_dir(const char *dir_name, int (*func)(const dirent *ent { UNUSED(dir_name); UNUSED(func); - OB_LOG(WARN, "scan_dir with callback is not support in object device !", K(device_type_)); + OB_LOG_RET(WARN, OB_NOT_SUPPORTED, "scan_dir with callback is not support in object device !", K(device_type_)); return OB_NOT_SUPPORTED; } int ObObjectDevice::fsync(const ObIOFd &fd) { UNUSED(fd); - OB_LOG(WARN, "fsync is not support in object device !", K(device_type_)); + OB_LOG_RET(WARN, OB_NOT_SUPPORTED, "fsync is not support in object device !", K(device_type_)); return OB_NOT_SUPPORTED; } @@ -629,7 +629,7 @@ int ObObjectDevice::fallocate(const ObIOFd &fd, mode_t mode, const int64_t offse UNUSED(mode); UNUSED(offset); UNUSED(len); - OB_LOG(WARN, "fallocate is not support in object device !", K(device_type_)); + OB_LOG_RET(WARN, OB_NOT_SUPPORTED, "fallocate is not support in object device !", K(device_type_)); return OB_NOT_SUPPORTED; } @@ -637,7 +637,7 @@ int ObObjectDevice::truncate(const char *pathname, const int64_t len) { UNUSED(pathname); UNUSED(len); - OB_LOG(WARN, "truncate is not support in object device !", K(device_type_)); + OB_LOG_RET(WARN, OB_NOT_SUPPORTED, "truncate is not support in object device !", K(device_type_)); return OB_NOT_SUPPORTED; } @@ -645,7 +645,7 @@ int ObObjectDevice::truncate(const char *pathname, const int64_t len) int ObObjectDevice::mark_blocks(ObIBlockIterator &block_iter) { UNUSED(block_iter); - OB_LOG(WARN, "mark_blocks is not support in object device !", K(device_type_)); + OB_LOG_RET(WARN, OB_NOT_SUPPORTED, "mark_blocks is not support in object device !", K(device_type_)); return OB_NOT_SUPPORTED; } @@ -653,7 +653,7 @@ int ObObjectDevice::alloc_block(const ObIODOpts *opts, ObIOFd &block_id) { UNUSED(opts); UNUSED(block_id); - OB_LOG(WARN, "alloc_block is not support in object device !", K(device_type_)); + OB_LOG_RET(WARN, OB_NOT_SUPPORTED, "alloc_block is not support in object device !", K(device_type_)); return OB_NOT_SUPPORTED; } @@ -662,33 +662,33 @@ int ObObjectDevice::alloc_blocks(const ObIODOpts *opts, const int64_t count, ObI UNUSED(opts); UNUSED(count); UNUSED(blocks); - OB_LOG(WARN, "alloc_blocks is not support in object device !", K(device_type_)); + OB_LOG_RET(WARN, OB_NOT_SUPPORTED, "alloc_blocks is not support in object device !", K(device_type_)); return OB_NOT_SUPPORTED; } void ObObjectDevice::free_block(const ObIOFd &block_id) { UNUSED(block_id); - OB_LOG(WARN, "free_block is not support in object device !", K(device_type_)); + OB_LOG_RET(WARN, OB_NOT_SUPPORTED, "free_block is not support in object device !", K(device_type_)); } int ObObjectDevice::fsync_block() { - OB_LOG(WARN, "fsync_block is not support in object device !", K(device_type_)); + OB_LOG_RET(WARN, OB_NOT_SUPPORTED, "fsync_block is not support in object device !", K(device_type_)); return OB_NOT_SUPPORTED; } int ObObjectDevice::mark_blocks(const ObIArray &blocks) { UNUSED(blocks); - OB_LOG(WARN, "mark_blocks is not support in object device !", K(device_type_)); + OB_LOG_RET(WARN, OB_NOT_SUPPORTED, "mark_blocks is not support in object device !", K(device_type_)); return OB_NOT_SUPPORTED; } int ObObjectDevice::get_restart_sequence(uint32_t &restart_id) const { UNUSED(restart_id); - OB_LOG(WARN, "get_restart_sequence is not support in object device !", K(device_type_)); + OB_LOG_RET(WARN, OB_NOT_SUPPORTED, "get_restart_sequence is not support in object device !", K(device_type_)); return OB_NOT_SUPPORTED; } @@ -697,14 +697,14 @@ int ObObjectDevice::io_setup(uint32_t max_events, ObIOContext *&io_context) { UNUSED(max_events); UNUSED(io_context); - OB_LOG(WARN, "io_setup is not support in object device !", K(device_type_)); + OB_LOG_RET(WARN, OB_NOT_SUPPORTED, "io_setup is not support in object device !", K(device_type_)); return OB_NOT_SUPPORTED; } int ObObjectDevice::io_destroy(ObIOContext *io_context) { UNUSED(io_context); - OB_LOG(WARN, "io_destroy is not support in object device !", K(device_type_)); + OB_LOG_RET(WARN, OB_NOT_SUPPORTED, "io_destroy is not support in object device !", K(device_type_)); return OB_NOT_SUPPORTED; } @@ -717,7 +717,7 @@ int ObObjectDevice::io_prepare_pwrite(const ObIOFd &fd, void *buf, size_t count, UNUSED(offset); UNUSED(iocb); UNUSED(callback); - OB_LOG(WARN, "io_prepare_pwrite is not support in object device !", K(device_type_)); + OB_LOG_RET(WARN, OB_NOT_SUPPORTED, "io_prepare_pwrite is not support in object device !", K(device_type_)); return OB_NOT_SUPPORTED; } @@ -730,7 +730,7 @@ int ObObjectDevice::io_prepare_pread(const ObIOFd &fd, void *buf, size_t count, UNUSED(offset); UNUSED(iocb); UNUSED(callback); - OB_LOG(WARN, "io_prepare_pread is not support in object device !", K(device_type_)); + OB_LOG_RET(WARN, OB_NOT_SUPPORTED, "io_prepare_pread is not support in object device !", K(device_type_)); return OB_NOT_SUPPORTED; } @@ -738,7 +738,7 @@ int ObObjectDevice::io_submit(ObIOContext *io_context, ObIOCB *iocb) { UNUSED(io_context); UNUSED(iocb); - OB_LOG(WARN, "io_submit is not support in object device !", K(device_type_)); + OB_LOG_RET(WARN, OB_NOT_SUPPORTED, "io_submit is not support in object device !", K(device_type_)); return OB_NOT_SUPPORTED; } @@ -746,7 +746,7 @@ int ObObjectDevice::io_cancel(ObIOContext *io_context, ObIOCB *iocb) { UNUSED(io_context); UNUSED(iocb); - OB_LOG(WARN, "io_cancel is not support in object device !", K(device_type_)); + OB_LOG_RET(WARN, OB_NOT_SUPPORTED, "io_cancel is not support in object device !", K(device_type_)); return OB_NOT_SUPPORTED; } int ObObjectDevice::io_getevents(ObIOContext *io_context, int64_t min_nr, @@ -756,58 +756,58 @@ int ObObjectDevice::io_getevents(ObIOContext *io_context, int64_t min_nr, UNUSED(min_nr); UNUSED(events); UNUSED(timeout); - OB_LOG(WARN, "io_getevents is not support in object device !", K(device_type_)); + OB_LOG_RET(WARN, OB_NOT_SUPPORTED, "io_getevents is not support in object device !", K(device_type_)); return OB_NOT_SUPPORTED; } ObIOCB *ObObjectDevice::alloc_iocb() { - OB_LOG(WARN, "alloc_iocb is not support in object device !", K(device_type_)); + OB_LOG_RET(WARN, OB_NOT_SUPPORTED, "alloc_iocb is not support in object device !", K(device_type_)); return NULL; } ObIOEvents *ObObjectDevice::alloc_io_events(const uint32_t max_events) { UNUSED(max_events); - OB_LOG(WARN, "alloc_io_events is not support in object device !", K(device_type_)); + OB_LOG_RET(WARN, OB_NOT_SUPPORTED, "alloc_io_events is not support in object device !", K(device_type_)); return NULL; } void ObObjectDevice::free_iocb(ObIOCB *iocb) { UNUSED(iocb); - OB_LOG(WARN, "free_iocb is not support in object device !", K(device_type_)); + OB_LOG_RET(WARN, OB_NOT_SUPPORTED, "free_iocb is not support in object device !", K(device_type_)); } void ObObjectDevice::free_io_events(ObIOEvents *io_event) { UNUSED(io_event); - OB_LOG(WARN, "free_io_events is not support in object device !", K(device_type_)); + OB_LOG_RET(WARN, OB_NOT_SUPPORTED, "free_io_events is not support in object device !", K(device_type_)); } // space management interface int64_t ObObjectDevice::get_total_block_size() const { - OB_LOG(WARN, "get_total_block_size is not support in object device !", K(device_type_)); + OB_LOG_RET(WARN, OB_NOT_SUPPORTED, "get_total_block_size is not support in object device !", K(device_type_)); return -1; } int64_t ObObjectDevice::get_free_block_count() const { - OB_LOG(WARN, "get_free_block_count is not support in object device !", K(device_type_)); + OB_LOG_RET(WARN, OB_NOT_SUPPORTED, "get_free_block_count is not support in object device !", K(device_type_)); return -1; } int64_t ObObjectDevice::get_reserved_block_count() const { - OB_LOG(WARN, "get_reserved_block_count is not support in object device !", K(device_type_)); + OB_LOG_RET(WARN, OB_NOT_SUPPORTED, "get_reserved_block_count is not support in object device !", K(device_type_)); return -1; } int ObObjectDevice::check_space_full(const int64_t required_size) const { UNUSED(required_size); - OB_LOG(WARN, "check_space_full is not support in object device !", K(device_type_)); + OB_LOG_RET(WARN, OB_NOT_SUPPORTED, "check_space_full is not support in object device !", K(device_type_)); return OB_NOT_SUPPORTED; } diff --git a/deps/oblib/src/lib/restore/ob_storage.cpp b/deps/oblib/src/lib/restore/ob_storage.cpp index 7831c9d0b..cb8f9c6ad 100644 --- a/deps/oblib/src/lib/restore/ob_storage.cpp +++ b/deps/oblib/src/lib/restore/ob_storage.cpp @@ -46,7 +46,7 @@ void print_access_storage_log( *is_slow = true; } speed = 1.0 * (double)size / 1024 / 1024 * 1000 * 1000 / (double)cost_ts; - _STORAGE_LOG(WARN, "access storage op=%s uri=%.*s size=%ld Byte cost_ts=%ld us speed=%.2f MB/s", + _STORAGE_LOG_RET(WARN, OB_SUCCESS, "access storage op=%s uri=%.*s size=%ld Byte cost_ts=%ld us speed=%.2f MB/s", msg, uri.length(), uri.ptr(), size, cost_ts, speed); } } @@ -140,7 +140,7 @@ void ObStorageGlobalIns::fin() void ObStorageGlobalIns::set_io_prohibited(bool prohibited) { - STORAGE_LOG(WARN, "set_io_prohibited", K_(io_prohibited), K(prohibited)); + STORAGE_LOG_RET(WARN, OB_SUCCESS, "set_io_prohibited", K_(io_prohibited), K(prohibited)); io_prohibited_ = prohibited; } @@ -548,7 +548,7 @@ ObStorageReader::ObStorageReader() ObStorageReader::~ObStorageReader() { if (NULL != reader_) { - STORAGE_LOG(ERROR, "reader not closed", KCSTRING(uri_)); + STORAGE_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "reader not closed", KCSTRING(uri_)); } } @@ -669,7 +669,7 @@ ObStorageWriter::ObStorageWriter() ObStorageWriter::~ObStorageWriter() { if (NULL != writer_) { - STORAGE_LOG(ERROR, "writer not close"); + STORAGE_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "writer not close"); } } @@ -795,7 +795,7 @@ ObStorageAppender::ObStorageAppender(StorageOpenMode mode) ObStorageAppender::~ObStorageAppender() { if (is_opened_ && NULL != appender_) { - STORAGE_LOG(ERROR, "appender not close"); + STORAGE_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "appender not close"); } } @@ -967,7 +967,7 @@ int64_t ObStorageAppender::get_length() int64_t ret_int = -1; if (OB_ISNULL(appender_)) { - STORAGE_LOG(WARN, "appender not opened"); + STORAGE_LOG_RET(WARN, common::OB_ERR_UNEXPECTED, "appender not opened"); } else { ret_int = appender_->get_length(); } diff --git a/deps/oblib/src/lib/restore/ob_storage_file.cpp b/deps/oblib/src/lib/restore/ob_storage_file.cpp index 26445c10c..c04e3c6c2 100644 --- a/deps/oblib/src/lib/restore/ob_storage_file.cpp +++ b/deps/oblib/src/lib/restore/ob_storage_file.cpp @@ -540,9 +540,9 @@ ObStorageFileReader::~ObStorageFileReader() { int tmp_ret = OB_SUCCESS; if (is_opened_) { - STORAGE_LOG(ERROR, "reader is not closed", KCSTRING(path_), K(fd_)); + STORAGE_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "reader is not closed", KCSTRING(path_), K(fd_)); if (OB_SUCCESS != (tmp_ret = close())) { - STORAGE_LOG(WARN, "failed to close reader", K(tmp_ret), KCSTRING(path_), K(fd_)); + STORAGE_LOG_RET(WARN, tmp_ret, "failed to close reader", K(tmp_ret), KCSTRING(path_), K(fd_)); } } } @@ -649,9 +649,9 @@ ObStorageFileBaseWriter::~ObStorageFileBaseWriter() { int tmp_ret = OB_SUCCESS; if (is_opened_) { - STORAGE_LOG(ERROR, "writer is not closed", KCSTRING(path_), K(fd_)); + STORAGE_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "writer is not closed", KCSTRING(path_), K(fd_)); if (OB_SUCCESS != (tmp_ret = close())) { - STORAGE_LOG(WARN, "failed to close writer", K(tmp_ret), KCSTRING(path_), K(fd_)); + STORAGE_LOG_RET(WARN, tmp_ret, "failed to close writer", K(tmp_ret), KCSTRING(path_), K(fd_)); } } } @@ -805,10 +805,10 @@ ObStorageFileWriter::~ObStorageFileWriter() { int tmp_ret = OB_SUCCESS; if (is_opened_) { - STORAGE_LOG(ERROR, "wrtier is not closed", KCSTRING(path_), K(fd_)); + STORAGE_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "wrtier is not closed", KCSTRING(path_), K(fd_)); has_error_ = true; if (OB_SUCCESS != (tmp_ret = close())) { - STORAGE_LOG(WARN, "failed to close wrtier", K(tmp_ret), KCSTRING(path_), K(fd_)); + STORAGE_LOG_RET(WARN, tmp_ret, "failed to close wrtier", K(tmp_ret), KCSTRING(path_), K(fd_)); } } } @@ -894,9 +894,9 @@ ObStorageFileAppender::~ObStorageFileAppender() { int tmp_ret = OB_SUCCESS; if (is_opened_) { - STORAGE_LOG(ERROR, "appender is not closed"); + STORAGE_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "appender is not closed"); if (OB_SUCCESS != (tmp_ret = close())) { - STORAGE_LOG(WARN, "failed to close appender", K(tmp_ret), K(fd_)); + STORAGE_LOG_RET(WARN, tmp_ret, "failed to close appender", K(tmp_ret), K(fd_)); } } } 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 8bd241e82..fcacd9130 100644 --- a/deps/oblib/src/lib/restore/ob_storage_oss_base.cpp +++ b/deps/oblib/src/lib/restore/ob_storage_oss_base.cpp @@ -628,10 +628,10 @@ int ObStorageOssBase::get_oss_file_meta(const ObString &bucket_ob_string, void ObStorageOssBase::print_oss_info(aos_status_s *aos_ret) { if (NULL != aos_ret) { - OB_LOG(WARN, "oss info ", K(aos_ret->code), KCSTRING(aos_ret->error_code), + OB_LOG_RET(WARN, OB_SUCCESS, "oss info ", K(aos_ret->code), KCSTRING(aos_ret->error_code), KCSTRING(aos_ret->error_msg), KCSTRING(aos_ret->req_id), KCSTRING(oss_account_->oss_domain_), KCSTRING(oss_endpoint_), KCSTRING(oss_account_->oss_id_)); } else { - OB_LOG(WARN, "oss info ", KCSTRING(oss_account_->oss_domain_), KCSTRING(oss_endpoint_), KCSTRING(oss_account_->oss_id_)); + OB_LOG_RET(WARN, OB_SUCCESS, "oss info ", KCSTRING(oss_account_->oss_domain_), KCSTRING(oss_endpoint_), KCSTRING(oss_account_->oss_id_)); } } @@ -974,7 +974,7 @@ int ObStorageOssMultiPartWriter::close() const int64_t total_cost_time = ObTimeUtility::current_time() - start_time; if (total_cost_time > 3 * 1000 * 1000) { - OB_LOG(WARN, "oss writer close cost too much time", K(total_cost_time), K(ret)); + OB_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "oss writer close cost too much time", K(total_cost_time), K(ret)); } return ret; @@ -1207,7 +1207,7 @@ int ObStorageOssUtil::open(void* account) void ObStorageOssUtil::close() { if (!is_opened_) { - OB_LOG(WARN, "oss util cannot close before it is opened"); + OB_LOG_RET(WARN, OB_ERR_UNEXPECTED, "oss util cannot close before it is opened"); } else { is_opened_ = false; oss_account_ = NULL; @@ -2001,7 +2001,7 @@ int ObStorageOssAppendWriter::do_write(const char *buf, const int64_t size, cons long double speed = (cost_time <= 0) ? 0 : (long double) size * 1000.0 * 1000.0 / 1024.0 / 1024.0 / cost_time; if (cost_time > warn_cost_time) { - _OB_LOG(WARN, "oss append one object cost too much time, time:%ld, size:%ld speed:%.2Lf MB/s file_length=%ld, ret=%d", + _OB_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "oss append one object cost too much time, time:%ld, size:%ld speed:%.2Lf MB/s file_length=%ld, ret=%d", cost_time, size, speed, file_length_, ret); print_oss_info(aos_ret); } else { diff --git a/deps/oblib/src/lib/signal/ob_signal_handlers.cpp b/deps/oblib/src/lib/signal/ob_signal_handlers.cpp index 16809746d..5814b6f61 100644 --- a/deps/oblib/src/lib/signal/ob_signal_handlers.cpp +++ b/deps/oblib/src/lib/signal/ob_signal_handlers.cpp @@ -93,7 +93,7 @@ void hook_sigsegv_msg(int sig, siginfo_t *si, void *context) // thread_name char tname[16]; prctl(PR_GET_NAME, tname); - _OB_LOG(ERROR, "CRASH ERROR!!! sig=%d, sig_code=%d, sig_addr=%p, tid=%ld, tname=%s", + _OB_LOG_RET(ERROR, OB_ERROR, "CRASH ERROR!!! sig=%d, sig_code=%d, sig_addr=%p, tid=%ld, tname=%s", sig, si->si_code, si->si_addr, GETTID(), tname); } } diff --git a/deps/oblib/src/lib/ssl/ob_ssl_config.cpp b/deps/oblib/src/lib/ssl/ob_ssl_config.cpp index 4e41b21c0..b008a41f6 100644 --- a/deps/oblib/src/lib/ssl/ob_ssl_config.cpp +++ b/deps/oblib/src/lib/ssl/ob_ssl_config.cpp @@ -109,9 +109,9 @@ static X509* ob_ssl_get_sm_cert_memory(const char *cert) BIO *bio = NULL; X509 *x509 = NULL; if (NULL == (bio = BIO_new_mem_buf((void *)cert, -1))) { - COMMON_LOG(ERROR, "BIO_new_mem_buf failed", K(cert)); + COMMON_LOG_RET(ERROR, OB_ALLOCATE_MEMORY_FAILED, "BIO_new_mem_buf failed", K(cert)); } else if (NULL == (x509 = PEM_read_bio_X509(bio, NULL, NULL, NULL))) { - COMMON_LOG(WARN, "PEM_read_bio_X509 failed", K(cert)); + COMMON_LOG_RET(WARN, OB_ERR_SYS, "PEM_read_bio_X509 failed", K(cert)); } if (NULL != bio) { BIO_free(bio); @@ -124,9 +124,9 @@ static EVP_PKEY* ob_ssl_get_sm_pkey_memory(const char *key) BIO *bio = NULL; EVP_PKEY *pkey = NULL; if (NULL == (bio = BIO_new_mem_buf((void *)key, strlen(key)))) { - COMMON_LOG(ERROR, "BIO_new_mem_buf failed", K(key)); + COMMON_LOG_RET(ERROR, OB_ALLOCATE_MEMORY_FAILED, "BIO_new_mem_buf failed", K(key)); } else if (NULL == (pkey = PEM_read_bio_PrivateKey(bio, NULL, NULL, NULL))) { - COMMON_LOG(WARN, "PEM_read_bio_PrivateKey failed", K(key)); + COMMON_LOG_RET(WARN, OB_ERR_SYS, "PEM_read_bio_PrivateKey failed", K(key)); } if (NULL != bio) { BIO_free(bio); @@ -486,7 +486,7 @@ ssize_t ob_read_regard_ssl(int fd, void *buf, size_t nbytes) ssize_t rbytes = 0; SSL* ssl = NULL; if (OB_UNLIKELY(fd < 0 || fd >= FD_MAX)) { - COMMON_LOG(ERROR, "fd is beyond limit", K(fd)); + COMMON_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "fd is beyond limit", K(fd)); rbytes = -1; errno = EINVAL; } else if (OB_LIKELY(NULL == (ssl = gs_ssl_array[fd].ssl))) { @@ -508,11 +508,11 @@ ssize_t ob_read_regard_ssl(int fd, void *buf, size_t nbytes) } else if (SSL_ERROR_WANT_WRITE == err) { rbytes = -1; errno = EIO; - COMMON_LOG(ERROR, "SSL_do_handshake want write in reading process", K(fd)); + COMMON_LOG_RET(ERROR, OB_ERR_SYS, "SSL_do_handshake want write in reading process", K(fd)); } else { rbytes = -1; errno = EIO; - COMMON_LOG(WARN, "SSL_do_handshake failed", K(fd), K(ERR_error_string(ERR_get_error(), NULL))); + COMMON_LOG_RET(WARN, OB_ERR_SYS, "SSL_do_handshake failed", K(fd), K(ERR_error_string(ERR_get_error(), NULL))); } } } else { @@ -527,16 +527,16 @@ ssize_t ob_read_regard_ssl(int fd, void *buf, size_t nbytes) } else if (SSL_ERROR_WANT_WRITE == ssl_error) { rbytes = -1; errno = EIO; - COMMON_LOG(ERROR, "SSL_read want write, maybe peer started SSL renegotiation", K(fd)); + COMMON_LOG_RET(ERROR, OB_ERR_SYS, "SSL_read want write, maybe peer started SSL renegotiation", K(fd)); } else if (SSL_ERROR_ZERO_RETURN == ssl_error || 0 == ERR_peek_error()) { /* connection shutdown by peer*/ rbytes = 0; - COMMON_LOG(WARN, "SSL_read, peer shutdown cleanly", K(fd), K(ssl_error)); + COMMON_LOG_RET(WARN, OB_ERR_SYS, "SSL_read, peer shutdown cleanly", K(fd), K(ssl_error)); } else { rbytes = -1; int sys_errno = errno; errno = EIO; - COMMON_LOG(WARN, "SSL_read failed", K(fd), K(sys_errno), K(ssl_error), K(ERR_error_string(ERR_get_error(), NULL))); + COMMON_LOG_RET(WARN, OB_ERR_SYS, "SSL_read failed", K(fd), K(sys_errno), K(ssl_error), K(ERR_error_string(ERR_get_error(), NULL))); } } } @@ -549,7 +549,7 @@ ssize_t ob_write_regard_ssl(int fd, const void *buf, size_t nbytes) ssize_t wbytes = 0; SSL* ssl = NULL; if (OB_UNLIKELY(fd < 0 || fd >= FD_MAX)) { - COMMON_LOG(ERROR, "fd is beyond limit", K(fd)); + COMMON_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "fd is beyond limit", K(fd)); wbytes = -1; errno = EINVAL; } else if (OB_LIKELY(NULL == (ssl = gs_ssl_array[fd].ssl))) { @@ -571,7 +571,7 @@ ssize_t ob_write_regard_ssl(int fd, const void *buf, size_t nbytes) } else { wbytes = -1; errno = EIO; - COMMON_LOG(ERROR, "SSL_do_handshake failed", K(fd), K(ERR_error_string(ERR_get_error(), NULL))); + COMMON_LOG_RET(ERROR, OB_ERR_SYS, "SSL_do_handshake failed", K(fd), K(ERR_error_string(ERR_get_error(), NULL))); } } } else { @@ -585,10 +585,10 @@ ssize_t ob_write_regard_ssl(int fd, const void *buf, size_t nbytes) errno = EAGAIN; } else if (SSL_ERROR_WANT_READ == ssl_error) { errno = EIO; - COMMON_LOG(ERROR, "SSL_write want read", K(fd)); + COMMON_LOG_RET(ERROR, OB_ERR_SYS, "SSL_write want read", K(fd)); } else { errno = EIO; - COMMON_LOG(ERROR, "ssl write faild", K(fd), K(ERR_error_string(ERR_get_error(), NULL))); + COMMON_LOG_RET(ERROR, OB_ERR_SYS, "ssl write faild", K(fd), K(ERR_error_string(ERR_get_error(), NULL))); } } } diff --git a/deps/oblib/src/lib/task/ob_timer.cpp b/deps/oblib/src/lib/task/ob_timer.cpp index c894faa11..868a1b0c7 100644 --- a/deps/oblib/src/lib/task/ob_timer.cpp +++ b/deps/oblib/src/lib/task/ob_timer.cpp @@ -313,7 +313,7 @@ void ObTimer::run1() token.scheduled_time = ObSysTime::now(ObSysTime::Monotonic).toMicroSeconds() + token.delay; if (OB_SUCCESS != (tmp_ret = insert_token( Token(token.scheduled_time, token.delay, token.task)))) { - OB_LOG(WARN, "insert token error", K(tmp_ret), K(token)); + OB_LOG_RET(WARN, tmp_ret, "insert token error", K(tmp_ret), K(token)); } } has_running_task_ = false; @@ -363,9 +363,9 @@ void ObTimer::run1() static const int64_t MAX_REALTIME_DELTA1 = 20000; // 20ms static const int64_t MAX_REALTIME_DELTA2 = 500000; // 500ms if (delta > MAX_REALTIME_DELTA1) { - OB_LOG(WARN, "Hardware clock skew", K(rt1), K(rt2), K_(wakeup_time), K(now)); + OB_LOG_RET(WARN, OB_ERR_SYS, "Hardware clock skew", K(rt1), K(rt2), K_(wakeup_time), K(now)); } else if (delta > MAX_REALTIME_DELTA2) { - OB_LOG(ERROR, "Hardware clock error", K(rt1), K(rt2), K_(wakeup_time), K(now)); + OB_LOG_RET(ERROR, OB_ERR_SYS, "Hardware clock error", K(rt1), K(rt2), K_(wakeup_time), K(now)); } } monitor_.timed_wait(ObSysTime(wakeup_time_ - now)); @@ -392,7 +392,7 @@ void ObTimer::run1() } if (elapsed_time > 1000 * 1000) { - OB_LOG(WARN, "timer task cost too much time", "task", to_cstring(*token.task), + OB_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "timer task cost too much time", "task", to_cstring(*token.task), K(start_time), K(end_time), K(elapsed_time), KP(this), K_(thread_id)); } } diff --git a/deps/oblib/src/lib/task/ob_timer_monitor.cpp b/deps/oblib/src/lib/task/ob_timer_monitor.cpp index 4da6ad954..4d1c08b06 100644 --- a/deps/oblib/src/lib/task/ob_timer_monitor.cpp +++ b/deps/oblib/src/lib/task/ob_timer_monitor.cpp @@ -188,7 +188,7 @@ void ObTimerMonitor::dump(const bool print_trace) int64_t timeout = std::max(std::min(record.interval_ * 100, TIMER_TIMEOUT_MAX), TIMER_TIMEOUT_MIN); if (curr_time > record.start_time_ + timeout) { // timeout - OB_LOG(ERROR, "TIMER TASK TIMEOUT: timer task cost too much time", K(record)); + OB_LOG_RET(ERROR, OB_ERR_TOO_MUCH_TIME, "TIMER TASK TIMEOUT: timer task cost too much time", K(record)); } } diff --git a/deps/oblib/src/lib/thread/ob_dynamic_thread_pool.cpp b/deps/oblib/src/lib/thread/ob_dynamic_thread_pool.cpp index 071201e1f..d99aea9d0 100644 --- a/deps/oblib/src/lib/thread/ob_dynamic_thread_pool.cpp +++ b/deps/oblib/src/lib/thread/ob_dynamic_thread_pool.cpp @@ -50,7 +50,7 @@ ObDynamicThreadPool::ObDynamicThreadPool() ObDynamicThreadPool::~ObDynamicThreadPool() { if (!is_stop_) { - COMMON_LOG(ERROR, "ObDynamicThreadPool is destruction before stop"); + COMMON_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "ObDynamicThreadPool is destruction before stop"); is_stop_ = true; } destroy(); @@ -134,7 +134,7 @@ void ObDynamicThreadPool::task_thread_idle() ObThreadCondGuard guard(task_thread_cond_); if (OB_SUCCESS != (tmp_ret = task_thread_cond_.wait(DEFAULT_CHECK_TIME_MS))) { if (OB_TIMEOUT != tmp_ret) { - STORAGE_LOG(WARN, "failed to idle", K(tmp_ret)); + STORAGE_LOG_RET(WARN, tmp_ret, "failed to idle", K(tmp_ret)); } } } @@ -148,20 +148,20 @@ void ObDynamicThreadPool::run1() } while (!is_stop_) { if (OB_SUCCESS != (tmp_ret = check_thread_status())) { - COMMON_LOG(WARN, "failed to check_thread_status", K(tmp_ret)); + COMMON_LOG_RET(WARN, tmp_ret, "failed to check_thread_status", K(tmp_ret)); } ObThreadCondGuard guard(cond_); if (need_idle_) { if (OB_SUCCESS != (tmp_ret = cond_.wait(DEFAULT_CHECK_TIME_MS))) { if (OB_TIMEOUT != tmp_ret) { - STORAGE_LOG(WARN, "failed to idle", K(tmp_ret)); + STORAGE_LOG_RET(WARN, tmp_ret, "failed to idle", K(tmp_ret)); } } } need_idle_ = true; } if (OB_SUCCESS != (tmp_ret = stop_all_threads())) { - COMMON_LOG(WARN, "failed to stop all threads", K(tmp_ret)); + COMMON_LOG_RET(WARN, tmp_ret, "failed to stop all threads", K(tmp_ret)); } } @@ -323,7 +323,7 @@ void *ObDynamicThreadPool::task_thread_func(void *data) if (NULL == data) { tmp_ret = OB_ERR_SYS; - COMMON_LOG(ERROR, "data must not null", K(tmp_ret), K(data)); + COMMON_LOG_RET(ERROR, tmp_ret, "data must not null", K(tmp_ret), K(data)); } else { ObDynamicThreadInfo *thread_info = reinterpret_cast(data); ObDynamicThreadTask *task = NULL; @@ -337,10 +337,10 @@ void *ObDynamicThreadPool::task_thread_func(void *data) } else if (OB_IN_STOP_STATE == tmp_ret) { break; } else { - COMMON_LOG(WARN, "failed to pop task", K(tmp_ret)); + COMMON_LOG_RET(WARN, tmp_ret, "failed to pop task", K(tmp_ret)); } } else if (OB_SUCCESS != (tmp_ret = task->process(thread_info->is_stop_))) { - COMMON_LOG(WARN, "failed to process task", K(tmp_ret), K(*thread_info)); + COMMON_LOG_RET(WARN, tmp_ret, "failed to process task", K(tmp_ret), K(*thread_info)); } } } diff --git a/deps/oblib/src/lib/thread/ob_multi_fixed_queue_thread.h b/deps/oblib/src/lib/thread/ob_multi_fixed_queue_thread.h index 2adc7f51b..70d42328c 100644 --- a/deps/oblib/src/lib/thread/ob_multi_fixed_queue_thread.h +++ b/deps/oblib/src/lib/thread/ob_multi_fixed_queue_thread.h @@ -172,7 +172,7 @@ void ObMQThread::stop() int pthread_ret = pthread_join(tids_[index], NULL); if (0 != pthread_ret) { - LIB_LOG(ERROR, "pthread_join fail", "thread_id", tids_[index], K(pthread_ret)); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "pthread_join fail", "thread_id", tids_[index], K(pthread_ret)); } else { // do nothing } diff --git a/deps/oblib/src/lib/thread/protected_stack_allocator.cpp b/deps/oblib/src/lib/thread/protected_stack_allocator.cpp index e34a24b99..24309bdac 100644 --- a/deps/oblib/src/lib/thread/protected_stack_allocator.cpp +++ b/deps/oblib/src/lib/thread/protected_stack_allocator.cpp @@ -88,7 +88,7 @@ void *ProtectedStackAllocator::__alloc(const uint64_t tenant_id, const ssize_t s // page at bottom will be used as guard-page char *buffer = (char *)ob_malloc(size, attr); if (OB_ISNULL(buffer)) { - LOG_ERROR("CO_STACK alloc failed", K(size)); + LOG_ERROR_RET(OB_ALLOCATE_MEMORY_FAILED, "CO_STACK alloc failed", K(size)); } else { uint64_t base = (uint64_t)buffer; ObStackHeader *header = nullptr; @@ -104,7 +104,7 @@ void *ProtectedStackAllocator::__alloc(const uint64_t tenant_id, const ssize_t s g_stack_mgr.insert(header); if (0 != mprotect((char*)base, ps, PROT_NONE)) { - LOG_WARN("mprotect failed", K(errno), K(base), K(ps)); + LOG_WARN_RET(OB_ERR_SYS, "mprotect failed", K(errno), K(base), K(ps)); } ptr = (char*)header + sizeof(ObStackHeader) + ps; } @@ -121,7 +121,7 @@ void ProtectedStackAllocator::dealloc(void *ptr) char *base = (char *)header->base_; const ssize_t ps = page_size(); if (0 != mprotect((char *)header + sizeof(ObStackHeader), ps, PROT_READ | PROT_WRITE)) { - LOG_WARN("mprotect failed", K(errno), K(header), K(ps)); + LOG_WARN_RET(OB_ERR_SYS, "mprotect failed", K(errno), K(header), K(ps)); } else { const uint64_t tenant_id = header->tenant_id_; const ssize_t size = header->size_; diff --git a/deps/oblib/src/lib/thread/thread.cpp b/deps/oblib/src/lib/thread/thread.cpp index bb81b57b8..44e5baffe 100644 --- a/deps/oblib/src/lib/thread/thread.cpp +++ b/deps/oblib/src/lib/thread/thread.cpp @@ -227,7 +227,7 @@ void* Thread::__th_start(void *arg) nss.ss_size = SIG_STACK_SIZE; bool restore_sigstack = false; if (-1 == sigaltstack(&nss, &oss)) { - LOG_WARN("sigaltstack failed, ignore it", K(errno)); + LOG_WARN_RET(OB_ERR_SYS, "sigaltstack failed, ignore it", K(errno)); } else { restore_sigstack = true; } diff --git a/deps/oblib/src/lib/thread/thread_mgr.h b/deps/oblib/src/lib/thread/thread_mgr.h index b99dcddbe..ba01c012c 100644 --- a/deps/oblib/src/lib/thread/thread_mgr.h +++ b/deps/oblib/src/lib/thread/thread_mgr.h @@ -155,7 +155,7 @@ public: } virtual void get_queue_num(int64_t &num) { - OB_LOG(ERROR, "unexpected invoke"); + OB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "unexpected invoke"); num = 0; } virtual int push_task(const common::IObDedupTask &task) @@ -1124,6 +1124,7 @@ public: #define TG_REENTRANT_LOGICAL_STOP(tg_id) \ ({ \ + int ret = OB_SUCCESS; \ enum TGType tg_type = TGType::INVALID; \ ITG* tg = TG_MGR.tgs_[tg_id]; \ if (nullptr != tg) { \ @@ -1133,12 +1134,14 @@ public: TG* tmp_tg = static_cast*>(tg); \ tmp_tg->logical_stop(); \ } else { \ + ret = common::OB_ERR_UNEXPECTED; \ OB_LOG(WARN, "logical stop only can be used with REENTRANT_THREAD_POOL"); \ } \ }) #define TG_REENTRANT_LOGICAL_WAIT(tg_id) \ ({ \ + int ret = OB_SUCCESS; \ enum TGType tg_type = TGType::INVALID; \ ITG* tg = TG_MGR.tgs_[tg_id]; \ if (nullptr != tg) { \ @@ -1148,6 +1151,7 @@ public: TG* tmp_tg = static_cast*>(tg); \ tmp_tg->logical_wait(); \ } else { \ + ret = common::OB_ERR_UNEXPECTED; \ OB_LOG(WARN, "logical stop only can be used with REENTRANT_THREAD_POOL"); \ } \ }) diff --git a/deps/oblib/src/lib/thread_local/ob_tsi_factory.h b/deps/oblib/src/lib/thread_local/ob_tsi_factory.h index 95c14e7a9..e655823c8 100644 --- a/deps/oblib/src/lib/thread_local/ob_tsi_factory.h +++ b/deps/oblib/src/lib/thread_local/ob_tsi_factory.h @@ -362,7 +362,7 @@ public: } if (nullptr == instance_buffer || nullptr == node_buffer) { if (REACH_TIME_INTERVAL(10 * 1000L * 1000L)) { - LIB_LOG(WARN, "new instance fail", "type", typeid(T).name()); + LIB_LOG_RET(WARN, OB_ALLOCATE_MEMORY_FAILED, "new instance fail", "type", typeid(T).name()); } ::usleep(100L * 1000L); } else { @@ -396,7 +396,7 @@ public: TSIFactory() : key_(INVALID_THREAD_KEY) { if (0 != pthread_key_create(&key_, destroy_thread_data_)) { - _LIB_LOG(WARN, "pthread_key_create fail errno=%u", errno); + _LIB_LOG_RET(WARN, OB_ERROR, "pthread_key_create fail errno=%u", errno); } } ~TSIFactory() @@ -405,7 +405,7 @@ public: void *ptr = pthread_getspecific(key_); destroy_thread_data_(ptr); if (0 != pthread_key_delete(key_)) { - _LIB_LOG(WARN, "pthread_key_delete fail errno=%u", errno); + _LIB_LOG_RET(WARN, OB_ERROR, "pthread_key_delete fail errno=%u", errno); } else { key_ = INVALID_THREAD_KEY; } @@ -427,7 +427,7 @@ public: //} if (NULL != tsi && 0 != pthread_setspecific(key_, tsi)) { - _LIB_LOG(WARN, "pthread_setspecific fail errno=%u key=%d", errno, key_); + _LIB_LOG_RET(WARN, OB_ERROR, "pthread_setspecific fail errno=%u key=%d", errno, key_); delete tsi; tsi = NULL; } diff --git a/deps/oblib/src/lib/thread_local/thread_buffer.cpp b/deps/oblib/src/lib/thread_local/thread_buffer.cpp index 1c27f065b..8b2429734 100644 --- a/deps/oblib/src/lib/thread_local/thread_buffer.cpp +++ b/deps/oblib/src/lib/thread_local/thread_buffer.cpp @@ -69,7 +69,7 @@ ThreadSpecificBuffer::Buffer *ThreadSpecificBuffer::get_buffer() const { Buffer *buffer = NULL; if (INVALID_THREAD_KEY == key_ || size_ <= 0) { - _OB_LOG(ERROR, "thread key must be initialized " + _OB_LOG_RET(ERROR, OB_NOT_INIT, "thread key must be initialized " "and size must great than zero, key:%u,size:%d", key_, size_); } else { void *ptr = pthread_getspecific(key_); @@ -80,7 +80,7 @@ ThreadSpecificBuffer::Buffer *ThreadSpecificBuffer::get_buffer() const ptr = ob_malloc(size_ + sizeof(Buffer), ObModIds::OB_THREAD_BUFFER); if (NULL == ptr) { // malloc failed; - _OB_LOG(ERROR, "malloc thread specific memeory failed."); + _OB_LOG_RET(ERROR, OB_ALLOCATE_MEMORY_FAILED, "malloc thread specific memeory failed."); } else { int ret = pthread_setspecific(key_, ptr); if (0 != ret) { diff --git a/deps/oblib/src/lib/time/Time.cpp b/deps/oblib/src/lib/time/Time.cpp index e695f66b6..e114e7e1d 100644 --- a/deps/oblib/src/lib/time/Time.cpp +++ b/deps/oblib/src/lib/time/Time.cpp @@ -22,7 +22,7 @@ ObSysTime ObSysTime::now(Clock clock) if(gettimeofday(&tv, 0) < 0) { #ifdef _NO_EXCEPTION - _OB_LOG(ERROR,"%s","SyscallException"); + _OB_LOG_RET(ERROR, oceanbase::common::OB_ERROR, "%s","SyscallException"); assert( 0 ); #else throw SyscallException(__FILE__, __LINE__, errno); @@ -36,7 +36,7 @@ ObSysTime ObSysTime::now(Clock clock) if(clock_gettime(CLOCK_MONOTONIC, &ts) < 0) { #ifdef _NO_EXCEPTION - _OB_LOG(ERROR,"%s","SyscallException"); + _OB_LOG_RET(ERROR, oceanbase::common::OB_ERROR, "%s","SyscallException"); assert(0); #else throw SyscallException(__FILE__, __LINE__, errno); diff --git a/deps/oblib/src/lib/time/ob_time_utility.cpp b/deps/oblib/src/lib/time/ob_time_utility.cpp index c3cc0efb2..56b3927a6 100644 --- a/deps/oblib/src/lib/time/ob_time_utility.cpp +++ b/deps/oblib/src/lib/time/ob_time_utility.cpp @@ -27,7 +27,7 @@ int64_t ObTimeUtility::current_time() int err_ret = 0; struct timeval t; if (OB_UNLIKELY((err_ret = gettimeofday(&t, nullptr)) < 0)) { - LIB_LOG(ERROR, "gettimeofday error", K(err_ret), K(errno)); + LIB_LOG_RET(ERROR, err_ret, "gettimeofday error", K(err_ret), K(errno)); ob_abort(); } return (static_cast(t.tv_sec) * 1000000L + @@ -39,7 +39,7 @@ int64_t ObTimeUtility::current_time_ns() int err_ret = 0; struct timespec ts; if (OB_UNLIKELY((err_ret = clock_gettime(CLOCK_REALTIME, &ts)) != 0)) { - LIB_LOG(WARN, "current system not support CLOCK_REALTIME", K(err_ret), K(errno)); + LIB_LOG_RET(WARN, err_ret, "current system not support CLOCK_REALTIME", K(err_ret), K(errno)); ob_abort(); } return static_cast(ts.tv_sec) * 1000000000L + @@ -54,7 +54,7 @@ int64_t ObTimeUtility::current_monotonic_raw_time() if (IS_SYSTEM_SUPPORT_MONOTONIC_RAW) { if (OB_UNLIKELY((err_ret = clock_gettime(CLOCK_MONOTONIC_RAW, &ts)) != 0)) { - LIB_LOG(WARN, "current system not support CLOCK_MONOTONIC_RAW", K(err_ret), K(errno)); + LIB_LOG_RET(WARN, err_ret, "current system not support CLOCK_MONOTONIC_RAW", K(err_ret), K(errno)); IS_SYSTEM_SUPPORT_MONOTONIC_RAW = false; ret_val = current_time(); } else { diff --git a/deps/oblib/src/lib/timezone/ob_timezone_info.cpp b/deps/oblib/src/lib/timezone/ob_timezone_info.cpp index f403da808..2ff2ea257 100644 --- a/deps/oblib/src/lib/timezone/ob_timezone_info.cpp +++ b/deps/oblib/src/lib/timezone/ob_timezone_info.cpp @@ -39013,7 +39013,7 @@ ObTZNameKey::ObTZNameKey(const ObString &tz_key_str) { int64_t len = tz_key_str.length(); if (OB_UNLIKELY(len + 1 > OB_MAX_TZ_NAME_LEN)) { - LOG_ERROR("invalid tz_key_str", K(tz_key_str)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "invalid tz_key_str", K(tz_key_str)); } else { for (int64_t i = 0; i < len; ++i) { tz_name_[i] = static_cast(tolower(tz_key_str[i])); @@ -39058,7 +39058,7 @@ uint64_t ObTZNameKey::hash(uint64_t seed) const uint64_t seed_ret = 0; int32_t str_len = static_cast(strlen(tz_name_)); if (OB_ISNULL(tz_name_) || OB_UNLIKELY(str_len > OB_MAX_TZ_NAME_LEN)) { - LOG_WARN("invalid tz_name", K(str_len)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "invalid tz_name", K(str_len)); } else { seed_ret = murmurhash(tz_name_, str_len, seed); } diff --git a/deps/oblib/src/lib/trace/ob_seq_event_recorder.h b/deps/oblib/src/lib/trace/ob_seq_event_recorder.h index 2c39ae3ea..9bac583c0 100644 --- a/deps/oblib/src/lib/trace/ob_seq_event_recorder.h +++ b/deps/oblib/src/lib/trace/ob_seq_event_recorder.h @@ -45,7 +45,7 @@ struct ObSeqEventRecorder EventType &add_event(bool &overflow) { if (0 > next_idx_) { - COMMON_LOG(ERROR, "fatal: next_idx illegal", K_(next_idx)); + COMMON_LOG_RET(ERROR, OB_ERROR, "fatal: next_idx illegal", K_(next_idx)); dropped_events_++; overflow = true; return events_[EVENT_COUNT-1]; @@ -63,7 +63,7 @@ struct ObSeqEventRecorder EventType &add_event() { if (0 > next_idx_) { - COMMON_LOG(ERROR, "fatal: next_idx illegal", K_(next_idx)); + COMMON_LOG_RET(ERROR, OB_ERROR, "fatal: next_idx illegal", K_(next_idx)); dropped_events_++; return events_[EVENT_COUNT-1]; } else if (next_idx_ >= EVENT_COUNT) { // Avoid the following atomic operations diff --git a/deps/oblib/src/lib/trace/ob_trace.cpp b/deps/oblib/src/lib/trace/ob_trace.cpp index 8023c938e..2865e1fa4 100644 --- a/deps/oblib/src/lib/trace/ob_trace.cpp +++ b/deps/oblib/src/lib/trace/ob_trace.cpp @@ -339,7 +339,7 @@ ObTrace* ObTrace::get_instance() thread_local Guard guard2(default_tls_buffer, MIN_BUFFER_SIZE); if (OB_ISNULL(default_tsi_buffer)) { save_buffer = (ObTrace*)default_tls_buffer; - LIB_LOG(WARN, "tsi was nullptr"); + LIB_LOG_RET(WARN, OB_ERR_UNEXPECTED, "tsi was nullptr"); } else { save_buffer = (ObTrace*)default_tsi_buffer; } @@ -470,7 +470,7 @@ void ObTrace::reset_span() { #ifndef NDEBUG if (!check_magic()) { - LIB_LOG(ERROR, "trace buffer was not inited"); + LIB_LOG_RET(ERROR, OB_NOT_INIT, "trace buffer was not inited"); } #endif // remove all end span @@ -527,7 +527,7 @@ void ObTrace::check_leak_span() ObSpanCtx* span = current_span_.get_first(); while (current_span_.get_header() != span) { if (0 == span->end_ts_) { - _LIB_LOG(WARN, "there were leak span %s", lbt()); + _LIB_LOG_RET(WARN, OB_ERR_UNEXPECTED, "there were leak span %s", lbt()); dump_span(); break; } @@ -539,7 +539,7 @@ void ObTrace::reset() { #ifndef NDEBUG if (!check_magic()) { - LIB_LOG(ERROR, "trace buffer was not inited"); + LIB_LOG_RET(ERROR, OB_NOT_INIT, "trace buffer was not inited"); } #endif offset_ = buffer_size_ / 2; diff --git a/deps/oblib/src/lib/utility/ob_hang_fatal_error.cpp b/deps/oblib/src/lib/utility/ob_hang_fatal_error.cpp index d72c9d46c..42026538f 100644 --- a/deps/oblib/src/lib/utility/ob_hang_fatal_error.cpp +++ b/deps/oblib/src/lib/utility/ob_hang_fatal_error.cpp @@ -33,7 +33,8 @@ void right_to_die_or_duty_to_live() { const ObFatalErrExtraInfoGuard *extra_info = ObFatalErrExtraInfoGuard::get_thd_local_val_ptr(); while (true) { - BACKTRACE(ERROR, true, "Trying so hard to die, extra_info=(%s)", (NULL == extra_info) ? NULL : to_cstring(*extra_info)); + const char *info = (NULL == extra_info) ? NULL : to_cstring(*extra_info); + LOG_DBA_ERROR(OB_ERR_THREAD_PANIC, "msg", "Trying so hard to die", KCSTRING(info), KCSTRING(lbt())); #ifndef FATAL_ERROR_HANG if (in_try_stmt) { throw OB_EXCEPTION(); diff --git a/deps/oblib/src/lib/utility/ob_macro_utils.h b/deps/oblib/src/lib/utility/ob_macro_utils.h index 37433c9f6..1b3d8a513 100644 --- a/deps/oblib/src/lib/utility/ob_macro_utils.h +++ b/deps/oblib/src/lib/utility/ob_macro_utils.h @@ -479,7 +479,7 @@ for (__typeof__((c).at(0)) *it = ((extra_condition) && (c).count() > 0 ? &(c).at switch (v) { \ def(DEF_ENUM_CASE) \ default: \ - LIB_LOG(WARN, "unknown" #type "value", "value", v); \ + LIB_LOG_RET(WARN, common::OB_ERR_UNEXPECTED, "unknown" #type "value", "value", v); \ return NULL; \ } \ } \ @@ -490,12 +490,12 @@ for (__typeof__((c).at(0)) *it = ((extra_condition) && (c).count() > 0 ? &(c).at type __VA_ARGS__ get_##func_name##_value(const common::ObString &str) \ { \ if (str.empty()) { \ - LIB_LOG(WARN, "invalid argument, empty str"); \ + LIB_LOG_RET(WARN, OB_INVALID_ARGUMENT, "invalid argument, empty str"); \ return static_cast(0); \ } else { \ def(DEF_ENUM_STRCMP) \ } \ - LIB_LOG(WARN, "unknown " #type "string", K(str)); \ + LIB_LOG_RET(WARN, OB_ERR_UNEXPECTED, "unknown " #type "string", K(str)); \ return static_cast(0); \ } @@ -605,6 +605,15 @@ for (__typeof__((c).at(0)) *it = ((extra_condition) && (c).count() > 0 ? &(c).at } \ } while (false) +#define BACKTRACE_RET(LEVEL, errcode, cond, _fmt_, args...) \ + do \ + { \ + if (OB_UNLIKELY(cond)) \ + { \ + _OB_LOG_RET(LEVEL, errcode, _fmt_ " BACKTRACE:%s", ##args, oceanbase::common::lbt()); \ + } \ + } while (false) + #ifdef NDEBUG #define OB_ASSERT(x) (void)(x) #else @@ -612,8 +621,8 @@ for (__typeof__((c).at(0)) *it = ((extra_condition) && (c).count() > 0 ? &(c).at do{ \ bool v=(x); \ if(OB_UNLIKELY(!(v))) { \ - _OB_LOG(ERROR, "assert fail, exp=%s", #x); \ - BACKTRACE(ERROR, 1, "assert fail"); \ + _OB_LOG_RET(ERROR, oceanbase::common::OB_ERROR, "assert fail, exp=%s", #x); \ + BACKTRACE_RET(ERROR, oceanbase::common::OB_ERROR, 1, "assert fail"); \ assert(v); \ } \ } while(false) @@ -624,8 +633,8 @@ for (__typeof__((c).at(0)) *it = ((extra_condition) && (c).count() > 0 ? &(c).at do{ \ bool v=(x); \ if(OB_UNLIKELY(!(v))) { \ - _OB_LOG(ERROR, "assert fail, exp=%s", #x); \ - BACKTRACE(ERROR, 1, ##msg); \ + _OB_LOG_RET(ERROR, OB_ERROR, "assert fail, exp=%s", #x); \ + BACKTRACE_RET(ERROR, OB_ERROR, 1, ##msg); \ assert(v); \ } \ } while(false) @@ -634,8 +643,8 @@ for (__typeof__((c).at(0)) *it = ((extra_condition) && (c).count() > 0 ? &(c).at do{ \ bool v=(x); \ if(OB_UNLIKELY(!(v))) { \ - _OB_LOG(ERROR, "assert fail, exp=%s", #x); \ - BACKTRACE(ERROR, 1, "assert fail"); \ + _OB_LOG_RET(ERROR, OB_ERROR, "assert fail, exp=%s", #x); \ + BACKTRACE_RET(ERROR, OB_ERROR, 1, "assert fail"); \ ob_abort(); \ exit(1); \ } \ diff --git a/deps/oblib/src/lib/utility/ob_print_utils.h b/deps/oblib/src/lib/utility/ob_print_utils.h index 5e4cc77f7..eb7c02b7c 100644 --- a/deps/oblib/src/lib/utility/ob_print_utils.h +++ b/deps/oblib/src/lib/utility/ob_print_utils.h @@ -219,7 +219,7 @@ const char *to_cstring(const T &obj, const bool verbose) mgr->inc_level(); CStringBufMgr::BufNode *node = mgr->acquire(); if (OB_ISNULL(node)) { - LIB_LOG(ERROR, "buffer is NULL"); + LIB_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "buffer is NULL"); } else { buffer = node->buf_; if (NULL == &obj) { @@ -247,7 +247,7 @@ const char *to_cstring(const T &obj, FalseType) mgr->inc_level(); CStringBufMgr::BufNode *node = mgr->acquire(); if (OB_ISNULL(node)) { - LIB_LOG(ERROR, "buffer is NULL"); + LIB_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "buffer is NULL"); } else { buffer = node->buf_; pos = to_string(obj, buffer, CStringBufMgr::BUF_SIZE -1); diff --git a/deps/oblib/src/lib/utility/ob_query_rate_limiter.h b/deps/oblib/src/lib/utility/ob_query_rate_limiter.h index e318f81c0..55e9e7253 100644 --- a/deps/oblib/src/lib/utility/ob_query_rate_limiter.h +++ b/deps/oblib/src/lib/utility/ob_query_rate_limiter.h @@ -31,8 +31,12 @@ public: bool is_force_allows() const override { return false; } void reset_force_allows() override {} - int acquire(int64_t permits=1) override; - int try_acquire(int64_t permits=1) override; + virtual int try_acquire(const int64_t permits = 1, + const int64_t arg0 = 0, + const int64_t arg1 = 0) override; + virtual int acquire(const int64_t permits = 1, + const int64_t arg0 = 0, + const int64_t arg1 = 0) override; private: static int64_t current_time(); @@ -41,14 +45,19 @@ private: int64_t last_ship_time_; }; -inline int ObQueryRateLimiter::acquire(int64_t permits) +inline int ObQueryRateLimiter::acquire(const int64_t permits, + const int64_t arg0, + const int64_t arg1) { - UNUSED(permits); + UNUSEDx(permits, arg0, arg1); return OB_NOT_SUPPORTED; } -inline int ObQueryRateLimiter::try_acquire(int64_t permits) +inline int ObQueryRateLimiter::try_acquire(const int64_t permits, + const int64_t arg0, + const int64_t arg1) { + UNUSEDx(arg0, arg1); int ret = OB_SUCCESS; constexpr int64_t SEC2MICROS = 1000000L; if (OB_LIKELY(rate_ > 0)) { diff --git a/deps/oblib/src/lib/utility/ob_rate_limiter.h b/deps/oblib/src/lib/utility/ob_rate_limiter.h index 49203ba84..a787f8696 100644 --- a/deps/oblib/src/lib/utility/ob_rate_limiter.h +++ b/deps/oblib/src/lib/utility/ob_rate_limiter.h @@ -21,7 +21,7 @@ namespace lib { class ObRateLimiter { public: - ObRateLimiter(); + ObRateLimiter(const int64_t rate = 0, const char *name = nullptr); virtual ~ObRateLimiter(); void set_name(const char *name); @@ -32,16 +32,21 @@ public: virtual bool is_force_allows() const = 0; virtual void reset_force_allows() = 0; - virtual int try_acquire(int64_t permits=1) = 0; - virtual int acquire(int64_t permits=1) = 0; + // return OB_SUCCESS for acquire success and OB_EAGAIN for not acquired + virtual int try_acquire(const int64_t permits = 1, + const int64_t arg0 = 0, + const int64_t arg1 = 0) = 0; + virtual int acquire(const int64_t permits = 1, + const int64_t arg0 = 0, + const int64_t arg1 = 0) = 0; protected: int64_t rate_; const char *name_; }; -inline ObRateLimiter::ObRateLimiter() - : rate_(0), name_(nullptr) +inline ObRateLimiter::ObRateLimiter(const int64_t rate, const char *name) + : rate_(rate), name_(name) {} inline ObRateLimiter::~ObRateLimiter() diff --git a/deps/oblib/src/lib/utility/ob_sample_rate_limiter.h b/deps/oblib/src/lib/utility/ob_sample_rate_limiter.h deleted file mode 100644 index b77b1a06a..000000000 --- a/deps/oblib/src/lib/utility/ob_sample_rate_limiter.h +++ /dev/null @@ -1,100 +0,0 @@ -/** - * Copyright (c) 2021 OceanBase - * OceanBase CE is licensed under Mulan PubL v2. - * You can use this software according to the terms and conditions of the Mulan PubL v2. - * You may obtain a copy of Mulan PubL v2 at: - * http://license.coscl.org.cn/MulanPubL-2.0 - * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, - * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, - * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. - * See the Mulan PubL v2 for more details. - */ - -#ifndef OB_SAMPLE_RATE_LIMITER_H -#define OB_SAMPLE_RATE_LIMITER_H - -#include -#include -#include "lib/atomic/ob_atomic.h" -#include "lib/ob_errno.h" -#include "lib/utility/ob_rate_limiter.h" - -namespace oceanbase { -namespace lib { - -/* - In the duration time unit, if acquire count exceeds initial number, - it will be allowed every thereafter number -*/ -class ObSampleRateLimiter : public lib::ObRateLimiter -{ -public: - ObSampleRateLimiter() - : ObSampleRateLimiter(0, 0) {} - ObSampleRateLimiter(int64_t initial, int64_t thereafter, - int64_t duration=1000L * 1000L/*1s*/) - : initial_(initial), thereafter_(thereafter), duration_(duration), - reset_ts_(current_time()), count_(0) - {} - bool is_force_allows() const override { return false; } - void reset_force_allows() override { }; - int acquire(int64_t permits=1) override; - int try_acquire(int64_t permits=1) override; - -public: - // This is a copy of ObTimeUtility::current_time() that depends on - // nothing other than system library. - static int64_t current_time(); -private: - int64_t initial_; - int64_t thereafter_; - int64_t duration_; - int64_t reset_ts_; - int64_t count_; -}; - -inline int ObSampleRateLimiter::acquire(int64_t permits) -{ - UNUSED(permits); - return common::OB_NOT_SUPPORTED; -} - -inline int ObSampleRateLimiter::try_acquire(int64_t permits) -{ - int ret = common::OB_SUCCESS; - int64_t cur_ts = current_time(); - int64_t reset_ts = ATOMIC_LOAD(&reset_ts_); - int64_t n = 0; - if (cur_ts < reset_ts) { - n = ATOMIC_AAF(&count_, permits); - } else { - ATOMIC_STORE(&count_, permits); - int64_t new_reset_ts = cur_ts + duration_; - if (!ATOMIC_BCAS(&reset_ts_, reset_ts, new_reset_ts)) { - n = ATOMIC_AAF(&count_, permits); - } else { - n = permits; - } - } - if (n > initial_ && (n - initial_) % thereafter_ != 0) { - ret = common::OB_EAGAIN; - } - return ret; -} - -inline int64_t ObSampleRateLimiter::current_time() -{ - int64_t time = 0; - struct timeval t; - if (gettimeofday(&t, nullptr) >= 0) { - time = (static_cast(t.tv_sec) - * static_cast(1000000) - + static_cast(t.tv_usec)); - } - return time; -} - -} // lib -} // oceanbase - -#endif /* OB_SAMPLE_RATE_LIMITER_H */ diff --git a/deps/oblib/src/lib/utility/ob_tracepoint.cpp b/deps/oblib/src/lib/utility/ob_tracepoint.cpp index 59bfec4ee..29570d85a 100644 --- a/deps/oblib/src/lib/utility/ob_tracepoint.cpp +++ b/deps/oblib/src/lib/utility/ob_tracepoint.cpp @@ -29,7 +29,7 @@ uint64_t TPSymbolTable::BKDRHash(const char *str) uint64_t seed = 131; // 31 131 1313 13131 131313 etc.. uint64_t hash = 0; if (OB_ISNULL(str)) { - LIB_LOG(WARN, "Input str should not be NULL"); + LIB_LOG_RET(WARN, OB_INVALID_ARGUMENT, "Input str should not be NULL"); } else { while (*str) { hash = hash * seed + (*str++); @@ -42,7 +42,7 @@ bool TPSymbolTable::SymbolEntry::find(const char* name) { bool has_found = false; if (OB_ISNULL(name)) { - LIB_LOG(WARN, "Input name should not be NULL"); + LIB_LOG_RET(WARN, OB_INVALID_ARGUMENT, "Input name should not be NULL"); } else { while(!has_found) { int lock = TP_AL(&lock_); @@ -66,7 +66,7 @@ void** TPSymbolTable::do_get(const char* name) { void** found_value = NULL; if (OB_ISNULL(name)) { - LIB_LOG(WARN, "name should not be NULL"); + LIB_LOG_RET(WARN, OB_INVALID_ARGUMENT, "name should not be NULL"); } else { for(uint64_t start_idx = BKDRHash(name), idx = 0; NULL == found_value && idx < SYMBOL_COUNT_LIMIT; diff --git a/deps/oblib/src/lib/utility/serialization.h b/deps/oblib/src/lib/utility/serialization.h index 5a408c4e9..775227336 100644 --- a/deps/oblib/src/lib/utility/serialization.h +++ b/deps/oblib/src/lib/utility/serialization.h @@ -1192,25 +1192,25 @@ inline int64_t encode_length_number_type(const ObNumberDesc &desc) inline int decode_number_type(const char *buf, const int64_t buf_len, int64_t &pos, ObNumberDesc &desc, uint32_t *&digits) { - int err = OB_SUCCESS; + int ret = OB_SUCCESS; int64_t tmp_pos = pos; - if (OB_SUCCESS == err) { - err = decode_i32(buf, buf_len, tmp_pos, (int32_t *)(&desc.desc_)); + if (OB_SUCCESS == ret) { + ret = decode_i32(buf, buf_len, tmp_pos, (int32_t *)(&desc.desc_)); } - if (OB_SUCCESS == err) { + if (OB_SUCCESS == ret) { if (0 == desc.len_) { digits = NULL; } else if (buf_len < (tmp_pos + (int64_t)sizeof(uint32_t) * desc.len_)) { - err = OB_DESERIALIZE_ERROR; + ret = OB_DESERIALIZE_ERROR; } else { digits = (uint32_t *)(buf + tmp_pos); tmp_pos += (sizeof(uint32_t) * desc.len_); } } - if (OB_SUCCESS == err) { + if (OB_SUCCESS == ret) { pos = tmp_pos; } - return err; + return ret; } inline int encode_number_type(char *buf, @@ -1219,18 +1219,18 @@ inline int encode_number_type(char *buf, const ObNumberDesc &desc, const uint32_t *digits) { - int err = OB_SUCCESS; + int ret = OB_SUCCESS; int64_t tmp_pos = pos; - //if (OB_SUCCESS == err) { + //if (OB_SUCCESS == ret) { // int8_t first_byte = OB_NUMBER_TYPE; - // err = encode_i8(buf, buf_len, tmp_pos, first_byte); + // ret = encode_i8(buf, buf_len, tmp_pos, first_byte); //} - if (OB_SUCCESS == err) { - err = encode_i32(buf, buf_len, tmp_pos, (int32_t)desc.desc_); + if (OB_SUCCESS == ret) { + ret = encode_i32(buf, buf_len, tmp_pos, (int32_t)desc.desc_); } - if (OB_SUCCESS == err) { + if (OB_SUCCESS == ret) { if (buf_len < (tmp_pos + (int64_t)sizeof(uint32_t) * desc.len_)) { - err = OB_BUF_NOT_ENOUGH; + ret = OB_BUF_NOT_ENOUGH; } else { if (0 < desc.len_) { MEMCPY(buf + tmp_pos, digits, sizeof(uint32_t) * desc.len_); @@ -1238,10 +1238,10 @@ inline int encode_number_type(char *buf, } } } - if (OB_SUCCESS == err) { + if (OB_SUCCESS == ret) { pos = tmp_pos; } - return err; + return ret; } inline int64_t encode_length_otimestamp_tz_type() @@ -1298,41 +1298,41 @@ inline int encode_otimestamp_type(char *buf, const int64_t buf_len, int64_t &pos inline int encode_decimal_type(char *buf, const int64_t buf_len, int64_t &pos, bool is_add, int8_t precision, int8_t scale, int8_t vscale, int8_t nwords, const uint32_t *words) { - int err = OB_SUCCESS; + int ret = OB_SUCCESS; if (buf == NULL || buf_len <= 0 || pos >= buf_len || NULL == words) { - err = OB_INVALID_ARGUMENT; + ret = OB_INVALID_ARGUMENT; } int8_t first_byte = OB_DECIMAL_TYPE; - if (OB_SUCCESS == err) { - err = encode_i8(buf, buf_len, pos, first_byte); + if (OB_SUCCESS == ret) { + ret = encode_i8(buf, buf_len, pos, first_byte); } - if (OB_SUCCESS == err) { + if (OB_SUCCESS == ret) { int8_t op = is_add ? 1 : 0; - err = encode_i8(buf, buf_len, pos, op); + ret = encode_i8(buf, buf_len, pos, op); } - if (OB_SUCCESS == err) { - err = encode_i8(buf, buf_len, pos, precision); + if (OB_SUCCESS == ret) { + ret = encode_i8(buf, buf_len, pos, precision); } - if (OB_SUCCESS == err) { - err = encode_i8(buf, buf_len, pos, scale); + if (OB_SUCCESS == ret) { + ret = encode_i8(buf, buf_len, pos, scale); } - if (OB_SUCCESS == err) { - err = encode_i8(buf, buf_len, pos, vscale); + if (OB_SUCCESS == ret) { + ret = encode_i8(buf, buf_len, pos, vscale); } - if (OB_SUCCESS == err) { - err = encode_i8(buf, buf_len, pos, nwords); + if (OB_SUCCESS == ret) { + ret = encode_i8(buf, buf_len, pos, nwords); } - if (OB_SUCCESS == err) { + if (OB_SUCCESS == ret) { for (int8_t i = 0; i < nwords; ++i) { - if (OB_SUCCESS != (err = encode_vi32(buf, buf_len, pos, static_cast(words[i])))) { + if (OB_SUCCESS != (ret = encode_vi32(buf, buf_len, pos, static_cast(words[i])))) { break; } } } - if (OB_SUCCESS != err) { - _OB_LOG(WARN, "fail to encode decimal. err = %d", err); + if (OB_SUCCESS != ret) { + _OB_LOG(WARN, "fail to encode decimal. ret = %d", ret); } - return err; + return ret; } int decode_decimal_type(const char *buf, const int64_t buf_len, int64_t &pos, bool &is_add, diff --git a/deps/oblib/src/lib/utility/utility.cpp b/deps/oblib/src/lib/utility/utility.cpp index c9a5ab1fc..ffa8a61ab 100644 --- a/deps/oblib/src/lib/utility/utility.cpp +++ b/deps/oblib/src/lib/utility/utility.cpp @@ -87,6 +87,7 @@ char *lbt(void **addrs, int32_t size) void hex_dump(const void *data, const int32_t size, const bool char_type /*= true*/, const int32_t log_level /*= OB_LOG_LEVEL_DEBUG*/) { + int ret = OB_SUCCESS; if (OB_LOGGER.get_log_level() < log_level) { return; } /* dumps size bytes of *data to stdout. Looks like: * [0000] 75 6E 6B 6E 6F 77 6E 20 @@ -124,10 +125,10 @@ void hex_dump(const void *data, const int32_t size, if (n % 16 == 0) { /* line completed */ if (char_type) - _OB_NUM_LEVEL_LOG(log_level, "[%ld] [%4.4s] %-50.50s %s\n", + _OB_NUM_LEVEL_LOG(log_level, OB_SUCCESS, "[%ld] [%4.4s] %-50.50s %s\n", pthread_self(), addrstr, hexstr, charstr); else - _OB_NUM_LEVEL_LOG(log_level, "[%ld] [%4.4s] %-50.50s\n", + _OB_NUM_LEVEL_LOG(log_level, OB_SUCCESS, "[%ld] [%4.4s] %-50.50s\n", pthread_self(), addrstr, hexstr); hexstr[0] = 0; charstr[0] = 0; @@ -142,10 +143,10 @@ void hex_dump(const void *data, const int32_t size, if (strlen(hexstr) > 0) { /* print rest of buffer if not empty */ if (char_type) - _OB_NUM_LEVEL_LOG(log_level, "[%ld] [%4.4s] %-50.50s %s\n", + _OB_NUM_LEVEL_LOG(log_level, OB_SUCCESS, "[%ld] [%4.4s] %-50.50s %s\n", pthread_self(), addrstr, hexstr, charstr); else - _OB_NUM_LEVEL_LOG(log_level, "[%ld] [%4.4s] %-50.50s\n", + _OB_NUM_LEVEL_LOG(log_level, OB_SUCCESS, "[%ld] [%4.4s] %-50.50s\n", pthread_self(), addrstr, hexstr); } } @@ -448,7 +449,7 @@ int mem_chunk_serialize(char *buf, int64_t len, int64_t &pos, const char *data, if (NULL == buf || len <= 0 || pos < 0 || pos > len || NULL == data || 0 > data_len) { err = OB_INVALID_ARGUMENT; } else if (OB_SUCCESS != (err = serialization::encode_i64(buf, len, tmp_pos, data_len))) { - _OB_LOG(ERROR, "encode_i64(buf=%p, len=%ld, pos=%ld, i=%ld)=>%d", buf, len, tmp_pos, data_len, + _OB_LOG_RET(ERROR, err, "encode_i64(buf=%p, len=%ld, pos=%ld, i=%ld)=>%d", buf, len, tmp_pos, data_len, err); } else if (tmp_pos + data_len > len) { err = OB_SERIALIZE_ERROR; @@ -468,7 +469,7 @@ int mem_chunk_deserialize(const char *buf, int64_t len, int64_t &pos, char *data if (NULL == buf || len <= 0 || pos < 0 || pos > len || NULL == data || data_len < 0) { err = OB_INVALID_ARGUMENT; } else if (OB_SUCCESS != (err = serialization::decode_i64(buf, len, tmp_pos, &real_len))) { - _OB_LOG(ERROR, "decode_i64(buf=%p, len=%ld, pos=%ld, i=%ld)=>%d", buf, len, tmp_pos, real_len, + _OB_LOG_RET(ERROR, err, "decode_i64(buf=%p, len=%ld, pos=%ld, i=%ld)=>%d", buf, len, tmp_pos, real_len, err); } else if (real_len > data_len || tmp_pos + real_len > len) { err = OB_DESERIALIZE_ERROR; @@ -562,52 +563,52 @@ int replace_str(char *src_str, const int64_t src_str_buf_size, int get_ethernet_speed(const char *devname, int64_t &speed) { - int rc = OB_SUCCESS; + int ret = OB_SUCCESS; if (NULL == devname) { + ret = OB_INVALID_ARGUMENT; _OB_LOG(WARN, "invalid devname %p", devname); - rc = OB_INVALID_ARGUMENT; } else { - rc = get_ethernet_speed(ObString::make_string(devname), speed); + ret = get_ethernet_speed(ObString::make_string(devname), speed); } - return rc; + return ret; } int get_ethernet_speed(const ObString &devname, int64_t &speed) { - int rc = OB_SUCCESS; + int ret = OB_SUCCESS; bool exist = false; char path[OB_MAX_FILE_NAME_LENGTH]; static int dev_file_exist = 1; if (0 == devname.length()) { + ret = OB_INVALID_ARGUMENT; _OB_LOG(WARN, "empty devname"); - rc = OB_INVALID_ARGUMENT; } else { IGNORE_RETURN snprintf(path, sizeof(path), "/sys/class/net/%.*s", devname.length(), devname.ptr()); - if (OB_SUCCESS != (rc = FileDirectoryUtils::is_exists(path, exist)) || !exist) { + if (OB_SUCCESS != (ret = FileDirectoryUtils::is_exists(path, exist)) || !exist) { if (dev_file_exist) { _OB_LOG(WARN, "path %s not exist", path); dev_file_exist = 0; } - rc = OB_FILE_NOT_EXIST; + ret = OB_FILE_NOT_EXIST; } } - if (OB_SUCCESS != rc) + if (OB_SUCCESS != ret) {} else { CharArena alloc; ObString str; IGNORE_RETURN snprintf(path, sizeof(path), "/sys/class/net/%.*s/bonding/", devname.length(), devname.ptr()); - if (OB_SUCCESS != (rc = FileDirectoryUtils::is_exists(path, exist))) { - LIB_LOG(WARN, "check net file if exists failed.", K(rc)); + if (OB_SUCCESS != (ret = FileDirectoryUtils::is_exists(path, exist))) { + LIB_LOG(WARN, "check net file if exists failed.", K(ret)); } else if (exist) { IGNORE_RETURN snprintf(path, sizeof(path), "/sys/class/net/%.*s/bonding/slaves", devname.length(), devname.ptr()); - if (OB_SUCCESS != (rc = load_file_to_string(path, alloc, str))) { - _OB_LOG(WARN, "load file %s failed, rc %d", path, rc); + if (OB_SUCCESS != (ret = load_file_to_string(path, alloc, str))) { + _OB_LOG(WARN, "load file %s failed, ret %d", path, ret); } else if (0 == str.length()) { _OB_LOG(WARN, "can't get slave ethernet"); - rc = OB_ERROR; + ret = OB_ERROR; } else { int len = 0; while (len < str.length() && !isspace(str.ptr()[len])) { @@ -619,16 +620,16 @@ int get_ethernet_speed(const ObString &devname, int64_t &speed) IGNORE_RETURN snprintf(path, sizeof(path), "/sys/class/net/%.*s/speed", devname.length(), devname.ptr()); } - if (OB_SUCCESS == rc) { - if (OB_SUCCESS != (rc = load_file_to_string(path, alloc, str))) { - _OB_LOG(WARN, "load file %s failed, rc %d", path, rc); + if (OB_SUCCESS == ret) { + if (OB_SUCCESS != (ret = load_file_to_string(path, alloc, str))) { + _OB_LOG(WARN, "load file %s failed, ret %d", path, ret); } else { speed = atoll(str.ptr()); speed = speed * 1024 * 1024 / 8; } } } - return rc; + return ret; } int deep_copy_obj(ObIAllocator &allocator, const ObObj &src, ObObj &dst) @@ -678,8 +679,8 @@ bool is_case_space_equal(const char *s1, int64_t s1_len, const char *s2, int64_t //Check input if (NULL == s1 || NULL == s2 || s1_len < 0 || s2_len < 0) { result = false; - _OB_LOG(ERROR, - "Invalid argument, input arguments include NULL pointer or string length is less than zero."); + _OB_LOG_RET(ERROR, OB_INVALID_ARGUMENT, + "Invalid argument, input arguments include NULL pointer or string length is less than zero."); } else if (s1 != s2) { //If s1 == s2,return 1 while (1) { //Left trim @@ -745,8 +746,8 @@ bool is_n_case_space_equal(const char *s1, int64_t s1_len, const char *s2, int64 //Check input if (NULL == s1 || NULL == s2 || s1_len < 0 || s2_len < 0) { result = false; - _OB_LOG(ERROR, - "Invalid argument, input arguments include NULL pointer or string length is less than zero."); + _OB_LOG_RET(ERROR, OB_INVALID_ARGUMENT, + "Invalid argument, input arguments include NULL pointer or string length is less than zero."); } else if (s1 != s2) { //If s1 == s2,return 1 while (1) { //Left trim diff --git a/deps/oblib/src/lib/utility/utility.h b/deps/oblib/src/lib/utility/utility.h index 6ac40ed07..5391beeda 100644 --- a/deps/oblib/src/lib/utility/utility.h +++ b/deps/oblib/src/lib/utility/utility.h @@ -484,7 +484,7 @@ struct CountReporter if (0 == (count % report_mod_)) { SeqLockGuard lock_guard(seq_lock_); int64_t cur_ts = ::oceanbase::common::ObTimeUtility::fast_current_time(); - _OB_LOG(ERROR, "%s=%ld:%ld:%ld\n", id_, count, + _OB_LOG_RET(ERROR, OB_ERROR, "%s=%ld:%ld:%ld\n", id_, count, 1000000 * (count - last_report_count_) / (cur_ts - last_report_time_), (total_cost_time - last_cost_time_)/report_mod_); last_report_count_ = count; @@ -618,25 +618,25 @@ inline void bind_core() template int load_file_to_string(const char *path, Allocator &allocator, ObString &str) { - int rc = OB_SUCCESS; + int ret = OB_SUCCESS; struct stat st; char *buf = NULL; int fd = -1; int64_t size = 0; if (NULL == path || strlen(path) == 0) { - rc = OB_INVALID_ARGUMENT; + ret = OB_INVALID_ARGUMENT; } else if ((fd = ::open(path, O_RDONLY)) < 0) { _OB_LOG(WARN, "open file %s failed, errno %d", path, errno); - rc = OB_ERROR; + ret = OB_ERROR; } else if (0 != ::fstat(fd, &st)) { _OB_LOG(WARN, "fstat %s failed, errno %d", path, errno); - rc = OB_ERROR; + ret = OB_ERROR; } else if (NULL == (buf = allocator.alloc(st.st_size + 1))) { - rc = OB_ALLOCATE_MEMORY_FAILED; + ret = OB_ALLOCATE_MEMORY_FAILED; } else if ((size = static_cast(::read(fd, buf, st.st_size))) < 0) { _OB_LOG(WARN, "read %s failed, errno %d", path, errno); - rc = OB_ERROR; + ret = OB_ERROR; } else { buf[size] = '\0'; str.assign(buf, static_cast(size)); @@ -645,10 +645,10 @@ int load_file_to_string(const char *path, Allocator &allocator, ObString &str) int tmp_ret = close(fd); if (tmp_ret < 0) { _OB_LOG(WARN, "close %s failed, errno %d", path, errno); - rc = (OB_SUCCESS == rc) ? tmp_ret : rc; + ret = (OB_SUCCESS == ret) ? tmp_ret : ret; } } - return rc; + return ret; } /** @@ -850,7 +850,7 @@ public: { if (need_record_log_) { if (OB_UNLIKELY(get_diff() >= warn_threshold_)) { - LIB_LOG(WARN, "destruct", K(*this)); + LIB_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "destruct", K(*this)); } } } @@ -888,7 +888,7 @@ public: { if (need_record_log_) { if (OB_UNLIKELY(get_diff() >= warn_threshold_)) { - LIB_LOG(WARN, "click", K(*this), KCSTRING(lbt())); + LIB_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "click", K(*this), KCSTRING(lbt())); } } } @@ -896,7 +896,7 @@ public: { if (need_record_log_) { if (OB_UNLIKELY(get_diff() >= warn_threshold_)) { - LIB_LOG(WARN, "destruct", K(*this), KCSTRING(lbt())); + LIB_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "destruct", K(*this), KCSTRING(lbt())); } } } diff --git a/deps/oblib/src/rpc/frame/ob_net_easy.cpp b/deps/oblib/src/rpc/frame/ob_net_easy.cpp index 9fddd6de5..f7a039e6f 100644 --- a/deps/oblib/src/rpc/frame/ob_net_easy.cpp +++ b/deps/oblib/src/rpc/frame/ob_net_easy.cpp @@ -30,16 +30,79 @@ namespace common { void update_easy_log_level() { - easy_log_level = (easy_log_level_t)OB_LOGGER.get_id_level_map().get_level(oceanbase::common::OB_LOG_ROOT::M_EASY); + int level = OB_LOGGER.get_id_level_map().get_level(oceanbase::common::OB_LOG_ROOT::M_EASY); + switch (level) { + case OB_LOG_LEVEL_DBA_ERROR: // pass + case OB_LOG_LEVEL_DBA_WARN: { + easy_log_level = EASY_LOG_FATAL; + break; + } + case OB_LOG_LEVEL_INFO: { + easy_log_level = EASY_LOG_INFO; + break; + } + case OB_LOG_LEVEL_ERROR: { + easy_log_level = EASY_LOG_ERROR; + break; + } + case OB_LOG_LEVEL_WARN: { + easy_log_level = EASY_LOG_WARN; + break; + } + case OB_LOG_LEVEL_TRACE: { + easy_log_level = EASY_LOG_DEBUG; + break; + } + case OB_LOG_LEVEL_DEBUG: { + easy_log_level = EASY_LOG_TRACE; + break; + } + default: { + easy_log_level = EASY_LOG_INFO; + break; + } + } } void easy_log_format_adaptor(int level, const char *file, int line, const char *function, uint64_t location_hash_val, const char *fmt, ...) { + int ob_level = level; + switch (level) { + case EASY_LOG_FATAL: { + ob_level = OB_LOG_LEVEL_DBA_ERROR; + break; + } + case EASY_LOG_ERROR: // pass + case EASY_LOG_USER_ERROR: { + ob_level = OB_LOG_LEVEL_ERROR; + break; + } + case EASY_LOG_WARN: { + ob_level = OB_LOG_LEVEL_WARN; + break; + } + case EASY_LOG_INFO: { + ob_level = OB_LOG_LEVEL_INFO; + break; + } + case EASY_LOG_DEBUG: { + ob_level = OB_LOG_LEVEL_TRACE; + break; + } + case EASY_LOG_TRACE: { + ob_level = OB_LOG_LEVEL_DEBUG; + break; + } + default: { + ob_level = OB_LOG_LEVEL_DEBUG; + break; + } + }; va_list args; va_start(args, fmt); - OB_LOGGER.log_message_va("", level, file, line, function, - location_hash_val, fmt, args); + OB_LOGGER.log_message_va("", ob_level, file, line, function, + location_hash_val, 0, fmt, args); va_end(args); } }; @@ -301,7 +364,8 @@ int ObNetEasy::add_unix_listen_(const char* path, easy_io_t * eio, ObReqHandler LOG_ERROR("eio_ is NULL", KP(eio)); } else if (NULL == (listen = easy_connection_add_listen(eio, path, 0, handler.ez_handler()))) { ret = OB_SERVER_LISTEN_ERROR; - LOG_ERROR("easy_connection_add_listen error", KERRMSG, K(ret)); + LOG_DBA_ERROR(OB_SERVER_LISTEN_ERROR, "msg", "easy_connection_add_listen error", + KERRMSG, K(ret)); } else { LOG_INFO("listen unix domain succ", KCSTRING(path)); } @@ -320,7 +384,8 @@ int ObNetEasy::add_listen_(const uint32_t port, easy_io_t * eio, ObReqHandler &h LOG_ERROR("too many listen handler registered", K(ret)); } else if (NULL == (listen = easy_connection_add_listen(eio, NULL, port, handler.ez_handler()))) { ret = OB_SERVER_LISTEN_ERROR; - LOG_ERROR("easy_connection_add_listen error", K(port), KERRMSG, K(ret)); + LOG_DBA_ERROR(OB_SERVER_LISTEN_ERROR, "msg", "easy_connection_add_listen error", + K(port), KERRMSG, K(ret)); } else { transports_[proto_cnt_] = OB_NEW(ObReqTransport, ObModIds::OB_RPC, eio, handler.ez_handler()); transport = transports_[proto_cnt_++]; @@ -352,7 +417,8 @@ int ObNetEasy::net_register_and_add_listen_(ObListener &listener, easy_io_t *eio LOG_ERROR("too many listen handler registered", K(ret)); } else if (NULL == (listen = easy_add_pipefd_listen_for_connection(eio, handler.ez_handler(), &pipefd_pool))) { ret = OB_SERVER_LISTEN_ERROR; - LOG_ERROR("easy_add_pipefd_listen_for_connection! failed!", K(ret)); + LOG_DBA_ERROR(OB_SERVER_LISTEN_ERROR, + "msg", "easy_add_pipefd_listen_for_connection! failed!", K(ret)); } else { transports_[proto_cnt_] = OB_NEW(ObReqTransport, ObModIds::OB_RPC, eio, handler.ez_handler()); transport = transports_[proto_cnt_++]; @@ -526,7 +592,7 @@ static void rpc_easy_timer_cb(EV_P_ ev_timer *w, int revents) EASY_IOTH_SELF->tx_doing_request_count, EASY_IOTH_SELF->rx_doing_request_count); LOG_INFO("[RPC EASY STAT]", KCSTRING(log_str)); } else { - LOG_ERROR("EASY_IOTH_SELF is NULL"); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "EASY_IOTH_SELF is NULL"); } } @@ -545,7 +611,7 @@ static void high_prio_rpc_easy_timer_cb(EV_P_ ev_timer *w, int revents) EASY_IOTH_SELF->tx_doing_request_count, EASY_IOTH_SELF->rx_doing_request_count); LOG_INFO("[HIGH PRIO RPC EASY STAT]", KCSTRING(log_str)); } else { - LOG_ERROR("EASY_IOTH_SELF is NULL"); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "EASY_IOTH_SELF is NULL"); } } @@ -564,7 +630,7 @@ static void batch_rpc_easy_timer_cb(EV_P_ ev_timer *w, int revents) EASY_IOTH_SELF->tx_doing_request_count, EASY_IOTH_SELF->rx_doing_request_count); LOG_INFO("[BATCH_RPC EASY STAT]", KCSTRING(log_str)); } else { - LOG_ERROR("EASY_IOTH_SELF is NULL"); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "EASY_IOTH_SELF is NULL"); } } @@ -584,12 +650,12 @@ static void mysql_easy_timer_cb(EV_P_ ev_timer *w, int revents) if ((EASY_IOTH_SELF->tx_doing_request_count >= DOING_REQUEST_WARN_THRESHOLD) || (EASY_IOTH_SELF->rx_doing_request_count >= DOING_REQUEST_WARN_THRESHOLD)) { - LOG_ERROR("[MYSQL EASY STAT]", KCSTRING(log_str)); + LOG_ERROR_RET(OB_SUCCESS, "[MYSQL EASY STAT]", KCSTRING(log_str)); } else { LOG_INFO("[MYSQL EASY STAT]", KCSTRING(log_str)); } } else { - LOG_ERROR("EASY_IOTH_SELF is NULL"); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "EASY_IOTH_SELF is NULL"); } } diff --git a/deps/oblib/src/rpc/frame/ob_req_handler.cpp b/deps/oblib/src/rpc/frame/ob_req_handler.cpp index b2d5c55a7..165cf67df 100644 --- a/deps/oblib/src/rpc/frame/ob_req_handler.cpp +++ b/deps/oblib/src/rpc/frame/ob_req_handler.cpp @@ -125,7 +125,7 @@ void *decode(easy_message_t *m) RLOCAL(int64_t, time_tot); void *pret = NULL; if (OB_ISNULL(m)) { - LOG_ERROR("message is NULL", K(m)); + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "message is NULL", K(m)); } else { const int64_t start_time = common::ObTimeUtility::current_time(); int64_t end_time = 0; @@ -146,7 +146,7 @@ void *decode(easy_message_t *m) } const int64_t diff = end_time - start_time; if (diff > common::OB_EASY_HANDLER_COST_TIME) { - LOG_WARN("decode handler cost too much time", K(diff)); + LOG_WARN_RET(common::OB_ERR_TOO_MUCH_TIME, "decode handler cost too much time", K(diff)); } } @@ -159,7 +159,7 @@ int encode(easy_request_t *r, void *packet) RLOCAL(int64_t, time_tot); int eret = EASY_ERROR; if (OB_ISNULL(r) || OB_ISNULL(r->ms) || OB_ISNULL(r->ms->c)) { - LOG_ERROR("invalid arguement which is NULL"); + LOG_ERROR_RET(common::OB_INVALID_ARGUMENT, "invalid arguement which is NULL"); } else { const int64_t start_time = common::ObTimeUtility::current_time(); int64_t end_time = 0; @@ -180,7 +180,7 @@ int encode(easy_request_t *r, void *packet) } const int64_t diff = end_time - start_time; if (diff > common::OB_EASY_HANDLER_COST_TIME) { - LOG_WARN("encode handler cost too much time", K(diff)); + LOG_WARN_RET(common::OB_ERR_TOO_MUCH_TIME, "encode handler cost too much time", K(diff)); } } return eret; @@ -192,7 +192,7 @@ int process(easy_request_t *r) RLOCAL(int64_t, time_tot); int eret = EASY_ERROR; if (OB_ISNULL(r) || OB_ISNULL(r->ms) || OB_ISNULL(r->ms->c)) { - LOG_ERROR("invalid argument which is NULL"); + LOG_ERROR_RET(common::OB_INVALID_ARGUMENT, "invalid argument which is NULL"); } else { int64_t start_time = common::ObTimeUtility::current_time(); int64_t end_time = 0; @@ -213,7 +213,7 @@ int process(easy_request_t *r) } const int64_t diff = end_time - start_time; if (diff > common::OB_EASY_HANDLER_COST_TIME) { - LOG_WARN("process handler cost too much time", K(diff)); + LOG_WARN_RET(common::OB_ERR_TOO_MUCH_TIME, "process handler cost too much time", K(diff)); } } return eret; @@ -224,18 +224,18 @@ int batch_process(easy_message_t *m) int eret = EASY_ERROR; if (OB_ISNULL(m)) { - LOG_ERROR("invalid argument", K(m)); + LOG_ERROR_RET(common::OB_INVALID_ARGUMENT, "invalid argument", K(m)); } else { const int64_t start_time = common::ObTimeUtility::current_time(); ObReqHandler *handler = packet_handler(m->c); if (!OB_ISNULL(handler)) { eret = handler->batch_process(m); } else { - LOG_ERROR("handler is NULL", K(handler)); + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "handler is NULL", K(handler)); } const int64_t diff = common::ObTimeUtility::current_time() - start_time; if (diff > common::OB_EASY_HANDLER_COST_TIME) { - LOG_WARN("process handler cost too much time", K(diff)); + LOG_WARN_RET(common::OB_ERR_TOO_MUCH_TIME, "process handler cost too much time", K(diff)); } } return eret; @@ -247,7 +247,7 @@ int on_connect(easy_connection_t *c) RLOCAL(int64_t, time_tot); int eret = EASY_ERROR; if (OB_ISNULL(c)) { - LOG_ERROR("invalid argument which is NULL"); + LOG_ERROR_RET(common::OB_INVALID_ARGUMENT, "invalid argument which is NULL"); } else { int64_t start_time = common::ObTimeUtility::current_time(); int64_t end_time = 0; @@ -269,7 +269,7 @@ int on_connect(easy_connection_t *c) } const int64_t diff = end_time - start_time; if (diff > common::OB_EASY_HANDLER_COST_TIME) { - LOG_WARN("on_connect handler cost too much time", K(diff)); + LOG_WARN_RET(common::OB_ERR_TOO_MUCH_TIME, "on_connect handler cost too much time", K(diff)); } } return eret; @@ -281,7 +281,7 @@ int on_disconnect(easy_connection_t *c) RLOCAL(int64_t, time_tot); int eret = EASY_ERROR; if (OB_ISNULL(c)) { - LOG_ERROR("invalid argument which is NULL"); + LOG_ERROR_RET(common::OB_INVALID_ARGUMENT, "invalid argument which is NULL"); } else { int64_t start_time = common::ObTimeUtility::current_time(); int64_t end_time = 0; @@ -303,7 +303,7 @@ int on_disconnect(easy_connection_t *c) } const int64_t diff = end_time - start_time; if (diff > common::OB_EASY_HANDLER_COST_TIME) { - LOG_WARN("on_connect handler cost too much time", K(diff)); + LOG_WARN_RET(common::OB_ERR_TOO_MUCH_TIME, "on_connect handler cost too much time", K(diff)); } } return eret; @@ -320,7 +320,7 @@ int new_packet(easy_connection_t *c) } const int64_t diff = common::ObTimeUtility::current_time() - start_time; if (diff > common::OB_EASY_HANDLER_COST_TIME) { - LOG_WARN("new_packet handler cost too much time", K(diff)); + LOG_WARN_RET(common::OB_ERR_TOO_MUCH_TIME, "new_packet handler cost too much time", K(diff)); } } return eret; @@ -448,7 +448,7 @@ uint64_t get_packet_id(easy_connection_t *c, void *packet) } const int64_t diff = common::ObTimeUtility::current_time() - start_time; if (diff > common::OB_EASY_HANDLER_COST_TIME) { - LOG_WARN("get_packet_id handler cost too much time", K(diff)); + LOG_WARN_RET(common::OB_ERR_TOO_MUCH_TIME, "get_packet_id handler cost too much time", K(diff)); } return packet_id; } @@ -459,13 +459,13 @@ void set_trace_info(easy_request_t *r, void *packet) abort_unless(NULL != packet); if (OB_ISNULL(r) || OB_ISNULL(r->ms) || OB_ISNULL(r->ms->c)) { - LOG_ERROR("invalid arguement which is NULL"); + LOG_ERROR_RET(common::OB_INVALID_ARGUMENT, "invalid arguement which is NULL"); } else { ObReqHandler *handler = packet_handler(r->ms->c); if (!OB_ISNULL(handler)) { handler->set_trace_info(r, packet); } else { - LOG_ERROR("set trace time"); + LOG_ERROR_RET(common::OB_SUCCESS, "set trace time"); } } } @@ -482,7 +482,7 @@ int on_idle(easy_connection_t *c) eret = handler->on_idle(c); const int64_t diff = common::ObTimeUtility::current_time() - start_time; if (diff > common::OB_EASY_HANDLER_COST_TIME) { - LOG_WARN("on_idle handler cost too much time", K(diff)); + LOG_WARN_RET(common::OB_ERR_TOO_MUCH_TIME, "on_idle handler cost too much time", K(diff)); } } return eret; @@ -491,7 +491,7 @@ int on_idle(easy_connection_t *c) void send_buf_done(easy_request_t *r) { if (OB_ISNULL(r) || OB_ISNULL(r->ms) || OB_ISNULL(r->ms->c)) { - LOG_ERROR("invalid argument which is NULL"); + LOG_ERROR_RET(common::OB_INVALID_ARGUMENT, "invalid argument which is NULL"); } else { int64_t start_time = common::ObTimeUtility::current_time(); ObReqHandler *handler = packet_handler(r->ms->c); @@ -500,7 +500,7 @@ void send_buf_done(easy_request_t *r) } const int64_t diff = common::ObTimeUtility::current_time() - start_time; if (diff > common::OB_EASY_HANDLER_COST_TIME) { - LOG_WARN("send_buf_done handler cost too much time", K(diff)); + LOG_WARN_RET(common::OB_ERR_TOO_MUCH_TIME, "send_buf_done handler cost too much time", K(diff)); } } } @@ -508,7 +508,7 @@ void send_buf_done(easy_request_t *r) void sending_data(easy_connection_t *c) { if (OB_ISNULL(c)) { - LOG_ERROR("invalid argument which is NULL"); + LOG_ERROR_RET(common::OB_INVALID_ARGUMENT, "invalid argument which is NULL"); } else { int64_t start_time = common::ObTimeUtility::current_time(); ObReqHandler *handler = packet_handler(c); @@ -517,7 +517,7 @@ void sending_data(easy_connection_t *c) } const int64_t diff = common::ObTimeUtility::current_time() - start_time; if (diff > common::OB_EASY_HANDLER_COST_TIME) { - LOG_WARN("sending_data handler cost too much time", K(diff)); + LOG_WARN_RET(common::OB_ERR_TOO_MUCH_TIME, "sending_data handler cost too much time", K(diff)); } } } @@ -526,7 +526,7 @@ int send_data_done(easy_connection_t *c) { int eret = EASY_ERROR; if (OB_ISNULL(c)) { - LOG_ERROR("invalid argument which is NULL"); + LOG_ERROR_RET(common::OB_INVALID_ARGUMENT, "invalid argument which is NULL"); } else { int64_t start_time = common::ObTimeUtility::current_time(); ObReqHandler *handler = packet_handler(c); @@ -535,7 +535,7 @@ int send_data_done(easy_connection_t *c) } const int64_t diff = common::ObTimeUtility::current_time() - start_time; if (diff > common::OB_EASY_HANDLER_COST_TIME) { - LOG_WARN("send_data_done handler cost too much time", K(diff)); + LOG_WARN_RET(common::OB_ERR_TOO_MUCH_TIME, "send_data_done handler cost too much time", K(diff)); } } return eret; @@ -545,7 +545,7 @@ int on_redispatch(easy_connection_t *c) { int eret = EASY_ERROR; if (OB_ISNULL(c)) { - LOG_ERROR("invalid argument which is NULL"); + LOG_ERROR_RET(common::OB_INVALID_ARGUMENT, "invalid argument which is NULL"); } else { int64_t start_time = common::ObTimeUtility::current_time(); ObReqHandler *handler = packet_handler(c); @@ -554,7 +554,7 @@ int on_redispatch(easy_connection_t *c) } const int64_t diff = common::ObTimeUtility::current_time() - start_time; if (diff > common::OB_EASY_HANDLER_COST_TIME) { - LOG_WARN("on_redispatch handler cost too much time", K(diff)); + LOG_WARN_RET(common::OB_ERR_TOO_MUCH_TIME, "on_redispatch handler cost too much time", K(diff)); } } return eret; @@ -567,7 +567,7 @@ int on_close(easy_connection_t *c) RLOCAL(int64_t, time_tot); int eret = EASY_ERROR; if (OB_ISNULL(c)) { - LOG_ERROR("invalid argument which is NULL", K(eret)); + LOG_ERROR_RET(common::OB_INVALID_ARGUMENT, "invalid argument which is NULL", K(eret)); } else { int64_t start_time = common::ObTimeUtility::current_time(); int64_t end_time = 0; @@ -578,7 +578,7 @@ int on_close(easy_connection_t *c) time_tot += (end_time - start_time); on_close_tot += 1; } else { - LOG_ERROR("get packet handler fail", K(eret)); + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "get packet handler fail", K(eret)); } if (TC_REACH_TIME_INTERVAL(1000 * 1000)) { if (0 != on_close_tot) { @@ -590,7 +590,7 @@ int on_close(easy_connection_t *c) } const int64_t diff = end_time - start_time; if (diff > common::OB_EASY_HANDLER_COST_TIME) { - LOG_WARN("on_close handler cost too much time", K(diff)); + LOG_WARN_RET(common::OB_ERR_TOO_MUCH_TIME, "on_close handler cost too much time", K(diff)); } } return eret; @@ -600,18 +600,18 @@ int cleanup(easy_request_t *r, void *apacket) { int eret = EASY_ERROR; if (OB_ISNULL(r) || OB_ISNULL(r->ms)) { - LOG_ERROR("invalid argument", K(r), K(apacket)); + LOG_ERROR_RET(common::OB_INVALID_ARGUMENT, "invalid argument", K(r), K(apacket)); } else { int64_t start_time = common::ObTimeUtility::current_time(); ObReqHandler *handler = packet_handler(r->ms->c); if (!OB_ISNULL(handler)) { eret = handler->cleanup(r, apacket); } else { - LOG_ERROR("handler is NULL", K(handler)); + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "handler is NULL", K(handler)); }; const int64_t diff = common::ObTimeUtility::current_time() - start_time; if (diff > common::OB_EASY_HANDLER_COST_TIME) { - LOG_WARN("cleanup handler cost too much time", K(diff)); + LOG_WARN_RET(common::OB_ERR_TOO_MUCH_TIME, "cleanup handler cost too much time", K(diff)); } } return eret; diff --git a/deps/oblib/src/rpc/frame/ob_req_queue_thread.cpp b/deps/oblib/src/rpc/frame/ob_req_queue_thread.cpp index 425c03cff..a9995996c 100644 --- a/deps/oblib/src/rpc/frame/ob_req_queue_thread.cpp +++ b/deps/oblib/src/rpc/frame/ob_req_queue_thread.cpp @@ -48,7 +48,7 @@ ObReqQueue::~ObReqQueue() void ObReqQueue::set_qhandler(ObiReqQHandler *qhandler) { if (OB_ISNULL(qhandler)) { - LOG_ERROR("invalid argument", K(qhandler)); + LOG_ERROR_RET(common::OB_INVALID_ARGUMENT, "invalid argument", K(qhandler)); } qhandler_ = qhandler; } @@ -102,8 +102,14 @@ int ObReqQueue::process_task(void *task) } else { ObCurTraceId::set(trace_id); } - if (OB_LOG_LEVEL_NONE != packet.get_log_level()) { - ObThreadLogLevelUtils::init(packet.get_log_level()); + // Do not set thread local log level while log level upgrading (OB_LOGGER.is_info_as_wdiag) + if (OB_LOGGER.is_info_as_wdiag()) { + ObThreadLogLevelUtils::clear(); + } else { + int8_t log_level = packet.get_log_level(); + if (OB_LOG_LEVEL_NONE != log_level) { + ObThreadLogLevelUtils::init(log_level); + } } } else { // mysql command request diff --git a/deps/oblib/src/rpc/frame/ob_req_transport.cpp b/deps/oblib/src/rpc/frame/ob_req_transport.cpp index f25420cdd..03aedd7b7 100644 --- a/deps/oblib/src/rpc/frame/ob_req_transport.cpp +++ b/deps/oblib/src/rpc/frame/ob_req_transport.cpp @@ -149,7 +149,7 @@ int async_cb(easy_request_t *r) const int64_t process_time = after_process_time - after_decode_time; const int64_t session_destroy_time = cur_time - after_process_time; if (total_time > OB_EASY_HANDLER_COST_TIME) { - LOG_WARN("async_cb handler cost too much time", K(total_time), K(decode_time), + LOG_WARN_RET(OB_ERR_TOO_MUCH_TIME, "async_cb handler cost too much time", K(total_time), K(decode_time), K(process_time), K(session_destroy_time), K(pcode)); } diff --git a/deps/oblib/src/rpc/frame/ob_req_transport.h b/deps/oblib/src/rpc/frame/ob_req_transport.h index fdddf8c3c..0257982c7 100644 --- a/deps/oblib/src/rpc/frame/ob_req_transport.h +++ b/deps/oblib/src/rpc/frame/ob_req_transport.h @@ -109,7 +109,7 @@ public: virtual bool get_cloned() = 0; // invoke when get a valid packet on protocol level, but can't decode it. - virtual void on_invalid() { RPC_FRAME_LOG(ERROR, "invalid packet"); } + virtual void on_invalid() { RPC_FRAME_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "invalid packet"); } // invoke when can't get a valid or completed packet. virtual void on_timeout() { RPC_FRAME_LOG(DEBUG, "packet timeout"); } virtual int on_error(int err); diff --git a/deps/oblib/src/rpc/ob_request.h b/deps/oblib/src/rpc/ob_request.h index 2392e7c74..263f80de3 100644 --- a/deps/oblib/src/rpc/ob_request.h +++ b/deps/oblib/src/rpc/ob_request.h @@ -181,7 +181,7 @@ inline void ObRequest::set_ez_req(easy_request_t *r) inline void ObRequest::enable_request_ratelimit() { if (OB_ISNULL(ez_req_)) { - RPC_LOG(ERROR, "invalid argument", K(ez_req_)); + RPC_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "invalid argument", K(ez_req_)); } else { ez_req_->ratelimit_enabled = 1; ez_req_->redispatched = 0; @@ -191,7 +191,7 @@ inline void ObRequest::enable_request_ratelimit() inline void ObRequest::set_request_background_flow() { if (OB_ISNULL(ez_req_)) { - RPC_LOG(ERROR, "invalid argument", K(ez_req_)); + RPC_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "invalid argument", K(ez_req_)); } else { ez_req_->is_bg_flow = 1; } @@ -200,7 +200,7 @@ inline void ObRequest::set_request_background_flow() inline void ObRequest::set_request_opacket_size(int64_t size) { if (OB_ISNULL(ez_req_)) { - RPC_LOG(ERROR, "invalid argument", K(ez_req_)); + RPC_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "invalid argument", K(ez_req_)); } else { ez_req_->opacket_size = size; } diff --git a/deps/oblib/src/rpc/obmysql/ob_easy_sql_request_operator.cpp b/deps/oblib/src/rpc/obmysql/ob_easy_sql_request_operator.cpp index 9aeaa6f6f..c4a787fea 100644 --- a/deps/oblib/src/rpc/obmysql/ob_easy_sql_request_operator.cpp +++ b/deps/oblib/src/rpc/obmysql/ob_easy_sql_request_operator.cpp @@ -29,7 +29,7 @@ void* ObEasySqlRequestOperator::get_sql_session(ObRequest* req) if (OB_ISNULL(ez_req) || OB_ISNULL(ez_req->ms) || OB_ISNULL(ez_req->ms->c)) { - RPC_LOG(ERROR, "invalid argument", K(ez_req)); + RPC_LOG_RET(ERROR, OB_INVALID_ARGUMENT, "invalid argument", K(ez_req)); } else { session = ez_req->ms->c->user_data; } @@ -43,7 +43,7 @@ SSL* ObEasySqlRequestOperator::get_sql_ssl_st(ObRequest* req) if (OB_ISNULL(ez_req) || OB_ISNULL(ez_req->ms) || OB_ISNULL(ez_req->ms->c)) { - RPC_LOG(ERROR, "invalid argument", K(ez_req)); + RPC_LOG_RET(ERROR, OB_INVALID_ARGUMENT, "invalid argument", K(ez_req)); } else if (NULL != ez_req->ms->c->sc) { ssl_st = ez_req->ms->c->sc->connection ; } @@ -55,7 +55,7 @@ char* ObEasySqlRequestOperator::alloc_sql_response_buffer(ObRequest* req, int64_ void *buf = NULL; easy_request_t* ez_req = req->get_ez_req(); if (OB_ISNULL(ez_req) || OB_ISNULL(ez_req->ms) || OB_ISNULL(ez_req->ms->pool)) { - RPC_LOG(ERROR, "ez_req is not corret"); + RPC_LOG_RET(ERROR, OB_INVALID_ARGUMENT, "ez_req is not corret"); } else { buf = easy_pool_alloc( ez_req->ms->pool, static_cast(size)); @@ -68,7 +68,7 @@ char *ObEasySqlRequestOperator::sql_reusable_alloc(ObRequest* req, int64_t size) void *buf = NULL; easy_request_t* ez_req = req->get_ez_req(); if (OB_ISNULL(ez_req) || OB_ISNULL(ez_req->ms) || OB_ISNULL(ez_req->ms->pool)) { - RPC_LOG(ERROR, "ez_req is not corret"); + RPC_LOG_RET(ERROR, OB_INVALID_ARGUMENT, "ez_req is not corret"); } else { if(NULL == (buf = req->reusable_mem_.alloc(size))) { buf = easy_pool_alloc( @@ -87,11 +87,11 @@ ObAddr ObEasySqlRequestOperator::get_peer(const ObRequest* req) easy_request_t* ez_req = req->ez_req_; if (OB_ISNULL(ez_req) || OB_ISNULL(ez_req->ms) || OB_ISNULL(ez_req->ms->c)) { - RPC_LOG(ERROR, "invalid argument", K(ez_req)); + RPC_LOG_RET(ERROR, OB_INVALID_ARGUMENT, "invalid argument", K(ez_req)); } else { easy_addr_t &ez = ez_req->ms->c->addr; if (!ez2ob_addr(addr, ez)) { - RPC_LOG(ERROR, "fail to convert easy_addr to ob_addr", K(ez_req)); + RPC_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "fail to convert easy_addr to ob_addr", K(ez_req)); } // otherwise leave addr be zeros } return addr; @@ -101,7 +101,7 @@ void ObEasySqlRequestOperator::disconnect_sql_conn(ObRequest* req) { easy_request_t* ez_req = req->get_ez_req(); if (OB_ISNULL(ez_req) || OB_ISNULL(ez_req->ms)) { - RPC_LOG(ERROR, "invalid argument", K(ez_req)); + RPC_LOG_RET(ERROR, OB_INVALID_ARGUMENT, "invalid argument", K(ez_req)); } else { easy_connection_destroy_dispatch(ez_req->ms->c); } @@ -111,7 +111,7 @@ void ObEasySqlRequestOperator::finish_sql_request(ObRequest* req) { easy_request_t* ez_req = req->get_ez_req(); if (OB_ISNULL(ez_req) || OB_ISNULL(ez_req->ms)) { - RPC_LOG(ERROR, "invalid argument", K(ez_req)); + RPC_LOG_RET(ERROR, OB_INVALID_ARGUMENT, "invalid argument", K(ez_req)); } else { if (ez_req->retcode != EASY_AGAIN) { obmysql::request_finish_callback(); diff --git a/deps/oblib/src/rpc/obmysql/ob_mysql_handler.cpp b/deps/oblib/src/rpc/obmysql/ob_mysql_handler.cpp index 9505dcfab..653355d62 100644 --- a/deps/oblib/src/rpc/obmysql/ob_mysql_handler.cpp +++ b/deps/oblib/src/rpc/obmysql/ob_mysql_handler.cpp @@ -93,7 +93,7 @@ int ObMySQLHandler::encode(easy_request_t *r, void *packet) void do_wakeup(easy_request_t *r) { if (OB_ISNULL(r)) { - LOG_ERROR("null input request", K(r)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "null input request", K(r)); } else { easy_client_wait_t *wait_obj = r->client_wait; if (NULL != r->client_wait) { @@ -107,7 +107,7 @@ void do_wakeup_request(easy_request_t *r) { if (OB_ISNULL(r) || OB_ISNULL(r->ms) || OB_ISNULL(r->ms->c) || OB_ISNULL(r->ms->pool) || OB_ISNULL(r->ms->c->pool)) { - LOG_ERROR("null input", K(r)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "null input", K(r)); } else { easy_atomic_inc(&r->ms->c->pool->ref); easy_atomic_inc(&r->ms->pool->ref); @@ -159,7 +159,7 @@ int ObMySQLHandler::process(easy_request_t *r) } // check if arguments is valid if (OB_ISNULL(r) || OB_ISNULL(r->ipacket)) { - LOG_ERROR("request is empty", K(r), K(r->ipacket), K(sessid)); + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "request is empty", K(r), K(r->ipacket), K(sessid)); eret = EASY_BREAK; } else { if (r->retcode != EASY_AGAIN) { @@ -173,9 +173,9 @@ int ObMySQLHandler::process(easy_request_t *r) ObVirtualCSProtocolProcessor *processor = get_protocol_processor(r->ms->c); if (OB_ISNULL(processor)) { eret = EASY_BREAK; - LOG_ERROR("invalid protocol processor", KP(processor)); + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "invalid protocol processor", KP(processor)); } else if (OB_UNLIKELY(OB_SUCCESS != processor->process(r, need_decode_more))) { - LOG_ERROR("fail to process", K(sessid)); + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "fail to process", K(sessid)); eret = EASY_BREAK; } else if (need_decode_more) { eret = EASY_OK; @@ -195,7 +195,7 @@ int ObMySQLHandler::process(easy_request_t *r) eret = EASY_OK; #endif } else if (OB_ISNULL(buf = easy_alloc(r->ms->pool, sizeof (ObRequest)))) { - RPC_LOG(WARN, "alloc easy memory fail", K(sessid)); + RPC_LOG_RET(WARN, common::OB_ALLOCATE_MEMORY_FAILED, "alloc easy memory fail", K(sessid)); eret = EASY_BREAK; } else { ObRequest *req = NULL; @@ -239,7 +239,7 @@ int ObMySQLHandler::process(easy_request_t *r) } } else { eret = EASY_BREAK; - LOG_ERROR("invalid easy message", K(r->ms), K(sessid)); + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "invalid easy message", K(r->ms), K(sessid)); } } else { @@ -259,10 +259,10 @@ int ObMySQLHandler::process(easy_request_t *r) } } else { eret = EASY_BREAK; - LOG_ERROR("invalid easy message", K(r->ms)); + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "invalid easy message", K(r->ms)); } } else { - LOG_WARN("client_wait is NULL, connection may be destroyed", K(sessid)); + LOG_WARN_RET(common::OB_ERR_UNEXPECTED, "client_wait is NULL, connection may be destroyed", K(sessid)); } eret = EASY_AGAIN; } @@ -300,10 +300,10 @@ char *ObMySQLHandler::easy_alloc(easy_pool_t *pool, int64_t size) const { char *buf = NULL; if (OB_ISNULL(pool)) { - LOG_WARN("invalid easy pool", KP(pool)); + LOG_WARN_RET(common::OB_INVALID_ARGUMENT, "invalid easy pool", KP(pool)); } else { if (size > UINT32_MAX || size < 0) { - LOG_WARN("easy alloc fail", K(size)); + LOG_WARN_RET(common::OB_ALLOCATE_MEMORY_FAILED, "easy alloc fail", K(size)); } else { buf = static_cast(easy_pool_alloc(pool, static_cast(size))); } @@ -564,7 +564,7 @@ inline ObVirtualCSProtocolProcessor *ObMySQLHandler::get_protocol_processor(easy break; } default: { - LOG_ERROR("invalid cs protocol type", K(ptype)); + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "invalid cs protocol type", K(ptype)); break; } } diff --git a/deps/oblib/src/rpc/obmysql/ob_mysql_packet.cpp b/deps/oblib/src/rpc/obmysql/ob_mysql_packet.cpp index 6123583cd..32b4ffb81 100644 --- a/deps/oblib/src/rpc/obmysql/ob_mysql_packet.cpp +++ b/deps/oblib/src/rpc/obmysql/ob_mysql_packet.cpp @@ -152,7 +152,7 @@ int ObMySQLPacket::encode(char *buffer, int64_t length, int64_t &pos, int64_t &p int64_t ObMySQLPacket::get_serialize_size() const { - BACKTRACE(ERROR, 1, "not a serializiable packet"); + BACKTRACE_RET(ERROR, OB_ERROR, 1, "not a serializiable packet"); return -1; } diff --git a/deps/oblib/src/rpc/obmysql/ob_mysql_request_utils.cpp b/deps/oblib/src/rpc/obmysql/ob_mysql_request_utils.cpp index 7569518af..335f8173e 100644 --- a/deps/oblib/src/rpc/obmysql/ob_mysql_request_utils.cpp +++ b/deps/oblib/src/rpc/obmysql/ob_mysql_request_utils.cpp @@ -544,7 +544,7 @@ void ObMySQLRequestUtils::wakeup_easy_request(easy_request_t &ez_req, bool &req_ void ObMySQLRequestUtils::disconnect(easy_request_t &ez_req) { if (OB_ISNULL(ez_req.ms)) { - SERVER_LOG(WARN, "null req input", KP(ez_req.ms)); + SERVER_LOG_RET(WARN, common::OB_INVALID_ARGUMENT, "null req input", KP(ez_req.ms)); } else { easy_connection_destroy_dispatch(ez_req.ms->c); } diff --git a/deps/oblib/src/rpc/obmysql/ob_mysql_util.cpp b/deps/oblib/src/rpc/obmysql/ob_mysql_util.cpp index 378ae69a6..6364295f8 100644 --- a/deps/oblib/src/rpc/obmysql/ob_mysql_util.cpp +++ b/deps/oblib/src/rpc/obmysql/ob_mysql_util.cpp @@ -319,7 +319,7 @@ int ObMySQLUtil::store_obstr_nzt_with_pre_space(char *buf, int64_t len, ObString void ObMySQLUtil::prepend_zeros(char *buf, int64_t org_char_size, int64_t offset) { // memmove(buf + offset, buf, org_char_size); if (OB_ISNULL(buf)) { - LOG_WARN("invalid buf input", KP(buf)); + LOG_WARN_RET(common::OB_INVALID_ARGUMENT, "invalid buf input", KP(buf)); } else { char *src_last = buf + org_char_size; char *dst_last = src_last + offset; diff --git a/deps/oblib/src/rpc/obmysql/ob_mysql_util.h b/deps/oblib/src/rpc/obmysql/ob_mysql_util.h index 9598a79bf..a4ad2c454 100644 --- a/deps/oblib/src/rpc/obmysql/ob_mysql_util.h +++ b/deps/oblib/src/rpc/obmysql/ob_mysql_util.h @@ -566,7 +566,7 @@ int ObMySQLUtil::store_int8(char *buf, int64_t len, int64_t v, int64_t &pos) void ObMySQLUtil::get_int1(const char *&pos, int8_t &v) { if (OB_ISNULL(pos)) { - OB_LOG(WARN, "invalid argument", KP(pos)); + OB_LOG_RET(WARN, common::OB_INVALID_ARGUMENT, "invalid argument", KP(pos)); } else { v = sint1korr(pos); pos++; @@ -575,7 +575,7 @@ void ObMySQLUtil::get_int1(const char *&pos, int8_t &v) void ObMySQLUtil::get_int2(const char *&pos, int16_t &v) { if (OB_ISNULL(pos)) { - OB_LOG(WARN, "invalid argument", KP(pos)); + OB_LOG_RET(WARN, common::OB_INVALID_ARGUMENT, "invalid argument", KP(pos)); } else { v = sint2korr(pos); pos += 2; @@ -584,7 +584,7 @@ void ObMySQLUtil::get_int2(const char *&pos, int16_t &v) void ObMySQLUtil::get_int3(const char *&pos, int32_t &v) { if (OB_ISNULL(pos)) { - OB_LOG(WARN, "invalid argument", KP(pos)); + OB_LOG_RET(WARN, common::OB_INVALID_ARGUMENT, "invalid argument", KP(pos)); } else { v = sint3korr(pos); pos += 3; @@ -593,7 +593,7 @@ void ObMySQLUtil::get_int3(const char *&pos, int32_t &v) void ObMySQLUtil::get_int4(const char *&pos, int32_t &v) { if (OB_ISNULL(pos)) { - OB_LOG(WARN, "invalid argument", KP(pos)); + OB_LOG_RET(WARN, common::OB_INVALID_ARGUMENT, "invalid argument", KP(pos)); } else { v = sint4korr(pos); pos += 4; @@ -602,7 +602,7 @@ void ObMySQLUtil::get_int4(const char *&pos, int32_t &v) void ObMySQLUtil::get_int8(const char *&pos, int64_t &v) { if (OB_ISNULL(pos)) { - OB_LOG(WARN, "invalid argument", KP(pos)); + OB_LOG_RET(WARN, common::OB_INVALID_ARGUMENT, "invalid argument", KP(pos)); } else { v = sint8korr(pos); pos += 8; @@ -613,7 +613,7 @@ void ObMySQLUtil::get_int8(const char *&pos, int64_t &v) void ObMySQLUtil::get_uint1(const char *&pos, uint8_t &v) { if (OB_ISNULL(pos)) { - OB_LOG(WARN, "invalid argument", KP(pos)); + OB_LOG_RET(WARN, common::OB_INVALID_ARGUMENT, "invalid argument", KP(pos)); } else { v = uint1korr(pos); pos ++; @@ -622,7 +622,7 @@ void ObMySQLUtil::get_uint1(const char *&pos, uint8_t &v) void ObMySQLUtil::get_uint2(const char *&pos, uint16_t &v) { if (OB_ISNULL(pos)) { - OB_LOG(WARN, "invalid argument", KP(pos)); + OB_LOG_RET(WARN, common::OB_INVALID_ARGUMENT, "invalid argument", KP(pos)); } else { v = uint2korr(pos); pos += 2; @@ -631,7 +631,7 @@ void ObMySQLUtil::get_uint2(const char *&pos, uint16_t &v) void ObMySQLUtil::get_uint3(const char *&pos, uint32_t &v) { if (OB_ISNULL(pos)) { - OB_LOG(WARN, "invalid argument", KP(pos)); + OB_LOG_RET(WARN, common::OB_INVALID_ARGUMENT, "invalid argument", KP(pos)); } else { v = uint3korr(pos); pos += 3; @@ -640,7 +640,7 @@ void ObMySQLUtil::get_uint3(const char *&pos, uint32_t &v) void ObMySQLUtil::get_uint4(const char *&pos, uint32_t &v) { if (OB_ISNULL(pos)) { - OB_LOG(WARN, "invalid argument", KP(pos)); + OB_LOG_RET(WARN, common::OB_INVALID_ARGUMENT, "invalid argument", KP(pos)); } else { v = uint4korr(pos); pos += 4; @@ -649,7 +649,7 @@ void ObMySQLUtil::get_uint4(const char *&pos, uint32_t &v) void ObMySQLUtil::get_uint5(const char *&pos, uint64_t &v) { if (OB_ISNULL(pos)) { - OB_LOG(WARN, "invalid argument", KP(pos)); + OB_LOG_RET(WARN, common::OB_INVALID_ARGUMENT, "invalid argument", KP(pos)); } else { v = uint5korr(pos); pos += 5; @@ -658,7 +658,7 @@ void ObMySQLUtil::get_uint5(const char *&pos, uint64_t &v) void ObMySQLUtil::get_uint6(const char *&pos, uint64_t &v) { if (OB_ISNULL(pos)) { - OB_LOG(WARN, "invalid argument", KP(pos)); + OB_LOG_RET(WARN, common::OB_INVALID_ARGUMENT, "invalid argument", KP(pos)); } else { v = uint6korr(pos); pos += 6; @@ -667,7 +667,7 @@ void ObMySQLUtil::get_uint6(const char *&pos, uint64_t &v) void ObMySQLUtil::get_uint8(const char *&pos, uint64_t &v) { if (OB_ISNULL(pos)) { - OB_LOG(WARN, "invalid argument", KP(pos)); + OB_LOG_RET(WARN, common::OB_INVALID_ARGUMENT, "invalid argument", KP(pos)); } else { v = uint8korr(pos); pos += 8; @@ -677,7 +677,7 @@ void ObMySQLUtil::get_uint8(const char *&pos, uint64_t &v) void ObMySQLUtil::get_uint1(char *&pos, uint8_t &v) { if (OB_ISNULL(pos)) { - OB_LOG(WARN, "invalid argument", KP(pos)); + OB_LOG_RET(WARN, common::OB_INVALID_ARGUMENT, "invalid argument", KP(pos)); } else { v = uint1korr(pos); pos ++; @@ -686,7 +686,7 @@ void ObMySQLUtil::get_uint1(char *&pos, uint8_t &v) void ObMySQLUtil::get_uint2(char *&pos, uint16_t &v) { if (OB_ISNULL(pos)) { - OB_LOG(WARN, "invalid argument", KP(pos)); + OB_LOG_RET(WARN, common::OB_INVALID_ARGUMENT, "invalid argument", KP(pos)); } else { v = uint2korr(pos); pos += 2; @@ -695,7 +695,7 @@ void ObMySQLUtil::get_uint2(char *&pos, uint16_t &v) void ObMySQLUtil::get_uint3(char *&pos, uint32_t &v) { if (OB_ISNULL(pos)) { - OB_LOG(WARN, "invalid argument", KP(pos)); + OB_LOG_RET(WARN, common::OB_INVALID_ARGUMENT, "invalid argument", KP(pos)); } else { v = uint3korr(pos); pos += 3; @@ -704,7 +704,7 @@ void ObMySQLUtil::get_uint3(char *&pos, uint32_t &v) void ObMySQLUtil::get_uint4(char *&pos, uint32_t &v) { if (OB_ISNULL(pos)) { - OB_LOG(WARN, "invalid argument", KP(pos)); + OB_LOG_RET(WARN, common::OB_INVALID_ARGUMENT, "invalid argument", KP(pos)); } else { v = uint4korr(pos); pos += 4; @@ -713,7 +713,7 @@ void ObMySQLUtil::get_uint4(char *&pos, uint32_t &v) void ObMySQLUtil::get_uint5(char *&pos, uint64_t &v) { if (OB_ISNULL(pos)) { - OB_LOG(WARN, "invalid argument", KP(pos)); + OB_LOG_RET(WARN, common::OB_INVALID_ARGUMENT, "invalid argument", KP(pos)); } else { v = uint5korr(pos); pos += 5; @@ -722,7 +722,7 @@ void ObMySQLUtil::get_uint5(char *&pos, uint64_t &v) void ObMySQLUtil::get_uint6(char *&pos, uint64_t &v) { if (OB_ISNULL(pos)) { - OB_LOG(WARN, "invalid argument", KP(pos)); + OB_LOG_RET(WARN, common::OB_INVALID_ARGUMENT, "invalid argument", KP(pos)); } else { v = uint6korr(pos); pos += 6; @@ -731,7 +731,7 @@ void ObMySQLUtil::get_uint6(char *&pos, uint64_t &v) void ObMySQLUtil::get_uint8(char *&pos, uint64_t &v) { if (OB_ISNULL(pos)) { - OB_LOG(WARN, "invalid argument", KP(pos)); + OB_LOG_RET(WARN, common::OB_INVALID_ARGUMENT, "invalid argument", KP(pos)); } else { v = uint8korr(pos); pos += 8; diff --git a/deps/oblib/src/rpc/obmysql/ob_sql_nio.cpp b/deps/oblib/src/rpc/obmysql/ob_sql_nio.cpp index f5dd74126..04bec0b86 100644 --- a/deps/oblib/src/rpc/obmysql/ob_sql_nio.cpp +++ b/deps/oblib/src/rpc/obmysql/ob_sql_nio.cpp @@ -426,7 +426,7 @@ public: void set_handler_close_been_called() { handler_close_flag_ = true; } void remove_fd_from_epoll(int epfd) { if (epoll_ctl(epfd, EPOLL_CTL_DEL, fd_, nullptr) < 0) { - LOG_WARN("remove sock fd from epoll failed", K(fd_), K(epfd)); + LOG_WARN_RET(common::OB_ERR_SYS, "remove sock fd from epoll failed", K(fd_), K(epfd)); } } void set_shutdown() { ATOMIC_STORE(&need_shutdown_, true); } @@ -482,7 +482,7 @@ static int epoll_regist(int epfd, int fd, uint32_t eflag, void* s) { struct epoll_event event; if (0 != epoll_ctl(epfd, EPOLL_CTL_ADD, fd, __make_epoll_event(&event, eflag, s))) { err = -EIO; - LOG_ERROR("add fd to epoll failed", K(fd), K(epfd), K(errno)); + LOG_ERROR_RET(common::OB_ERR_SYS, "add fd to epoll failed", K(fd), K(epfd), K(errno)); } return err; } @@ -497,19 +497,19 @@ static int listen_create(int port) { int fd = 0; struct sockaddr_in sin; if ((fd = socket(AF_INET, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0)) < 0) { - LOG_ERROR("sql nio create socket for listen failed", K(errno)); + LOG_ERROR_RET(common::OB_ERR_SYS, "sql nio create socket for listen failed", K(errno)); err = errno; } else if (socket_set_opt(fd, SO_REUSEPORT, 1) < 0) { - LOG_ERROR("sql nio set sock opt SO_REUSEPORT failed", K(errno), K(fd)); + LOG_ERROR_RET(OB_ERR_SYS, "sql nio set sock opt SO_REUSEPORT failed", K(errno), K(fd)); err = errno; } else if (socket_set_opt(fd, SO_REUSEADDR, 1) < 0) { - LOG_ERROR("sql nio set sock opt SO_REUSEADDR failed", K(errno), K(fd)); + LOG_ERROR_RET(OB_ERR_SYS, "sql nio set sock opt SO_REUSEADDR failed", K(errno), K(fd)); err = errno; } else if (bind(fd, (sockaddr*)obrpc::make_unix_sockaddr(&sin, 0, port), sizeof(sin))) { - LOG_ERROR("sql nio bind listen fd failed", K(errno), K(fd)); + LOG_ERROR_RET(OB_ERR_SYS, "sql nio bind listen fd failed", K(errno), K(fd)); err = errno; } else if (listen(fd, 1024) < 0) { - LOG_ERROR("sql nio listen failed", K(errno), K(fd)); + LOG_ERROR_RET(OB_ERR_SYS, "sql nio listen failed", K(errno), K(fd)); err = errno; } if (0 != err) { @@ -620,10 +620,10 @@ public: } void push_close_req(ObSqlSock* s) { if (s->set_error(EIO)) { - LOG_WARN("close sql sock by user req", K(*s)); + LOG_WARN_RET(OB_ERR_SYS, "close sql sock by user req", K(*s)); close_req_queue_.push(s); } else { - LOG_WARN("user req close, and epoll thread already set error", K(*s)); + LOG_WARN_RET(OB_ERR_SYS, "user req close, and epoll thread already set error", K(*s)); } } void push_write_req(ObSqlSock* s) { @@ -692,7 +692,7 @@ private: } } void prepare_destroy(ObSqlSock* s) { - LOG_WARN("prepare destroy", K(*s)); + LOG_TRACE("prepare destroy", K(*s)); s->remove_fd_from_epoll(epfd_); s->on_disconnect(); pending_destroy_list_.add(&s->dlink_); @@ -714,7 +714,7 @@ private: LOG_INFO("sock ref clean, do destroy", K(*s)); need_destroy = true; } else { - LOG_WARN("wait handling done...", K(*s)); + LOG_TRACE("wait handling done...", K(*s)); } } if (need_destroy) { @@ -735,10 +735,10 @@ private: if (OB_UNLIKELY((EPOLLERR & mask) || (EPOLLHUP & mask) || (EPOLLRDHUP & mask))) { if (s->set_error(EIO)) { - LOG_WARN("sock error detect by epoll", K(mask), K(*s)); + LOG_WARN_RET(OB_ERR_SYS, "sock error detect by epoll", K(mask), K(*s)); prepare_destroy(s); } else { - LOG_WARN("sock error detect by epoll, and worker thread alread set error", K(*s)); + LOG_WARN_RET(OB_ERR_SYS, "sock error detect by epoll, and worker thread alread set error", K(*s)); } } else { int err = 0; @@ -792,13 +792,13 @@ private: if (EAGAIN == errno || EWOULDBLOCK == errno) { break; } else { - LOG_ERROR("accept4 fail", K(lfd_), K(errno)); + LOG_ERROR_RET(OB_ERR_SYS, "accept4 fail", K(lfd_), K(errno)); break; } } else { int err = 0; if (0 != (err = do_accept_one(fd))) { - LOG_ERROR("do_accept_one fail", K(fd), K(err)); + LOG_ERROR_RET(OB_ERR_SYS, "do_accept_one fail", K(fd), K(err)); close(fd); } } @@ -811,14 +811,14 @@ private: uint32_t epflag = EPOLLIN | EPOLLOUT | EPOLLERR | EPOLLET | EPOLLRDHUP; if (setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, (const void *)&enable_tcp_nodelay, sizeof(enable_tcp_nodelay)) < 0) { err = errno; - LOG_WARN("set TCP_NODELAY failed", K(fd), KERRNOMSG(errno)); + LOG_WARN_RET(OB_ERR_SYS, "set TCP_NODELAY failed", K(fd), KERRNOMSG(errno)); } else if (NULL == (s = alloc_sql_sock(fd))) { err = -ENOMEM; - LOG_WARN("alloc_sql_sock fail", K(fd), K(err)); + LOG_WARN_RET(OB_ERR_SYS, "alloc_sql_sock fail", K(fd), K(err)); } else if (0 != (err = epoll_regist(epfd_, fd, epflag, s))) { - LOG_WARN("epoll_regist fail", K(fd), K(err)); + LOG_WARN_RET(OB_ERR_SYS, "epoll_regist fail", K(fd), K(err)); } else if (0 != (err = handler_.on_connect(s->sess_, fd))) { - LOG_WARN("on_connect fail", K(err)); + LOG_WARN_RET(OB_ERR_SYS, "on_connect fail", K(err)); } else { LOG_INFO("accept one succ", K(*s)); } @@ -860,13 +860,13 @@ private: cur = cur->next_; int fd = s->get_fd(); if (setsockopt(fd, SOL_SOCKET, SO_KEEPALIVE, (const void *)&tcp_keepalive_enabled_, sizeof(tcp_keepalive_enabled_)) < 0) { - LOG_WARN("setsockopt SO_KEEPALIVE failed", K(fd), KERRNOMSG(errno)); + LOG_WARN_RET(OB_ERR_SYS, "setsockopt SO_KEEPALIVE failed", K(fd), KERRNOMSG(errno)); } else if (setsockopt(fd, IPPROTO_TCP, TCP_KEEPIDLE, (const void *)&tcp_keepidle_, sizeof(tcp_keepidle_)) < 0) { - LOG_WARN("setsockopt TCP_KEEPIDLE failed", K(fd), KERRNOMSG(errno)); + LOG_WARN_RET(OB_ERR_SYS, "setsockopt TCP_KEEPIDLE failed", K(fd), KERRNOMSG(errno)); } else if (setsockopt(fd, IPPROTO_TCP, TCP_KEEPINTVL, (const void *)&tcp_keepintvl_, sizeof(tcp_keepintvl_)) < 0) { - LOG_WARN("setsockopt TCP_KEEPINTVL failed", K(fd), KERRNOMSG(errno)); + LOG_WARN_RET(OB_ERR_SYS, "setsockopt TCP_KEEPINTVL failed", K(fd), KERRNOMSG(errno)); } else if (setsockopt(fd, IPPROTO_TCP, TCP_KEEPCNT, (const void *)&tcp_keepcnt_, sizeof(tcp_keepcnt_)) < 0) { - LOG_WARN("setsockopt TCP_KEEPCNT failed", K(fd), KERRNOMSG(errno)); + LOG_WARN_RET(OB_ERR_SYS, "setsockopt TCP_KEEPCNT failed", K(fd), KERRNOMSG(errno)); } } } @@ -1050,7 +1050,7 @@ void ObSqlNio::update_tcp_keepalive_params(int keepalive_enabled, uint32_t tcp_k impl_[index].update_tcp_keepalive_params(keepalive_enabled, tcp_keepidle, tcp_keepintvl, tcp_keepcnt); } } else { - LOG_ERROR("sql nio impl_ is nullptr", KP(impl_)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "sql nio impl_ is nullptr", KP(impl_)); } } diff --git a/deps/oblib/src/rpc/obmysql/ob_sql_sock_processor.cpp b/deps/oblib/src/rpc/obmysql/ob_sql_sock_processor.cpp index e2bd2e1f8..b059ae683 100644 --- a/deps/oblib/src/rpc/obmysql/ob_sql_sock_processor.cpp +++ b/deps/oblib/src/rpc/obmysql/ob_sql_sock_processor.cpp @@ -100,7 +100,7 @@ ObVirtualCSProtocolProcessor *ObSqlSockProcessor::get_protocol_processor(ObCSPro break; } default: { - LOG_ERROR("invalid cs protocol type", K(type)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "invalid cs protocol type", K(type)); break; } } diff --git a/deps/oblib/src/rpc/obrpc/ob_easy_rpc_request_operator.cpp b/deps/oblib/src/rpc/obrpc/ob_easy_rpc_request_operator.cpp index 8a1fd6026..5b4cf9b88 100644 --- a/deps/oblib/src/rpc/obrpc/ob_easy_rpc_request_operator.cpp +++ b/deps/oblib/src/rpc/obrpc/ob_easy_rpc_request_operator.cpp @@ -23,10 +23,10 @@ void* ObEasyRpcRequestOperator::alloc_response_buffer(ObRequest* req, int64_t si void* buf = NULL; easy_request_t* ez_req = NULL; if (OB_ISNULL(req) || OB_ISNULL(ez_req = req->get_ez_req())) { - RPC_LOG(ERROR, "request is invalid", KP(req)); + RPC_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "request is invalid", KP(req)); } else if (OB_ISNULL(ez_req->ms) || OB_ISNULL(ez_req->ms->pool)) { - RPC_LOG(ERROR, "request is invalid", K(req)); + RPC_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "request is invalid", K(req)); } else { buf = easy_pool_alloc( ez_req->ms->pool, static_cast(size)); @@ -39,7 +39,7 @@ void ObEasyRpcRequestOperator::response_result(ObRequest* req, obrpc::ObRpcPacke //just set request retcode, wakeup in ObSingleServer::handlePacketQueue() easy_request_t* ez_req = NULL; if (OB_ISNULL(req) || OB_ISNULL(ez_req = req->get_ez_req())) { - RPC_LOG(ERROR, "reqest is NULL or request has wokenup"); + RPC_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "reqest is NULL or request has wokenup"); } else { ez_req->opacket = pkt; ez_req->retcode = EASY_OK; @@ -55,11 +55,11 @@ ObAddr ObEasyRpcRequestOperator::get_peer(const ObRequest* req) easy_request_t* ez_req = req->ez_req_; if (OB_ISNULL(ez_req) || OB_ISNULL(ez_req->ms) || OB_ISNULL(ez_req->ms->c)) { - RPC_LOG(ERROR, "invalid argument", K(ez_req)); + RPC_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "invalid argument", K(ez_req)); } else { easy_addr_t &ez = ez_req->ms->c->addr; if (!ez2ob_addr(addr, ez)) { - RPC_LOG(ERROR, "fail to convert easy_addr to ob_addr", K(ez_req)); + RPC_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "fail to convert easy_addr to ob_addr", K(ez_req)); } // otherwise leave addr be zeros } return addr; diff --git a/deps/oblib/src/rpc/obrpc/ob_net_keepalive.cpp b/deps/oblib/src/rpc/obrpc/ob_net_keepalive.cpp index 1188d8350..812b1ca44 100644 --- a/deps/oblib/src/rpc/obrpc/ob_net_keepalive.cpp +++ b/deps/oblib/src/rpc/obrpc/ob_net_keepalive.cpp @@ -259,7 +259,7 @@ int ObNetKeepAlive::in_black(const easy_addr_t &ez_addr, bool &in_black, ObNetKe } else { ret = OB_ERR_UNEXPECTED; if (REACH_TIME_INTERVAL(1000000)) { - _LOG_WARN("keepalive thread maybe not work, last_write_ts: %ld", last_wts); + _LOG_WARN_RET(OB_ERR_UNEXPECTED, "keepalive thread maybe not work, last_write_ts: %ld", last_wts); } } } else { @@ -327,7 +327,7 @@ void ObNetKeepAlive::mark_white_black() rs->in_black_ = 0; } else { if (!rs->in_black_) { - _LOG_WARN("mark black, addr: %s", addr_to_string(rs->svr_addr_)); + _LOG_INFO("mark black, addr: %s", addr_to_string(rs->svr_addr_)); rs->in_black_ts_ = now; } rs->in_black_ = 1; @@ -345,7 +345,7 @@ rpc_server *get_rpc_server(const easy_addr_t *addr, rpc_server **rss, int32_t n_ if (!rs) { rpc_server *s = (rpc_server*)ob_malloc(sizeof(rpc_server), "rpc_server"); if (NULL == s) { - _LOG_WARN("alloc memory failed"); + _LOG_WARN_RET(OB_ALLOCATE_MEMORY_FAILED, "alloc memory failed"); break; } bzero(s, sizeof(rpc_server)); diff --git a/deps/oblib/src/rpc/obrpc/ob_poc_nio.cpp b/deps/oblib/src/rpc/obrpc/ob_poc_nio.cpp index 244d4fb57..948d1bcf8 100644 --- a/deps/oblib/src/rpc/obrpc/ob_poc_nio.cpp +++ b/deps/oblib/src/rpc/obrpc/ob_poc_nio.cpp @@ -30,22 +30,22 @@ static struct sockaddr_in* obaddr2sockaddr(struct sockaddr_in *sin, const ObAddr int ObPocNio::post(const common::ObAddr& addr, const char* req, int64_t req_size, IRespHandler* resp_handler) { - int err = 0; + int ret = 0; int64_t io_limit = 1<<21; RLOCAL(char*, resp_buf); struct sockaddr_in sin; int fd = -1; if ((fd = socket(AF_INET, SOCK_STREAM, 0)) < 0) { - err = errno; + ret = errno; RPC_LOG(WARN, "create socket fail", K(errno)); } else if (connect(fd, (sockaddr*)obaddr2sockaddr(&sin, addr), sizeof(sin)) < 0) { - err = errno; + ret = errno; RPC_LOG(WARN, "connect fail", K(addr), K(errno)); } else if (write(fd, req, req_size) != req_size) { - err = errno; + ret = errno; RPC_LOG(WARN, "write fail", K(req_size), K(errno)); } else if (NULL == resp_buf && NULL == (resp_buf = (char*)malloc(io_limit))) { - err = ENOMEM; + ret = ENOMEM; RPC_LOG(WARN, "alloc resp buffer fail", K(io_limit), K(errno)); } else { shutdown(fd, SHUT_WR); @@ -56,13 +56,13 @@ int ObPocNio::post(const common::ObAddr& addr, const char* req, int64_t req_size sz = 0; } RPC_LOG(INFO, "receive resp finish", K(sz)); - resp_handler->handle_resp(err, resp_buf, sz); + resp_handler->handle_resp(ret, resp_buf, sz); RPC_LOG(INFO, "resp callback finish"); } if (fd >= 0) { close(fd); } - return err; + return ret; } int ObPocNio::resp(int64_t resp_id, char* buf, int64_t sz) @@ -70,12 +70,12 @@ int ObPocNio::resp(int64_t resp_id, char* buf, int64_t sz) int fd = (int)resp_id; if (sz > 0 && fd >= 0) { if (write(fd, buf, sz) < 0) { - RPC_LOG(WARN, "write resp fail", K(errno)); + RPC_LOG_RET(WARN, common::OB_ERR_SYS, "write resp fail", K(errno)); } else { - RPC_LOG(WARN, "write resp OK"); + RPC_LOG_RET(WARN, common::OB_SUCCESS, "write resp OK"); } } else { - RPC_LOG(WARN, "resp invalid argument", KP(buf), K(sz), K(fd)); + RPC_LOG_RET(WARN, common::OB_INVALID_ARGUMENT, "resp invalid argument", KP(buf), K(sz), K(fd)); } if (fd >= 0) { close(fd); @@ -91,14 +91,14 @@ int ObPocNio::do_work(int tid) while(1){ int fd = -1; if (read(accept_queue_fd_, &fd, sizeof(fd)) != sizeof(fd)) { - RPC_LOG(ERROR, "read accept queue fail"); + RPC_LOG_RET(ERROR, common::OB_ERR_SYS, "read accept queue fail"); continue; } else { RPC_LOG(INFO, "read accept queue succ", K(fd)); } int64_t sz = read(fd, io_buf, io_limit); if (sz < 0 || sz >= io_limit) { - RPC_LOG(WARN, "read socket error", K(errno), K(fd)); + RPC_LOG_RET(WARN, common::OB_ERR_SYS, "read socket error", K(errno), K(fd)); close(fd); } else { int ret = OB_SUCCESS; diff --git a/deps/oblib/src/rpc/obrpc/ob_rpc_handler.cpp b/deps/oblib/src/rpc/obrpc/ob_rpc_handler.cpp index f79b9fdd3..d0421c709 100644 --- a/deps/oblib/src/rpc/obrpc/ob_rpc_handler.cpp +++ b/deps/oblib/src/rpc/obrpc/ob_rpc_handler.cpp @@ -47,13 +47,13 @@ int ObRpcHandler::process(easy_request_t *r) ObTimeGuard timeguard("ObRpcHandler::process", OB_EASY_HANDLER_COST_TIME); if (OB_ISNULL(r) || OB_ISNULL(r->ipacket)) { eret = EASY_ERROR; - LOG_ERROR("request is empty", K(eret), K(r)); + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "request is empty", K(eret), K(r)); } else if (OB_ISNULL(r->ms) || OB_ISNULL(r->ms->pool)) { eret = EASY_ERROR; - LOG_ERROR("Easy message session(ms) or ms->pool is NULL", K(eret), "ms", r->ms); + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "Easy message session(ms) or ms->pool is NULL", K(eret), "ms", r->ms); } else if (OB_ISNULL(r->ms->c) || OB_ISNULL(r->ms->c->pool)) { eret = EASY_ERROR; - LOG_ERROR("Easy ms connect(c) or (c->pool)is NULL", K(eret), "connect", r->ms->c); + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "Easy ms connect(c) or (c->pool)is NULL", K(eret), "connect", r->ms->c); } else { // TODO: fufeng, check copy new request is necessary. timeguard.click(); @@ -61,7 +61,7 @@ int ObRpcHandler::process(easy_request_t *r) timeguard.click(); if (OB_UNLIKELY(NULL == buf)) { eret = EASY_ERROR; - LOG_WARN("alloc easy memory fail", K(eret)); + LOG_WARN_RET(common::OB_ALLOCATE_MEMORY_FAILED, "alloc easy memory fail", K(eret)); } else { ObRpcRequest *req = new (buf) ObRpcRequest(ObRpcRequest::OB_RPC); const ObRpcPacket *pkt = reinterpret_cast(r->ipacket); @@ -84,7 +84,7 @@ int ObRpcHandler::process(easy_request_t *r) easy_atomic_dec(&r->ms->c->pool->ref); easy_atomic_dec(&r->ms->pool->ref); if (OB_QUEUE_OVERFLOW == eret) { - LOG_WARN("deliver request fail", K(eret), K(*req)); + LOG_WARN_RET(common::OB_ERR_UNEXPECTED, "deliver request fail", K(eret), K(*req)); } eret = EASY_OK; } diff --git a/deps/oblib/src/rpc/obrpc/ob_rpc_mem_pool.cpp b/deps/oblib/src/rpc/obrpc/ob_rpc_mem_pool.cpp index a67fd6754..ced63cf97 100644 --- a/deps/oblib/src/rpc/obrpc/ob_rpc_mem_pool.cpp +++ b/deps/oblib/src/rpc/obrpc/ob_rpc_mem_pool.cpp @@ -43,7 +43,7 @@ static ObRpcMemPool::Page* rpc_mem_pool_create_page(int64_t sz) { int64_t alloc_sz = std::max(sizeof(ObRpcMemPool::Page) + sz, (uint64_t)ObRpcMemPool::RPC_POOL_PAGE_SIZE); ObRpcMemPool::Page* page = (typeof(page))rpc_mem_pool_direct_alloc(alloc_sz); if (OB_ISNULL(page)) { - LOG_ERROR("rpc memory pool alloc memory failed", K(sz), K(alloc_sz)); + LOG_ERROR_RET(common::OB_ALLOCATE_MEMORY_FAILED, "rpc memory pool alloc memory failed", K(sz), K(alloc_sz)); } else { new(page)ObRpcMemPool::Page(alloc_sz); } diff --git a/deps/oblib/src/rpc/obrpc/ob_rpc_net_handler.cpp b/deps/oblib/src/rpc/obrpc/ob_rpc_net_handler.cpp index b33712d58..7e75e010f 100644 --- a/deps/oblib/src/rpc/obrpc/ob_rpc_net_handler.cpp +++ b/deps/oblib/src/rpc/obrpc/ob_rpc_net_handler.cpp @@ -194,12 +194,12 @@ void *ObRpcNetHandler::decode(easy_message_t *ms) const int64_t receive_ts = common::ObTimeUtility::current_time(); const int64_t fly_ts = receive_ts - pkt->get_timestamp(); if (!pkt->is_resp() && fly_ts > common::OB_MAX_PACKET_FLY_TS && TC_REACH_TIME_INTERVAL(100 * 1000)) { - LOG_WARN("packet fly cost too much time", "pcode", pkt->get_pcode(), + LOG_WARN_RET(common::OB_ERR_TOO_MUCH_TIME, "packet fly cost too much time", "pcode", pkt->get_pcode(), "fly_ts", fly_ts, "send_timestamp", pkt->get_timestamp(), "connection", easy_connection_str(ms->c)); } pkt->set_receive_ts(receive_ts); if (timeguard.get_diff() > common::OB_MAX_PACKET_DECODE_TS && TC_REACH_TIME_INTERVAL(100 * 1000)) { - LOG_WARN("packet decode cost too much time", "pcode", pkt->get_pcode(), K(timeguard), "connection", easy_connection_str(ms->c)); + LOG_WARN_RET(OB_ERR_TOO_MUCH_TIME, "packet decode cost too much time", "pcode", pkt->get_pcode(), K(timeguard), "connection", easy_connection_str(ms->c)); } } else { //receive data is not enough @@ -218,13 +218,13 @@ int ObRpcNetHandler::encode(easy_request_t *req, void *packet) if (OB_ISNULL(req)) { eret = EASY_ERROR; - LOG_ERROR("req should not be NULL", K(eret)); + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "req should not be NULL", K(eret)); } else if (OB_ISNULL(packet)) { eret = EASY_ERROR; - LOG_ERROR("packet should not be NULL", K(eret)); + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "packet should not be NULL", K(eret)); } else if (OB_ISNULL(req->ms) || OB_ISNULL(easy_conn = req->ms->c)) { eret = EASY_ERROR; - LOG_ERROR("Easy message session(ms) or ms pool is NULL", K(eret), "ms", "req->ms"); + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "Easy message session(ms) or ms pool is NULL", K(eret), "ms", "req->ms"); } else if (NULL == easy_conn->user_data) { is_current_normal_mode = true; } else { @@ -248,7 +248,7 @@ int ObRpcNetHandler::encode(easy_request_t *req, void *packet) req->pcode = pkt->get_pcode(); const uint64_t *trace_id = pkt->get_trace_id(); if (trace_id == NULL) { - LOG_WARN("trace_id should not be NULL"); + LOG_WARN_RET(common::OB_ERR_UNEXPECTED, "trace_id should not be NULL"); } else { req->trace_id[0] = trace_id[0]; req->trace_id[1] = trace_id[1]; @@ -260,7 +260,7 @@ int ObRpcNetHandler::encode(easy_request_t *req, void *packet) const int64_t wait_ts = receive_ts - pkt->get_timestamp(); if (!pkt->is_resp() && wait_ts > common::OB_MAX_PACKET_FLY_TS && TC_REACH_TIME_INTERVAL(100 * 1000)) { - LOG_WARN("packet wait too much time before encode", "pcode", pkt->get_pcode(), + LOG_WARN_RET(common::OB_ERR_TOO_MUCH_TIME, "packet wait too much time before encode", "pcode", pkt->get_pcode(), "wait_ts", wait_ts, "send_timestamp", pkt->get_timestamp()); } @@ -285,7 +285,7 @@ uint64_t ObRpcNetHandler::get_packet_id(easy_connection_t *c, void *packet) UNUSED(c); uint64_t pkt_id = common::OB_INVALID_ID; if (OB_ISNULL(packet)) { - LOG_ERROR("packet should not be NULL"); + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "packet should not be NULL"); } else { pkt_id = static_cast(packet)->get_chid(); pkt_id = (pkt_id<<16) | (c->fd & 0xffff); @@ -298,7 +298,7 @@ int ObRpcNetHandler::on_connect(easy_connection_t *c) int eret = EASY_OK; if (OB_ISNULL(c)) { eret = EASY_ERROR; - LOG_ERROR("invalid argument", K(eret), K(c)); + LOG_ERROR_RET(common::OB_INVALID_ARGUMENT, "invalid argument", K(eret), K(c)); } else { LOG_INFO("rpc connection accept", "dest", easy_connection_str(c)); } @@ -310,7 +310,7 @@ int ObRpcNetHandler::on_disconnect(easy_connection_t *c) int eret = EASY_OK; if (OB_ISNULL(c)) { eret = EASY_ERROR; - LOG_ERROR("invalid argument", K(eret), K(c)); + LOG_ERROR_RET(common::OB_INVALID_ARGUMENT, "invalid argument", K(eret), K(c)); } else { if (NULL != c->user_data) { //free ctx memory of compress ctx when necessary @@ -329,7 +329,7 @@ int ObRpcNetHandler::on_disconnect(easy_connection_t *c) void ObRpcNetHandler::set_trace_info(easy_request_t *req, void *packet) { if (OB_ISNULL(req) || OB_ISNULL(packet)) { - LOG_ERROR("packet should not be NULL"); + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "packet should not be NULL"); } else { ObRpcPacket *pkt = static_cast(packet); req->request_arrival_time = (pkt->get_request_arrival_time() ? pkt->get_request_arrival_time() : common::ObTimeUtility::current_time()); @@ -344,7 +344,7 @@ void ObRpcNetHandler::set_trace_info(easy_request_t *req, void *packet) req->session_id = pkt->get_session_id(); const uint64_t *trace_id = pkt->get_trace_id(); if (trace_id == NULL) { - LOG_WARN("trace_id should not be NULL"); + LOG_WARN_RET(common::OB_ERR_UNEXPECTED, "trace_id should not be NULL"); } else { req->trace_id[0] = trace_id[0]; req->trace_id[1] = trace_id[1]; @@ -358,9 +358,9 @@ char *ObRpcNetHandler::easy_alloc(easy_pool_t *pool, int64_t size) const { char *buf = NULL; if (size > UINT32_MAX || size < 0) { - LOG_WARN("easy alloc fail", K(size)); + LOG_WARN_RET(common::OB_ALLOCATE_MEMORY_FAILED, "easy alloc fail", K(size)); } else if (OB_ISNULL(pool)) { - LOG_ERROR("Easy pool is NULL"); + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "Easy pool is NULL"); } else { buf = static_cast(easy_pool_alloc(pool, static_cast(size))); } diff --git a/deps/oblib/src/rpc/obrpc/ob_rpc_processor_base.cpp b/deps/oblib/src/rpc/obrpc/ob_rpc_processor_base.cpp index 297714791..d8e755b87 100644 --- a/deps/oblib/src/rpc/obrpc/ob_rpc_processor_base.cpp +++ b/deps/oblib/src/rpc/obrpc/ob_rpc_processor_base.cpp @@ -574,7 +574,7 @@ void ObRpcProcessorBase::cleanup() if (preserved_buf_) { common::ob_free(preserved_buf_); } else { - RPC_OBRPC_LOG(WARN, "preserved buffer is NULL, maybe alloc fail"); + RPC_OBRPC_LOG_RET(WARN, OB_ALLOCATE_MEMORY_FAILED, "preserved buffer is NULL, maybe alloc fail"); } } @@ -594,7 +594,7 @@ void ObRpcProcessorBase::cleanup() piece.queue_time_ = get_run_timestamp() - get_enqueue_timestamp(); piece.process_time_ = common::ObTimeUtility::current_time() - get_run_timestamp(); if (0 == tenant_id_) { - RPC_OBRPC_LOG(WARN, "tenant_id of rpc_pkt is 0"); + RPC_OBRPC_LOG_RET(WARN, OB_INVALID_ARGUMENT, "tenant_id of rpc_pkt is 0"); } RPC_STAT(static_cast(m_get_pcode()), tenant_id_, piece); } diff --git a/deps/oblib/src/rpc/obrpc/ob_rpc_proxy.cpp b/deps/oblib/src/rpc/obrpc/ob_rpc_proxy.cpp index 00ded7593..37f34971a 100644 --- a/deps/oblib/src/rpc/obrpc/ob_rpc_proxy.cpp +++ b/deps/oblib/src/rpc/obrpc/ob_rpc_proxy.cpp @@ -239,7 +239,12 @@ int ObRpcProxy::init_pkt( pkt->set_timeout(timeout_); pkt->set_priority(opts.pr_); pkt->set_session_id(0); - pkt->set_log_level(common::ObThreadLogLevelUtils::get_level()); + int8_t log_level = common::ObThreadLogLevelUtils::get_level(); + // for log level compatibility, disable thread log level while upgrading. + if (OB_LOGGER.is_info_as_wdiag()) { + log_level = OB_LOG_LEVEL_NONE; + } + pkt->set_log_level(log_level); pkt->set_tenant_id(tenant_id_); pkt->set_priv_tenant_id(priv_tenant_id_); pkt->set_timestamp(ObTimeUtility::current_time()); diff --git a/deps/oblib/src/rpc/obrpc/ob_rpc_session_handler.cpp b/deps/oblib/src/rpc/obrpc/ob_rpc_session_handler.cpp index e3c44c44c..f7494a292 100644 --- a/deps/oblib/src/rpc/obrpc/ob_rpc_session_handler.cpp +++ b/deps/oblib/src/rpc/obrpc/ob_rpc_session_handler.cpp @@ -47,23 +47,23 @@ bool ObRpcSessionHandler::wakeup_next_thread(ObRequest &req) int64_t sessid = OB_INVALID_ID; if (OB_SUCCESS != (get_session_id(req, sessid))) { bret = false; - LOG_WARN("Get session id failed", K(bret)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "Get session id failed", K(bret)); } else { WaitObject wait_object; int hash_ret = next_wait_map_.get_refactored(sessid, wait_object); if (OB_SUCCESS != hash_ret) { // no thread wait for this packet; bret = false; - LOG_WARN("session not found", K(sessid)); + LOG_WARN_RET(hash_ret, "session not found", K(sessid)); } else { get_next_cond_(wait_object.thid_).lock(); hash_ret = next_wait_map_.get_refactored(sessid, wait_object); if (OB_SUCCESS != hash_ret) { // no thread wait for this packet; - LOG_WARN("wakeup session but no thread wait", K(req)); + LOG_WARN_RET(hash_ret, "wakeup session but no thread wait", K(req)); bret = false; } else if (NULL != wait_object.req_) { - LOG_ERROR("previous stream request hasn't processed", + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "previous stream request hasn't processed", "request", *wait_object.req_); bret = false; } else { @@ -72,7 +72,7 @@ bool ObRpcSessionHandler::wakeup_next_thread(ObRequest &req) int overwrite = 1; hash_ret = next_wait_map_.set_refactored(sessid, wait_object, overwrite); if (OB_SUCCESS != hash_ret) { - LOG_WARN("rewrite wait object fail", K(*wait_object.req_), K(hash_ret)); + LOG_WARN_RET(hash_ret, "rewrite wait object fail", K(*wait_object.req_), K(hash_ret)); } //Wake up the corresponding worker thread to start work get_next_cond_(wait_object.thid_).signal(); diff --git a/deps/oblib/src/rpc/obrpc/ob_rpc_stat.h b/deps/oblib/src/rpc/obrpc/ob_rpc_stat.h index acfb75a5b..64640ee67 100644 --- a/deps/oblib/src/rpc/obrpc/ob_rpc_stat.h +++ b/deps/oblib/src/rpc/obrpc/ob_rpc_stat.h @@ -153,7 +153,7 @@ void RpcStatBulk::add_piece(const RpcStatPiece &piece) if (common::OB_SUCCESS == items_[idx].lock_.trylock()) { items_[idx].add_piece(piece); if (OB_UNLIKELY(common::OB_SUCCESS != items_[idx].lock_.unlock())) { - RPC_LOG(ERROR, "unlock fail"); + RPC_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "unlock fail"); } break; } diff --git a/deps/oblib/src/rpc/obrpc/ob_virtual_rpc_protocol_processor.cpp b/deps/oblib/src/rpc/obrpc/ob_virtual_rpc_protocol_processor.cpp index de521da77..8e7431a22 100644 --- a/deps/oblib/src/rpc/obrpc/ob_virtual_rpc_protocol_processor.cpp +++ b/deps/oblib/src/rpc/obrpc/ob_virtual_rpc_protocol_processor.cpp @@ -37,9 +37,9 @@ char *ObVirtualRpcProtocolProcessor::easy_alloc(easy_pool_t *pool, int64_t size) { char *buf = NULL; if (size > UINT32_MAX || size < 0) { - LOG_WARN("invalid size", K(size)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "invalid size", K(size)); } else if (OB_ISNULL(pool)) { - LOG_ERROR("Easy pool is NULL"); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "Easy pool is NULL"); } else { buf = static_cast(easy_pool_alloc(pool, static_cast(size))); } diff --git a/deps/oblib/unittest/common/test_cell_writer.cpp b/deps/oblib/unittest/common/test_cell_writer.cpp index ea4a10696..8d7275855 100644 --- a/deps/oblib/unittest/common/test_cell_writer.cpp +++ b/deps/oblib/unittest/common/test_cell_writer.cpp @@ -141,7 +141,7 @@ void TestCellWriter::check_int( break; } default: - COMMON_LOG(WARN, "invalid attr."); + COMMON_LOG_RET(WARN, OB_ERR_UNEXPECTED, "invalid attr."); } } diff --git a/deps/oblib/unittest/lib/oblog/test_ob_log_performance.cpp b/deps/oblib/unittest/lib/oblog/test_ob_log_performance.cpp index 80021b956..4b0db1b93 100644 --- a/deps/oblib/unittest/lib/oblog/test_ob_log_performance.cpp +++ b/deps/oblib/unittest/lib/oblog/test_ob_log_performance.cpp @@ -61,6 +61,7 @@ ObLoggerTest::ObLoggerTest() void ObLogTestThread::run1() { + int ret = 0; OB_LOG(ERROR, "error log would print lbt"); SET_OB_LOG_TRACE_MODE(); PRINT_OB_LOG_TRACE_BUF(COMMON, INFO); @@ -80,6 +81,7 @@ void ObLogTestThread::run1() void ObLogTestThreadT::run1() { + int ret = 0; int64_t b_time = ::oceanbase::common::ObTimeUtility::current_time(); { ObString str("Our destiny offers not the cup of despair, but the chalice of opportunity. So let us seize it, not in fear, but in gladness."); @@ -95,6 +97,7 @@ void ObLogTestThreadT::run1() void ObLoggerTest::run_test() { + int ret = 0; system("rm -rf s_log.log*"); OB_LOGGER.set_log_level("TRACE", "WARN"); OB_LOGGER.set_enable_async_log(false); @@ -112,6 +115,7 @@ void ObLoggerTest::run_test() void ObLoggerTest::run_test_t() { + int ret = 0; system("rm -rf t_log.log*"); OB_LOGGER.set_log_level("TRACE", "WARN"); OB_LOGGER.set_enable_async_log(false); @@ -128,6 +132,7 @@ void ObLoggerTest::run_test_t() void ObLoggerTest::run_test_async() { + int ret = 0; system("rm -rf async_log.log*"); OB_LOGGER.set_log_level("TRACE", "WARN"); //OB_LOGGER.set_max_file_size(BIG_LOG_FILE_SIZE); @@ -148,6 +153,7 @@ void ObLoggerTest::run_test_async() void ObLoggerTest::run_test_async_multi() { + int ret = 0; system("rm -rf async_multi_log.log*"); OB_LOGGER.set_log_level("TRACE", "WARN"); //OB_LOGGER.set_max_file_size(BIG_LOG_FILE_SIZE); @@ -169,6 +175,7 @@ void ObLoggerTest::run_test_async_multi() void ObLoggerTest::run_test_t_async() { + int ret = 0; system("rm -rf t_async_log.log*"); OB_LOGGER.set_log_level("TRACE", "WARN"); OB_LOGGER.set_enable_async_log(true); @@ -186,6 +193,7 @@ void ObLoggerTest::run_test_t_async() void ObLoggerTest::run_test_t_async_multi() { + int ret = 0; system("rm -rf t_async_multi_log.log*"); OB_LOGGER.set_log_level("TRACE", "WARN"); OB_LOGGER.set_enable_async_log(true); diff --git a/deps/oblib/unittest/lib/test_fixed_array.cpp b/deps/oblib/unittest/lib/test_fixed_array.cpp index b605e74fb..ca0948dc3 100644 --- a/deps/oblib/unittest/lib/test_fixed_array.cpp +++ b/deps/oblib/unittest/lib/test_fixed_array.cpp @@ -186,6 +186,7 @@ TEST(ObTestFiexedArray, serialize3) } TEST(ObTestFiexedArray, other) { + int ret = 0; ObArray tmp_array; Testfun testfun(tmp_array); OB_LOG(WARN, "return size", K(sizeof(testfun)), K(sizeof(Testfun))); diff --git a/deps/oblib/unittest/lib/test_work_queue.cpp b/deps/oblib/unittest/lib/test_work_queue.cpp index 03afef0fe..7835b714d 100644 --- a/deps/oblib/unittest/lib/test_work_queue.cpp +++ b/deps/oblib/unittest/lib/test_work_queue.cpp @@ -88,6 +88,7 @@ public: } virtual ObAsyncTask *deep_copy(char *buf, const int64_t buf_size) const override { + int ret = 0; ObAsyncTask *task = NULL; if (buf == NULL || buf_size < sizeof(*this)) { OB_LOG(ERROR, "invalid argument"); diff --git a/deps/oblib/unittest/lib/utility/test_sample_rate_limiter.cpp b/deps/oblib/unittest/lib/utility/test_sample_rate_limiter.cpp index 3c7ef7517..e18a3d961 100644 --- a/deps/oblib/unittest/lib/utility/test_sample_rate_limiter.cpp +++ b/deps/oblib/unittest/lib/utility/test_sample_rate_limiter.cpp @@ -11,7 +11,7 @@ */ #include -#include "lib/utility/ob_sample_rate_limiter.h" +#include "lib/oblog/ob_syslog_rate_limiter.h" //using namespace ::oblib; using namespace oceanbase::lib; @@ -19,21 +19,21 @@ using namespace oceanbase::common; TEST(TestSampleRateLimiter, Basic) { - ObSampleRateLimiter rl(1, 3, 1000000/*1s*/); - ASSERT_EQ(OB_SUCCESS, rl.try_acquire()); - ASSERT_EQ(OB_EAGAIN, rl.try_acquire()); - ASSERT_EQ(OB_EAGAIN, rl.try_acquire()); - ASSERT_EQ(OB_SUCCESS, rl.try_acquire()); - ASSERT_EQ(OB_EAGAIN, rl.try_acquire()); - ASSERT_EQ(OB_EAGAIN, rl.try_acquire()); - ASSERT_EQ(OB_SUCCESS, rl.try_acquire()); + ObSyslogSampleRateLimiter rl(1, 3, 1000000/*1s*/); + ASSERT_EQ(OB_SUCCESS, rl.try_acquire(1, OB_LOG_LEVEL_INFO)); + ASSERT_EQ(OB_EAGAIN, rl.try_acquire(1, OB_LOG_LEVEL_INFO)); + ASSERT_EQ(OB_EAGAIN, rl.try_acquire(1, OB_LOG_LEVEL_INFO)); + ASSERT_EQ(OB_SUCCESS, rl.try_acquire(1, OB_LOG_LEVEL_INFO)); + ASSERT_EQ(OB_EAGAIN, rl.try_acquire(1, OB_LOG_LEVEL_INFO)); + ASSERT_EQ(OB_EAGAIN, rl.try_acquire(1, OB_LOG_LEVEL_INFO)); + ASSERT_EQ(OB_SUCCESS, rl.try_acquire(1, OB_LOG_LEVEL_INFO)); sleep(1); - ASSERT_EQ(OB_SUCCESS, rl.try_acquire()); - ASSERT_EQ(OB_EAGAIN, rl.try_acquire(2)); - ASSERT_EQ(OB_SUCCESS, rl.try_acquire()); - ASSERT_EQ(OB_EAGAIN, rl.try_acquire(2)); - ASSERT_EQ(OB_SUCCESS, rl.try_acquire()); + ASSERT_EQ(OB_SUCCESS, rl.try_acquire(1, OB_LOG_LEVEL_INFO)); + ASSERT_EQ(OB_EAGAIN, rl.try_acquire(2, OB_LOG_LEVEL_INFO)); + ASSERT_EQ(OB_SUCCESS, rl.try_acquire(1, OB_LOG_LEVEL_INFO)); + ASSERT_EQ(OB_EAGAIN, rl.try_acquire(2, OB_LOG_LEVEL_INFO)); + ASSERT_EQ(OB_SUCCESS, rl.try_acquire(1, OB_LOG_LEVEL_INFO)); } int main(int argc, char **argv) diff --git a/deps/oblib/unittest/lib/utility/test_simple_rate_limiter.cpp b/deps/oblib/unittest/lib/utility/test_simple_rate_limiter.cpp index e5c173d17..327c74877 100644 --- a/deps/oblib/unittest/lib/utility/test_simple_rate_limiter.cpp +++ b/deps/oblib/unittest/lib/utility/test_simple_rate_limiter.cpp @@ -11,7 +11,7 @@ */ #include -#include "lib/utility/ob_simple_rate_limiter.h" +#include "lib/oblog/ob_syslog_rate_limiter.h" //using namespace ::oblib; using namespace oceanbase::lib; diff --git a/deps/oblib/unittest/lib/utility/test_utility.cpp b/deps/oblib/unittest/lib/utility/test_utility.cpp index 54a082724..559c7dd92 100644 --- a/deps/oblib/unittest/lib/utility/test_utility.cpp +++ b/deps/oblib/unittest/lib/utility/test_utility.cpp @@ -303,6 +303,7 @@ TEST(utility, long_to_str10) void test_max_speed(const int64_t rate, const int64_t total_size, const int64_t buf_size) { + int ret = 0; COMMON_LOG(INFO, "test_max_speed", K(rate), K(total_size), K(buf_size)); ASSERT_NE(0, rate); ObBandwidthThrottle throttle; @@ -363,6 +364,7 @@ TEST(utility, DISABLED_bandwidth_throttle) TEST(utility, ob_localtime) { + int ret = 0; struct tm std_tm; struct tm ob_tm; diff --git a/mittest/logservice/env/ob_simple_arb_server.cpp b/mittest/logservice/env/ob_simple_arb_server.cpp index 382933229..3e2dad47d 100644 --- a/mittest/logservice/env/ob_simple_arb_server.cpp +++ b/mittest/logservice/env/ob_simple_arb_server.cpp @@ -58,7 +58,7 @@ ObSimpleArbServer::~ObSimpleArbServer() ob_delete(tenant_base_); tenant_base_ = NULL; } - CLOG_LOG(WARN, "reset tenant_base_"); + CLOG_LOG_RET(WARN, OB_SUCCESS, "reset tenant_base_"); } int ObSimpleArbServer::simple_init(const std::string &cluster_name, @@ -120,7 +120,7 @@ int ObSimpleArbServer::simple_init(const std::string &cluster_name, } else if (OB_FAIL(timer_.init(lib::TGDefIDs::ArbServerTimer, &palf_env_mgr_))) { CLOG_LOG(WARN, "timer init failed", K(ret), K(addr), K(clog_dir.c_str())); } else { - filter_ = [this](const ObAddr &src) -> bool { + filter_ = [this, &ret](const ObAddr &src) -> bool { if (blacklist_.need_filter_packet_by_blacklist(src)) { SERVER_LOG(WARN, "need_filter_packet_by_blacklist", K(src)); return true; @@ -172,7 +172,7 @@ int ObSimpleArbServer::simple_start(const bool is_bootstrat) int ObSimpleArbServer::simple_close(const bool is_shutdown) { - CLOG_LOG(WARN, "arb simple_close"); + CLOG_LOG_RET(WARN, OB_SUCCESS, "arb simple_close"); srv_network_frame_.destroy(); palf_env_mgr_.destroy(); timer_.destroy(); diff --git a/mittest/logservice/env/ob_simple_arb_server.h b/mittest/logservice/env/ob_simple_arb_server.h index ee8a386d5..38b6aeb23 100644 --- a/mittest/logservice/env/ob_simple_arb_server.h +++ b/mittest/logservice/env/ob_simple_arb_server.h @@ -45,10 +45,10 @@ public: { int fd = -1; if (-1 == (fd = ::openat(dir_fd, block_path, palf::LOG_WRITE_FLAG | O_CREAT, 0664))) { - CLOG_LOG(WARN, "openat failed", K(block_path), K(errno)); + CLOG_LOG_RET(WARN, common::OB_ERR_SYS, "openat failed", K(block_path), K(errno)); return OB_IO_ERROR; } else if (-1 == ::fallocate(fd, 0, 0, block_size)) { - CLOG_LOG(WARN, "fallocate failed", K(block_path), K(errno)); + CLOG_LOG_RET(WARN, common::OB_ERR_SYS, "fallocate failed", K(block_path), K(errno)); return OB_IO_ERROR; } else { CLOG_LOG(INFO, "create_block_at success", K(block_path)); diff --git a/mittest/logservice/env/ob_simple_log_server.cpp b/mittest/logservice/env/ob_simple_log_server.cpp index 5363ecfbb..921c50a1b 100644 --- a/mittest/logservice/env/ob_simple_log_server.cpp +++ b/mittest/logservice/env/ob_simple_log_server.cpp @@ -508,7 +508,7 @@ int ObLogDeliver::start() void ObLogDeliver::stop() { if (IS_NOT_INIT) { - SERVER_LOG(WARN, "ObLogDeliver stop failed"); + SERVER_LOG_RET(WARN, OB_NOT_INIT, "ObLogDeliver stop failed"); } else { is_stopped_ = true; TG_STOP(tg_id_); diff --git a/mittest/logservice/test_ob_simple_log_arb.cpp b/mittest/logservice/test_ob_simple_log_arb.cpp index 8d24fdadb..dbe1f1153 100644 --- a/mittest/logservice/test_ob_simple_log_arb.cpp +++ b/mittest/logservice/test_ob_simple_log_arb.cpp @@ -29,7 +29,7 @@ void ObArbitrationService::update_arb_timeout_() { arb_timeout_us_ = 2 * 1000 * 1000L; if (REACH_TIME_INTERVAL(2 * 1000 * 1000)) { - CLOG_LOG(WARN, "update_arb_timeout_", K_(self), K_(arb_timeout_us)); + CLOG_LOG_RET(WARN, OB_ERR_UNEXPECTED, "update_arb_timeout_", K_(self), K_(arb_timeout_us)); } } } diff --git a/mittest/logservice/test_ob_simple_log_basic_func.cpp b/mittest/logservice/test_ob_simple_log_basic_func.cpp index 20b485082..639157080 100644 --- a/mittest/logservice/test_ob_simple_log_basic_func.cpp +++ b/mittest/logservice/test_ob_simple_log_basic_func.cpp @@ -454,7 +454,7 @@ TEST_F(TestObSimpleLogClusterBasicFunc, io_reducer_basic) const int64_t has_batched_size = leader.palf_env_impl_->log_io_worker_.batch_io_task_mgr_.has_batched_size_; const int64_t handle_count = leader.palf_env_impl_->log_io_worker_.batch_io_task_mgr_.handle_count_; const int64_t log_id = leader.palf_handle_impl_->sw_.get_max_log_id(); - PALF_LOG(ERROR, "batched_size", K(has_batched_size), K(log_id)); + PALF_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "batched_size", K(has_batched_size), K(log_id)); unblock_net(leader_idx, lag_follower_idx); unblock_net(lag_follower_idx, leader_idx); @@ -463,7 +463,7 @@ TEST_F(TestObSimpleLogClusterBasicFunc, io_reducer_basic) LSN lag_follower_max_lsn = lag_follower.palf_handle_impl_->sw_.max_flushed_end_lsn_; while (lag_follower_max_lsn < max_lsn) { sleep(1); - PALF_LOG(ERROR, "follower is lagged", K(max_lsn), K(lag_follower_max_lsn)); + PALF_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "follower is lagged", K(max_lsn), K(lag_follower_max_lsn)); lag_follower_max_lsn = lag_follower.palf_handle_impl_->sw_.max_flushed_end_lsn_; } const int64_t follower_has_batched_size = lag_follower.palf_env_impl_->log_io_worker_.batch_io_task_mgr_.has_batched_size_; @@ -471,7 +471,7 @@ TEST_F(TestObSimpleLogClusterBasicFunc, io_reducer_basic) EXPECT_EQ(OB_SUCCESS, revert_cluster_palf_handle_guard(palf_list)); int64_t cost_ts = ObTimeUtility::current_time() - start_ts; - PALF_LOG(ERROR, "runlin trace performance", K(cost_ts), K(log_id), K(max_lsn), K(has_batched_size), K(handle_count), + PALF_LOG_RET(ERROR, OB_SUCCESS, "runlin trace performance", K(cost_ts), K(log_id), K(max_lsn), K(has_batched_size), K(handle_count), K(follower_has_batched_size), K(follower_handle_count)); } diff --git a/mittest/logservice/test_ob_simple_log_engine.cpp b/mittest/logservice/test_ob_simple_log_engine.cpp index e1180f99d..62f6bfedb 100644 --- a/mittest/logservice/test_ob_simple_log_engine.cpp +++ b/mittest/logservice/test_ob_simple_log_engine.cpp @@ -656,7 +656,7 @@ TEST_F(TestObSimpleLogClusterLogEngine, io_reducer_basic_func) EXPECT_EQ(OB_SUCCESS, submit_log(leader_6, 1, id_6, remain_size)); sleep(1); LSN max_lsn2 = leader_6.palf_handle_impl_->sw_.get_max_lsn(); - PALF_LOG(ERROR, "runlin trace", K(max_lsn2), K(max_lsn1), K(remain_size), K(max_lsn)); + PALF_LOG_RET(ERROR, OB_SUCCESS, "runlin trace", K(max_lsn2), K(max_lsn1), K(remain_size), K(max_lsn)); EXPECT_EQ(max_lsn2, LSN(LEADER_DEFAULT_GROUP_BUFFER_SIZE)); io_task_cond_6.cond_.signal(); wait_lsn_until_flushed(max_lsn2, leader_6); @@ -673,7 +673,7 @@ TEST_F(TestObSimpleLogClusterLogEngine, io_reducer_basic_func) EXPECT_EQ(OB_SUCCESS, submit_log(leader_6, 1, id_6, remain_size)); sleep(1); LSN max_lsn2 = leader_6.palf_handle_impl_->sw_.get_max_lsn(); - PALF_LOG(ERROR, "runlin trace", K(max_lsn2), K(max_lsn1), K(remain_size), K(max_lsn)); + PALF_LOG_RET(ERROR, OB_SUCCESS, "runlin trace", K(max_lsn2), K(max_lsn1), K(remain_size), K(max_lsn)); EXPECT_EQ(max_lsn2, LSN(FOLLOWER_DEFAULT_GROUP_BUFFER_SIZE)); EXPECT_EQ(OB_SUCCESS, submit_log(leader_6, 1, id_6, 100)); sleep(1); diff --git a/mittest/logservice/test_ob_simple_log_rebuild.cpp b/mittest/logservice/test_ob_simple_log_rebuild.cpp index e2c16a8e8..62f8de8b8 100644 --- a/mittest/logservice/test_ob_simple_log_rebuild.cpp +++ b/mittest/logservice/test_ob_simple_log_rebuild.cpp @@ -204,7 +204,7 @@ TEST_F(TestObSimpleLogClusterRebuild, test_old_leader_rebuild) } EXPECT_EQ(OB_SUCCESS, rebuild_server->palf_handle_impl_->log_engine_.get_block_id_range(min_block_id, max_block_id)); - PALF_LOG(ERROR, "runlin trace get_block_id_range", K(min_block_id), K(max_block_id)); + PALF_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "runlin trace get_block_id_range", K(min_block_id), K(max_block_id)); // after unblocking net, old leader will do rebuild unblock_net(leader_idx, follower_idx1); diff --git a/mittest/logservice/test_ob_simple_log_single_replica_func.cpp b/mittest/logservice/test_ob_simple_log_single_replica_func.cpp index df4eda796..6ea5efd4d 100644 --- a/mittest/logservice/test_ob_simple_log_single_replica_func.cpp +++ b/mittest/logservice/test_ob_simple_log_single_replica_func.cpp @@ -481,7 +481,7 @@ TEST_F(TestObSimpleLogClusterSingleReplica, test_truncate_failed) char *log_dir = leader.palf_handle_impl_->log_engine_.log_storage_.block_mgr_.log_dir_; convert_to_normal_block(log_dir, block_id, block_path, OB_MAX_FILE_NAME_LENGTH); EXPECT_EQ(OB_ITER_END, read_log(leader)); - PALF_LOG(ERROR, "truncate pos", K(max_lsn)); + PALF_LOG_RET(ERROR, OB_SUCCESS, "truncate pos", K(max_lsn)); EXPECT_EQ(0, ftruncate(fd, max_lsn.val_)); FileDirectoryUtils::get_file_size(block_path, file_size); EXPECT_EQ(file_size, max_lsn.val_); @@ -516,7 +516,7 @@ TEST_F(TestObSimpleLogClusterSingleReplica, test_meta) log_engine->append_log_meta_(log_engine->log_meta_); } EXPECT_EQ(upper_aligned_log_tail, log_meta_storage->log_tail_); - PALF_LOG(ERROR, "runlin trace before restart", K(upper_aligned_log_tail), KPC(log_meta_storage)); + PALF_LOG_RET(ERROR, OB_SUCCESS, "runlin trace before restart", K(upper_aligned_log_tail), KPC(log_meta_storage)); } EXPECT_EQ(OB_SUCCESS, restart_paxos_groups()); diff --git a/mittest/mtlenv/storage/test_memtable_v2.cpp b/mittest/mtlenv/storage/test_memtable_v2.cpp index 3e9f7a8ec..43efe6dec 100644 --- a/mittest/mtlenv/storage/test_memtable_v2.cpp +++ b/mittest/mtlenv/storage/test_memtable_v2.cpp @@ -51,7 +51,7 @@ void *ObMemtableCtx::callback_alloc(const int64_t size) { void* ret = NULL; if (OB_ISNULL(ret = std::malloc(size))) { - TRANS_LOG(ERROR, "callback alloc error, no memory", K(size), K(*this)); + TRANS_LOG_RET(ERROR, OB_ALLOCATE_MEMORY_FAILED, "callback alloc error, no memory", K(size), K(*this)); } else { ATOMIC_FAA(&callback_mem_used_, size); ATOMIC_INC(&callback_alloc_count_); @@ -62,7 +62,7 @@ void *ObMemtableCtx::callback_alloc(const int64_t size) void ObMemtableCtx::callback_free(ObITransCallback *cb) { if (OB_ISNULL(cb)) { - TRANS_LOG(ERROR, "cb is null, unexpected error", KP(cb), K(*this)); + TRANS_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "cb is null, unexpected error", KP(cb), K(*this)); } else { ATOMIC_INC(&callback_free_count_); std::free(cb); diff --git a/mittest/ob_mittest_utils.h b/mittest/ob_mittest_utils.h index c4f1fdc87..39e0b07bd 100644 --- a/mittest/ob_mittest_utils.h +++ b/mittest/ob_mittest_utils.h @@ -158,8 +158,8 @@ int64_t __attribute__ ((weak)) get_rpc_port(int &server_fd_ret) } STORAGE_LOG(INFO, "find port", K(find_port)); if (find_port == 0) { - STORAGE_LOG(WARN, "find port fail", K(find_port)); - STORAGE_LOG(WARN, "net", "ss", _executeShellCommand("ss -antlp").c_str()); + STORAGE_LOG_RET(WARN, OB_ERR_UNEXPECTED, "find port fail", K(find_port)); + STORAGE_LOG_RET(WARN, OB_ERR_UNEXPECTED, "net", "ss", _executeShellCommand("ss -antlp").c_str()); OB_ASSERT(false); } return find_port; diff --git a/mittest/simple_server/fast_commit_report.cpp b/mittest/simple_server/fast_commit_report.cpp index 75f160005..96c5eacbc 100644 --- a/mittest/simple_server/fast_commit_report.cpp +++ b/mittest/simple_server/fast_commit_report.cpp @@ -566,6 +566,7 @@ TEST_F(ObFastCommitReport, fast_commit_report) } std::cout << "Data reading has been finished, you can generate it with command: sudo perf script -i perf.data -F ip,sym -f > data.viz\n"; + std::cout << "And finally you can graph it with command: `cat data.viz | ./perfdata2graph.py` or our web based perf tool.\n"; } } @@ -614,25 +615,25 @@ int main(int argc, char **argv) if (oceanbase::unittest::fast_commit_test_mode != oceanbase::unittest::FastCommitTestMode::NORMAL_TEST && oceanbase::unittest::fast_commit_test_mode != oceanbase::unittest::FastCommitTestMode::BIANQUE_TEST) { - TRANS_LOG(ERROR, "wrong choice", K(oceanbase::unittest::fast_commit_test_mode)); + TRANS_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "wrong choice", K(oceanbase::unittest::fast_commit_test_mode)); ob_abort(); } if (oceanbase::unittest::fast_commit_data_mode != oceanbase::unittest::FastCommitReportDataMode::ALL_CLEANOUT && oceanbase::unittest::fast_commit_data_mode != oceanbase::unittest::FastCommitReportDataMode::ALL_SAME_TXN_DELAY_CLEANOUT && oceanbase::unittest::fast_commit_data_mode != oceanbase::unittest::FastCommitReportDataMode::ALL_DIFF_TXN_DELAY_CLEANOUT) { - TRANS_LOG(ERROR, "wrong choice", K(oceanbase::unittest::fast_commit_data_mode)); + TRANS_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "wrong choice", K(oceanbase::unittest::fast_commit_data_mode)); ob_abort(); } if (oceanbase::unittest::fast_commit_tx_table_mode != oceanbase::unittest::FastCommitReportTxTableMode::ALL_IN_MEMORY && oceanbase::unittest::fast_commit_tx_table_mode != oceanbase::unittest::FastCommitReportTxTableMode::ALL_IN_DISK) { - TRANS_LOG(ERROR, "wrong choice", K(oceanbase::unittest::fast_commit_tx_table_mode)); + TRANS_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "wrong choice", K(oceanbase::unittest::fast_commit_tx_table_mode)); ob_abort(); } if (oceanbase::unittest::total_fc_row_count < oceanbase::unittest::total_fc_session) { - TRANS_LOG(ERROR, "wrong choice", K(oceanbase::unittest::total_fc_row_count), K(oceanbase::unittest::total_fc_session)); + TRANS_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "wrong choice", K(oceanbase::unittest::total_fc_row_count), K(oceanbase::unittest::total_fc_session)); ob_abort(); } diff --git a/mittest/simple_server/test_observer_expand_shrink.cpp b/mittest/simple_server/test_observer_expand_shrink.cpp index 5112c83ba..57f163fca 100644 --- a/mittest/simple_server/test_observer_expand_shrink.cpp +++ b/mittest/simple_server/test_observer_expand_shrink.cpp @@ -93,7 +93,7 @@ TEST_F(ObserverExpandShink, basic_func) sleep(6); EXPECT_EQ(GCONF.log_disk_size, 3 * 1024 * 1024 * 1024ul); EXPECT_EQ(OB_ZONE_RESOURCE_NOT_ENOUGH, create_tenant("runlin")); - CLOG_LOG(ERROR, "create runlin finished"); + CLOG_LOG_RET(ERROR, OB_SUCCESS, "create runlin finished"); GCONF.log_disk_size = 1024 * 1024 * 1024ul * 1024 * 100ul; int64_t log_disk_size = 0; int64_t log_disk_percentage = 0; diff --git a/src/diagnose/lua/ob_lua_api.cpp b/src/diagnose/lua/ob_lua_api.cpp index 0b99ef963..7061e7228 100644 --- a/src/diagnose/lua/ob_lua_api.cpp +++ b/src/diagnose/lua/ob_lua_api.cpp @@ -297,7 +297,7 @@ private: dump_ = true; } } else { - OB_LOG(ERROR, "invalid arguments", K(key)); + OB_LOG_RET(ERROR, OB_INVALID_ARGUMENT, "invalid arguments", K(key)); } lua_pop(stack_, 1); } @@ -330,7 +330,7 @@ int usage(lua_State* L) { int argc = lua_gettop(L); if (0 != argc) { - OB_LOG(ERROR, "call usage() failed, bad arguments count, should be 0."); + OB_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "call usage() failed, bad arguments count, should be 0."); lua_pushnil(L); } else { lua_pushstring(L, usage_str); @@ -383,7 +383,7 @@ int get_tenant_id_list(lua_State* L) { int argc = lua_gettop(L); if (0 != argc) { - OB_LOG(ERROR, "call get_tenant_id_list() failed, bad arguments count, should be 0."); + OB_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "call get_tenant_id_list() failed, bad arguments count, should be 0."); } else { lua_newtable(L); uint64_t *tenant_ids = nullptr; @@ -406,7 +406,7 @@ int get_tenant_mem_limit(lua_State* L) { int argc = lua_gettop(L); if (1 != argc) { - OB_LOG(ERROR, "call get_tenant_mem_limit() failed, bad arguments count, should be 1."); + OB_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "call get_tenant_mem_limit() failed, bad arguments count, should be 1."); } else { luaL_checktype(L, 1, LUA_TNUMBER); lua_pushinteger(L, ObMallocAllocator::get_instance()->get_tenant_limit(lua_tointeger(L, 1))); @@ -598,7 +598,7 @@ int show_log_probe(lua_State* L) { int argc = lua_gettop(L); if (0 != argc) { - OB_LOG(ERROR, "call show_log_probe() failed, bad arguments count, should be 0."); + OB_LOG_RET(ERROR, OB_INVALID_ARGUMENT, "call show_log_probe() failed, bad arguments count, should be 0."); } else { lua_pushstring(L, OB_LOGGER.show_probe()); } @@ -960,7 +960,7 @@ int select_tenant_ctx_memory_info(lua_State *L) { int argc = lua_gettop(L); if (argc > 1) { - OB_LOG(ERROR, "call select_tenant_ctx_memory_info() failed, bad arguments count, should be less than 2."); + OB_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "call select_tenant_ctx_memory_info() failed, bad arguments count, should be less than 2."); lua_pushnil(L); } else { uint64_t *tenant_ids = nullptr; @@ -1465,7 +1465,7 @@ int select_tenant_memory_info(lua_State *L) { int argc = lua_gettop(L); if (argc > 1) { - OB_LOG(ERROR, "call select_tenant_memory_info() failed, bad arguments count, should be less than 2."); + OB_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "call select_tenant_memory_info() failed, bad arguments count, should be less than 2."); lua_pushnil(L); } else { uint64_t *tenant_ids = nullptr; @@ -1602,10 +1602,10 @@ void *diagnose::alloc(const int size) ret = (char*)ret + 8; ObLuaHandler::get_instance().memory_update(size + 8); } else { - OB_LOG(ERROR, "lua memory alloc failed", K(size), K(get_global_allocator().total())); + OB_LOG_RET(ERROR, OB_ALLOCATE_MEMORY_FAILED, "lua memory alloc failed", K(size), K(get_global_allocator().total())); } } else { - OB_LOG(ERROR, "lua memory usage over limit", K(size)); + OB_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "lua memory usage over limit", K(size)); } return ret; } diff --git a/src/diagnose/lua/ob_lua_handler.cpp b/src/diagnose/lua/ob_lua_handler.cpp index e84203068..bc0926034 100644 --- a/src/diagnose/lua/ob_lua_handler.cpp +++ b/src/diagnose/lua/ob_lua_handler.cpp @@ -41,7 +41,7 @@ using namespace oceanbase::diagnose; void ObLuaHandler::memory_update(const int size) { if (0 == size) { - OB_LOG(ERROR, "bad param", K(size)); + OB_LOG_RET(ERROR, OB_INVALID_ARGUMENT, "bad param", K(size)); } else if (size > 0) { ++alloc_count_; alloc_size_ += size; @@ -76,14 +76,14 @@ int ObLuaHandler::process(const char* lua_code) OB_LOG(INFO, "Lua code was executed", K(alloc_count_), K(free_count_), K(alloc_size_), K(free_size_)); lua_State* L = lua_newstate(realloc_functor, nullptr); if (OB_ISNULL(L)) { - OB_LOG(ERROR, "luastate is NULL"); + OB_LOG_RET(ERROR, OB_INVALID_ARGUMENT, "luastate is NULL"); } else { luaL_openlibs(L); APIRegister::get_instance().register_api(L); try { luaL_dostring(L, lua_code); } catch (std::exception& e) { - _OB_LOG(ERROR, "exception during lua code execution, reason %s", e.what()); + _OB_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "exception during lua code execution, reason %s", e.what()); } lua_close(L); } @@ -240,4 +240,4 @@ int ObUnixDomainListener::run() void ObUnixDomainListener::wait() { worker_.join(); -} \ No newline at end of file +} diff --git a/src/logservice/applyservice/ob_log_apply_service.cpp b/src/logservice/applyservice/ob_log_apply_service.cpp index f482d77fe..86949c9c7 100644 --- a/src/logservice/applyservice/ob_log_apply_service.cpp +++ b/src/logservice/applyservice/ob_log_apply_service.cpp @@ -144,7 +144,7 @@ void ObApplyServiceQueueTask::reset() { if (!queue_.is_empty()) { //防御性检查,默认apply status析构时队列一定为空 - CLOG_LOG(ERROR, "queue is not empty when reset task", KPC(apply_status_)); + CLOG_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "queue is not empty when reset task", KPC(apply_status_)); } ObApplyServiceTask::reset(); total_submit_cb_cnt_ = 0; @@ -916,7 +916,7 @@ void ObApplyStatus::statistics_cb_cost_(const LSN &lsn, cb_wait_commit_stat_.stat(cb_wait_commit_time); cb_execute_stat_.stat(cb_cost_time); if (total_cost_time > 1000 * 1000) { //1s - CLOG_LOG(WARN, "cb cost too much time", K(lsn), K(scn), K(idx), K(total_cost_time), K(append_cost_time), + CLOG_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "cb cost too much time", K(lsn), K(scn), K(idx), K(total_cost_time), K(append_cost_time), K(cb_wait_thread_time), K(cb_wait_commit_time), K(cb_cost_time), K(append_start_time), K(append_finish_time), K(cb_first_handle_time), K(cb_first_handle_time), K(cb_finish_time)); } @@ -1382,7 +1382,7 @@ int ObLogApplyService::wait_append_sync(const share::ObLSID &ls_id) } else { int64_t cost_time = ObTimeUtility::fast_current_time() - start_ts; if (cost_time > 10 * 1000) { //10ms - CLOG_LOG(WARN, "wait_append_sync cost too much time", K(ret), K(ls_id), K(cost_time)); + CLOG_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "wait_append_sync cost too much time", K(ret), K(ls_id), K(cost_time)); } } return ret; diff --git a/src/logservice/archiveservice/dynamic_buffer.cpp b/src/logservice/archiveservice/dynamic_buffer.cpp index 2951c3f33..4706063db 100644 --- a/src/logservice/archiveservice/dynamic_buffer.cpp +++ b/src/logservice/archiveservice/dynamic_buffer.cpp @@ -53,9 +53,9 @@ char *DynamicBuffer::acquire(const int64_t size) char *buf = NULL; int64_t real_size = size <= BASIC_BUF_SIZE ? size : upper_align_(size); if (size > MAX_BUF_SIZE) { - ARCHIVE_LOG(WARN, "get buf oversize, not support", K(size)); + ARCHIVE_LOG_RET(WARN, OB_NOT_SUPPORTED, "get buf oversize, not support", K(size)); } else if (0 != ATOMIC_LOAD(&ref_)) { - ARCHIVE_LOG(ERROR, "buffer ref not zero", KPC(this)); + ARCHIVE_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "buffer ref not zero", KPC(this)); } else if (NULL == buf_ || buf_size_ < size) { free_(); alloc_(real_size); @@ -71,7 +71,7 @@ char *DynamicBuffer::acquire(const int64_t size) void DynamicBuffer::reclaim(void *ptr) { if (ptr != buf_) { - ARCHIVE_LOG(ERROR, "invalid reclaim ptr", K(ptr), KPC(this)); + ARCHIVE_LOG_RET(ERROR, OB_INVALID_ARGUMENT, "invalid reclaim ptr", K(ptr), KPC(this)); } else { ATOMIC_DEC(&ref_); if (buf_size_ <= BASIC_BUF_SIZE) { @@ -88,7 +88,7 @@ void DynamicBuffer::purge() if (0 == ATOMIC_LOAD(&ref_)) { free_(); } else { - ARCHIVE_LOG(ERROR, "buffer ref not zero, memory may leak", KPC(this)); + ARCHIVE_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "buffer ref not zero, memory may leak", KPC(this)); } } } @@ -140,7 +140,7 @@ void DynamicBuffer::alloc_(const int64_t size) { void *data = NULL; if (OB_ISNULL(data = share::mtl_malloc(size, label_.ptr()))) { - ARCHIVE_LOG(WARN, "alloc failed", K(size)); + ARCHIVE_LOG_RET(WARN, OB_ALLOCATE_MEMORY_FAILED, "alloc failed", K(size)); } else { buf_ = (char *)data; buf_size_ = size; @@ -164,7 +164,7 @@ void DynamicBuffer::add_statistic_(const int64_t size) } int64_t index = get_usage_index_(size); if (index >= buf_size_usage_.count()) { - ARCHIVE_LOG(ERROR, "get usage index failed", K(index), K(buf_size_usage_)); + ARCHIVE_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "get usage index failed", K(index), K(buf_size_usage_)); } else { buf_size_usage_[index]++; total_usage_++; diff --git a/src/logservice/archiveservice/ob_archive_allocator.cpp b/src/logservice/archiveservice/ob_archive_allocator.cpp index 9351cbac5..fa09967a0 100644 --- a/src/logservice/archiveservice/ob_archive_allocator.cpp +++ b/src/logservice/archiveservice/ob_archive_allocator.cpp @@ -84,7 +84,7 @@ ObArchiveLogFetchTask *ObArchiveAllocator::alloc_log_fetch_task() ObArchiveLogFetchTask *task = NULL; if (OB_UNLIKELY(! inited_)) { - ARCHIVE_LOG(WARN, "ObArchiveAllocator not init"); + ARCHIVE_LOG_RET(WARN, OB_NOT_INIT, "ObArchiveAllocator not init"); } else if (OB_ISNULL(data = log_fetch_task_allocator_.alloc())) { // alloc fail } else { @@ -111,7 +111,7 @@ char *ObArchiveAllocator::alloc_send_task(const int64_t buf_len) char *data = NULL; if (OB_UNLIKELY(! inited_)) { - ARCHIVE_LOG(WARN, "ObArchiveAllocator not init"); + ARCHIVE_LOG_RET(WARN, OB_NOT_INIT, "ObArchiveAllocator not init"); } else if (OB_ISNULL(data = static_cast(send_task_allocator_.acquire(buf_len)))) { // alloc fail } else { @@ -137,9 +137,9 @@ ObArchiveTaskStatus *ObArchiveAllocator::alloc_send_task_status(const share::ObL ObArchiveTaskStatus *task_status = NULL; if (OB_UNLIKELY(! inited_)) { - ARCHIVE_LOG(WARN, "ObArchiveAllocator not init"); + ARCHIVE_LOG_RET(WARN, OB_NOT_INIT, "ObArchiveAllocator not init"); } else if (OB_ISNULL(data = send_task_status_allocator_.alloc())) { - ARCHIVE_LOG(WARN, "alloc data fail"); + ARCHIVE_LOG_RET(WARN, OB_ALLOCATE_MEMORY_FAILED, "alloc data fail"); } else { task_status = new (data) ObArchiveTaskStatus(id); } diff --git a/src/logservice/archiveservice/ob_archive_fetcher.cpp b/src/logservice/archiveservice/ob_archive_fetcher.cpp index 7e5a170b4..d631a7a82 100644 --- a/src/logservice/archiveservice/ob_archive_fetcher.cpp +++ b/src/logservice/archiveservice/ob_archive_fetcher.cpp @@ -225,9 +225,9 @@ ObArchiveLogFetchTask *ObArchiveFetcher::alloc_log_fetch_task() { ObArchiveLogFetchTask *task = NULL; if (OB_UNLIKELY(! inited_)) { - ARCHIVE_LOG(WARN, "ObArchiveFetcher not init"); + ARCHIVE_LOG_RET(WARN, OB_NOT_INIT, "ObArchiveFetcher not init"); } else if (OB_ISNULL(allocator_)) { - ARCHIVE_LOG(ERROR, "allocator_ is NULL", K(allocator_)); + ARCHIVE_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "allocator_ is NULL", K(allocator_)); } else { task = allocator_->alloc_log_fetch_task(); } @@ -273,7 +273,7 @@ void ObArchiveFetcher::run1() ObCurTraceId::init(GCONF.self_addr_); if (OB_UNLIKELY(! inited_)) { - ARCHIVE_LOG(ERROR, "ObArchiveFetcher not init"); + ARCHIVE_LOG_RET(ERROR, OB_NOT_INIT, "ObArchiveFetcher not init"); } else { while (!has_set_stop() && !(OB_NOT_NULL(&lib::Thread::current()) ? lib::Thread::current().has_set_stop() : false)) { int64_t begin_tstamp = ObTimeUtility::current_time(); diff --git a/src/logservice/archiveservice/ob_archive_persist_mgr.cpp b/src/logservice/archiveservice/ob_archive_persist_mgr.cpp index fec0897cc..3902a9958 100644 --- a/src/logservice/archiveservice/ob_archive_persist_mgr.cpp +++ b/src/logservice/archiveservice/ob_archive_persist_mgr.cpp @@ -37,8 +37,10 @@ #include "share/ls/ob_ls_recovery_stat_operator.h" // ObLSRecoveryStatOperator #define STAT(level, fmt, args...) ARCHIVE_LOG(level, "[LOG_STREAM] [ARCHIVE_PROGRESS] " fmt, ##args); +#define STAT_RET(level, errcode, fmt, args...) ARCHIVE_LOG_RET(level, errcode, "[LOG_STREAM] [ARCHIVE_PROGRESS] " fmt, ##args); #define ISTAT(fmt, args...) STAT(INFO, fmt, ##args) #define WSTAT(fmt, args...) STAT(WARN, fmt, ##args) +#define WSTAT_RET(errcode, fmt, args...) STAT_RET(WARN, errcode, fmt, ##args) #define TSTAT(fmt, args...) STAT(TRACE, fmt, ##args) namespace oceanbase diff --git a/src/logservice/archiveservice/ob_archive_round_mgr.cpp b/src/logservice/archiveservice/ob_archive_round_mgr.cpp index 4dbb44969..8043877b9 100644 --- a/src/logservice/archiveservice/ob_archive_round_mgr.cpp +++ b/src/logservice/archiveservice/ob_archive_round_mgr.cpp @@ -101,7 +101,7 @@ void ObArchiveRoundMgr::set_archive_force_stop(const ArchiveKey &key) WLockGuard guard(rwlock_); if (OB_UNLIKELY(! key.is_valid())) { - ARCHIVE_LOG(WARN, "invalid arguments", K(key)); + ARCHIVE_LOG_RET(WARN, OB_INVALID_ARGUMENT, "invalid arguments", K(key)); } else { key_ = key; log_archive_state_.status_ = ObArchiveRoundState::Status::STOP; @@ -113,7 +113,7 @@ void ObArchiveRoundMgr::set_archive_interrupt(const ArchiveKey &key) WLockGuard guard(rwlock_); if (OB_UNLIKELY(! key.is_valid())) { - ARCHIVE_LOG(WARN, "invalid arguments", K(key)); + ARCHIVE_LOG_RET(WARN, OB_INVALID_ARGUMENT, "invalid arguments", K(key)); } else { key_ = key; log_archive_state_.status_ = ObArchiveRoundState::Status::INTERRUPTED; @@ -125,7 +125,7 @@ void ObArchiveRoundMgr::set_archive_suspend(const ArchiveKey &key) WLockGuard guard(rwlock_); if (OB_UNLIKELY(! key.is_valid())) { - ARCHIVE_LOG(WARN, "invalid arguments", K(key)); + ARCHIVE_LOG_RET(WARN, OB_INVALID_ARGUMENT, "invalid arguments", K(key)); } else { key_ = key; log_archive_state_.status_ = ObArchiveRoundState::Status::SUSPEND; diff --git a/src/logservice/archiveservice/ob_archive_sender.cpp b/src/logservice/archiveservice/ob_archive_sender.cpp index 5150ff040..420076fee 100644 --- a/src/logservice/archiveservice/ob_archive_sender.cpp +++ b/src/logservice/archiveservice/ob_archive_sender.cpp @@ -144,7 +144,7 @@ void ObArchiveSender::wait() void ObArchiveSender::release_send_task(ObArchiveSendTask *task) { if (NULL == task || NULL == allocator_) { - ARCHIVE_LOG(ERROR, "invalid arguments", K(task), K(allocator_)); + ARCHIVE_LOG_RET(ERROR, OB_INVALID_ARGUMENT, "invalid arguments", K(task), K(allocator_)); } else { allocator_->free_send_task(task); } @@ -238,7 +238,7 @@ void ObArchiveSender::run1() ObCurTraceId::init(GCONF.self_addr_); if (OB_UNLIKELY(! inited_)) { - ARCHIVE_LOG(ERROR, "archive sender not init"); + ARCHIVE_LOG_RET(ERROR, OB_NOT_INIT, "archive sender not init"); } else { while (!has_set_stop() && !(OB_NOT_NULL(&lib::Thread::current()) ? lib::Thread::current().has_set_stop() : false)) { do_thread_task_(); diff --git a/src/logservice/archiveservice/ob_archive_sequencer.cpp b/src/logservice/archiveservice/ob_archive_sequencer.cpp index 3dd790a33..f67ca647c 100644 --- a/src/logservice/archiveservice/ob_archive_sequencer.cpp +++ b/src/logservice/archiveservice/ob_archive_sequencer.cpp @@ -134,7 +134,7 @@ void ObArchiveSequencer::run1() ObCurTraceId::init(GCONF.self_addr_); if (OB_UNLIKELY(! inited_)) { - ARCHIVE_LOG(ERROR, "ObArchiveSequencer not init"); + ARCHIVE_LOG_RET(ERROR, OB_NOT_INIT, "ObArchiveSequencer not init"); } else { while (! has_set_stop()) { int64_t begin_tstamp = ObTimeUtility::current_time(); diff --git a/src/logservice/archiveservice/ob_archive_service.cpp b/src/logservice/archiveservice/ob_archive_service.cpp index e5999c672..63a1274ae 100644 --- a/src/logservice/archiveservice/ob_archive_service.cpp +++ b/src/logservice/archiveservice/ob_archive_service.cpp @@ -217,7 +217,7 @@ void ObArchiveService::run1() ObCurTraceId::init(GCONF.self_addr_); if (OB_UNLIKELY(! inited_)) { - ARCHIVE_LOG(ERROR, "archive service not init", K_(tenant_id)); + ARCHIVE_LOG_RET(ERROR, OB_NOT_INIT, "archive service not init", K_(tenant_id)); } else { while (! has_set_stop()) { int64_t begin_tstamp = ObTimeUtility::current_time(); diff --git a/src/logservice/archiveservice/ob_archive_task.cpp b/src/logservice/archiveservice/ob_archive_task.cpp index 8596377a2..dc869a561 100644 --- a/src/logservice/archiveservice/ob_archive_task.cpp +++ b/src/logservice/archiveservice/ob_archive_task.cpp @@ -41,7 +41,7 @@ ObArchiveLogFetchTask::ObArchiveLogFetchTask() : ObArchiveLogFetchTask::~ObArchiveLogFetchTask() { if (NULL != send_task_) { - ARCHIVE_LOG(ERROR, "residual send task exist, maybe memory leak", KPC(this)); + ARCHIVE_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "residual send task exist, maybe memory leak", KPC(this)); send_task_ = NULL; } id_.reset(); diff --git a/src/logservice/archiveservice/ob_archive_timer.cpp b/src/logservice/archiveservice/ob_archive_timer.cpp index 782b58617..3df92a5a1 100644 --- a/src/logservice/archiveservice/ob_archive_timer.cpp +++ b/src/logservice/archiveservice/ob_archive_timer.cpp @@ -102,7 +102,7 @@ void ObArchiveTimer::run1() lib::set_thread_name("ArcTimer"); if (OB_UNLIKELY(! inited_)) { - ARCHIVE_LOG(ERROR, "ObArchiveTimer not init", K(tenant_id_)); + ARCHIVE_LOG_RET(ERROR, OB_NOT_INIT, "ObArchiveTimer not init", K(tenant_id_)); } else { while (!has_set_stop()) { int64_t begin_tstamp = ObTimeUtility::current_time(); @@ -147,7 +147,7 @@ ObArchiveTimer::LSMetaRecordTask::~LSMetaRecordTask() void ObArchiveTimer::LSMetaRecordTask::handle() { if (NULL == timer_ || NULL == timer_->recorder_) { - ARCHIVE_LOG(ERROR, "invalid timer", K(timer_), K(timer_->recorder_)); + ARCHIVE_LOG_RET(ERROR, OB_INVALID_ARGUMENT, "invalid timer", K(timer_), K(timer_->recorder_)); } else { timer_->recorder_->handle(); } diff --git a/src/logservice/archiveservice/ob_ls_mgr.cpp b/src/logservice/archiveservice/ob_ls_mgr.cpp index ba4541ae0..c4ff232da 100644 --- a/src/logservice/archiveservice/ob_ls_mgr.cpp +++ b/src/logservice/archiveservice/ob_ls_mgr.cpp @@ -319,7 +319,7 @@ void ObArchiveLSMgr::run1() ObCurTraceId::init(GCONF.self_addr_); if (OB_UNLIKELY(! inited_)) { - ARCHIVE_LOG(ERROR, "LSArchiveMgr not init"); + ARCHIVE_LOG_RET(ERROR, OB_NOT_INIT, "LSArchiveMgr not init"); } else { while (! has_set_stop()) { int64_t begin_tstamp = ObTimeUtility::current_time(); diff --git a/src/logservice/cdcservice/ob_cdc_req.cpp b/src/logservice/cdcservice/ob_cdc_req.cpp index 3d6614f64..f44fe4f32 100644 --- a/src/logservice/cdcservice/ob_cdc_req.cpp +++ b/src/logservice/cdcservice/ob_cdc_req.cpp @@ -294,7 +294,7 @@ OB_DEF_SERIALIZE_SIZE(ObCdcLSFetchLogResp) LST_DO_CODE(OB_UNIS_ADD_LEN, server_progress_); } else { tmp_ret = OB_NOT_SUPPORTED; - EXTLOG_LOG(ERROR, "get serialize size error, version not match", + EXTLOG_LOG_RET(ERROR, tmp_ret, "get serialize size error, version not match", K(tmp_ret), K(rpc_ver_), LITERAL_K(CUR_RPC_VER)); } diff --git a/src/logservice/cdcservice/ob_cdc_service.cpp b/src/logservice/cdcservice/ob_cdc_service.cpp index f97a4e6f2..6e08c5fe9 100644 --- a/src/logservice/cdcservice/ob_cdc_service.cpp +++ b/src/logservice/cdcservice/ob_cdc_service.cpp @@ -215,7 +215,7 @@ int ObCdcService::fetch_log(const obrpc::ObCdcLSFetchLogReq &req, ret = fetcher_.fetch_log(req, resp); const int64_t end_ts = ObTimeUtility::current_time(); if (end_ts - start_ts > FETCH_LOG_WARN_THRESHOLD) { - EXTLOG_LOG(WARN, "fetch log cost too much time", "time", end_ts - start_ts, K(req), K(resp)); + EXTLOG_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "fetch log cost too much time", "time", end_ts - start_ts, K(req), K(resp)); } resp.set_l2s_net_time(recv_ts - send_ts); @@ -247,7 +247,7 @@ int ObCdcService::fetch_missing_log(const obrpc::ObCdcLSFetchMissLogReq &req, ret = fetcher_.fetch_missing_log(req, resp); const int64_t end_ts = ObTimeUtility::current_time(); if (end_ts - start_ts > FETCH_LOG_WARN_THRESHOLD) { - EXTLOG_LOG(WARN, "fetch log cost too much time", "time", end_ts - start_ts, K(req), K(resp)); + EXTLOG_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "fetch log cost too much time", "time", end_ts - start_ts, K(req), K(resp)); } resp.set_l2s_net_time(recv_ts - send_ts); diff --git a/src/logservice/data_dictionary/ob_data_dict_meta_info.cpp b/src/logservice/data_dictionary/ob_data_dict_meta_info.cpp index 1a160d75e..d2f81cc03 100644 --- a/src/logservice/data_dictionary/ob_data_dict_meta_info.cpp +++ b/src/logservice/data_dictionary/ob_data_dict_meta_info.cpp @@ -143,19 +143,19 @@ bool ObDataDictMetaInfoHeader::check_integrity(const char *data, const int64_t item_size = dummy_item.get_serialize_size(); if (DATADICT_METAINFO_HEADER_MAGIC != magic_) { bret = false; - DDLOG(WARN, "error magic number of datadict metainfo", KPC(this)); + DDLOG_RET(WARN, OB_ERR_UNEXPECTED, "error magic number of datadict metainfo", KPC(this)); } else if (OB_ISNULL(data)) { bret = false; - DDLOG(WARN, "data is null when check integrity", K(data), K(data_size_), KPC(this)); + DDLOG_RET(WARN, OB_ERR_UNEXPECTED, "data is null when check integrity", K(data), K(data_size_), KPC(this)); } else if (data_size < data_size_) { bret = false; - DDLOG(WARN, "the size of buffer being deserialized is smaller than the data size", + DDLOG_RET(WARN, OB_ERR_UNEXPECTED, "the size of buffer being deserialized is smaller than the data size", K(data_size), K(data_size_), KPC(this)); } else { const int64_t data_crc_code = ob_crc64(data, data_size_); if (data_crc_code != checksum_) { bret = false; - DDLOG(WARN, "check sum mismatch", K(data), K(data_size_), K(data_crc_code), KPC(this)); + DDLOG_RET(WARN, OB_ERR_UNEXPECTED, "check sum mismatch", K(data), K(data_size_), K(data_crc_code), KPC(this)); } else { // succ } @@ -249,14 +249,14 @@ bool ObDataDictMetaInfo::check_integrity() const const int64_t item_arr_count = item_arr_.count(); if (item_arr_count != header_.get_item_count()) { bret = false; - DDLOG(WARN, "item count in array and header is not equal", K(item_arr_count), K(header_)); + DDLOG_RET(WARN, OB_ERR_UNEXPECTED, "item count in array and header is not equal", K(item_arr_count), K(header_)); } else { const ObDataDictMetaInfoItem &max_scn_item = item_arr_.at(0); const ObDataDictMetaInfoItem &min_scn_item = item_arr_.at(item_arr_count-1); if (max_scn_item.snapshot_scn_ != header_.get_max_snapshot_scn() && min_scn_item.snapshot_scn_ != header_.get_min_snapshot_scn()) { bret = false; - DDLOG(WARN, "min scn and max scn record in header is inconsistent with item_arr", K(header_), + DDLOG_RET(WARN, OB_ERR_UNEXPECTED, "min scn and max scn record in header is inconsistent with item_arr", K(header_), K(max_scn_item), K(min_scn_item)); } } @@ -461,4 +461,4 @@ int MetaInfoQueryHelper::parse_record_from_result_( } } -} \ No newline at end of file +} diff --git a/src/logservice/data_dictionary/ob_data_dict_struct.cpp b/src/logservice/data_dictionary/ob_data_dict_struct.cpp index 90b5cfb4d..ea7fbe9ab 100644 --- a/src/logservice/data_dictionary/ob_data_dict_struct.cpp +++ b/src/logservice/data_dictionary/ob_data_dict_struct.cpp @@ -136,7 +136,7 @@ if (arg == other.arg) { \ } else { \ is_equal = false; \ - DDLOG(WARN, #arg " not equal", "current", arg, "other", other.arg); \ + DDLOG_RET(WARN, OB_ERR_UNEXPECTED, #arg " not equal", "current", arg, "other", other.arg); \ } \ } @@ -148,12 +148,12 @@ is_equal = ((array_ptr[i]) == (other.array_ptr[i])); \ } \ if (! is_equal) { \ - DDLOG(WARN, #array_ptr " not equal", K(i), K(array_size), \ + DDLOG_RET(WARN, OB_ERR_UNEXPECTED, #array_ptr " not equal", K(i), K(array_size), \ "current", array_ptr[i], "other", other.array_ptr[i]); \ } \ } else { \ is_equal = false; \ - DDLOG(WARN, #array_size " not equal", K(array_size), "other", other.array_size); \ + DDLOG_RET(WARN, OB_ERR_UNEXPECTED, #array_size " not equal", K(array_size), "other", other.array_size); \ } \ } @@ -165,12 +165,12 @@ is_equal = array_ref.at(i) == other.array_ref.at(i); \ } \ if (! is_equal) { \ - DDLOG(WARN, #array_ref " not equal", K(i), "count", array_ref.count(), \ + DDLOG_RET(WARN, OB_ERR_UNEXPECTED, #array_ref " not equal", K(i), "count", array_ref.count(), \ "current", array_ref.at(i), "other", other.array_ref.at(i)); \ } \ } else { \ is_equal = false; \ - DDLOG(WARN, #array_ref " size not equal", \ + DDLOG_RET(WARN, OB_ERR_UNEXPECTED, #array_ref " size not equal", \ "current", array_ref.count(), "other", other.array_ref.count()); \ } \ } diff --git a/src/logservice/leader_coordinator/ob_failure_detector.cpp b/src/logservice/leader_coordinator/ob_failure_detector.cpp index 9a468c1b6..227ac752d 100644 --- a/src/logservice/leader_coordinator/ob_failure_detector.cpp +++ b/src/logservice/leader_coordinator/ob_failure_detector.cpp @@ -97,7 +97,7 @@ int ObFailureDetector::mtl_start(ObFailureDetector *&p_failure_detector) void ObFailureDetector::mtl_stop(ObFailureDetector *&p_failure_detector) { if (OB_ISNULL(p_failure_detector)) { - COORDINATOR_LOG(WARN, "p_failure_detector is NULL"); + COORDINATOR_LOG_RET(WARN, OB_INVALID_ARGUMENT, "p_failure_detector is NULL"); } else { p_failure_detector->failure_task_handle_.stop(); p_failure_detector->recovery_task_handle_.stop(); @@ -108,7 +108,7 @@ void ObFailureDetector::mtl_stop(ObFailureDetector *&p_failure_detector) void ObFailureDetector::mtl_wait(ObFailureDetector *&p_failure_detector) { if (OB_ISNULL(p_failure_detector)) { - COORDINATOR_LOG(WARN, "p_failure_detector is NULL"); + COORDINATOR_LOG_RET(WARN, OB_INVALID_ARGUMENT, "p_failure_detector is NULL"); } else { p_failure_detector->failure_task_handle_.wait(); p_failure_detector->recovery_task_handle_.wait(); @@ -119,7 +119,7 @@ void ObFailureDetector::mtl_wait(ObFailureDetector *&p_failure_detector) void ObFailureDetector::mtl_destroy(ObFailureDetector *&p_failure_detector) { if (OB_ISNULL(p_failure_detector)) { - COORDINATOR_LOG(WARN, "p_failure_detector is NULL"); + COORDINATOR_LOG_RET(WARN, OB_INVALID_ARGUMENT, "p_failure_detector is NULL"); } else { COORDINATOR_LOG(INFO, "ObFailureDetector mtl destroy"); } diff --git a/src/logservice/leader_coordinator/ob_leader_coordinator.cpp b/src/logservice/leader_coordinator/ob_leader_coordinator.cpp index b6fb440c1..51d1e32e6 100644 --- a/src/logservice/leader_coordinator/ob_leader_coordinator.cpp +++ b/src/logservice/leader_coordinator/ob_leader_coordinator.cpp @@ -43,7 +43,7 @@ struct AllLsElectionReferenceInfoFactory LC_TIME_GUARD(1_s); ObArray *new_all_ls_election_reference_info = nullptr; if (nullptr == (new_all_ls_election_reference_info = (ObArray*)mtl_malloc(sizeof(ObArray), "Coordinator"))) { - COORDINATOR_LOG(ERROR, "alloc memory failed"); + COORDINATOR_LOG_RET(ERROR, OB_ALLOCATE_MEMORY_FAILED, "alloc memory failed"); } else { new(new_all_ls_election_reference_info) ObArray(); } @@ -101,7 +101,7 @@ int ObLeaderCoordinator::mtl_start(ObLeaderCoordinator *&p_coordinator)// start void ObLeaderCoordinator::mtl_stop(ObLeaderCoordinator *&p_coordinator)// stop timer task { if (OB_ISNULL(p_coordinator)) { - COORDINATOR_LOG(WARN, "p_coordinator is NULL"); + COORDINATOR_LOG_RET(WARN, OB_INVALID_ARGUMENT, "p_coordinator is NULL"); } else { p_coordinator->is_running_ = false; p_coordinator->refresh_priority_task_handle_.stop(); @@ -112,7 +112,7 @@ void ObLeaderCoordinator::mtl_stop(ObLeaderCoordinator *&p_coordinator)// stop t void ObLeaderCoordinator::mtl_wait(ObLeaderCoordinator *&p_coordinator)// wait timer task { if (OB_ISNULL(p_coordinator)) { - COORDINATOR_LOG(WARN, "p_coordinator is NULL"); + COORDINATOR_LOG_RET(WARN, OB_INVALID_ARGUMENT, "p_coordinator is NULL"); } else { p_coordinator->refresh_priority_task_handle_.wait(); COORDINATOR_LOG(INFO, "ObLeaderCoordinator mtl wait"); @@ -123,7 +123,7 @@ void ObLeaderCoordinator::mtl_destroy(ObLeaderCoordinator *&p_coordinator)// des { LC_TIME_GUARD(1_s); if (OB_ISNULL(p_coordinator)) { - COORDINATOR_LOG(WARN, "p_coordinator is NULL"); + COORDINATOR_LOG_RET(WARN, OB_INVALID_ARGUMENT, "p_coordinator is NULL"); } else { p_coordinator->recovery_detect_timer_.stop_and_wait(); p_coordinator->failure_detect_timer_.stop_and_wait(); diff --git a/src/logservice/libobcdc/src/libobcdc.cpp b/src/logservice/libobcdc/src/libobcdc.cpp index 0a38d0f18..6ac30bae1 100644 --- a/src/logservice/libobcdc/src/libobcdc.cpp +++ b/src/logservice/libobcdc/src/libobcdc.cpp @@ -37,7 +37,7 @@ ObCDCFactory::ObCDCFactory() CURLcode curl_code = curl_global_init(CURL_GLOBAL_ALL); if (OB_UNLIKELY(CURLE_OK != curl_code)) { - OBLOG_LOG(ERROR, "curl_global_init fail", K(curl_code)); + OBLOG_LOG_RET(ERROR, OB_ERR_SYS, "curl_global_init fail", K(curl_code)); } setlocale(LC_ALL, ""); diff --git a/src/logservice/libobcdc/src/ob_log_batch_buffer.cpp b/src/logservice/libobcdc/src/ob_log_batch_buffer.cpp index 720677464..6e1ad8919 100644 --- a/src/logservice/libobcdc/src/ob_log_batch_buffer.cpp +++ b/src/logservice/libobcdc/src/ob_log_batch_buffer.cpp @@ -300,7 +300,7 @@ Block *ObLogBatchBuffer::get_block_(const int64_t block_id) if (!is_inited_ || NULL == block_array_ || 0 == block_count_ || OB_INVALID_COUNT == block_count_) { tmp_ret = OB_NOT_INIT; - LOG_ERROR( "not init", K(tmp_ret), K_(block_array), K_(block_count)); + LOG_ERROR_RET(tmp_ret, "not init", K(tmp_ret), K_(block_array), K_(block_count)); } else { ptr_ret = block_array_ + (block_id % block_count_); } diff --git a/src/logservice/libobcdc/src/ob_log_batch_buffer_task.cpp b/src/logservice/libobcdc/src/ob_log_batch_buffer_task.cpp index 8735034fe..a73e4ce99 100644 --- a/src/logservice/libobcdc/src/ob_log_batch_buffer_task.cpp +++ b/src/logservice/libobcdc/src/ob_log_batch_buffer_task.cpp @@ -37,13 +37,13 @@ bool DummyBufferTask::is_valid() const int64_t DummyBufferTask::get_data_len() const { - LOG_ERROR("the function should not be called"); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "the function should not be called"); return 0; } int64_t DummyBufferTask::get_entry_cnt() const { - LOG_ERROR("the function should not be called"); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "the function should not be called"); return 0; } diff --git a/src/logservice/libobcdc/src/ob_log_binlog_record.cpp b/src/logservice/libobcdc/src/ob_log_binlog_record.cpp index 32257e589..9461f54c6 100644 --- a/src/logservice/libobcdc/src/ob_log_binlog_record.cpp +++ b/src/logservice/libobcdc/src/ob_log_binlog_record.cpp @@ -54,7 +54,7 @@ void ObLogBR::construct_data_(const bool creating_binlog_record) data_ = DRCMessageFactory::createBinlogRecord(TCTX.drc_message_factory_binlog_record_type_, creating_binlog_record); if (OB_ISNULL(data_)) { - OBLOG_LOG(ERROR, "DRCMessageFactory::createBinlogRecord fails"); + OBLOG_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "DRCMessageFactory::createBinlogRecord fails"); } else { // set user data pointer to the pointer hold the binlog record data_->setUserData(this); diff --git a/src/logservice/libobcdc/src/ob_log_block.cpp b/src/logservice/libobcdc/src/ob_log_block.cpp index 0adecbc2f..e8e10acce 100644 --- a/src/logservice/libobcdc/src/ob_log_block.cpp +++ b/src/logservice/libobcdc/src/ob_log_block.cpp @@ -70,9 +70,9 @@ void Block::fill(const offset_t offset, IObLogBufTask *task) if (NULL == task || offset < 0) { tmp_ret = OB_INVALID_ARGUMENT; - LOG_ERROR( "invalid argument", "ret", tmp_ret, KP(task), K(offset)); + LOG_ERROR_RET(tmp_ret, "invalid argument", "ret", tmp_ret, KP(task), K(offset)); } else if (OB_SUCCESS != (tmp_ret = task->fill_buffer(buf_, offset))) { - LOG_ERROR( "fill_buffer fail", "ret", tmp_ret, KP_(buf), K(offset)); + LOG_ERROR_RET(tmp_ret, "fill_buffer fail", "ret", tmp_ret, KP_(buf), K(offset)); } else { IObLogBatchBufTask::add_callback_to_list(task); } @@ -138,9 +138,9 @@ void BigBlock::fill(const offset_t offset, IObLogBufTask *task) if (NULL == task || offset < 0) { tmp_ret = OB_INVALID_ARGUMENT; - LOG_ERROR( "invalid argument", "ret", tmp_ret, KP(task), K(offset)); + LOG_ERROR_RET(tmp_ret, "invalid argument", "ret", tmp_ret, KP(task), K(offset)); } else if (OB_SUCCESS != (tmp_ret = task->fill_buffer(buf_, offset))) { - LOG_ERROR( "fill_buffer fail", "ret", tmp_ret, KP_(buf), K(offset)); + LOG_ERROR_RET(tmp_ret, "fill_buffer fail", "ret", tmp_ret, KP_(buf), K(offset)); } else { IObLogBatchBufTask::add_callback_to_list(task); } diff --git a/src/logservice/libobcdc/src/ob_log_committer.cpp b/src/logservice/libobcdc/src/ob_log_committer.cpp index dc1245faa..75768caee 100644 --- a/src/logservice/libobcdc/src/ob_log_committer.cpp +++ b/src/logservice/libobcdc/src/ob_log_committer.cpp @@ -217,7 +217,7 @@ void ObLogCommitter::stop() int pthread_ret = pthread_join(commit_pid_, NULL); if (0 != pthread_ret) { - LOG_ERROR("join Committer commit thread fail", K(commit_pid_), KERRNOMSG(pthread_ret)); + LOG_ERROR_RET(OB_ERR_SYS, "join Committer commit thread fail", K(commit_pid_), KERRNOMSG(pthread_ret)); } else { LOG_INFO("stop Committer commit thread succ"); } @@ -229,7 +229,7 @@ void ObLogCommitter::stop() int pthread_ret = pthread_join(heartbeat_pid_, NULL); if (0 != pthread_ret) { - LOG_ERROR("join Committer HEARTBEAT thread fail", K(heartbeat_pid_), KERRNOMSG(pthread_ret)); + LOG_ERROR_RET(OB_ERR_SYS, "join Committer HEARTBEAT thread fail", K(heartbeat_pid_), KERRNOMSG(pthread_ret)); } else { LOG_INFO("stop Committer HEARTBEAT thread succ"); } diff --git a/src/logservice/libobcdc/src/ob_log_config.cpp b/src/logservice/libobcdc/src/ob_log_config.cpp index cf5368d8f..d97285d00 100644 --- a/src/logservice/libobcdc/src/ob_log_config.cpp +++ b/src/logservice/libobcdc/src/ob_log_config.cpp @@ -106,7 +106,7 @@ void ObLogConfig::print() const char *buf = static_cast(ob_malloc(BUF_SIZE, ObModIds::OB_LOG_CONFIG)); if (OB_ISNULL(buf)) { - LOG_ERROR("allocate memory fail", K(BUF_SIZE)); + LOG_ERROR_RET(OB_ALLOCATE_MEMORY_FAILED, "allocate memory fail", K(BUF_SIZE)); } else { int64_t pos = 0; int64_t size = BUF_SIZE; diff --git a/src/logservice/libobcdc/src/ob_log_factory.cpp b/src/logservice/libobcdc/src/ob_log_factory.cpp index 7ee6cd474..e7b94e611 100644 --- a/src/logservice/libobcdc/src/ob_log_factory.cpp +++ b/src/logservice/libobcdc/src/ob_log_factory.cpp @@ -44,7 +44,7 @@ using namespace oceanbase::common; void object_name##Factory::free(object_name *object) \ {\ if (OB_ISNULL(object)) {\ - LOG_ERROR("object is null", KP(object));\ + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "object is null", KP(object));\ } else {\ object->destroy(); \ allocator_type##_FREE(object, LABEL); \ 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 9d51ddeba..1a8cf6095 100644 --- a/src/logservice/libobcdc/src/ob_log_fetch_log_rpc.cpp +++ b/src/logservice/libobcdc/src/ob_log_fetch_log_rpc.cpp @@ -162,9 +162,9 @@ rpc::frame::ObReqTransport::AsyncCB *FetchLogSRpc::RpcCB::clone(const rpc::frame RpcCB *cb = NULL; if (OB_ISNULL(buf = alloc(sizeof(RpcCB)))) { - LOG_ERROR("clone rpc callback fail", K(buf), K(sizeof(RpcCB))); + LOG_ERROR_RET(OB_ALLOCATE_MEMORY_FAILED, "clone rpc callback fail", K(buf), K(sizeof(RpcCB))); } else if (OB_ISNULL(cb = new(buf) RpcCB(host_))) { - LOG_ERROR("construct RpcCB fail", K(buf)); + LOG_ERROR_RET(OB_ALLOCATE_MEMORY_FAILED, "construct RpcCB fail", K(buf)); } else { // success } @@ -527,7 +527,7 @@ void FetchLogARpc::stop() while (get_flying_request_count() > 0) { wait_count++; if (0 == (wait_count % WARN_COUNT_ON_STOP)) { - LOG_WARN("wait for flying async fetch log rpc done", + LOG_WARN_RET(OB_ERR_UNEXPECTED, "wait for flying async fetch log rpc done", "fetch_stream", &host_, K_(svr), "flying_request_count", get_flying_request_count(), "wait_time", get_timestamp() - start_time); @@ -590,7 +590,7 @@ void FetchLogARpc::revert_result(FetchLogARpcResult *result) ObSpinLockGuard guard(lock_); if (OB_ISNULL(result_pool_)) { - LOG_ERROR("invalid rpc result pool", K(result_pool_)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "invalid rpc result pool", K(result_pool_)); } else if (OB_NOT_NULL(result)) { result_pool_->free(result); result = NULL; @@ -1093,9 +1093,9 @@ rpc::frame::ObReqTransport::AsyncCB *FetchLogARpc::RpcCB::clone(const rpc::frame RpcCB *cb = NULL; if (OB_ISNULL(buf = alloc(sizeof(RpcCB)))) { - LOG_ERROR("clone rpc callback fail", K(buf), K(sizeof(RpcCB))); + LOG_ERROR_RET(OB_ALLOCATE_MEMORY_FAILED, "clone rpc callback fail", K(buf), K(sizeof(RpcCB))); } else if (OB_ISNULL(cb = new(buf) RpcCB(host_))) { - LOG_ERROR("construct RpcCB fail", K(buf)); + LOG_ERROR_RET(OB_ALLOCATE_MEMORY_FAILED, "construct RpcCB fail", K(buf)); } else { // 成功 } diff --git a/src/logservice/libobcdc/src/ob_log_fetcher.cpp b/src/logservice/libobcdc/src/ob_log_fetcher.cpp index c01706806..3a3fd74d9 100644 --- a/src/logservice/libobcdc/src/ob_log_fetcher.cpp +++ b/src/logservice/libobcdc/src/ob_log_fetcher.cpp @@ -294,7 +294,7 @@ void ObLogFetcher::stop() if (0 != misc_tid_) { int pthread_ret = pthread_join(misc_tid_, NULL); if (0 != pthread_ret) { - LOG_ERROR("join fetcher misc thread fail", K(misc_tid_), K(pthread_ret), + LOG_ERROR_RET(OB_ERR_SYS, "join fetcher misc thread fail", K(misc_tid_), K(pthread_ret), KERRNOMSG(pthread_ret)); } misc_tid_ = 0; @@ -303,7 +303,7 @@ void ObLogFetcher::stop() if (0 != heartbeat_dispatch_tid_) { int pthread_ret = pthread_join(heartbeat_dispatch_tid_, NULL); if (0 != pthread_ret) { - LOG_ERROR("join fetcher heartbeat dispatch thread fail", K(heartbeat_dispatch_tid_), + LOG_ERROR_RET(OB_ERR_SYS, "join fetcher heartbeat dispatch thread fail", K(heartbeat_dispatch_tid_), K(pthread_ret), KERRNOMSG(pthread_ret)); } heartbeat_dispatch_tid_ = 0; diff --git a/src/logservice/libobcdc/src/ob_log_formatter.cpp b/src/logservice/libobcdc/src/ob_log_formatter.cpp index 18364c848..e09cbef9d 100644 --- a/src/logservice/libobcdc/src/ob_log_formatter.cpp +++ b/src/logservice/libobcdc/src/ob_log_formatter.cpp @@ -783,7 +783,7 @@ void ObLogFormatter::handle_non_full_columns_( PartTransTask &task = dml_stmt_task.get_host(); if (! skip_dirty_data_) { - LOG_ERROR("row data is not full recorded", + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "row data is not full recorded", "tls_id", task.get_tls_id(), "commit_log_lsn", task.get_commit_log_lsn(), "commit_version", task.get_trans_commit_version(), diff --git a/src/logservice/libobcdc/src/ob_log_instance.cpp b/src/logservice/libobcdc/src/ob_log_instance.cpp index 913ea428e..e272d1dae 100644 --- a/src/logservice/libobcdc/src/ob_log_instance.cpp +++ b/src/logservice/libobcdc/src/ob_log_instance.cpp @@ -113,7 +113,7 @@ ObLogInstance *ObLogInstance::get_instance() ObLogInstance &ObLogInstance::get_ref_instance() { if (NULL == instance_) { - LOG_ERROR("ObLogInstance is NULL", K(instance_)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "ObLogInstance is NULL", K(instance_)); } return *instance_; } @@ -1796,7 +1796,7 @@ void ObLogInstance::handle_error(const int err_no, const char *fmt, ...) err_cb_(err); LOG_INFO("ERROR_CALLBACK end", KP(err_cb_)); } else { - LOG_ERROR("No ERROR CALLBACK function available, abort now"); + LOG_ERROR_RET(OB_ERROR, "No ERROR CALLBACK function available, abort now"); } // notify other module to stop @@ -1826,7 +1826,7 @@ void ObLogInstance::write_pid_file_() pid_file_fd = open(pid_file, O_RDWR | O_CREAT, 0600); if (OB_UNLIKELY(pid_file_fd < 0)) { - LOG_ERROR("open pid file fail", K(pid_file), K(pid_file_fd), K(errno), KERRMSG); + LOG_ERROR_RET(OB_ERR_SYS, "open pid file fail", K(pid_file), K(pid_file_fd), K(errno), KERRMSG); } else { char buf[32] = {}; (void)snprintf(buf, sizeof(buf), "%d\n", getpid()); @@ -1835,7 +1835,7 @@ void ObLogInstance::write_pid_file_() ssize_t len = strlen(buf); ssize_t nwrite = write(pid_file_fd, buf, len); if (OB_UNLIKELY(len != nwrite)) { - LOG_ERROR("write pid file fail", K(pid_file), K(pid_file_fd), + LOG_ERROR_RET(OB_ERR_SYS, "write pid file fail", K(pid_file), K(pid_file_fd), K(buf), K(len), K(errno), KERRMSG); } @@ -2054,7 +2054,7 @@ void ObLogInstance::wait_threads_stop_() if (0 != timer_tid_) { int pthread_ret = pthread_join(timer_tid_, NULL); if (0 != pthread_ret) { - LOG_ERROR("join timer thread fail", K(timer_tid_), K(pthread_ret), + LOG_ERROR_RET(OB_ERR_SYS, "join timer thread fail", K(timer_tid_), K(pthread_ret), KERRNOMSG(pthread_ret)); } else { LOG_INFO("stop timer thread succ", K(timer_tid_)); @@ -2066,7 +2066,7 @@ void ObLogInstance::wait_threads_stop_() if (0 != sql_tid_) { int pthread_ret = pthread_join(sql_tid_, NULL); if (0 != pthread_ret) { - LOG_ERROR("join sql thread fail", K(sql_tid_), K(pthread_ret), + LOG_ERROR_RET(OB_ERR_SYS, "join sql thread fail", K(sql_tid_), K(pthread_ret), KERRNOMSG(pthread_ret)); } else { LOG_INFO("stop sql thread succ", K(sql_tid_)); @@ -2078,7 +2078,7 @@ void ObLogInstance::wait_threads_stop_() if (0 != flow_control_tid_) { int pthread_ret = pthread_join(flow_control_tid_, NULL); if (0 != pthread_ret) { - LOG_ERROR("join flow control thread fail", K(flow_control_tid_), K(pthread_ret), + LOG_ERROR_RET(OB_ERR_SYS, "join flow control thread fail", K(flow_control_tid_), K(pthread_ret), KERRNOMSG(pthread_ret)); } else { LOG_INFO("stop flow control thread succ", K(flow_control_tid_)); @@ -2158,7 +2158,7 @@ void ObLogInstance::print_tenant_memory_usage_() lib::ObMallocAllocator *mallocator = lib::ObMallocAllocator::get_instance(); if (OB_ISNULL(mallocator)) { - LOG_ERROR("mallocator is NULL, can not print_tenant_memory_usage"); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "mallocator is NULL, can not print_tenant_memory_usage"); } else { mallocator->print_tenant_memory_usage(OB_SYS_TENANT_ID); mallocator->print_tenant_ctx_memory_usage(OB_SYS_TENANT_ID); @@ -2548,7 +2548,7 @@ int ObLogInstance::get_task_count_(int64_t &ready_to_seq_task_count, void ObLogInstance::do_drc_consume_tps_stat_() { if (OB_ISNULL(trans_stat_mgr_)) { - LOG_ERROR("trans_stat is null", K(trans_stat_mgr_)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "trans_stat is null", K(trans_stat_mgr_)); } else { trans_stat_mgr_->do_drc_consume_tps_stat(); } @@ -2557,7 +2557,7 @@ void ObLogInstance::do_drc_consume_tps_stat_() void ObLogInstance::do_drc_consume_rps_stat_() { if (OB_ISNULL(trans_stat_mgr_)) { - LOG_ERROR("trans_stat is null", K(trans_stat_mgr_)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "trans_stat is null", K(trans_stat_mgr_)); } else { trans_stat_mgr_->do_drc_consume_rps_stat(); } @@ -2566,7 +2566,7 @@ void ObLogInstance::do_drc_consume_rps_stat_() void ObLogInstance::do_drc_release_tps_stat_() { if (OB_ISNULL(trans_stat_mgr_)) { - LOG_ERROR("trans_stat is null", K(trans_stat_mgr_)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "trans_stat is null", K(trans_stat_mgr_)); } else { trans_stat_mgr_->do_drc_release_tps_stat(); } @@ -2575,7 +2575,7 @@ void ObLogInstance::do_drc_release_tps_stat_() void ObLogInstance::do_drc_release_rps_stat_() { if (OB_ISNULL(trans_stat_mgr_)) { - LOG_ERROR("trans_stat is null", K(trans_stat_mgr_)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "trans_stat is null", K(trans_stat_mgr_)); } else { trans_stat_mgr_->do_drc_release_rps_stat(); } @@ -2601,7 +2601,7 @@ void ObLogInstance::do_stat_for_part_trans_task_count_(int record_type, void ObLogInstance::print_trans_stat_() { if (OB_ISNULL(trans_stat_mgr_)) { - LOG_ERROR("trans_stat is null", K(trans_stat_mgr_)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "trans_stat is null", K(trans_stat_mgr_)); } else { trans_stat_mgr_->print_stat_info(); } @@ -2613,8 +2613,8 @@ int ObLogInstance::init_ob_trace_id_(const char *ob_trace_id_ptr) int64_t pos = 0; if (OB_ISNULL(ob_trace_id_ptr)) { - LOG_ERROR("ob_trace_id_ptr is null", K(ob_trace_id_ptr)); ret = OB_ERR_UNEXPECTED; + LOG_ERROR("ob_trace_id_ptr is null", K(ob_trace_id_ptr)); } else if (OB_FAIL(databuff_printf(ob_trace_id_str_, sizeof(ob_trace_id_str_), pos, "%s", ob_trace_id_ptr))) { LOG_ERROR("databuff_printf ob_trace_id_str_ fail", K(ob_trace_id_str_), K(pos), K(ob_trace_id_ptr)); diff --git a/src/logservice/libobcdc/src/ob_log_ls_fetch_mgr.cpp b/src/logservice/libobcdc/src/ob_log_ls_fetch_mgr.cpp index f1ff413f9..006794e1c 100644 --- a/src/logservice/libobcdc/src/ob_log_ls_fetch_mgr.cpp +++ b/src/logservice/libobcdc/src/ob_log_ls_fetch_mgr.cpp @@ -242,7 +242,7 @@ bool ObLogLSFetchMgr::CtxRecycleCond::operator() (const TenantLSID &tls_id, bool bool_ret = false; if (OB_ISNULL(ctx)) { - LOG_ERROR("invalid part fetch ctx", K(ctx), K(tls_id)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "invalid part fetch ctx", K(ctx), K(tls_id)); bool_ret = false; } else { _LOG_INFO("[STAT] [LSFetchMgr] [RECYCLE_LS] tls_id=%s " diff --git a/src/logservice/libobcdc/src/ob_log_ls_info.cpp b/src/logservice/libobcdc/src/ob_log_ls_info.cpp index 85b082757..75e5cfeab 100644 --- a/src/logservice/libobcdc/src/ob_log_ls_info.cpp +++ b/src/logservice/libobcdc/src/ob_log_ls_info.cpp @@ -164,7 +164,7 @@ bool LSInfoPrinter::operator()( { if (tls_id.get_tenant_id() == tenant_id_) { if (OB_ISNULL(ls_info)) { - LOG_ERROR("ls_info is invalid", K(tls_id), K(ls_info)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "ls_info is invalid", K(tls_id), K(ls_info)); } else if (ls_info->is_offline()) { offline_ls_count_++; } else if (ls_info->is_not_serving()) { 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 5e6d09d02..df061325e 100644 --- a/src/logservice/libobcdc/src/ob_log_meta_data_struct.cpp +++ b/src/logservice/libobcdc/src/ob_log_meta_data_struct.cpp @@ -471,7 +471,7 @@ void ObDictTenantInfoGuard::revert_tenant() { int revert_ret = GLOGMETADATASERVICE.get_baseline_loader().revert_tenant(tenant_info_); if (OB_SUCCESS != revert_ret) { - LOG_ERROR("revert ObLogTenant fail", K(revert_ret), KPC(tenant_info_)); + LOG_ERROR_RET(revert_ret, "revert ObLogTenant fail", K(revert_ret), KPC(tenant_info_)); } else { tenant_info_ = NULL; } 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 afb6e58ff..f6a714833 100644 --- a/src/logservice/libobcdc/src/ob_log_part_trans_dispatcher.cpp +++ b/src/logservice/libobcdc/src/ob_log_part_trans_dispatcher.cpp @@ -88,7 +88,7 @@ PartTransDispatcher::~PartTransDispatcher() // That is, task_queue and task_map should not have tasks from this partition in them // If want to clean tasks here, we need to save the tls_id, but for the time being, don't need to save the tls_id in order to optimise memory usage if (task_queue_.size() > 0) { - LOG_ERROR("task_queue_ is not empty", K(task_queue_.size()), KPC(task_queue_.top())); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "task_queue_ is not empty", K(task_queue_.size()), KPC(task_queue_.top())); } tls_id_.reset(); diff --git a/src/logservice/libobcdc/src/ob_log_schema_cache_info.cpp b/src/logservice/libobcdc/src/ob_log_schema_cache_info.cpp index 1e71edd20..0143a09d0 100644 --- a/src/logservice/libobcdc/src/ob_log_schema_cache_info.cpp +++ b/src/logservice/libobcdc/src/ob_log_schema_cache_info.cpp @@ -132,7 +132,7 @@ void ColumnSchemaInfo::reset() collation_type_ = ObCollationType::CS_TYPE_INVALID; if (NULL != orig_default_value_str_) { - LOG_ERROR("orig_default_value_str_ should be null", K(orig_default_value_str_)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "orig_default_value_str_ should be null", K(orig_default_value_str_)); orig_default_value_str_ = NULL; } @@ -346,7 +346,7 @@ int ObLogRowkeyInfo::do_init_( void ObLogRowkeyInfo::destroy() { if (OB_NOT_NULL(column_stored_idx_array_)) { - LOG_ERROR("column_id_array_ should be null", K(column_stored_idx_array_)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "column_id_array_ should be null", K(column_stored_idx_array_)); column_stored_idx_array_ = NULL; } size_ = 0; diff --git a/src/logservice/libobcdc/src/ob_log_start_lsn_locator.cpp b/src/logservice/libobcdc/src/ob_log_start_lsn_locator.cpp index 3795db19c..8c548b655 100644 --- a/src/logservice/libobcdc/src/ob_log_start_lsn_locator.cpp +++ b/src/logservice/libobcdc/src/ob_log_start_lsn_locator.cpp @@ -787,7 +787,7 @@ void StartLSNLocateReq::check_locate_result_(const int64_t start_log_tstamp, && start_log_tstamp >= start_tstamp_ns_ && cur_max_start_log_tstamp_ >= start_tstamp_ns_ && start_log_tstamp != cur_max_start_log_tstamp_) { - LOG_ERROR("start lsn locate results from different servers are not consistent, " + LOG_ERROR_RET(OB_ERROR, "start lsn locate results from different servers are not consistent, " "may be OceanBase server BUG, need check manually", K_(tls_id), K(svr), K(start_lsn), K(start_log_tstamp), K(cur_max_start_log_tstamp_), K(start_tstamp_ns_), K(cur_max_start_lsn_), K(svr_list_consumed_), @@ -914,7 +914,7 @@ bool StartLSNLocateReq::get_result(palf::LSN &start_lsn, common::ObAddr &svr) } if (! succeed) { - LOG_ERROR("request start lsn from all server fail", K_(tls_id), + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "request start lsn from all server fail", K_(tls_id), K_(start_tstamp_ns), "svr_cnt", svr_list_.count(), K_(svr_list_consumed), K_(result_svr_list_idx), K_(svr_list)); } diff --git a/src/logservice/libobcdc/src/ob_log_sys_ls_task_handler.cpp b/src/logservice/libobcdc/src/ob_log_sys_ls_task_handler.cpp index 4564243dd..a40e36b47 100644 --- a/src/logservice/libobcdc/src/ob_log_sys_ls_task_handler.cpp +++ b/src/logservice/libobcdc/src/ob_log_sys_ls_task_handler.cpp @@ -218,7 +218,7 @@ void ObLogSysLsTaskHandler::stop() int pthread_ret = pthread_join(handle_pid_, NULL); if (0 != pthread_ret) { - LOG_ERROR("join DDL handle thread fail", K(handle_pid_), K(pthread_ret), + LOG_ERROR_RET(OB_ERR_SYS, "join DDL handle thread fail", K(handle_pid_), K(pthread_ret), KERRNOMSG(pthread_ret)); } else { LOG_INFO("stop ObLogSysLsTaskHandler thread succ"); diff --git a/src/logservice/libobcdc/src/ob_log_task_pool.h b/src/logservice/libobcdc/src/ob_log_task_pool.h index 2f94c1b72..1c3c5a473 100644 --- a/src/logservice/libobcdc/src/ob_log_task_pool.h +++ b/src/logservice/libobcdc/src/ob_log_task_pool.h @@ -270,7 +270,7 @@ private: TaskType *ret_task = NULL; int64_t alloc_size = static_cast(sizeof(TaskType)); if (OB_ISNULL(ret_task = static_cast(alloc_->alloc(alloc_size)))) { - OBLOG_LOG(WARN, "failed to alloc task", K(ret_task), K(alloc_size)); + OBLOG_LOG_RET(WARN, OB_ALLOCATE_MEMORY_FAILED, "failed to alloc task", K(ret_task), K(alloc_size)); } else { new(ret_task)TaskType(); ret_task->set_pool(this); @@ -397,7 +397,7 @@ private: { if (NULL != prealloc_pages_) { if (prealloc_page_pool_.get_total() < prealloc_page_cnt_) { - OBLOG_LOG(WARN, "part trans task prealloc pages are not reverted all", + OBLOG_LOG_RET(WARN, OB_ERR_UNEXPECTED, "part trans task prealloc pages are not reverted all", K_(prealloc_page_cnt), "pool_size", prealloc_page_pool_.get_total()); } diff --git a/src/logservice/libobcdc/src/ob_log_tenant.cpp b/src/logservice/libobcdc/src/ob_log_tenant.cpp index 3fe205e5d..8c4a4381e 100644 --- a/src/logservice/libobcdc/src/ob_log_tenant.cpp +++ b/src/logservice/libobcdc/src/ob_log_tenant.cpp @@ -827,7 +827,7 @@ void ObLogTenantGuard::revert_tenant() if (OB_NOT_NULL(tenant_) && OB_NOT_NULL(tenant_mgr)) { int revert_ret = tenant_mgr->revert_tenant(tenant_); if (OB_SUCCESS != revert_ret) { - LOG_ERROR("revert ObLogTenant fail", K(revert_ret), KPC(tenant_)); + LOG_ERROR_RET(revert_ret, "revert ObLogTenant fail", K(revert_ret), KPC(tenant_)); } else { tenant_ = NULL; } diff --git a/src/logservice/libobcdc/src/ob_log_tenant_mgr.cpp b/src/logservice/libobcdc/src/ob_log_tenant_mgr.cpp index a63918feb..5a2bfa5dc 100644 --- a/src/logservice/libobcdc/src/ob_log_tenant_mgr.cpp +++ b/src/logservice/libobcdc/src/ob_log_tenant_mgr.cpp @@ -1044,7 +1044,7 @@ int ObLogTenantMgr::get_tenant_guard(const uint64_t tenant_id, ObLogTenantGuard void ObLogTenantMgr::revert_tenant_(ObLogTenant *tenant) { if (OB_UNLIKELY(! inited_)) { - LOG_ERROR("ObLogTenantMgr has not inited"); + LOG_ERROR_RET(OB_NOT_INIT, "ObLogTenantMgr has not inited"); } else if (NULL != tenant) { tenant_hash_map_.revert(tenant); } diff --git a/src/logservice/libobcdc/src/ob_log_timer.cpp b/src/logservice/libobcdc/src/ob_log_timer.cpp index 26a824d6f..ef9669151 100644 --- a/src/logservice/libobcdc/src/ob_log_timer.cpp +++ b/src/logservice/libobcdc/src/ob_log_timer.cpp @@ -118,7 +118,7 @@ void ObLogFixedTimer::stop() if (0 != tid_) { int pthread_ret = pthread_join(tid_, NULL); if (0 != pthread_ret) { - LOG_ERROR("pthread_join fail", K(tid_), K(pthread_ret), KERRNOMSG(pthread_ret)); + LOG_ERROR_RET(OB_ERR_SYS, "pthread_join fail", K(tid_), K(pthread_ret), KERRNOMSG(pthread_ret)); } tid_ = 0; 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 20b6776f6..e30ded9d4 100644 --- a/src/logservice/libobcdc/src/ob_log_timezone_info_getter.cpp +++ b/src/logservice/libobcdc/src/ob_log_timezone_info_getter.cpp @@ -125,7 +125,7 @@ void ObLogTimeZoneInfoGetter::stop() int pthread_ret = pthread_join(tz_tid_, NULL); if (0 != pthread_ret) { - LOG_ERROR("join timezone info thread fail", K(tz_tid_), K(pthread_ret), + LOG_ERROR_RET(OB_ERR_SYS, "join timezone info thread fail", K(tz_tid_), K(pthread_ret), KERRNOMSG(pthread_ret)); } else { LOG_INFO("stop timezone info thread succ"); @@ -546,9 +546,9 @@ int ObLogTimeZoneInfoGetter::export_timezone_info_(common::ObTZInfoMap &tz_info_ { int tmp_ret = OB_SUCCESS; if (OB_ISNULL(tz_info)) { - LOG_ERROR("invalid tz_info", KR(tmp_ret), K(key)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "invalid tz_info", KR(tmp_ret), K(key)); } else if (OB_TMP_FAIL(tz_info_res.tz_array_.push_back(*tz_info))) { - LOG_ERROR("push_back tz_info into ObRequestTZInfoResult failed", KR(tmp_ret), K(key)); + LOG_ERROR_RET(tmp_ret, "push_back tz_info into ObRequestTZInfoResult failed", KR(tmp_ret), K(key)); } return OB_SUCCESS == tmp_ret; }; diff --git a/src/logservice/libobcdc/src/ob_log_trans_ctx_mgr.cpp b/src/logservice/libobcdc/src/ob_log_trans_ctx_mgr.cpp index b3cdedee3..10a667720 100644 --- a/src/logservice/libobcdc/src/ob_log_trans_ctx_mgr.cpp +++ b/src/logservice/libobcdc/src/ob_log_trans_ctx_mgr.cpp @@ -306,7 +306,7 @@ int64_t ObLogTransCtxMgr::get_trans_count(const int trans_ctx_state) const if (TransCtx::is_state_valid(trans_ctx_state)) { ret_count = trans_count_[trans_ctx_state]; } else { - LOG_ERROR("trans ctx state is invalid", K(trans_ctx_state)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "trans ctx state is invalid", K(trans_ctx_state)); } return ret_count; diff --git a/src/logservice/libobcdc/src/ob_log_trans_stat_mgr.cpp b/src/logservice/libobcdc/src/ob_log_trans_stat_mgr.cpp index 43b2b97ef..dd053c03a 100644 --- a/src/logservice/libobcdc/src/ob_log_trans_stat_mgr.cpp +++ b/src/logservice/libobcdc/src/ob_log_trans_stat_mgr.cpp @@ -413,7 +413,7 @@ bool ObLogTransStatMgr::TenantRpsBeforeFilterUpdater::operator()(const TenantID { if (tid.tenant_id_ == tenant_id_) { if (OB_ISNULL(ts_info)) { - LOG_ERROR("tenant stat info is null", K(tid), KPC(ts_info)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "tenant stat info is null", K(tid), KPC(ts_info)); } else { ts_info->tps_stat_info_.do_tps_stat(); ts_info->rps_stat_info_before_filter_.do_rps_stat(record_count_); @@ -427,7 +427,7 @@ bool ObLogTransStatMgr::TenantRpsAfterFilterUpdater::operator()(const TenantID & { if (tid.tenant_id_ == tenant_id_) { if (OB_ISNULL(ts_info)) { - LOG_ERROR("tenant stat info is null", K(tid), KPC(ts_info)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "tenant stat info is null", K(tid), KPC(ts_info)); } else { ts_info->rps_stat_info_after_filter_.do_rps_stat(record_count_); } diff --git a/src/logservice/libobcdc/src/ob_log_utils.cpp b/src/logservice/libobcdc/src/ob_log_utils.cpp index 1c71d3b12..16580be93 100644 --- a/src/logservice/libobcdc/src/ob_log_utils.cpp +++ b/src/logservice/libobcdc/src/ob_log_utils.cpp @@ -844,7 +844,7 @@ bool ObLogKVCollection::is_valid() const { bool valid = true; if (OB_UNLIKELY(!inited_) || OB_ISNULL(kv_delimiter_) || OB_ISNULL(pair_delimiter_)) { - LOG_ERROR("invalid argument", K_(inited), K_(kv_delimiter), K_(pair_delimiter)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "invalid argument", K_(inited), K_(kv_delimiter), K_(pair_delimiter)); valid = false; } else { int64_t idx = 0; diff --git a/src/logservice/libobcdc/src/ob_map_queue_thread.h b/src/logservice/libobcdc/src/ob_map_queue_thread.h index 6238d0c78..9721449f9 100644 --- a/src/logservice/libobcdc/src/ob_map_queue_thread.h +++ b/src/logservice/libobcdc/src/ob_map_queue_thread.h @@ -214,7 +214,7 @@ void ObMapQueueThread::stop() int pthread_ret = pthread_join(tc.tid_, NULL); if (0 != pthread_ret) { - LIB_LOG(ERROR, "pthread_join fail", "thread_id", tc.tid_, K(pthread_ret)); + LIB_LOG_RET(ERROR, OB_ERR_SYS, "pthread_join fail", "thread_id", tc.tid_, K(pthread_ret)); } tc.tid_ = 0; @@ -287,9 +287,9 @@ void ObMapQueueThread::cond_timedwait(const int64_t thread_index const int64_t wait_time) { if (OB_UNLIKELY(! inited_)) { - LIB_LOG(ERROR, "not init"); + LIB_LOG_RET(ERROR, OB_NOT_INIT, "not init"); } else if (OB_UNLIKELY(thread_index < 0) || OB_UNLIKELY(thread_index >= thread_num_)) { - LIB_LOG(ERROR, "invalid thread index", K(thread_index), K(thread_num_)); + LIB_LOG_RET(ERROR, OB_INVALID_ARGUMENT, "invalid thread index", K(thread_index), K(thread_num_)); } else { tc_[thread_index].cond_.timedwait(wait_time); } diff --git a/src/logservice/libobcdc/src/ob_ms_queue_thread.h b/src/logservice/libobcdc/src/ob_ms_queue_thread.h index 7aca9b446..6ebf89e7b 100644 --- a/src/logservice/libobcdc/src/ob_ms_queue_thread.h +++ b/src/logservice/libobcdc/src/ob_ms_queue_thread.h @@ -216,7 +216,7 @@ void ObMsQueueThread::stop() int pthread_ret = pthread_join(tc.tid_, NULL); if (0 != pthread_ret) { - LIB_LOG(ERROR, "pthread_join fail", "thread_id", tc.tid_, K(pthread_ret)); + LIB_LOG_RET(ERROR, OB_ERR_SYS, "pthread_join fail", "thread_id", tc.tid_, K(pthread_ret)); } else { // do nothing } diff --git a/src/logservice/libobcdc/src/ob_seq_thread.h b/src/logservice/libobcdc/src/ob_seq_thread.h index 569274dea..fe1f71636 100644 --- a/src/logservice/libobcdc/src/ob_seq_thread.h +++ b/src/logservice/libobcdc/src/ob_seq_thread.h @@ -162,8 +162,8 @@ int ObSeqThread::start() int pthread_ret = 0; if (0 != (pthread_ret = pthread_create(tids_ + index, NULL, thread_func_, this))) { - LIB_LOG(ERROR, "pthread_create fail", K(pthread_ret), KERRNOMSG(pthread_ret), K(index)); ret = OB_ERR_UNEXPECTED; + LIB_LOG(ERROR, "pthread_create fail", K(pthread_ret), KERRNOMSG(pthread_ret), K(index)); } } } @@ -182,7 +182,7 @@ void ObSeqThread::stop() int pthread_ret = pthread_join(tids_[index], NULL); if (0 != pthread_ret) { - LIB_LOG(ERROR, "pthread_join fail", "thread_id", tids_[index], K(pthread_ret)); + LIB_LOG_RET(ERROR, common::OB_ERR_SYS, "pthread_join fail", "thread_id", tids_[index], K(pthread_ret)); } else { // do nothing } diff --git a/src/logservice/libobcdc/src/ob_small_arena.cpp b/src/logservice/libobcdc/src/ob_small_arena.cpp index 2d0c4c308..34106eb0c 100644 --- a/src/logservice/libobcdc/src/ob_small_arena.cpp +++ b/src/logservice/libobcdc/src/ob_small_arena.cpp @@ -73,7 +73,7 @@ void ObSmallArena::set_allocator(const int64_t page_size, void ObSmallArena::set_prealloc_page(void *page) { if (NULL != local_page_) { - LOG_ERROR("prealloc page has been set", K(local_page_), K(page)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "prealloc page has been set", K(local_page_), K(page)); } else if (NULL != page) { local_page_ = new(page) SmallPage(); } @@ -108,12 +108,12 @@ void* ObSmallArena::alloc_aligned(const int64_t size, const int64_t align) ObSmallSpinLockGuard guard(lock_); if (OB_UNLIKELY(!is_valid_())) { tmp_ret = OB_ERR_UNEXPECTED; - LOG_ERROR("small arena is not valid", K(large_allocator_), K(page_size_)); + LOG_ERROR_RET(tmp_ret, "small arena is not valid", K(large_allocator_), K(page_size_)); } else if (OB_UNLIKELY(0 >= size) || OB_UNLIKELY(0 != (align & (align - 1))) || OB_UNLIKELY(align > (page_size_ / 2))) { tmp_ret = OB_INVALID_ARGUMENT; - LOG_ERROR("small arena alloc error, invalid argument", "ret", tmp_ret, K(size), + LOG_ERROR_RET(tmp_ret, "small arena alloc error, invalid argument", "ret", tmp_ret, K(size), K(align), K(page_size_)); } else if (need_large_page_(size, align)) { ret_ptr = do_alloc_large_(size, align); @@ -135,12 +135,12 @@ void* ObSmallArena::do_alloc_large_(const int64_t size, const int64_t align) { void *ret_ptr = NULL; if (OB_ISNULL(large_allocator_)) { - LOG_ERROR("invalid large allocator", K(large_allocator_)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "invalid large allocator", K(large_allocator_)); } else { int64_t alloc_size = size + LARGE_PAGE_HEADER_SIZE + align - 1; LargePage *large_page = static_cast(large_allocator_->alloc(alloc_size)); if (OB_ISNULL(large_page)) { - LOG_ERROR("alloc large page fail", K(alloc_size)); + LOG_ERROR_RET(OB_ALLOCATE_MEMORY_FAILED, "alloc large page fail", K(alloc_size)); } else { int64_t start_addr = reinterpret_cast(large_page->addr_); ret_ptr = reinterpret_cast(upper_align(start_addr, align)); @@ -159,7 +159,7 @@ void ObSmallArena::alloc_small_page_() mem_attr.label_ = common::ObModIds::OB_LOG_PART_TRANS_TASK_SMALL; if (OB_ISNULL(ptr = ob_malloc(page_size_, mem_attr))) { - LOG_ERROR("alloc small page error", K(ptr), K(page_size_)); + LOG_ERROR_RET(OB_ALLOCATE_MEMORY_FAILED, "alloc small page error", K(ptr), K(page_size_)); } else { new_cur_page = new (ptr) SmallPage(); new_cur_page->next_ = small_page_list_; diff --git a/src/logservice/ob_garbage_collector.cpp b/src/logservice/ob_garbage_collector.cpp index fcc5eee9f..1db3c67a6 100644 --- a/src/logservice/ob_garbage_collector.cpp +++ b/src/logservice/ob_garbage_collector.cpp @@ -51,7 +51,7 @@ public: bool operator()(const ObAddr &leader, ObLSArray &ls_array) { if (OB_SUCCESS != (ret_value_ = ls_array.push_back(id_))) { - CLOG_LOG(WARN, "ls_array push_back failed", K(ret_value_), K(id_), K(leader)); + CLOG_LOG_RET(WARN, ret_value_, "ls_array push_back failed", K(ret_value_), K(id_), K(leader)); } return common::OB_SUCCESS == ret_value_; } @@ -78,7 +78,7 @@ public: bool operator()(const common::ObAddr &leader, ObLSArray &ls_array) { if (OB_SUCCESS != (ret_value_ = handle_ls_array_(leader, ls_array))) { - CLOG_LOG(WARN, "handle_pg_array_ failed", K(ret_value_), K(ls_array), K(leader)); + CLOG_LOG_RET(WARN, ret_value_, "handle_pg_array_ failed", K(ret_value_), K(ls_array), K(leader)); } return common::OB_SUCCESS == ret_value_; } @@ -687,7 +687,7 @@ void ObGCHandler::submit_log_(const ObGCLSLOGType log_type) ob_usleep(WAIT_TIME); retry_cnt++; if (retry_cnt % 1000 == 0) { - CLOG_LOG(WARN, "GC ls log wait cb too much time", K(retry_cnt), K(log_type)); + CLOG_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "GC ls log wait cb too much time", K(retry_cnt), K(log_type)); } } } diff --git a/src/logservice/ob_log_base_header.cpp b/src/logservice/ob_log_base_header.cpp index aac83200c..9a14eb644 100644 --- a/src/logservice/ob_log_base_header.cpp +++ b/src/logservice/ob_log_base_header.cpp @@ -43,7 +43,7 @@ ObLogBaseHeader::ObLogBaseHeader(const ObLogBaseType log_type, break; default: flag_ = (flag_ | NEED_POST_REPLAY_BARRIER_FLAG) | NEED_PRE_REPLAY_BARRIER_FLAG; - CLOG_LOG(ERROR, "invalid replay barrier type", K(log_type), K(replay_barrier_type), + CLOG_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "invalid replay barrier type", K(log_type), K(replay_barrier_type), K(replay_hint)); break; } diff --git a/src/logservice/ob_log_handler.cpp b/src/logservice/ob_log_handler.cpp index 6c542bfd4..407116b40 100644 --- a/src/logservice/ob_log_handler.cpp +++ b/src/logservice/ob_log_handler.cpp @@ -1039,7 +1039,7 @@ bool ObLogHandler::is_replay_enabled() const if (IS_NOT_INIT) { } else if (FALSE_IT(id = id_)) { } else if (OB_SUCCESS != (tmp_ret = replay_service_->is_enabled(id, bool_ret))) { - CLOG_LOG(WARN, "check replay service is enabled failed", K(tmp_ret), K(id)); + CLOG_LOG_RET(WARN, tmp_ret, "check replay service is enabled failed", K(tmp_ret), K(id)); } else { // do nothing } diff --git a/src/logservice/ob_ls_adapter.cpp b/src/logservice/ob_ls_adapter.cpp index bb69b484e..a78d54445 100644 --- a/src/logservice/ob_ls_adapter.cpp +++ b/src/logservice/ob_ls_adapter.cpp @@ -98,9 +98,9 @@ int ObLSAdapter::replay(ObLogReplayTask *replay_task) if (replay_task->replay_cost_ > MAX_SINGLE_REPLAY_ERROR_TIME_THRESOLD && !get_replay_is_writing_throttling() && lib::is_mini_mode()) { - CLOG_LOG(ERROR, "single replay task cost too much time. replay may be delayed", KPC(replay_task)); + CLOG_LOG_RET(ERROR, OB_ERR_TOO_MUCH_TIME, "single replay task cost too much time. replay may be delayed", KPC(replay_task)); } else { - CLOG_LOG(WARN, "single replay task cost too much time", KPC(replay_task)); + CLOG_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "single replay task cost too much time", KPC(replay_task)); } } return ret; diff --git a/src/logservice/ob_server_log_block_mgr.cpp b/src/logservice/ob_server_log_block_mgr.cpp index d309544e0..6d29eb29c 100644 --- a/src/logservice/ob_server_log_block_mgr.cpp +++ b/src/logservice/ob_server_log_block_mgr.cpp @@ -119,7 +119,7 @@ int ObServerLogBlockMgr::init(const char *log_disk_base_path) void ObServerLogBlockMgr::destroy() { - CLOG_LOG(WARN, "ObServerLogBlockMgr destroy", KPC(this)); + CLOG_LOG_RET(WARN, OB_SUCCESS, "ObServerLogBlockMgr destroy", KPC(this)); is_inited_ = false; min_log_disk_size_for_all_tenants_ = 0; max_block_id_ = 0; diff --git a/src/logservice/palf/block_gc_timer_task.cpp b/src/logservice/palf/block_gc_timer_task.cpp index 18a7e5f83..a93537b57 100644 --- a/src/logservice/palf/block_gc_timer_task.cpp +++ b/src/logservice/palf/block_gc_timer_task.cpp @@ -95,7 +95,7 @@ void BlockGCTimerTask::runTimerTask() } else { int64_t cost_time_us = ObTimeUtility::current_time() - start_time_us; if (cost_time_us >= 1 * 1000) { - PALF_LOG(WARN, "try_recycle_blocks cost too much time", K(ret), K(cost_time_us), KPC(palf_env_impl_)); + PALF_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "try_recycle_blocks cost too much time", K(ret), K(cost_time_us), KPC(palf_env_impl_)); } if (palf_reach_time_interval(10 * 1000 * 1000, warn_time_)) { PALF_LOG(INFO, "BlockGCTimerTask success", K(ret), K(cost_time_us), KPC(palf_env_impl_)); diff --git a/src/logservice/palf/election/algorithm/election_acceptor.cpp b/src/logservice/palf/election/algorithm/election_acceptor.cpp index d45f20225..4f2f7fc14 100644 --- a/src/logservice/palf/election/algorithm/election_acceptor.cpp +++ b/src/logservice/palf/election/algorithm/election_acceptor.cpp @@ -29,7 +29,7 @@ namespace election #define CHECK_SILENCE()\ do {\ if (ATOMIC_LOAD(&INIT_TS) < 0) {\ - ELECT_LOG(ERROR, "INIT_TS is less than 0, may not call GLOBAL_INIT_ELECTION_MODULE yet!", K(*this));\ + ELECT_LOG_RET(ERROR, common::OB_ERROR, "INIT_TS is less than 0, may not call GLOBAL_INIT_ELECTION_MODULE yet!", K(*this));\ return;\ } else if (OB_UNLIKELY(get_monotonic_ts() < ATOMIC_LOAD(&INIT_TS) + MAX_LEASE_TIME)) {\ ELECT_LOG(INFO, "keep silence for safty, won't send response", K(*this));\ @@ -108,7 +108,7 @@ void ElectionAcceptor::advance_ballot_number_and_reset_related_states_(const int ballot_of_time_window_ = ballot_number_; reset_time_window_states_(phase); } else { - LOG_PHASE(ERROR, phase, "invalid argument"); + LOG_PHASE_RET(ERROR, OB_INVALID_ARGUMENT, phase, "invalid argument"); } #undef PRINT_WRAPPER } diff --git a/src/logservice/palf/election/algorithm/election_proposer.cpp b/src/logservice/palf/election/algorithm/election_proposer.cpp index 102dfaac3..1510b4d2b 100644 --- a/src/logservice/palf/election/algorithm/election_proposer.cpp +++ b/src/logservice/palf/election/algorithm/election_proposer.cpp @@ -663,21 +663,21 @@ void ElectionProposer::on_change_leader(const ElectionChangeLeaderMsg &change_le if (change_leader_msg.get_ballot_number() == ballot_number_) { accept = true; } else { - LOG_CHANGE_LEADER(WARN, "change leader to self msg's ballot number not expected"); + LOG_CHANGE_LEADER_RET(WARN, OB_ERR_UNEXPECTED, "change leader to self msg's ballot number not expected"); } } else {// 别人切给自己的 if (change_leader_msg.get_ballot_number() > ballot_number_) { accept = true; } else { - LOG_CHANGE_LEADER(WARN, "change leader msg's ballot number is too small"); + LOG_CHANGE_LEADER_RET(WARN, OB_ERR_UNEXPECTED, "change leader msg's ballot number is too small"); } } if (!accept) { - LOG_CHANGE_LEADER(WARN, "change leader msg not accepted"); + LOG_CHANGE_LEADER_RET(WARN, OB_ERR_UNEXPECTED, "change leader msg not accepted"); } else if (change_leader_msg.get_membership_version() > memberlist_with_states_. get_member_list(). get_membership_version()) { - LOG_CHANGE_LEADER(WARN, "change leader msg's membership version is larger than self"); + LOG_CHANGE_LEADER_RET(WARN, OB_ERR_UNEXPECTED, "change leader msg's membership version is larger than self"); } else { advance_ballot_number_and_reset_related_states_(change_leader_msg.get_ballot_number(), "receive change leader message"); diff --git a/src/logservice/palf/election/interface/election.h b/src/logservice/palf/election/interface/election.h index 1dec6b2fd..f214cd7ab 100644 --- a/src/logservice/palf/election/interface/election.h +++ b/src/logservice/palf/election/interface/election.h @@ -94,7 +94,7 @@ inline int64_t get_monotonic_ts() int64_t ts = 0; timespec tm; if (OB_UNLIKELY(0 != clock_gettime(CLOCK_MONOTONIC, &tm))) { - ELECT_LOG(ERROR, "FATAL ERROR!!! get monotonic clock ts failed!"); + ELECT_LOG_RET(ERROR, common::OB_ERROR, "FATAL ERROR!!! get monotonic clock ts failed!"); abort(); } else { ts = tm.tv_sec * 1000000 + tm.tv_nsec / 1000; diff --git a/src/logservice/palf/election/message/election_message.cpp b/src/logservice/palf/election/message/election_message.cpp index 278b50625..4f6d96e41 100644 --- a/src/logservice/palf/election/message/election_message.cpp +++ b/src/logservice/palf/election/message/election_message.cpp @@ -58,21 +58,21 @@ void print_debug_ts_if_reach_warn_threshold(const ElectionMsgBase &msg, const in res_debug_ts.src_construct_ts_, res_debug_ts.src_serialize_ts_, res_debug_ts.dest_deserialize_ts_, res_debug_ts.dest_process_ts_}) - req_debug_ts.src_construct_ts_; if (req_debug_ts.src_serialize_ts_ != 0 && (diff = std::abs(req_debug_ts.src_serialize_ts_ - req_debug_ts.src_construct_ts_)) > recaculated_warn_threshold) { - LOG_NONE(WARN, "request serialize in src too delay"); + LOG_NONE_RET(WARN, OB_ERR_UNEXPECTED, "request serialize in src too delay"); } else if (req_debug_ts.dest_deserialize_ts_ != 0 && (diff = std::abs(req_debug_ts.dest_deserialize_ts_ - req_debug_ts.src_construct_ts_)) > recaculated_warn_threshold) { - LOG_NONE(WARN, "request deserialize in dest too delay"); + LOG_NONE_RET(WARN, OB_ERR_UNEXPECTED, "request deserialize in dest too delay"); } else if (req_debug_ts.dest_process_ts_ != 0 && (diff = std::abs(req_debug_ts.dest_process_ts_ - req_debug_ts.src_construct_ts_)) > recaculated_warn_threshold) { - LOG_NONE(WARN, "request process in dest too delay"); + LOG_NONE_RET(WARN, OB_ERR_UNEXPECTED, "request process in dest too delay"); } else if (res_debug_ts.src_construct_ts_ != 0 && (diff = std::abs(res_debug_ts.src_construct_ts_ - req_debug_ts.src_construct_ts_)) > recaculated_warn_threshold) { - LOG_NONE(WARN, "response construct in src too delay"); + LOG_NONE_RET(WARN, OB_ERR_UNEXPECTED, "response construct in src too delay"); } else if (res_debug_ts.src_serialize_ts_ != 0 && (diff = std::abs(res_debug_ts.src_serialize_ts_ - req_debug_ts.src_construct_ts_)) > recaculated_warn_threshold) { - LOG_NONE(WARN, "response serialize in src too delay"); + LOG_NONE_RET(WARN, OB_ERR_UNEXPECTED, "response serialize in src too delay"); } else if (res_debug_ts.dest_deserialize_ts_ != 0 && (diff = std::abs(res_debug_ts.dest_deserialize_ts_ - req_debug_ts.src_construct_ts_)) > recaculated_warn_threshold) { - LOG_NONE(WARN, "response deserialize in dest too delay"); + LOG_NONE_RET(WARN, OB_ERR_UNEXPECTED, "response deserialize in dest too delay"); } else if (res_debug_ts.dest_process_ts_ != 0 && (diff = std::abs(res_debug_ts.dest_process_ts_ - req_debug_ts.src_construct_ts_)) > recaculated_warn_threshold) { - LOG_NONE(WARN, "response process in dest too delay"); + LOG_NONE_RET(WARN, OB_ERR_UNEXPECTED, "response process in dest too delay"); } else if (max_diff > recaculated_warn_threshold) { - LOG_NONE(WARN, "max_diff too delay"); + LOG_NONE_RET(WARN, OB_ERR_UNEXPECTED, "max_diff too delay"); } return; #undef PRINT_WRAPPER diff --git a/src/logservice/palf/election/utils/election_args_checker.h b/src/logservice/palf/election/utils/election_args_checker.h index 977ad05ad..7b6c4cb76 100644 --- a/src/logservice/palf/election/utils/election_args_checker.h +++ b/src/logservice/palf/election/utils/election_args_checker.h @@ -60,7 +60,7 @@ do {\ #define CHECK_ELECTION_INIT() \ do {\ if (OB_UNLIKELY(!is_inited_)) {\ - ELECT_LOG(WARN, "not init yet", K(*this), K(lbt()));\ + ELECT_LOG_RET(WARN, common::OB_NOT_INIT, "not init yet", K(*this), K(lbt()));\ return common::OB_NOT_INIT;\ }\ } while(0) @@ -69,7 +69,7 @@ do {\ do { \ CHECK_ELECTION_INIT(); \ if (OB_UNLIKELY(!is_running_)) { \ - ELECT_LOG(WARN, "not running", K(*this), K(lbt()));\ + ELECT_LOG_RET(WARN, common::OB_NOT_RUNNING, "not running", K(*this), K(lbt()));\ return common::OB_NOT_RUNNING;\ }\ } while(0) @@ -78,4 +78,4 @@ do { \ } } -#endif \ No newline at end of file +#endif diff --git a/src/logservice/palf/election/utils/election_common_define.h b/src/logservice/palf/election/utils/election_common_define.h index 1a5dbc7c8..192313bb7 100644 --- a/src/logservice/palf/election/utils/election_common_define.h +++ b/src/logservice/palf/election/utils/election_common_define.h @@ -19,6 +19,7 @@ #include "share/ob_occam_time_guard.h" #include +/* to do bin.lb: to be removed #define LOG_PHASE(level, phase, info, args...) \ do {\ if (phase == LogPhase::NONE) {\ @@ -55,6 +56,11 @@ do {\ ELECT_LOG(level, joined_info, ##args, PRINT_WRAPPER);\ }\ } while(0) +*/ + +#define LOG_PHASE(level, phase, info, args...) ELECT_LOG(level, "[" #phase "]" info, ##args, PRINT_WRAPPER) +#define LOG_PHASE_RET(level, errcode, phase, info, args...) ELECT_LOG_RET(level, errcode, "[" #phase "]" info, ##args, PRINT_WRAPPER) + #define LOG_INIT(level, info, args...) LOG_PHASE(level, LogPhase::INIT, info, ##args) #define LOG_DESTROY(level, info, args...) LOG_PHASE(level, LogPhase::DESTROY, info, ##args) #define LOG_ELECT_LEADER(level, info, args...) LOG_PHASE(level, LogPhase::ELECT_LEADER, info, ##args) @@ -62,7 +68,16 @@ do {\ #define LOG_CHANGE_LEADER(level, info, args...) LOG_PHASE(level, LogPhase::CHANGE_LEADER, info, ##args) #define LOG_EVENT(level, info, args...) LOG_PHASE(level, LogPhase::EVENT, info, ##args) #define LOG_SET_MEMBER(level, info, args...) LOG_PHASE(level, LogPhase::SET_MEMBER, info, ##args) -#define LOG_NONE(level, info, args...) LOG_PHASE(level, LogPhase::NONE, info, ##args) +#define LOG_NONE(level, info, args...) ELECT_LOG(level, info, ##args, PRINT_WRAPPER) + +#define LOG_INIT_RET(level, errcode, args...) { int ret = errcode; LOG_INIT(level, ##args); } +#define LOG_DESTROY_RET(level, errcode, args...) { int ret = errcode; LOG_DESTROY(level, ##args); } +#define LOG_RENEW_LEASE_RET(level, errcode, args...) { int ret = errcode; LOG_RENEW_LEASE(level, ##args); } +#define LOG_CHANGE_LEADER_RET(level, errcode, args...) { int ret = errcode; LOG_CHANGE_LEADER(level, ##args); } +#define LOG_EVENT_RET(level, errcode, args...) { int ret = errcode; LOG_EVENT(level, ##args); } +#define LOG_SET_MEMBER_RET(level, errcode, args...) { int ret = errcode; LOG_SET_MEMBER(level, ##args); } +#define LOG_NONE_RET(level, errcode, args...) { int ret = errcode; LOG_NONE(level, ##args); } + #define ELECT_TIME_GUARD(func_cost_threshold) TIMEGUARD_INIT(ELECT, func_cost_threshold, 10_s) namespace oceanbase @@ -104,4 +119,4 @@ inline int64_t CALCULATE_TRIGGER_ELECT_WATER_MARK() { return std::min(M }// namespace palf }// namesapce oceanbase -#endif \ No newline at end of file +#endif diff --git a/src/logservice/palf/election/utils/election_event_recorder.cpp b/src/logservice/palf/election/utils/election_event_recorder.cpp index 831336ab1..4da88cd93 100644 --- a/src/logservice/palf/election/utils/election_event_recorder.cpp +++ b/src/logservice/palf/election/utils/election_event_recorder.cpp @@ -88,7 +88,7 @@ int EventRecorder::report_event_(ElectionEventType type, const common::ObString } if (++retry_times > 12 || OB_SUCC(ret)) { if (retry_times > 12) {// this may happened cause inner sql may not work for a long time, but i have tried my very best, so let it miss. - LOG_EVENT(WARN, "fail to schedule report event task cause retry too much times"); + LOG_EVENT_RET(WARN, OB_ERR_TOO_MUCH_TIME, "fail to schedule report event task cause retry too much times"); } stop_flag = true; } @@ -306,4 +306,4 @@ int EventRecorder::report_acceptor_witness_change_leader_event(const ObAddr &old } } } -//#endif \ No newline at end of file +//#endif diff --git a/src/logservice/palf/election/utils/election_utils.cpp b/src/logservice/palf/election/utils/election_utils.cpp index b830bf5af..0901f1f46 100644 --- a/src/logservice/palf/election/utils/election_utils.cpp +++ b/src/logservice/palf/election/utils/election_utils.cpp @@ -209,7 +209,7 @@ bool MemberListWithStates::is_synced_with_majority() const { bool ret_bool = false; if (OB_ISNULL(p_impl_)) { - ELECT_LOG(ERROR, "p_impl_ is nullptr", KP_(p_impl)); + ELECT_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "p_impl_ is nullptr", KP_(p_impl)); } else if (!p_impl_->member_list_.get_membership_version().is_valid()) { ret_bool = true; } else { @@ -219,7 +219,7 @@ bool MemberListWithStates::is_synced_with_majority() const if (sync_count >= (p_impl_->member_list_.get_replica_num() / 2 + 1)) { ret_bool = true; } else { - ELECT_LOG(WARN, "membership version not sync with majority yet", K(*this), K(version)); + ELECT_LOG_RET(WARN, OB_ERR_UNEXPECTED, "membership version not sync with majority yet", K(*this), K(version)); } } return ret_bool; diff --git a/src/logservice/palf/fetch_log_engine.cpp b/src/logservice/palf/fetch_log_engine.cpp index 621deba36..f76fb4fc5 100644 --- a/src/logservice/palf/fetch_log_engine.cpp +++ b/src/logservice/palf/fetch_log_engine.cpp @@ -268,9 +268,9 @@ bool FetchLogEngine::is_task_queue_timeout_(FetchLogTask *task) const bool bool_ret = false; if (!is_inited_) { - PALF_LOG(WARN, "FetchLogEngine not init"); + PALF_LOG_RET(WARN, OB_NOT_INIT, "FetchLogEngine not init"); } else if (OB_ISNULL(task)) { - PALF_LOG(WARN, "invalid argument", KP(task)); + PALF_LOG_RET(WARN, OB_INVALID_ARGUMENT, "invalid argument", KP(task)); } else { bool_ret = (ObTimeUtility::current_time() - task->get_timestamp_us()) > PALF_FETCH_LOG_INTERVAL_US; diff --git a/src/logservice/palf/log_checksum.cpp b/src/logservice/palf/log_checksum.cpp index e45698e95..a86ed2004 100644 --- a/src/logservice/palf/log_checksum.cpp +++ b/src/logservice/palf/log_checksum.cpp @@ -78,8 +78,8 @@ int LogChecksum::verify_accum_checksum(const int64_t data_checksum, sizeof(data_checksum)); if (verify_checksum_ != accum_checksum) { ret = common::OB_CHECKSUM_ERROR; - PALF_LOG(ERROR, "accum_checksum not match", K(ret), K_(palf_id), K(data_checksum), K(accum_checksum), - K(old_verify_checksum), K_(verify_checksum)); + LOG_DBA_ERROR(OB_CHECKSUM_ERROR, "msg", "log checksum error", "ret", ret, K_(palf_id), K(data_checksum), + K(accum_checksum), K(old_verify_checksum), K_(verify_checksum)); } else { PALF_LOG(TRACE, "verify_accum_checksum success", K(ret), K_(palf_id), K(data_checksum), K(accum_checksum), K_(verify_checksum), K_(accum_checksum)); diff --git a/src/logservice/palf/log_config_mgr.cpp b/src/logservice/palf/log_config_mgr.cpp index 9012c3620..a95f3e32b 100644 --- a/src/logservice/palf/log_config_mgr.cpp +++ b/src/logservice/palf/log_config_mgr.cpp @@ -1181,9 +1181,9 @@ bool LogConfigMgr::can_memberlist_majority_(const int64_t new_member_list_len, c // 2. len(member_list) >= replica_num / 2 + 1 bool bool_ret = false; if (new_member_list_len > new_replica_num) { - PALF_LOG(WARN, "can't change config, replica_num too small", K_(palf_id), K_(self), K(new_replica_num), K(new_member_list_len)); + PALF_LOG_RET(WARN, OB_INVALID_ARGUMENT, "can't change config, replica_num too small", K_(palf_id), K_(self), K(new_replica_num), K(new_member_list_len)); } else if (new_member_list_len < (new_replica_num / 2 + 1)) { - PALF_LOG(WARN, "can't change config, replica_num too large", K_(palf_id), K_(self), K(new_replica_num), K(new_member_list_len)); + PALF_LOG_RET(WARN, OB_INVALID_ARGUMENT, "can't change config, replica_num too large", K_(palf_id), K_(self), K(new_replica_num), K(new_member_list_len)); } else { bool_ret = true; } diff --git a/src/logservice/palf/log_entry_header.cpp b/src/logservice/palf/log_entry_header.cpp index 187984915..9af6aee76 100644 --- a/src/logservice/palf/log_entry_header.cpp +++ b/src/logservice/palf/log_entry_header.cpp @@ -119,19 +119,19 @@ bool LogEntryHeader::check_integrity(const char *buf, const int64_t data_len) co { bool bool_ret = false; if (NULL == buf || data_len <= 0) { - PALF_LOG(WARN, "invalid arguments", KP(buf), K(data_len)); + PALF_LOG_RET(WARN, OB_INVALID_ARGUMENT, "invalid arguments", KP(buf), K(data_len)); } else if (LogEntryHeader::MAGIC != magic_) { bool_ret = false; - PALF_LOG(WARN, "magic is different", K_(magic)); + PALF_LOG_RET(WARN, OB_ERROR, "magic is different", K_(magic)); } else if (false == check_header_checksum_()) { - PALF_LOG(WARN, "check header checsum failed", K(*this)); + PALF_LOG_RET(WARN, OB_ERROR, "check header checsum failed", K(*this)); } else { const int64_t tmp_data_checksum = common::ob_crc64(buf, data_len); if (data_checksum_ == tmp_data_checksum) { bool_ret = true; } else { bool_ret = false; - PALF_LOG(WARN, "data checksum mismatch", K_(data_checksum), K(tmp_data_checksum), K(data_len), KPC(this)); + PALF_LOG_RET(WARN, OB_ERR_UNEXPECTED, "data checksum mismatch", K_(data_checksum), K(tmp_data_checksum), K(data_len), KPC(this)); } } return bool_ret; diff --git a/src/logservice/palf/log_group_buffer.cpp b/src/logservice/palf/log_group_buffer.cpp index 247e0f5c3..0e08f6839 100644 --- a/src/logservice/palf/log_group_buffer.cpp +++ b/src/logservice/palf/log_group_buffer.cpp @@ -123,7 +123,7 @@ bool LogGroupBuffer::can_handle_new_log(const LSN &lsn, bool bool_ret = false; if (IS_NOT_INIT) { } else if (!lsn.is_valid() || total_len <= 0) { - PALF_LOG(WARN, "invalid arguments", K(bool_ret), K(lsn), K(total_len)); + PALF_LOG_RET(WARN, OB_INVALID_ARGUMENT, "invalid arguments", K(bool_ret), K(lsn), K(total_len)); } else { LSN fake_ref_lsn(LOG_MAX_LSN_VAL); bool_ret = can_handle_new_log(lsn, total_len, fake_ref_lsn); @@ -143,11 +143,11 @@ bool LogGroupBuffer::can_handle_new_log(const LSN &lsn, reuse_lsn = MIN(reuse_lsn, ref_reuse_lsn); if (IS_NOT_INIT) { } else if (!lsn.is_valid() || total_len <= 0 || !ref_reuse_lsn.is_valid()) { - PALF_LOG(WARN, "invalid arguments", K(bool_ret), K(lsn), K(total_len), K(ref_reuse_lsn)); + PALF_LOG_RET(WARN, OB_INVALID_ARGUMENT, "invalid arguments", K(bool_ret), K(lsn), K(total_len), K(ref_reuse_lsn)); } else if (lsn < start_lsn) { - PALF_LOG(WARN, "lsn is less than start_lsn", K(bool_ret), K(lsn), K_(start_lsn)); + PALF_LOG_RET(WARN, OB_ERR_UNEXPECTED, "lsn is less than start_lsn", K(bool_ret), K(lsn), K_(start_lsn)); } else if (end_lsn > reuse_lsn + get_available_buffer_size()) { - PALF_LOG(WARN, "end_lsn is larger than max reuse pos", K(bool_ret), K(lsn), K(end_lsn), + PALF_LOG_RET(WARN, OB_ERR_UNEXPECTED, "end_lsn is larger than max reuse pos", K(bool_ret), K(lsn), K(end_lsn), K(reuse_lsn), K_(available_buffer_size)); } else { bool_ret = true; diff --git a/src/logservice/palf/log_group_entry_header.cpp b/src/logservice/palf/log_group_entry_header.cpp index f61877966..6c7384479 100644 --- a/src/logservice/palf/log_group_entry_header.cpp +++ b/src/logservice/palf/log_group_entry_header.cpp @@ -249,12 +249,11 @@ bool LogGroupEntryHeader::check_integrity(const char *buf, bool bool_ret = false; if (LogGroupEntryHeader::MAGIC != magic_) { bool_ret = false; - PALF_LOG(WARN, "magic is different", K(magic_)); + PALF_LOG_RET(WARN, OB_ERROR, "magic is different", K(magic_)); } else if (false == check_header_checksum_()) { - PALF_LOG(WARN, "check header checsum failed", K(*this)); + PALF_LOG_RET(WARN, OB_ERROR, "check header checsum failed", K(*this)); } else if (false == check_log_checksum_(buf, buf_len, group_log_checksum)) { - PALF_LOG(WARN, "check data checksum failed", K(*buf), K(buf_len), - K(*this)); + PALF_LOG_RET(WARN, OB_ERROR, "check data checksum failed", K(*buf), K(buf_len), K(*this)); } else { bool_ret = true; } @@ -380,7 +379,7 @@ bool LogGroupEntryHeader::check_log_checksum_(const char *buf, bool bool_ret = false; int64_t crc_checksum = 0; if (OB_ISNULL(buf) || 0 > data_len) { - PALF_LOG(ERROR, "Invalid argument!!!", K(buf), K(data_len), K(group_size_)); + PALF_LOG_RET(ERROR, OB_INVALID_ARGUMENT, "Invalid argument!!!", K(buf), K(data_len), K(group_size_)); } else if (is_padding_log()) { bool_ret = true; PALF_LOG(INFO, "This is a padding log, no need check log checksum", K(bool_ret), K(data_len)); diff --git a/src/logservice/palf/log_iterator_impl.h b/src/logservice/palf/log_iterator_impl.h index 79cd9ef14..a95ef88ff 100644 --- a/src/logservice/palf/log_iterator_impl.h +++ b/src/logservice/palf/log_iterator_impl.h @@ -718,9 +718,9 @@ void LogIteratorImpl::try_clean_up_cache_() if (true == matched_type) { // do nothing } else if (INVALID_PROPOSAL_ID == current_mode_version || init_mode_version_ > current_mode_version) { - PALF_LOG(WARN, "current_mode_version is unexpected", K(current_mode_version), KPC(this)); + PALF_LOG_RET(WARN, OB_ERR_UNEXPECTED, "current_mode_version is unexpected", K(current_mode_version), KPC(this)); } else if (init_mode_version_ < current_mode_version) { - PALF_LOG(WARN, "mode version has been changed, need reset cache buf", KPC(this), K(current_mode_version)); + PALF_LOG_RET(WARN, OB_SUCCESS, "mode version has been changed, need reset cache buf", KPC(this), K(current_mode_version)); init_mode_version_ = current_mode_version; LSN curr_read_lsn = log_storage_->get_lsn(curr_read_pos_); log_storage_->reuse(curr_read_lsn); diff --git a/src/logservice/palf/log_loop_thread.cpp b/src/logservice/palf/log_loop_thread.cpp index 7d18e6b05..4d05a9d31 100644 --- a/src/logservice/palf/log_loop_thread.cpp +++ b/src/logservice/palf/log_loop_thread.cpp @@ -85,7 +85,7 @@ void LogLoopThread::log_loop_() }; if (start_ts - last_switch_state_time >= 10 * 1000) { if (OB_SUCCESS != (tmp_ret = palf_env_impl_->for_each(switch_state_func))) { - PALF_LOG(WARN, "for_each switch_state_func failed", K(tmp_ret)); + PALF_LOG_RET(WARN, tmp_ret, "for_each switch_state_func failed", K(tmp_ret)); } last_switch_state_time = start_ts; } @@ -95,7 +95,7 @@ void LogLoopThread::log_loop_() }; if (start_ts - last_check_freeze_mode_time >= 1 * 1000 * 1000) { if (OB_SUCCESS != (tmp_ret = palf_env_impl_->for_each(switch_freeze_mode_func))) { - PALF_LOG(WARN, "for_each switch_freeze_mode_func failed", K(tmp_ret)); + PALF_LOG_RET(WARN, tmp_ret, "for_each switch_freeze_mode_func failed", K(tmp_ret)); } last_check_freeze_mode_time = start_ts; } @@ -104,7 +104,7 @@ void LogLoopThread::log_loop_() return ipalf_handle_impl->period_freeze_last_log(); }; if (OB_SUCCESS != (tmp_ret = palf_env_impl_->for_each(try_freeze_log_func))) { - PALF_LOG(WARN, "for_each try_freeze_log_func failed", K(tmp_ret)); + PALF_LOG_RET(WARN, tmp_ret, "for_each try_freeze_log_func failed", K(tmp_ret)); } const int64_t round_cost_time = ObTimeUtility::current_time() - start_ts; diff --git a/src/logservice/palf/log_meta_entry_header.cpp b/src/logservice/palf/log_meta_entry_header.cpp index d8dbfd8f3..93969175f 100644 --- a/src/logservice/palf/log_meta_entry_header.cpp +++ b/src/logservice/palf/log_meta_entry_header.cpp @@ -89,11 +89,11 @@ bool LogMetaEntryHeader::check_integrity(const char *buf, int32_t data_len) cons const int16_t magic = MAGIC; if (magic != magic_) { bool_ret = false; - PALF_LOG(ERROR, "magic is different", K(magic_), K(magic)); + PALF_LOG_RET(ERROR, OB_ERROR, "magic is different", K(magic_), K(magic)); } else if (false == check_header_checksum_()) { - PALF_LOG(ERROR, "check header checsum failed", K(*this)); + PALF_LOG_RET(ERROR, OB_ERROR, "check header checsum failed", K(*this)); } else if (false == check_data_checksum_(buf, data_len)) { - PALF_LOG(ERROR, "check data checksum failed", K(*buf), K(data_len), + PALF_LOG_RET(ERROR, OB_ERROR, "check data checksum failed", K(*buf), K(data_len), K(*this)); } else { bool_ret = true; @@ -167,7 +167,7 @@ int64_t LogMetaEntryHeader::calc_data_checksum_(const char *buf, { int64_t data_checksum = 0; if (NULL == buf || data_len <= 0) { - PALF_LOG(ERROR, "invalid argument", K(buf), K(data_len)); + PALF_LOG_RET(ERROR, OB_INVALID_ARGUMENT, "invalid argument", K(buf), K(data_len)); } else { data_checksum = static_cast(ob_crc64(buf, data_len)); } @@ -200,11 +200,11 @@ bool LogMetaEntryHeader::check_data_checksum_(const char *buf, bool bool_ret = false; int64_t crc_checksum = 0; if (NULL == buf || 0 >= data_len || data_len != data_len_) { - PALF_LOG(ERROR, "invalid argument", K(buf), K(data_len), K(data_len_)); + PALF_LOG_RET(ERROR, OB_INVALID_ARGUMENT, "invalid argument", K(buf), K(data_len), K(data_len_)); } else if (FALSE_IT(crc_checksum = ob_crc64(buf, data_len))) { } else if (crc_checksum != data_checksum_) { bool_ret = false; - PALF_LOG(WARN, "the data checksum recorded in header is not same \ + PALF_LOG_RET(WARN, OB_ERROR, "the data checksum recorded in header is not same \ with data buf", K(*buf), K(data_len), K(data_len_), K(data_checksum_)); } else { bool_ret = true; diff --git a/src/logservice/palf/log_meta_info.cpp b/src/logservice/palf/log_meta_info.cpp index 024ed4d18..fa1aced8a 100644 --- a/src/logservice/palf/log_meta_info.cpp +++ b/src/logservice/palf/log_meta_info.cpp @@ -321,9 +321,9 @@ int64_t LogConfigVersion::to_string(char *buf, const int64_t buf_len) { int64_t pos = 0; if (OB_SUCCESS != databuff_print_obj(buf, buf_len, pos, proposal_id_)) { - PALF_LOG(WARN, "databuff_print_obj failed", K(pos)); + PALF_LOG_RET(WARN, OB_ERR_UNEXPECTED, "databuff_print_obj failed", K(pos)); } else if (OB_SUCCESS != databuff_print_obj(buf, buf_len, pos, config_seq_)) { - PALF_LOG(WARN, "databuff_print_obj failed", K(pos)); + PALF_LOG_RET(WARN, OB_ERR_UNEXPECTED, "databuff_print_obj failed", K(pos)); } else { } return pos; diff --git a/src/logservice/palf/log_mode_mgr.cpp b/src/logservice/palf/log_mode_mgr.cpp index 51e4d0a5d..facdb30e5 100644 --- a/src/logservice/palf/log_mode_mgr.cpp +++ b/src/logservice/palf/log_mode_mgr.cpp @@ -278,7 +278,7 @@ bool LogModeMgr::is_state_changed() const } default: { - PALF_LOG(ERROR, "Invalid ModeChangeState", K_(palf_id), K_(self), K_(state)); + PALF_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "Invalid ModeChangeState", K_(palf_id), K_(self), K_(state)); break; } } @@ -604,7 +604,7 @@ bool LogModeMgr::can_receive_mode_meta(const int64_t proposal_id, } else if (false == state_mgr_->can_receive_config_log(proposal_id)) { // for arbitration replica, is_sync_enabled is false, so check can_receive_mode_meta // with LogStateMgr::can_receive_config_log - PALF_LOG(WARN, "can_receive_mode_meta failed", K_(palf_id), K_(self), + PALF_LOG_RET(WARN, OB_ERR_UNEXPECTED, "can_receive_mode_meta failed", K_(palf_id), K_(self), K(proposal_id), K(mode_meta)); } else if (accepted_mode_meta_.proposal_id_ > mode_meta.proposal_id_) { // skip, do not receive mode_meta with smaller proposal_id diff --git a/src/logservice/palf/log_reconfirm.cpp b/src/logservice/palf/log_reconfirm.cpp index 2a6a5df6a..08ccec642 100644 --- a/src/logservice/palf/log_reconfirm.cpp +++ b/src/logservice/palf/log_reconfirm.cpp @@ -415,19 +415,19 @@ bool LogReconfirm::is_majority_catch_up_() int tmp_ret = OB_SUCCESS; LSN majority_match_lsn; if (OB_SUCCESS != (tmp_ret = sw_->get_majority_match_lsn(majority_match_lsn))) { - PALF_LOG(WARN, "get_majority_match_lsn failed", K(tmp_ret), K_(palf_id)); + PALF_LOG_RET(WARN, tmp_ret, "get_majority_match_lsn failed", K(tmp_ret), K_(palf_id)); } else if (!majority_match_lsn.is_valid()) { - PALF_LOG(ERROR, "majority_match_lsn is invalid, unexpected", K_(palf_id), K(majority_match_lsn)); + PALF_LOG_RET(ERROR, OB_INVALID_ARGUMENT, "majority_match_lsn is invalid, unexpected", K_(palf_id), K(majority_match_lsn)); } else if (majority_match_lsn < majority_max_lsn_) { - PALF_LOG(WARN, "majority_match_lsn is smaller than majority_max_lsn_, need wait", K_(palf_id), + PALF_LOG_RET(WARN, OB_SUCCESS, "majority_match_lsn is smaller than majority_max_lsn_, need wait", K_(palf_id), K_(majority_max_lsn), K(majority_match_lsn)); ObMemberList lagged_list; if (has_notify_fetch_) { // has_notify_fetch_ is true, no need do it again } else if (OB_SUCCESS != (tmp_ret = sw_->get_lagged_member_list(majority_max_lsn_, lagged_list))) { - PALF_LOG(WARN, "get_lagged_member_list_ failed", K(tmp_ret), K_(palf_id)); + PALF_LOG_RET(WARN, tmp_ret, "get_lagged_member_list_ failed", K(tmp_ret), K_(palf_id)); } else if (OB_SUCCESS != (tmp_ret = log_engine_->submit_notify_fetch_log_req(lagged_list))) { - PALF_LOG(WARN, "submit_notify_fetch_log_req failed", K(tmp_ret), K_(palf_id), K(lagged_list)); + PALF_LOG_RET(WARN, tmp_ret, "submit_notify_fetch_log_req failed", K(tmp_ret), K_(palf_id), K(lagged_list)); } else { has_notify_fetch_ = true; PALF_LOG(INFO, "notify_fetch_log success", K(tmp_ret), K_(palf_id), K_(majority_max_lsn), K(lagged_list)); diff --git a/src/logservice/palf/log_rpc_proxy.cpp b/src/logservice/palf/log_rpc_proxy.cpp index 415895e31..37cf7b8d1 100644 --- a/src/logservice/palf/log_rpc_proxy.cpp +++ b/src/logservice/palf/log_rpc_proxy.cpp @@ -40,7 +40,7 @@ public: obrpc::ObRpcResultCode &rcode = LogRpcProxyV2::AsyncCB::rcode_; if (common::OB_SUCCESS != rcode.rcode_) { - PALF_LOG(WARN, "there is an rpc error in logservice", + PALF_LOG_RET(WARN, rcode.rcode_, "there is an rpc error in logservice", K(rcode), K(dst), K(pcode)); } else { // do nothing diff --git a/src/logservice/palf/log_sliding_window.cpp b/src/logservice/palf/log_sliding_window.cpp index 6c986c386..e323781c0 100644 --- a/src/logservice/palf/log_sliding_window.cpp +++ b/src/logservice/palf/log_sliding_window.cpp @@ -57,7 +57,7 @@ bool GetLaggedListFunc::operator()(const common::ObAddr &server, LsnTsInfo &valu } else if (value.lsn_ >= dst_lsn_) { // skip } else if (OB_SUCCESS != (tmp_ret = lagged_list_.add_server(server))){ - PALF_LOG(ERROR, "lagged_list_.add_server failed", K(tmp_ret)); + PALF_LOG_RET(ERROR, tmp_ret, "lagged_list_.add_server failed", K(tmp_ret)); } return bool_ret; } @@ -333,11 +333,11 @@ bool LogSlidingWindow::leader_can_submit_new_log_(const int64_t valid_log_size) LSN curr_committed_end_lsn; get_committed_end_lsn_(curr_committed_end_lsn); if (OB_SUCCESS != (tmp_ret = lsn_allocator_.get_curr_end_lsn(curr_end_lsn))) { - PALF_LOG(WARN, "get_curr_end_lsn failed", K(tmp_ret), K_(palf_id), K_(self), K(valid_log_size)); + PALF_LOG_RET(WARN, tmp_ret, "get_curr_end_lsn failed", K(tmp_ret), K_(palf_id), K_(self), K(valid_log_size)); // NB: 采用committed_lsn作为可复用起点的下界,避免写盘立即复用group_buffer导致follower的 // group_buffer被uncommitted log填满而无法滑出 } else if (!group_buffer_.can_handle_new_log(curr_end_lsn, valid_log_size, curr_committed_end_lsn)) { - PALF_LOG(WARN, "group_buffer_ cannot handle new log now", K(tmp_ret), K_(palf_id), K_(self), + PALF_LOG_RET(WARN, OB_ERR_UNEXPECTED, "group_buffer_ cannot handle new log now", K(tmp_ret), K_(palf_id), K_(self), K(valid_log_size), K(curr_end_lsn), K(curr_committed_end_lsn), "start_id", get_start_id(), "max_log_id", get_max_log_id()); } else { @@ -356,7 +356,7 @@ bool LogSlidingWindow::leader_can_submit_group_log_(const LSN &lsn, const int64_ // NB: 采用committed_lsn作为可复用起点的下界,避免写盘立即复用group_buffer导致follower的 // group_buffer被uncommitted log填满而无法滑出 if (!group_buffer_.can_handle_new_log(lsn, group_log_size, curr_committed_end_lsn)) { - PALF_LOG(WARN, "group_buffer_ cannot handle new log now", K(tmp_ret), K_(palf_id), K_(self), + PALF_LOG_RET(WARN, OB_ERR_UNEXPECTED, "group_buffer_ cannot handle new log now", K(tmp_ret), K_(palf_id), K_(self), K(lsn), K(group_log_size), K(curr_committed_end_lsn), "start_id", get_start_id(), "max_log_id", get_max_log_id()); } else { @@ -1960,7 +1960,7 @@ int LogSlidingWindow::sliding_cb(const int64_t sn, const FixedSlidingWindowSlot const int64_t fs_cb_cost = ObTimeUtility::current_time() - fs_cb_begin_ts; fs_cb_cost_stat_.stat(fs_cb_cost); if (fs_cb_cost > 1 * 1000) { - PALF_LOG(WARN, "fs_cb->update_end_lsn() cost too much time", K(tmp_ret), K_(palf_id), K_(self), + PALF_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "fs_cb->update_end_lsn() cost too much time", K(tmp_ret), K_(palf_id), K_(self), K(fs_cb_cost), K(log_id), K(log_begin_lsn), K(log_end_lsn), K(log_proposal_id)); } @@ -1971,7 +1971,7 @@ int LogSlidingWindow::sliding_cb(const int64_t sn, const FixedSlidingWindowSlot if (log_life_time > 100 * 1000) { if (palf_reach_time_interval(100 * 1000, log_life_long_warn_time_)) { - PALF_LOG(WARN, "log_task life cost too much time", K_(palf_id), K_(self), K(log_id), KPC(log_task), + PALF_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "log_task life cost too much time", K_(palf_id), K_(self), K(log_id), KPC(log_task), K(fs_cb_begin_ts), K(log_life_time)); } } @@ -2039,9 +2039,9 @@ bool LogSlidingWindow::is_all_log_flushed_() get_max_flushed_end_lsn(max_flushed_end_lsn); LSN curr_end_lsn; if (OB_SUCCESS != (tmp_ret = lsn_allocator_.get_curr_end_lsn(curr_end_lsn))) { - PALF_LOG(WARN, "get_curr_end_lsn failed", K(tmp_ret), K_(palf_id), K_(self)); + PALF_LOG_RET(WARN, tmp_ret, "get_curr_end_lsn failed", K(tmp_ret), K_(palf_id), K_(self)); } else if (max_flushed_end_lsn < curr_end_lsn) { - PALF_LOG(WARN, "there is some log has not been flushed", K_(palf_id), K_(self), K(curr_end_lsn), + PALF_LOG_RET(WARN, OB_ERR_UNEXPECTED, "there is some log has not been flushed", K_(palf_id), K_(self), K(curr_end_lsn), K(max_flushed_end_lsn), K_(max_flushed_lsn)); } else { bool_ret = true; @@ -3212,7 +3212,7 @@ bool LogSlidingWindow::need_update_log_task_(LogGroupEntryHeader &header, const int64_t log_id = header.get_log_id(); if (IS_NOT_INIT) { } else if (!header.is_valid() || NULL == log_task) { - PALF_LOG(WARN, "invalid argumetns", K_(palf_id), K_(self), K(header), KP(log_task)); + PALF_LOG_RET(WARN, OB_INVALID_ARGUMENT, "invalid argumetns", K_(palf_id), K_(self), K(header), KP(log_task)); } else { int64_t old_pid = INVALID_PROPOSAL_ID; LSN log_end_lsn; @@ -3250,7 +3250,7 @@ bool LogSlidingWindow::need_update_log_task_(LogGroupEntryHeader &header, // 收到了proposal_id更小的日志,预期不应该出现. // 这里间接依赖了: follower响应fetch log请求时只能返回committed logs, 因此在同一个proposal_id下, // 不会有两个副本同时发送log_id相同但proposal_id不同的日志给同一个目的端. - PALF_LOG(ERROR, "receive log with smaller proposal_id, unexpected error", K_(palf_id), K_(self), K(log_id), + PALF_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "receive log with smaller proposal_id, unexpected error", K_(palf_id), K_(self), K(log_id), K(new_pid), KPC(log_task), K(header), KPC(log_task)); } else { PALF_LOG(INFO, "receive log with larger proposal_id, maybe need truncate", K_(palf_id), K_(self), K(log_id), @@ -3378,12 +3378,12 @@ bool LogSlidingWindow::pre_check_for_config_log(const int64_t &msg_proposal_id, // that means more old/new logs with smaller/begger proposal_id have been committed, // but current leader did not reconfirm them, it is unexpected error case!!! bool_ret = false; - PALF_LOG(ERROR, "last_slide_log_pid is unexpected", K(bool_ret), K_(palf_id), K_(self), K(msg_proposal_id), + PALF_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "last_slide_log_pid is unexpected", K(bool_ret), K_(palf_id), K_(self), K(msg_proposal_id), K(last_slide_lsn), K(last_slide_log_pid), K(lsn), K(log_proposal_id)); } else { bool_ret = false; tmp_ret = OB_STATE_NOT_MATCH; - PALF_LOG(WARN, "log proposal_id does not match", K(bool_ret), K(msg_proposal_id), K_(palf_id), K_(self), + PALF_LOG_RET(WARN, tmp_ret, "log proposal_id does not match", K(bool_ret), K(msg_proposal_id), K_(palf_id), K_(self), K(lsn), K(last_slide_lsn), K(last_slide_log_pid), K(log_proposal_id)); } } else { @@ -3393,12 +3393,12 @@ bool LogSlidingWindow::pre_check_for_config_log(const int64_t &msg_proposal_id, LogTask *log_task = NULL; LogTaskGuard guard(this); if (OB_SUCCESS != (tmp_ret = guard.get_log_task(tmp_log_id, log_task))) { - PALF_LOG(WARN, "get_log_task failed", K(tmp_ret), K_(palf_id), K_(self), K(tmp_log_id)); + PALF_LOG_RET(WARN, tmp_ret, "get_log_task failed", K(tmp_ret), K_(palf_id), K_(self), K(tmp_log_id)); } else { log_task->lock(); if (!log_task->is_valid()) { tmp_ret = OB_ENTRY_NOT_EXIST; - PALF_LOG(WARN, "this log_task is invalid", K(tmp_ret), K(tmp_log_id), K_(palf_id), K_(self), KPC(log_task)); + PALF_LOG_RET(WARN, tmp_ret, "this log_task is invalid", K(tmp_ret), K(tmp_log_id), K_(palf_id), K_(self), KPC(log_task)); } else { const LSN curr_lsn = log_task->get_begin_lsn(); const LSN curr_log_end_lsn = (log_task->get_begin_lsn() + LogGroupEntryHeader::HEADER_SER_SIZE @@ -3414,20 +3414,20 @@ bool LogSlidingWindow::pre_check_for_config_log(const int64_t &msg_proposal_id, match_log_end_lsn = curr_log_end_lsn; } else { // this log has not been flushed - PALF_LOG(WARN, "local log is match with arg, but it has not been flushed", K(bool_ret), + PALF_LOG_RET(WARN, OB_ERR_UNEXPECTED, "local log is match with arg, but it has not been flushed", K(bool_ret), K(msg_proposal_id), K_(palf_id), K_(self), K(max_flushed_end_lsn), K(curr_log_end_lsn), K(lsn), K(log_proposal_id)); } } else { // proposal_id does not match with arg tmp_ret = OB_STATE_NOT_MATCH; - PALF_LOG(WARN, "log proposal_id dest not match", K(bool_ret), K(msg_proposal_id), K_(palf_id), K_(self), + PALF_LOG_RET(WARN, tmp_ret, "log proposal_id dest not match", K(bool_ret), K(msg_proposal_id), K_(palf_id), K_(self), K(lsn), KPC(log_task)); } } else if (curr_lsn > lsn) { // curr_lsn > lsn, dest log was not found tmp_ret = OB_ENTRY_NOT_EXIST; - PALF_LOG(WARN, "curr_lsn is larger than than arg lsn, the request is maybe stale", + PALF_LOG_RET(WARN, tmp_ret, "curr_lsn is larger than than arg lsn, the request is maybe stale", K(bool_ret), K(msg_proposal_id), K_(palf_id), K_(self), K(curr_lsn), K(lsn), K(log_proposal_id)); } else { // curr_lsn < lsn, need check next log_task @@ -3453,7 +3453,7 @@ bool LogSlidingWindow::pre_check_for_config_log(const int64_t &msg_proposal_id, LogTaskGuard guard(this); const int64_t next_log_id = match_log_id + 1; if (OB_SUCCESS != (tmp_ret = guard.get_log_task(next_log_id, log_task))) { - PALF_LOG(WARN, "get_log_task failed", K(tmp_ret), K_(palf_id), K_(self), K(next_log_id)); + PALF_LOG_RET(WARN, tmp_ret, "get_log_task failed", K(tmp_ret), K_(palf_id), K_(self), K(next_log_id)); } else { log_task->lock(); if (!log_task->is_valid()) { @@ -3472,7 +3472,7 @@ bool LogSlidingWindow::pre_check_for_config_log(const int64_t &msg_proposal_id, truncate_log_info.truncate_begin_lsn_ = match_log_end_lsn; } truncate_log_info.truncate_log_proposal_id_ = log_task->get_proposal_id(); - PALF_LOG(WARN, "next log proposal_id is less than msg_proposal_id, need truncate", K_(palf_id), K_(self), + PALF_LOG_RET(WARN, OB_ERR_UNEXPECTED, "next log proposal_id is less than msg_proposal_id, need truncate", K_(palf_id), K_(self), K(next_log_id), K(msg_proposal_id), K(truncate_log_info), KPC(log_task)); } else { PALF_LOG(INFO, "next log proposal_id is not less than msg_proposal_id, no need truncate", @@ -3499,7 +3499,7 @@ bool LogSlidingWindow::is_prev_log_pid_match(const int64_t log_id, int64_t local_prev_log_accum_checksum = -1; int tmp_ret = OB_SUCCESS; if (OB_INVALID_LOG_ID == log_id || !lsn.is_valid()) { - PALF_LOG(WARN, "invalid argumetns", K(log_id), K_(palf_id), K_(self), K(lsn)); + PALF_LOG_RET(WARN, OB_INVALID_ARGUMENT, "invalid argumetns", K(log_id), K_(palf_id), K_(self), K(lsn)); } else if (FIRST_VALID_LOG_ID == log_id) { bool_ret = true; PALF_LOG(INFO, "this is the first log, no need check prev log proposal_id", K(log_id), @@ -3507,7 +3507,7 @@ bool LogSlidingWindow::is_prev_log_pid_match(const int64_t log_id, } else if (OB_SUCCESS != (tmp_ret = get_prev_log_info_(log_id, local_prev_lsn, local_prev_end_lsn, local_prev_scn, local_prev_log_pid, local_prev_log_accum_checksum))) { if (REACH_TIME_INTERVAL(100 * 1000)) { - PALF_LOG(WARN, "get_prev_log_info_ failed", K(tmp_ret), K(log_id), K_(palf_id), K_(self), K(log_id), + PALF_LOG_RET(WARN, tmp_ret, "get_prev_log_info_ failed", K(tmp_ret), K(log_id), K_(palf_id), K_(self), K(log_id), K(lsn), K(prev_lsn), K(prev_log_pid)); } } else { @@ -3520,7 +3520,7 @@ bool LogSlidingWindow::is_prev_log_pid_match(const int64_t log_id, bool_ret = true; } else { bool_ret = false; - PALF_LOG(WARN, "prev_log_task does not match with arg", K(log_id), K_(palf_id), K_(self), K(lsn), + PALF_LOG_RET(WARN, OB_ERR_UNEXPECTED, "prev_log_task does not match with arg", K(log_id), K_(palf_id), K_(self), K(lsn), K(prev_lsn), K(prev_log_pid), K(local_prev_lsn), K(local_prev_end_lsn), K(local_prev_log_pid)); } } diff --git a/src/logservice/palf/log_state_mgr.cpp b/src/logservice/palf/log_state_mgr.cpp index 52cc6dfe1..a9f2f3ee7 100644 --- a/src/logservice/palf/log_state_mgr.cpp +++ b/src/logservice/palf/log_state_mgr.cpp @@ -159,7 +159,7 @@ void LogStateMgr::update_role_and_state_(const common::ObRole &new_role, const O // update success } else { // 更新role/state时会加palf_handle的写锁,因此预期不应该失败 - PALF_LOG(ERROR, "update_role_and_state_ failed", K_(palf_id), K(old_val), K(new_val)); + PALF_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "update_role_and_state_ failed", K_(palf_id), K(old_val), K(new_val)); } } @@ -734,9 +734,9 @@ bool LogStateMgr::is_pending_log_clear_() const int tmp_ret = OB_SUCCESS; LSN last_slide_end_lsn; if (!pending_end_lsn_.is_valid()) { - PALF_LOG(ERROR, "pending_end_lsn_ is invalid", K_(pending_end_lsn), K_(palf_id)); + PALF_LOG_RET(ERROR, OB_INVALID_ERROR, "pending_end_lsn_ is invalid", K_(pending_end_lsn), K_(palf_id)); } else if (OB_SUCCESS != (tmp_ret = sw_->get_last_slide_end_lsn(last_slide_end_lsn))) { - PALF_LOG(WARN, "get_last_slide_end_lsn failed", K(tmp_ret), K_(palf_id)); + PALF_LOG_RET(WARN, tmp_ret, "get_last_slide_end_lsn failed", K(tmp_ret), K_(palf_id)); } else if (last_slide_end_lsn >= pending_end_lsn_) { bool_ret = true; } else { @@ -814,7 +814,7 @@ bool LogStateMgr::is_reconfirm_timeout_() bool_ret = is_sw_timeout; if (bool_ret) { if (palf_reach_time_interval(1 * 1000 * 1000, check_reconfirm_timeout_time_)) { - PALF_LOG(ERROR, "leader reconfirm timeout", K_(palf_id), K(start_id), K(is_sw_timeout)); + PALF_LOG_RET(ERROR, OB_TIMEOUT, "leader reconfirm timeout", K_(palf_id), K(start_id), K(is_sw_timeout)); (void) sw_->report_log_task_trace(start_id); } } else if (palf_reach_time_interval(100 * 1000, check_reconfirm_timeout_time_)) { @@ -881,7 +881,7 @@ bool LogStateMgr::check_leader_log_sync_state_() // sw is not empty, check log sync state if (now_us - last_check_start_id_time_us_ > PALF_LEADER_ACTIVE_SYNC_TIMEOUT_US) { if (palf_reach_time_interval(10 * 1000 * 1000, log_sync_timeout_warn_time_)) { - PALF_LOG(ERROR, "log sync timeout on leader", K_(palf_id), K_(self), K(now_us), K(last_check_start_id_time_us_), K(start_id)); + PALF_LOG_RET(ERROR, OB_TIMEOUT, "log sync timeout on leader", K_(palf_id), K_(self), K(now_us), K(last_check_start_id_time_us_), K(start_id)); (void) sw_->report_log_task_trace(start_id); } } diff --git a/src/logservice/palf/palf_env.cpp b/src/logservice/palf/palf_env.cpp index afd514659..601533c54 100644 --- a/src/logservice/palf/palf_env.cpp +++ b/src/logservice/palf/palf_env.cpp @@ -70,7 +70,7 @@ int PalfEnv::create_palf_env( void PalfEnv::destroy_palf_env(PalfEnv *&palf_env) { MTL_DELETE(PalfEnv, "palf_env", palf_env); - PALF_LOG(WARN, "destroy_palf_env success", K(palf_env)); + PALF_LOG_RET(WARN, OB_SUCCESS, "destroy_palf_env success", K(palf_env)); } int PalfEnv::start_() diff --git a/src/logservice/palf/palf_env_impl.cpp b/src/logservice/palf/palf_env_impl.cpp index 59c6600c2..b41c0a4b5 100644 --- a/src/logservice/palf/palf_env_impl.cpp +++ b/src/logservice/palf/palf_env_impl.cpp @@ -282,7 +282,7 @@ void PalfEnvImpl::wait() void PalfEnvImpl::destroy() { - PALF_LOG(WARN, "PalfEnvImpl destroy", KPC(this)); + PALF_LOG_RET(WARN, OB_SUCCESS, "PalfEnvImpl destroy", KPC(this)); is_running_ = false; is_inited_ = false; palf_handle_impl_map_.destroy(); @@ -553,7 +553,7 @@ bool PalfEnvImpl::LogGetRecycableFileCandidate::operator()(const LSKey &palf_id, { bool bool_ret = true; if (NULL == palf_handle_impl) { - PALF_LOG(ERROR, "the value in hashmap is NULL, unexpected error", K(palf_id), KP(palf_handle_impl)); + PALF_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "the value in hashmap is NULL, unexpected error", K(palf_id), KP(palf_handle_impl)); bool_ret = false; } else { int ret = OB_SUCCESS; @@ -667,7 +667,8 @@ int PalfEnvImpl::try_recycle_blocks() ATOMIC_STORE(&diskspace_enough_, curr_diskspace_enough); } if ((true == need_recycle && false == has_recycled && false == is_shrinking) || false == diskspace_enough_) { - PALF_LOG(ERROR, "clog disk space is almost full", + int tmp_ret = OB_LOG_OUTOF_DISK_SPACE; + LOG_DBA_ERROR(OB_LOG_OUTOF_DISK_SPACE, "msg", "log disk space is almost full", "ret", tmp_ret, "total_size(MB)", disk_opts_for_recycling_blocks.log_disk_usage_limit_size_/MB, "used_size(MB)", total_used_size_byte/MB, "used_percent(%)", (total_used_size_byte* 100) / (disk_opts_for_recycling_blocks.log_disk_usage_limit_size_ + 1), diff --git a/src/logservice/palf/palf_handle_impl.cpp b/src/logservice/palf/palf_handle_impl.cpp index 2eefcdebc..a5db36ca9 100644 --- a/src/logservice/palf/palf_handle_impl.cpp +++ b/src/logservice/palf/palf_handle_impl.cpp @@ -1551,7 +1551,7 @@ int PalfHandleImpl::inner_append_log(const LSN &lsn, const int64_t time_cost = ObTimeUtility::current_time() - begin_ts; append_cost_stat_.stat(time_cost); if (time_cost >= 5 * 1000) { - PALF_LOG(WARN, "write log cost too much time", K(ret), KPC(this), K(lsn), K(scn), K(time_cost)); + PALF_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "write log cost too much time", K(ret), KPC(this), K(lsn), K(scn), K(time_cost)); } } return ret; @@ -1572,7 +1572,7 @@ int PalfHandleImpl::inner_append_log(const LSNArray &lsn_array, const int64_t time_cost = ObTimeUtility::current_time() - begin_ts; append_cost_stat_.stat(time_cost); if (time_cost > 10 * 1000) { - PALF_LOG(WARN, "write log cost too much time", K(ret), KPC(this), K(lsn_array), + PALF_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "write log cost too much time", K(ret), KPC(this), K(lsn_array), K(scn_array), K(time_cost)); } } diff --git a/src/logservice/replayservice/ob_log_replay_service.cpp b/src/logservice/replayservice/ob_log_replay_service.cpp index 60b64c34f..6a4814ea0 100644 --- a/src/logservice/replayservice/ob_log_replay_service.cpp +++ b/src/logservice/replayservice/ob_log_replay_service.cpp @@ -724,7 +724,7 @@ void ObLogReplayService::dec_pending_task_size(const int64_t log_size) { int64_t nv = ATOMIC_SAF(&pending_replay_log_size_, log_size); if (nv < 0) { - CLOG_LOG(ERROR, "dec_pending_task_size less than 0", K(nv)); + CLOG_LOG_RET(ERROR, OB_ERROR, "dec_pending_task_size less than 0", K(nv)); } } @@ -773,7 +773,8 @@ void ObLogReplayService::process_replay_ret_code_(const int ret_code, if (replay_status.is_fatal_error(ret_code)) { replay_status.set_err_info(replay_task.lsn_, replay_task.scn_, replay_task.log_type_, replay_task.replay_hint_, false, cur_ts, ret_code); - CLOG_LOG(ERROR, "replay task encountered fatal error", K(replay_status), K(replay_task), K(ret_code)); + LOG_DBA_ERROR(OB_LOG_REPLAY_ERROR, "msg", "replay task encountered fatal error", "ret", ret_code, + K(replay_status), K(replay_task)); } else {/*do nothing*/} if (OB_SUCCESS == task_queue.get_err_info_ret_code()) { @@ -807,7 +808,7 @@ int ObLogReplayService::pre_check_(ObReplayStatus &replay_status, } // Check the waiting time of the task in the global queue if (OB_SUCC(ret) && (cur_time - enqueue_ts > TASK_QUEUE_WAIT_IN_GLOBAL_QUEUE_TIME_THRESHOLD)) { - CLOG_LOG(WARN, "task queue has waited too much time in global queue, please check single replay task error", + CLOG_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "task queue has waited too much time in global queue, please check single replay task error", K(replay_status), K(task), K(ret)); } //unlock @@ -1362,7 +1363,7 @@ void ObLogReplayService::on_replay_error_(ObLogReplayTask &replay_task, int ret_ const int64_t error_moment = ObTimeUtility::fast_current_time(); while (is_inited_) { if (REACH_TIME_INTERVAL(5 * 1000 * 1000)) { - CLOG_LOG(ERROR, "REPLAY_ERROR", K(ret_code), K(replay_task), K(error_moment)); + CLOG_LOG_RET(ERROR, ret_code, "REPLAY_ERROR", K(ret_code), K(replay_task), K(error_moment)); } ob_usleep(1 * 1000 * 1000); // sleep 1s } @@ -1373,7 +1374,7 @@ void ObLogReplayService::on_replay_error_() const int64_t error_moment = ObTimeUtility::fast_current_time(); while (is_inited_) { if (REACH_TIME_INTERVAL(5 * 1000 * 1000)) { - CLOG_LOG(ERROR, "REPLAY_ERROR", K(error_moment)); + CLOG_LOG_RET(ERROR, OB_ERROR, "REPLAY_ERROR", K(error_moment)); } ob_usleep(1 * 1000 * 1000); // sleep 1s } diff --git a/src/logservice/replayservice/ob_replay_status.cpp b/src/logservice/replayservice/ob_replay_status.cpp index 673463bdb..49c2e2c9f 100644 --- a/src/logservice/replayservice/ob_replay_status.cpp +++ b/src/logservice/replayservice/ob_replay_status.cpp @@ -383,7 +383,7 @@ void ObReplayServiceReplayTask::reset() if (replay_task->is_pre_barrier_) { ObLogReplayBuffer *replay_buf = static_cast(replay_task->log_buf_); if (NULL == replay_buf) { - CLOG_LOG(ERROR, "replay_buf is NULL when reset", KPC(replay_task)); + CLOG_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "replay_buf is NULL when reset", KPC(replay_task)); } else if (0 == replay_buf->dec_replay_ref()) { replay_status_->free_replay_task_log_buf(replay_task); replay_status_->dec_pending_task(replay_task->log_size_); @@ -854,7 +854,7 @@ bool ObReplayStatus::has_remained_replay_task() const bool bool_ret = (0 != pending_task_count_); if (pending_task_count_ > PENDING_COUNT_THRESHOLD && REACH_TIME_INTERVAL(1000 * 1000)) { - CLOG_LOG(WARN, "too many pending replay task", K(count), KPC(this)); + CLOG_LOG_RET(WARN, OB_ERR_UNEXPECTED, "too many pending replay task", K(count), KPC(this)); } return bool_ret; } @@ -1148,9 +1148,9 @@ int ObReplayStatus::batch_push_all_task_queue() void ObReplayStatus::inc_pending_task(const int64_t log_size) { if (log_size < 0) { - CLOG_LOG(ERROR, "task is invalid", K(log_size), KPC(this)); + CLOG_LOG_RET(ERROR, OB_INVALID_ERROR, "task is invalid", K(log_size), KPC(this)); } else if (OB_ISNULL(rp_sv_)) { - CLOG_LOG(ERROR, "rp sv is NULL", K(log_size), KPC(this)); + CLOG_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "rp sv is NULL", K(log_size), KPC(this)); } else { ATOMIC_INC(&pending_task_count_); rp_sv_->inc_pending_task_size(log_size); @@ -1160,9 +1160,9 @@ void ObReplayStatus::inc_pending_task(const int64_t log_size) void ObReplayStatus::dec_pending_task(const int64_t log_size) { if (log_size < 0) { - CLOG_LOG(ERROR, "task is invalid", K(log_size), KPC(this)); + CLOG_LOG_RET(ERROR, OB_INVALID_ERROR, "task is invalid", K(log_size), KPC(this)); } else if (OB_ISNULL(rp_sv_)) { - CLOG_LOG(ERROR, "rp sv is NULL", K(log_size), KPC(this)); + CLOG_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "rp sv is NULL", K(log_size), KPC(this)); } else { ATOMIC_DEC(&pending_task_count_); rp_sv_->dec_pending_task_size(log_size); diff --git a/src/logservice/restoreservice/ob_log_archive_piece_mgr.cpp b/src/logservice/restoreservice/ob_log_archive_piece_mgr.cpp index ebff68824..6521145ef 100644 --- a/src/logservice/restoreservice/ob_log_archive_piece_mgr.cpp +++ b/src/logservice/restoreservice/ob_log_archive_piece_mgr.cpp @@ -471,7 +471,7 @@ int ObLogArchivePieceContext::get_piece_(const SCN &scn, } if (REACH_TIME_INTERVAL(10 * 1000 * 1000L)) { - CLOG_LOG(WARN, "get piece cost too much time", K(scn), K(lsn), KPC(this)); + CLOG_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "get piece cost too much time", K(scn), K(lsn), KPC(this)); } } return ret; diff --git a/src/logservice/restoreservice/ob_log_restore_allocator.cpp b/src/logservice/restoreservice/ob_log_restore_allocator.cpp index 0dc8889ae..d3450aee5 100644 --- a/src/logservice/restoreservice/ob_log_restore_allocator.cpp +++ b/src/logservice/restoreservice/ob_log_restore_allocator.cpp @@ -60,7 +60,7 @@ char *ObLogRestoreAllocator::alloc_iterator_buffer(const int64_t size) char *data = NULL; if (OB_UNLIKELY(! inited_)) { - ARCHIVE_LOG(WARN, "ObArchiveAllocator not init"); + ARCHIVE_LOG_RET(WARN, OB_NOT_INIT, "ObArchiveAllocator not init"); } else if (OB_ISNULL(data = static_cast(iterator_buf_allocator_.acquire(size)))) { // alloc fail } else { diff --git a/src/logservice/restoreservice/ob_log_restore_service.cpp b/src/logservice/restoreservice/ob_log_restore_service.cpp index 28ffb4afc..d7794c96e 100644 --- a/src/logservice/restoreservice/ob_log_restore_service.cpp +++ b/src/logservice/restoreservice/ob_log_restore_service.cpp @@ -140,7 +140,7 @@ void ObLogRestoreService::run1() const int64_t THREAD_RUN_INTERVAL = 5 * 1000 * 1000L; if (OB_UNLIKELY(! inited_)) { - LOG_ERROR("ObLogRestoreService not init", "tenant_id", MTL_ID()); + LOG_ERROR_RET(OB_NOT_INIT, "ObLogRestoreService not init", "tenant_id", MTL_ID()); } else { while (! has_set_stop()) { int64_t begin_stamp = ObTimeUtility::current_time(); diff --git a/src/objit/src/core/ob_jit_allocator.cpp b/src/objit/src/core/ob_jit_allocator.cpp index e65d9b66d..6b902c600 100644 --- a/src/objit/src/core/ob_jit_allocator.cpp +++ b/src/objit/src/core/ob_jit_allocator.cpp @@ -112,13 +112,13 @@ ObJitMemoryBlock ObJitMemory::allocate_mapped_memory(int64_t num_bytes, #endif ) { if (REACH_TIME_INTERVAL(10000000)) { //间隔10s打印日志 - LOG_ERROR("allocate jit memory failed", K(addr), K(num_bytes), K(page_size), K(num_pages)); + LOG_ERROR_RET(common::OB_ALLOCATE_MEMORY_FAILED, "allocate jit memory failed", K(addr), K(num_bytes), K(page_size), K(num_pages)); } ::usleep(100000); //100ms #if defined(__aarch64__) if (MAP_FAILED != addr) { if (0 != ::munmap(addr, page_size*num_pages)) { - LOG_WARN("jit block munmap failed", K(addr), K(page_size*num_pages)); + LOG_WARN_RET(OB_ERR_SYS, "jit block munmap failed", K(addr), K(page_size*num_pages)); } start = reinterpret_cast(addr) + UINT32_MAX - page_size*num_pages; //先向上移4G,再移动此次分配的大小,以保证此次分配的地址高16位一致 LOG_INFO("aarch64 memory allocated not safe, try again", K(addr), K(start), K(page_size), K(num_pages)); @@ -286,7 +286,7 @@ void ObJitMemoryGroup::reserve(int64_t sz, int64_t align, int64_t p_flags) LOG_INFO("AARCH64: reserve ObJitMemoryGroup successed", K(header_), K(total_), K(block_cnt_), K(*cur)); } else { - LOG_ERROR("AARCH64: reserve ObJitMemoryGroup failed", K(header_), K(total_), K(*cur)); + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "AARCH64: reserve ObJitMemoryGroup failed", K(header_), K(total_), K(*cur)); } } @@ -336,7 +336,7 @@ void *ObJitAllocator::alloc(const JitMemType mem_type, int64_t sz, int64_t align ret = code_mem_.alloc_align(sz, align, PROT_WRITE | PROT_READ); } break; default : { - LOG_WARN("invalid mem type", K(mem_type)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "invalid mem type", K(mem_type)); } break; } diff --git a/src/observer/dbms_job/ob_dbms_job_rpc_processor.h b/src/observer/dbms_job/ob_dbms_job_rpc_processor.h index 6250392c9..946c7d396 100644 --- a/src/observer/dbms_job/ob_dbms_job_rpc_processor.h +++ b/src/observer/dbms_job/ob_dbms_job_rpc_processor.h @@ -38,7 +38,7 @@ public: virtual void on_invalid() {} virtual void on_timeout() { - SQL_EXE_LOG(WARN, "run dbms job timeout!"); + SQL_EXE_LOG_RET(WARN, common::OB_TIMEOUT, "run dbms job timeout!"); } rpc::frame::ObReqTransport::AsyncCB *clone(const rpc::frame::SPAlloc &alloc) const diff --git a/src/observer/dbms_scheduler/ob_dbms_sched_job_rpc_processor.h b/src/observer/dbms_scheduler/ob_dbms_sched_job_rpc_processor.h index 73d0e1e21..6728cfe23 100644 --- a/src/observer/dbms_scheduler/ob_dbms_sched_job_rpc_processor.h +++ b/src/observer/dbms_scheduler/ob_dbms_sched_job_rpc_processor.h @@ -38,7 +38,7 @@ public: virtual void on_invalid() {} virtual void on_timeout() { - SQL_EXE_LOG(WARN, "run dbms sched job timeout!"); + SQL_EXE_LOG_RET(WARN, OB_TIMEOUT, "run dbms sched job timeout!"); } rpc::frame::ObReqTransport::AsyncCB *clone(const rpc::frame::SPAlloc &alloc) const diff --git a/src/observer/main.cpp b/src/observer/main.cpp index d25351207..f32e58266 100644 --- a/src/observer/main.cpp +++ b/src/observer/main.cpp @@ -25,6 +25,7 @@ #include "lib/utility/ob_defer.h" #include "observer/ob_server.h" #include "observer/ob_server_struct.h" +#include "observer/ob_server_utils.h" #include "share/config/ob_server_config.h" #include "share/ob_tenant_mgr.h" #include "share/ob_version.h" @@ -254,7 +255,7 @@ parse_short_opt(const int c, const char *value, ObServerOptions &opts) MPRINT("malformed log level, candicates are: " " ERROR,USER_ERR,WARN,INFO,TRACE,DEBUG"); MPRINT("!! Back to INFO log level."); - opts.log_level_ = 3; + opts.log_level_ = OB_LOG_LEVEL_WARN; } break; @@ -299,7 +300,7 @@ static int callback(struct dl_phdr_info *info, size_t size, void *data) UNUSED(size); UNUSED(data); if (OB_ISNULL(info)) { - LOG_ERROR("invalid argument", K(info)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "invalid argument", K(info)); } else { MPRINT("name=%s (%d segments)", info->dlpi_name, info->dlpi_phnum); for (int j = 0; j < info->dlpi_phnum; j++) { @@ -457,7 +458,7 @@ int main(int argc, char *argv[]) setlocale(LC_TIME, "en_US.UTF-8"); setlocale(LC_NUMERIC, "en_US.UTF-8"); // memset(&opts, 0, sizeof (opts)); - opts.log_level_ = 3; + opts.log_level_ = OB_LOG_LEVEL_WARN; parse_opts(argc, argv, opts); if (OB_FAIL(check_uid_before_start(CONF_DIR))) { @@ -480,9 +481,11 @@ int main(int argc, char *argv[]) CURLcode curl_code = curl_global_init(CURL_GLOBAL_ALL); OB_ASSERT(CURLE_OK == curl_code); + const char *syslog_file_info = ObServerUtils::build_syslog_file_info(ObAddr()); easy_log_level = EASY_LOG_INFO; OB_LOGGER.set_log_level(opts.log_level_); OB_LOGGER.set_max_file_size(LOG_FILE_SIZE); + OB_LOGGER.set_new_file_info(syslog_file_info); OB_LOGGER.set_file_name(LOG_FILE_NAME, false, true, RS_LOG_FILE_NAME, ELECT_ASYNC_LOG_FILE_NAME, TRACE_LOG_FILE_NAME, audit_file); ObPLogWriterCfg log_cfg; // if (OB_SUCCESS != (ret = ASYNC_LOG_INIT(ELECT_ASYNC_LOG_FILE_NAME, opts.log_level_, true))) { @@ -503,6 +506,7 @@ int main(int argc, char *argv[]) _LOG_INFO("Virtual memory : %'15ld byte", memory_used); } // print in log file. + LOG_INFO("Build basic information for each syslog file", "info", syslog_file_info); print_args(argc, argv); print_version(); print_all_limits(); diff --git a/src/observer/mysql/ob_mysql_end_trans_cb.cpp b/src/observer/mysql/ob_mysql_end_trans_cb.cpp index 46318eaee..9d408d47e 100644 --- a/src/observer/mysql/ob_mysql_end_trans_cb.cpp +++ b/src/observer/mysql/ob_mysql_end_trans_cb.cpp @@ -77,13 +77,13 @@ void ObSqlEndTransCb::callback(int cb_param, const transaction::ObTransID &trans //cb_param : the error code from SQL engine void ObSqlEndTransCb::callback(int cb_param) { - int tmp_ret = OB_SUCCESS; + int ret = OB_SUCCESS; uint32_t sessid = 0; uint64_t proxy_sessid = 0; sql::ObSQLSessionInfo *session_info = sess_info_; if (OB_ISNULL(session_info)) { - tmp_ret = OB_ERR_NULL_VALUE; - SERVER_LOG(ERROR, "session info is NULL", "ret", tmp_ret, K(session_info)); + ret = OB_ERR_NULL_VALUE; + SERVER_LOG(ERROR, "session info is NULL", "ret", ret, K(session_info)); } else { sql::ObSQLSessionInfo::LockGuard lock_guard(session_info->get_query_lock()); bool reuse_tx = OB_SUCCESS == cb_param @@ -94,17 +94,19 @@ void ObSqlEndTransCb::callback(int cb_param) proxy_sessid = session_info->get_proxy_sessid(); // 临界区内检查这些变量,预防并发callback造成的不良影响 if (OB_UNLIKELY(!pkt_param_.is_valid())) { - tmp_ret = OB_ERR_UNEXPECTED; - SERVER_LOG(ERROR, "pkt_param_ is invalid", K(tmp_ret), K(pkt_param_)); + ret = OB_ERR_UNEXPECTED; + SERVER_LOG(ERROR, "pkt_param_ is invalid", K(ret), K(pkt_param_)); } else if (FALSE_IT(ObCurTraceId::set(pkt_param_.get_trace_id()))) { // 尽早设置trace_id //do nothing } else if (!packet_sender_.is_conn_valid()) { //network problem, callback will still be called - tmp_ret = OB_CONNECT_ERROR; - SERVER_LOG(INFO, "connection is invalid", "ret", tmp_ret); + ret = OB_CONNECT_ERROR; + SERVER_LOG(INFO, "connection is invalid", "ret", ret); } else if (OB_SUCCESS != packet_sender_.alloc_ezbuf()) { + ret = OB_ALLOCATE_MEMORY_FAILED; LOG_WARN("failed to alloc easy buf"); } else if (OB_SUCCESS != packet_sender_.update_last_pkt_pos()) { + ret = OB_ALLOCATE_MEMORY_FAILED; LOG_WARN("failed to update last packet pos"); } else { session_info->set_show_warnings_buf(cb_param); @@ -116,14 +118,14 @@ void ObSqlEndTransCb::callback(int cb_param) ok_param.lii_ = pkt_param_.get_last_insert_id_to_client(); ok_param.warnings_count_ = static_cast(session_info->get_warnings_buffer().get_readable_warning_count()); ok_param.is_partition_hit_ = pkt_param_.get_is_partition_hit(); - if (OB_SUCCESS != (tmp_ret = packet_sender_.send_ok_packet(*session_info, ok_param))) { - SERVER_LOG(WARN, "encode ok packet fail", K(ok_param), "ret", tmp_ret); + if (OB_SUCCESS != (ret = packet_sender_.send_ok_packet(*session_info, ok_param))) { + SERVER_LOG(WARN, "encode ok packet fail", K(ok_param), "ret", ret); } } else { //error + possible ok packet const char *error_msg = session_info->get_warnings_buffer().get_err_msg(); - if (OB_SUCCESS != (tmp_ret = packet_sender_.send_error_packet(cb_param, error_msg, pkt_param_.get_is_partition_hit()))) { - SERVER_LOG(WARN, "encode error packet fail", "ret", tmp_ret); + if (OB_SUCCESS != (ret = packet_sender_.send_error_packet(cb_param, error_msg, pkt_param_.get_is_partition_hit()))) { + SERVER_LOG(WARN, "encode error packet fail", "ret", ret); } } //succ or not reset warning buffer @@ -150,7 +152,7 @@ void ObSqlEndTransCb::callback(int cb_param) } } - if (OB_SUCCESS == tmp_ret) { + if (OB_SUCCESS == ret) { if (need_disconnect_) { packet_sender_.force_disconnect(); } @@ -174,7 +176,7 @@ void ObSqlEndTransCb::callback(int cb_param) MEM_BARRIER(); int sret = packet_sender_.revert_session(session_info); if (OB_SUCCESS != sret) { - SERVER_LOG(ERROR, "revert session fail", K(sessid), K(proxy_sessid), K(sret), "ret", tmp_ret, K(lbt())); + SERVER_LOG_RET(ERROR, sret, "revert session fail", K(sessid), K(proxy_sessid), K(sret), "ret", ret, K(lbt())); } } } diff --git a/src/observer/mysql/ob_query_retry_ctrl.cpp b/src/observer/mysql/ob_query_retry_ctrl.cpp index 0a8450822..a10d177ba 100644 --- a/src/observer/mysql/ob_query_retry_ctrl.cpp +++ b/src/observer/mysql/ob_query_retry_ctrl.cpp @@ -111,7 +111,7 @@ public: { int refresh_err = v.result_.refresh_location_cache(is_async); if (OB_SUCCESS != refresh_err) { - LOG_WARN("fail to refresh location cache", K(is_async), K(refresh_err), K(v)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "fail to refresh location cache", K(is_async), K(refresh_err), K(v)); } } }; @@ -157,7 +157,7 @@ public: v.client_ret_ = v.err_; v.retry_type_ = RETRY_TYPE_NONE; v.no_more_test_ = true; - LOG_WARN("server down error, fast fail", K(v)); + LOG_WARN_RET(v.err_, "server down error, fast fail", K(v)); } } }; @@ -182,7 +182,7 @@ public: { try_packet_retry(v); if (RETRY_TYPE_LOCAL == v.retry_type_) { - LOG_WARN("set retry packet failed, retry at local", + LOG_WARN_RET(v.err_, "set retry packet failed, retry at local", K(v.ctx_.multi_stmt_item_.is_part_of_multi_stmt()), K(v.ctx_.multi_stmt_item_.get_seq_num())); v.session_.set_group_id_not_expected(true); @@ -242,7 +242,7 @@ public: { int err = v.err_; if (v.result_.is_pl_stmt(v.result_.get_stmt_type()) && !v.session_.get_pl_can_retry()) { - LOG_WARN("current pl can not retry, commit may have occurred", + LOG_WARN_RET(err, "current pl can not retry, commit may have occurred", K(v), K(v.result_.get_stmt_type())); v.client_ret_ = err; v.retry_type_ = RETRY_TYPE_NONE; @@ -412,7 +412,7 @@ public: v.client_ret_ = v.err_; v.retry_type_ = RETRY_TYPE_NONE; v.no_more_test_ = true; - LOG_WARN("server down error, the write dml is remote, don't retry", + LOG_WARN_RET(v.err_, "server down error, the write dml is remote, don't retry", K(autocommit), K(plan_type), K(in_transaction), K(v)); } } @@ -438,7 +438,7 @@ public: v.client_ret_ = OB_ERR_EXCLUSIVE_LOCK_CONFLICT; v.retry_type_ = RETRY_TYPE_NONE; v.no_more_test_ = true; - LOG_WARN("can not retry local", K(v)); + LOG_WARN_RET(v.client_ret_, "can not retry local", K(v)); } } } @@ -456,7 +456,7 @@ public: v.client_ret_ = OB_TRANS_CANNOT_SERIALIZE; v.retry_type_ = RETRY_TYPE_NONE; v.no_more_test_ = true; - LOG_WARN("transaction cannot serialize", K(v)); + LOG_WARN_RET(v.client_ret_, "transaction cannot serialize", K(v)); } } }; @@ -471,7 +471,7 @@ public: v.client_ret_ = OB_TRANS_CANNOT_SERIALIZE; v.retry_type_ = RETRY_TYPE_NONE; v.no_more_test_ = true; - LOG_WARN("transaction cannot serialize", K(v)); + LOG_WARN_RET(v.client_ret_, "transaction cannot serialize", K(v)); } }; @@ -490,7 +490,7 @@ public: v.client_ret_ = v.err_; v.retry_type_ = RETRY_TYPE_NONE; v.no_more_test_ = true; - LOG_WARN("can not retry local. need to terminate to prevent thread resouce deadlock", K(v)); + LOG_WARN_RET(v.client_ret_, "can not retry local. need to terminate to prevent thread resouce deadlock", K(v)); } } } @@ -701,7 +701,7 @@ void ObQueryRetryCtrl::snapshot_discard_proc(ObRetryParam &v) // see: https://aone.alibaba-inc.com/req/21981135 v.client_ret_ = v.err_; v.retry_type_ = RETRY_TYPE_NONE; - LOG_WARN("snapshot discarded in serializable isolation should not retry", K(v)); + LOG_WARN_RET(v.client_ret_, "snapshot discarded in serializable isolation should not retry", K(v)); } else { // 读到落后太多的备机或者正在回放日志的副本了 // 副本不可读类型的错误最多在本线程重试1次。 @@ -860,17 +860,17 @@ void ObQueryRetryCtrl::after_func(ObRetryParam &v) { if (OB_TRY_LOCK_ROW_CONFLICT != v.client_ret_ && OB_ERR_PROXY_REROUTE != v.client_ret_) { //锁冲突就不要打印了,避免日志刷屏 - LOG_WARN("[RETRY] check if need retry", K(v), "need_retry", RETRY_TYPE_NONE != v.retry_type_); + LOG_WARN_RET(v.client_ret_, "[RETRY] check if need retry", K(v), "need_retry", RETRY_TYPE_NONE != v.retry_type_); } if (RETRY_TYPE_NONE != v.retry_type_) { v.session_.get_retry_info_for_update().set_last_query_retry_err(v.err_); v.session_.get_retry_info_for_update().inc_retry_cnt(); if (OB_UNLIKELY(v.err_ != v.client_ret_)) { - LOG_ERROR("when need retry, v.client_ret_ must be equal to err", K(v)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "when need retry, v.client_ret_ must be equal to err", K(v)); } } if (OB_UNLIKELY(OB_SUCCESS == v.client_ret_)) { - LOG_ERROR("no matter need retry or not, v.client_ret_ should not be OB_SUCCESS", K(v)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "no matter need retry or not, v.client_ret_ should not be OB_SUCCESS", K(v)); } } diff --git a/src/observer/mysql/obmp_connect.cpp b/src/observer/mysql/obmp_connect.cpp index 0f9d1ebdd..a227a11b9 100644 --- a/src/observer/mysql/obmp_connect.cpp +++ b/src/observer/mysql/obmp_connect.cpp @@ -821,7 +821,7 @@ int ObMPConnect::unlock_user_if_time_is_up(const uint64_t tenant_id, if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(ret), K(temp_ret)); ret = OB_SUCC(ret) ? temp_ret : ret; } } @@ -884,7 +884,7 @@ int ObMPConnect::unlock_user_if_time_is_up_mysql(const uint64_t tenant_id, if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(ret), K(temp_ret)); ret = OB_SUCC(ret) ? temp_ret : ret; } } @@ -956,7 +956,7 @@ int ObMPConnect::update_login_stat_in_trans(const uint64_t tenant_id, if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret) && commit))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret) && commit, K(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret && commit, K(ret), K(temp_ret)); ret = OB_SUCC(ret) ? temp_ret : ret; } } @@ -1050,7 +1050,7 @@ int ObMPConnect::update_login_stat_in_trans_mysql(const uint64_t tenant_id, if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(ret), K(temp_ret)); ret = OB_SUCC(ret) ? temp_ret : ret; } } diff --git a/src/observer/mysql/obmp_packet_sender.cpp b/src/observer/mysql/obmp_packet_sender.cpp index 8b62970be..2efce4fd6 100644 --- a/src/observer/mysql/obmp_packet_sender.cpp +++ b/src/observer/mysql/obmp_packet_sender.cpp @@ -697,7 +697,7 @@ ObSMConnection* ObMPPacketSender::get_conn() const { ObSMConnection *conn = NULL; if (OB_ISNULL(req_)) { - LOG_ERROR("request is null"); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "request is null"); } else if (conn_valid_) { conn = reinterpret_cast(SQL_REQ_OP.get_sql_session(req_)); } else { @@ -720,7 +720,7 @@ int ObMPPacketSender::update_last_pkt_pos() void ObMPPacketSender::force_disconnect() { - LOG_WARN("force disconnect", K(lbt())); + LOG_WARN_RET(OB_ERROR, "force disconnect", K(lbt())); ObMPPacketSender::disconnect(); } @@ -731,21 +731,21 @@ void ObMPPacketSender::disconnect() } else { ObSMConnection *conn = reinterpret_cast(SQL_REQ_OP.get_sql_session(req_)); if (conn != NULL) { - LOG_WARN("server close connection", + LOG_WARN_RET(OB_SUCCESS, "server close connection", "sessid", conn->sessid_, "proxy_sessid", conn->proxy_sessid_, "stack", lbt()); sql::ObSQLSessionInfo *session = NULL; get_session(session); if (OB_ISNULL(session)) { - LOG_WARN("session is null"); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "session is null"); } else { // set SERVER_FORCE_DISCONNECT state. session->set_disconnect_state(SERVER_FORCE_DISCONNECT); revert_session(session); } } else { - LOG_WARN("connection is null"); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "connection is null"); } SQL_REQ_OP.disconnect_sql_conn(req_); diff --git a/src/observer/mysql/obsm_handler.cpp b/src/observer/mysql/obsm_handler.cpp index eab5c9d9f..bbf4373b4 100644 --- a/src/observer/mysql/obsm_handler.cpp +++ b/src/observer/mysql/obsm_handler.cpp @@ -80,13 +80,13 @@ int ObSMHandler::on_connect(easy_connection_t *c) ObSMConnection *conn = NULL; if (OB_ISNULL(c) || OB_ISNULL(gctx_.session_mgr_) || OB_ISNULL(gctx_.scramble_rand_)) { eret = EASY_ERROR; - LOG_ERROR("easy_connection_t or session_mgr is null", K(eret), K(c), K(gctx_.session_mgr_)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "easy_connection_t or session_mgr is null", K(eret), K(c), K(gctx_.session_mgr_)); } else { uint32_t sessid = 0; crt_id_ret = gctx_.session_mgr_->create_sessid(sessid); if (OB_UNLIKELY(OB_SUCCESS != crt_id_ret && OB_ERR_CON_COUNT_ERROR != crt_id_ret)) { eret = EASY_ERROR; - LOG_WARN("fail to create sessid", K(crt_id_ret), K(sessid)); + LOG_WARN_RET(OB_ERROR, "fail to create sessid", K(crt_id_ret), K(sessid)); } else { // send handshake obmysql::OMPKHandshake hsp; @@ -97,7 +97,7 @@ int ObSMHandler::on_connect(easy_connection_t *c) const int64_t BUF_LEN = sizeof(conn->scramble_buf_); if (OB_ISNULL(conn = reinterpret_cast(easy_alloc(c->pool, sizeof(ObSMConnection))))) { eret = EASY_ERROR; - LOG_ERROR("easy alloc memory failed", K(sizeof(ObSMConnection)), K(eret)); + LOG_ERROR_RET(OB_ALLOCATE_MEMORY_FAILED, "easy alloc memory failed", K(sizeof(ObSMConnection)), K(eret)); } else { conn = new (conn) ObSMConnection; c->user_data = conn; @@ -105,13 +105,13 @@ int ObSMHandler::on_connect(easy_connection_t *c) conn->ret_ = crt_id_ret; if (OB_UNLIKELY(OB_SUCCESS != (tmp_ret = create_scramble_string(conn->scramble_buf_, BUF_LEN, thread_scramble_rand)))) { eret = EASY_ERROR; - LOG_WARN("create scramble string failed", K(tmp_ret), K(eret)); + LOG_WARN_RET(tmp_ret, "create scramble string failed", K(tmp_ret), K(eret)); } else if (OB_UNLIKELY(OB_SUCCESS != (tmp_ret = hsp.set_scramble(conn->scramble_buf_, BUF_LEN)))) { eret = EASY_ERROR; - LOG_WARN("set scramble failed", K(tmp_ret), K(eret)); + LOG_WARN_RET(tmp_ret, "set scramble failed", K(tmp_ret), K(eret)); } else if (OB_UNLIKELY(OB_SUCCESS != (tmp_ret = send_handshake(c->fd, hsp)))) { eret = EASY_ERROR; - LOG_WARN("send handshake packet failed", K(tmp_ret), K(eret)); + LOG_WARN_RET(tmp_ret, "send handshake packet failed", K(tmp_ret), K(eret)); } else { LOG_INFO("new mysql sessid created", K(easy_connection_str(c)), K(sessid), K(crt_id_ret)); } @@ -119,7 +119,7 @@ int ObSMHandler::on_connect(easy_connection_t *c) if (EASY_ERROR == eret && OB_SUCCESS == crt_id_ret) { if (OB_SUCCESS != (tmp_ret = gctx_.session_mgr_->mark_sessid_unused(sessid))) { - LOG_ERROR("fail to mark sessid unused", K(tmp_ret), K(sessid)); + LOG_ERROR_RET(tmp_ret, "fail to mark sessid unused", K(tmp_ret), K(sessid)); } } } @@ -140,13 +140,13 @@ int ObSMHandler::on_disconnect(easy_connection_t *c) ObSMConnection *conn = NULL; if (OB_ISNULL(c) || OB_ISNULL(gctx_.session_mgr_)) { eret = EASY_ERROR; - LOG_ERROR("easy_connection_t or gctx_.session_mgr_ is null", K(eret), K(c), K(gctx_.session_mgr_)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "easy_connection_t or gctx_.session_mgr_ is null", K(eret), K(c), K(gctx_.session_mgr_)); } else if (OB_ISNULL(c->user_data)) { eret = EASY_ERROR; - LOG_ERROR("connection user data is NULL", K(eret)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "connection user data is NULL", K(eret)); } else if (OB_ISNULL(conn = reinterpret_cast(c->user_data))) { eret = EASY_ERROR; - LOG_ERROR("conn is null", K(eret)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "conn is null", K(eret)); } else { // get reason for disconnect. sql::ObDisconnectState dis_state; @@ -159,11 +159,11 @@ int ObSMHandler::on_disconnect(easy_connection_t *c) sql::ObSQLSessionInfo *sess_info = NULL; sql::ObSessionGetterGuard guard(*gctx_.session_mgr_, conn->sessid_); if (OB_UNLIKELY(OB_SUCCESS != (tmp_ret = guard.get_session(sess_info)))) { - LOG_WARN("fail to get session", K(tmp_ret), K(conn->sessid_), + LOG_WARN_RET(tmp_ret, "fail to get session", K(tmp_ret), K(conn->sessid_), "proxy_sessid", conn->proxy_sessid_); } else if (OB_ISNULL(sess_info)) { tmp_ret = OB_ERR_UNEXPECTED; - LOG_WARN("session info is NULL", K(tmp_ret), K(conn->sessid_), + LOG_WARN_RET(tmp_ret, "session info is NULL", K(tmp_ret), K(conn->sessid_), "proxy_sessid", conn->proxy_sessid_); } else { // tcp disconnect @@ -335,7 +335,7 @@ rpc::ConnectionPhaseEnum ObSMHandler::get_connection_phase(easy_connection_t *c) void ObSMHandler::set_ssl_connect_phase(easy_connection_t *c) { if (OB_ISNULL(c) || OB_ISNULL(c->user_data)) { - LOG_ERROR("easy_connection_t is null", KP(c)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "easy_connection_t is null", KP(c)); } else { ObSMConnection *conn = reinterpret_cast(c->user_data); conn->connection_phase_ = rpc::ConnectionPhaseEnum::CPE_SSL_CONNECT; @@ -345,7 +345,7 @@ void ObSMHandler::set_ssl_connect_phase(easy_connection_t *c) void ObSMHandler::set_connect_phase(easy_connection_t *c) { if (OB_ISNULL(c) || OB_ISNULL(c->user_data)) { - LOG_ERROR("easy_connection_t is null", KP(c)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "easy_connection_t is null", KP(c)); } else { ObSMConnection *conn = reinterpret_cast(c->user_data); conn->connection_phase_ = rpc::ConnectionPhaseEnum::CPE_CONNECTED; @@ -356,7 +356,7 @@ bool ObSMHandler::is_compressed(easy_connection_t *c) const { bool bool_ret = false; if (OB_ISNULL(c) || OB_ISNULL(c->user_data)) { - LOG_ERROR("easy_connection_t is null"); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "easy_connection_t is null"); } else { ObSMConnection *conn = reinterpret_cast(c->user_data); bool_ret = (1 == conn->cap_flags_.cap_flags_.OB_CLIENT_COMPRESS); @@ -379,7 +379,7 @@ obmysql::ObProto20PktContext *ObSMHandler::get_proto20_pkt_context(easy_connecti { obmysql::ObProto20PktContext *ret_pkt_context = NULL; if (OB_ISNULL(c) || OB_ISNULL(c->user_data)) { - LOG_ERROR("easy_connection_t is null"); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "easy_connection_t is null"); } else { ObSMConnection *conn = reinterpret_cast(c->user_data); ret_pkt_context = &(conn->proto20_pkt_context_); @@ -391,7 +391,7 @@ obmysql::ObCompressedPktContext *ObSMHandler::get_compressed_pkt_context(easy_co { obmysql::ObCompressedPktContext *ret_pkt_context = NULL; if (OB_ISNULL(c) || OB_ISNULL(c->user_data)) { - LOG_ERROR("easy_connection_t is null"); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "easy_connection_t is null"); } else { ObSMConnection *conn = reinterpret_cast(c->user_data); ret_pkt_context = &(conn->compressed_pkt_context_); @@ -403,7 +403,7 @@ obmysql::ObMysqlPktContext *ObSMHandler::get_mysql_pkt_context(easy_connection_t { obmysql::ObMysqlPktContext *ret_pkt_context = NULL; if (OB_ISNULL(c) || OB_ISNULL(c->user_data)) { - LOG_ERROR("easy_connection_t is null"); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "easy_connection_t is null"); } else { ObSMConnection *conn = reinterpret_cast(c->user_data); ret_pkt_context = &(conn->mysql_pkt_context_); @@ -415,7 +415,7 @@ ObCSProtocolType ObSMHandler::get_cs_protocol_type(easy_connection_t *c) const { ObCSProtocolType type = OB_INVALID_CS_TYPE; if (OB_ISNULL(c) || OB_ISNULL(c->user_data)) { - LOG_ERROR("easy_connection_t is null"); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "easy_connection_t is null"); } else { ObSMConnection *conn = reinterpret_cast(c->user_data); type = conn->get_cs_protocol_type(); diff --git a/src/observer/ob_inner_sql_connection.cpp b/src/observer/ob_inner_sql_connection.cpp index fec2c03a0..08c18a28a 100644 --- a/src/observer/ob_inner_sql_connection.cpp +++ b/src/observer/ob_inner_sql_connection.cpp @@ -159,7 +159,7 @@ ObInnerSQLConnection::ObInnerSQLConnection() ObInnerSQLConnection::~ObInnerSQLConnection() { if (0 < ref_cnt_) { - LOG_ERROR("connection be referenced while destruct", K_(ref_cnt)); + LOG_ERROR_RET(OB_ERROR, "connection be referenced while destruct", K_(ref_cnt)); } if (OB_NOT_NULL(inner_session_.get_tx_desc())) { int ret = OB_SUCCESS; @@ -248,11 +248,11 @@ int ObInnerSQLConnection::destroy() void ObInnerSQLConnection::ref() { if (!inited_) { - LOG_WARN("not init"); + LOG_WARN_RET(OB_NOT_INIT, "not init"); } else { ref_cnt_++; if (ref_cnt_ > TOO_MANY_REF_ALERT) { - LOG_WARN("connection be referenced too many times, this should be rare", + LOG_WARN_RET(OB_ERR_UNEXPECTED, "connection be referenced too many times, this should be rare", K_(ref_cnt)); } } @@ -2300,12 +2300,12 @@ void ObInnerSQLConnection::dump_conn_bt_info() pos = 0; for (int i = 0; i < bt_size_; ++i) { if (OB_UNLIKELY(pos + 1 > BUF_SIZE)) { - LOG_WARN("buf is not large enough", K(pos), K(BUF_SIZE)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "buf is not large enough", K(pos), K(BUF_SIZE)); } else { (void)databuff_printf(buf_bt, BUF_SIZE, pos, "%p ", bt_addrs_[i]); } } - LOG_WARN("dump inner sql connection backtrace", "tid", tid_, "init time", buf_time, "backtrace", buf_bt); + LOG_WARN_RET(OB_SUCCESS, "dump inner sql connection backtrace", "tid", tid_, "init time", buf_time, "backtrace", buf_bt); } void ObInnerSQLConnection::record_stat(sql::ObSQLSessionInfo& session, diff --git a/src/observer/ob_inner_sql_connection_pool.cpp b/src/observer/ob_inner_sql_connection_pool.cpp index e984b5a55..1131aa331 100644 --- a/src/observer/ob_inner_sql_connection_pool.cpp +++ b/src/observer/ob_inner_sql_connection_pool.cpp @@ -411,7 +411,7 @@ int ObInnerSQLConnectionPool::wait() while (used_conn_list_.get_size() > 0) { const int64_t now = ObTimeUtility::current_time(); if (now - begin > WARNNING_TIME_US) { - LOG_WARN("too much time used to wait connection release, may be connection leak", + LOG_WARN_RET(OB_ERR_TOO_MUCH_TIME, "too much time used to wait connection release, may be connection leak", "used_time_ms", now - begin, "used connection count", used_conn_list_.get_size()); dump_used_conn_list(); } @@ -424,11 +424,11 @@ int ObInnerSQLConnectionPool::wait() void ObInnerSQLConnectionPool::dump_used_conn_list() { int64_t dump_size = MIN(used_conn_list_.get_size(), MAX_DUMP_SIZE); - LOG_WARN("====== DUMP USED CONNECTIONS' BACKTRACE INFO ====== ", + LOG_WARN_RET(OB_SUCCESS, "====== DUMP USED CONNECTIONS' BACKTRACE INFO ====== ", K(dump_size)); DLIST_FOREACH_X(conn, used_conn_list_, (--dump_size >= 0)) { if (OB_ISNULL(conn)) { - LOG_WARN("node is null"); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "node is null"); } else { conn->dump_conn_bt_info(); } diff --git a/src/observer/ob_inner_sql_rpc_proxy.h b/src/observer/ob_inner_sql_rpc_proxy.h index b0c85ec51..dbb9f5968 100644 --- a/src/observer/ob_inner_sql_rpc_proxy.h +++ b/src/observer/ob_inner_sql_rpc_proxy.h @@ -273,7 +273,7 @@ public: { ObInnerSQLTransmitResult *ret_result = NULL; if (!result_.is_scanner_inited()) { - SQL_EXE_LOG(ERROR, "result_ is not inited"); + SQL_EXE_LOG_RET(ERROR, common::OB_NOT_INIT, "result_ is not inited"); } else { ret_result = &result_; } diff --git a/src/observer/ob_req_time_service.h b/src/observer/ob_req_time_service.h index 65371f728..7357484bf 100644 --- a/src/observer/ob_req_time_service.h +++ b/src/observer/ob_req_time_service.h @@ -38,7 +38,7 @@ struct ObReqTimeInfo: public common::ObDLinkBase // currrent_monotonic_time只保证时间不会退 // 并不能保证时间一定递增,所以这里检测逻辑用start_time_ > end_time_ if (OB_UNLIKELY(start_time_ > end_time_)) { - SERVER_LOG(ERROR, "invalid start and end time", K(start_time_), + SERVER_LOG_RET(ERROR, OB_INVALID_ARGUMENT, "invalid start and end time", K(start_time_), K(end_time_), K(this)); } start_time_ = common::ObTimeUtility::current_monotonic_time(); @@ -52,7 +52,7 @@ struct ObReqTimeInfo: public common::ObDLinkBase if (0 == reentrant_cnt_) { // 原因同上 if (OB_UNLIKELY(start_time_ < end_time_)) { - SERVER_LOG(ERROR, "invalid start and end time", K(start_time_), + SERVER_LOG_RET(ERROR, OB_INVALID_ARGUMENT, "invalid start and end time", K(start_time_), K(end_time_), K(this)); } end_time_ = common::ObTimeUtility::current_monotonic_time(); diff --git a/src/observer/ob_rpc_processor_simple.cpp b/src/observer/ob_rpc_processor_simple.cpp index 48ec79d35..71fafbee0 100644 --- a/src/observer/ob_rpc_processor_simple.cpp +++ b/src/observer/ob_rpc_processor_simple.cpp @@ -86,7 +86,7 @@ namespace observer int ObErrorP::process() { if (ret_ == OB_SUCCESS) { - LOG_ERROR("should not return success in error packet", K(ret_)); + LOG_ERROR_RET(ret_, "should not return success in error packet", K(ret_)); } return ret_; } diff --git a/src/observer/ob_safe_destroy_thread.cpp b/src/observer/ob_safe_destroy_thread.cpp index ae71c9d98..67570d455 100644 --- a/src/observer/ob_safe_destroy_thread.cpp +++ b/src/observer/ob_safe_destroy_thread.cpp @@ -34,7 +34,7 @@ void ObSafeDestroyTask::update_retry_info() last_execute_timestamp_ = current_time; if ((current_time - recv_timestamp_) >= PRINT_INTERVAL_TIME && retry_times_ % PRINT_TIMES_INTERVAL == 0) { - LOG_WARN("safe destroy task alive too long", KPC(this)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "safe destroy task alive too long", KPC(this)); } } @@ -215,7 +215,7 @@ void ObSafeDestroyThread::wait() int64_t start_ts = ObTimeUtility::current_time(); while (!queue_.stop_finished()) { if (REACH_TIME_INTERVAL(60 * 1000 * 1000)) { // every minute - LOG_WARN("the safe destroy thread wait cost too much time", + LOG_WARN_RET(OB_ERR_TOO_MUCH_TIME, "the safe destroy thread wait cost too much time", K(ObTimeUtility::current_time() - start_ts)); } ob_usleep(SLEEP_TS); diff --git a/src/observer/ob_server.cpp b/src/observer/ob_server.cpp index 839d01ba5..ab56bf527 100644 --- a/src/observer/ob_server.cpp +++ b/src/observer/ob_server.cpp @@ -98,6 +98,7 @@ #include "share/longops_mgr/ob_longops_mgr.h" #include "logservice/palf/election/interface/election.h" #include "storage/ddl/ob_ddl_redo_log_writer.h" +#include "observer/ob_server_utils.h" #include "observer/table_load/ob_table_load_partition_calc.h" using namespace oceanbase::lib; @@ -438,6 +439,7 @@ int ObServer::init(const ObServerOptions &opts, const ObPLogWriterCfg &log_cfg) set_stop(); destroy(); LOG_ERROR("[OBSERVER_NOTICE] fail to init observer", KR(ret)); + LOG_DBA_ERROR(OB_ERR_OBSERVER_START, "msg", "observer init() has failure", KR(ret)); } else { FLOG_INFO("[OBSERVER_NOTICE] success to init observer", "cluster_id", obrpc::ObRpcNetHandler::CLUSTER_ID, "lib::g_runtime_enabled", lib::g_runtime_enabled); @@ -620,7 +622,8 @@ void ObServer::destroy() has_destroy_ = true; FLOG_INFO("[OBSERVER_NOTICE] destroy observer end"); } else { - FLOG_WARN("[OBSERVER_NOTICE] can not destroy observer", K_(has_destroy), K_(has_stopped)); + FLOG_WARN_RET(OB_ERROR, "[OBSERVER_NOTICE] can not destroy observer", K_(has_destroy), K_(has_stopped)); + LOG_DBA_ERROR(OB_ERR_OBSERVER_STOP, "msg", "observer exits without calling destroy()", K_(has_destroy), K_(has_stopped)); } } @@ -886,6 +889,7 @@ int ObServer::start() if (OB_FAIL(ret)) { LOG_ERROR("failure occurs, try to set stop and wait", KR(ret)); + LOG_DBA_ERROR(OB_ERR_OBSERVER_START, "msg", "observer start() has failure", KR(ret)); set_stop(); wait(); } else if (!stop_) { @@ -894,6 +898,7 @@ int ObServer::start() FLOG_INFO("[OBSERVER_NOTICE] observer start service", "start_service_time", GCTX.start_service_time_); } else { FLOG_INFO("[OBSERVER_NOTICE] observer is set to stop", KR(ret), K_(stop)); + LOG_DBA_ERROR(OB_ERR_OBSERVER_START, "msg", "observer start process is interrupted", KR(ret), K_(stop)); } return ret; @@ -947,6 +952,7 @@ void ObServer::set_stop() int ObServer::stop() { int ret = OB_SUCCESS; + int fail_ret = OB_SUCCESS; FLOG_INFO("[OBSERVER_NOTICE] stop observer begin"); if (is_arbitration_mode()) { @@ -968,6 +974,7 @@ int ObServer::stop() FLOG_INFO("begin to mysql shutdown network"); if (OB_FAIL(net_frame_.mysql_shutdown())) { FLOG_WARN("fail to mysql shutdown network", KR(ret)); + fail_ret = OB_SUCCESS == fail_ret ? ret : fail_ret; } else { FLOG_INFO("mysql shutdown network stopped"); } @@ -1059,6 +1066,7 @@ int ObServer::stop() FLOG_INFO("begin to stop root service"); if (OB_FAIL(root_service_.stop())) { FLOG_WARN("fail to stop root service", KR(ret)); + fail_ret = OB_SUCCESS == fail_ret ? ret : fail_ret; } else { FLOG_INFO("root service stopped"); } @@ -1114,6 +1122,7 @@ int ObServer::stop() FLOG_INFO("begin to shutdown rpc network"); if (OB_FAIL(net_frame_.rpc_shutdown())) { FLOG_WARN("fail to rpc shutdown network", KR(ret)); + fail_ret = OB_SUCCESS == fail_ret ? ret : fail_ret; } else { FLOG_INFO("rpc network shutdowned"); } @@ -1121,6 +1130,7 @@ int ObServer::stop() FLOG_INFO("begin to shutdown high priority rpc"); if (OB_FAIL(net_frame_.high_prio_rpc_shutdown())) { FLOG_WARN("fail to shutdown high priority rpc", KR(ret)); + fail_ret = OB_SUCCESS == fail_ret ? ret : fail_ret; } else { FLOG_INFO("high priority rpc shutdowned"); } @@ -1128,6 +1138,7 @@ int ObServer::stop() FLOG_INFO("begin to shutdown clog rpc network"); if (OB_FAIL(net_frame_.batch_rpc_shutdown())) { FLOG_WARN("fail to shutdown clog rpc network", KR(ret)); + fail_ret = OB_SUCCESS == fail_ret ? ret : fail_ret; } else { FLOG_INFO("clog rpc network shutdowned"); } @@ -1135,6 +1146,7 @@ int ObServer::stop() FLOG_INFO("begin to shutdown unix rpc"); if (OB_FAIL(net_frame_.unix_rpc_shutdown())) { FLOG_WARN("fail to shutdown unix rpc", KR(ret)); + fail_ret = OB_SUCCESS == fail_ret ? ret : fail_ret; } else { FLOG_INFO("unix rpc network shutdowned"); } @@ -1144,6 +1156,7 @@ int ObServer::stop() FLOG_INFO("begin to stop net frame"); if (OB_FAIL(net_frame_.stop())) { FLOG_WARN("fail to stop net frame", KR(ret)); + fail_ret = OB_SUCCESS == fail_ret ? ret : fail_ret; } else { FLOG_INFO("net frame stopped"); } @@ -1152,6 +1165,9 @@ int ObServer::stop() has_stopped_ = true; FLOG_INFO("[OBSERVER_NOTICE] stop observer end", KR(ret)); + if (OB_SUCCESS != fail_ret) { + LOG_DBA_ERROR(OB_ERR_OBSERVER_STOP, "msg", "observer stop() has failure", KR(fail_ret)); + } return ret; } @@ -1159,6 +1175,7 @@ int ObServer::stop() int ObServer::wait() { int ret = OB_SUCCESS; + int fail_ret = OB_SUCCESS; FLOG_INFO("[OBSERVER_NOTICE] wait observer begin"); // wait for stop flag @@ -1172,6 +1189,7 @@ int ObServer::wait() FLOG_INFO("begin to stop observer"); if (OB_FAIL(stop())) { FLOG_WARN("stop observer fail", KR(ret)); + fail_ret = OB_SUCCESS == fail_ret ? ret : fail_ret; } else { FLOG_INFO("observer stopped"); } @@ -1263,6 +1281,7 @@ int ObServer::wait() FLOG_INFO("begin to wait sql_conn_pool"); if (OB_FAIL(sql_conn_pool_.wait())) { FLOG_WARN("fail to wait inner sql connection release", KR(ret)); + fail_ret = OB_SUCCESS == fail_ret ? ret : fail_ret; } else { FLOG_INFO("wait sql_conn_pool success"); } @@ -1270,6 +1289,7 @@ int ObServer::wait() FLOG_INFO("begin to wait ddl_conn_pool"); if (OB_FAIL(ddl_conn_pool_.wait())) { FLOG_WARN("fail to wait ddl sql connection release", KR(ret)); + fail_ret = OB_SUCCESS == fail_ret ? ret : fail_ret; } else { FLOG_INFO("wait ddl_conn_pool success"); } @@ -1277,6 +1297,7 @@ int ObServer::wait() FLOG_INFO("begin to wait inner_sql_conn_pool"); if (OB_FAIL(res_inner_conn_pool_.get_inner_sql_conn_pool().wait())) { FLOG_WARN("fail to wait resource inner connection release", KR(ret)); + fail_ret = OB_SUCCESS == fail_ret ? ret : fail_ret; } else { FLOG_INFO("wait inner_sql_conn_pool success"); } @@ -1324,6 +1345,9 @@ int ObServer::wait() gctx_.status_ = SS_STOPPED; FLOG_INFO("[OBSERVER_NOTICE] wait observer end", KR(ret)); + if (OB_SUCCESS != fail_ret) { + LOG_DBA_ERROR(OB_ERR_OBSERVER_STOP, "msg", "observer wait() has failure", KR(fail_ret)); + } } return ret; } @@ -1468,6 +1492,10 @@ int ObServer::init_config() self_addr_.set_ipv4_addr(ipv4, local_port); } + const char *syslog_file_info = ObServerUtils::build_syslog_file_info(self_addr_); + OB_LOGGER.set_new_file_info(syslog_file_info); + LOG_INFO("Build basic information for each syslog file", "info", syslog_file_info); + // initialize self address obrpc::ObRpcProxy::myaddr_ = self_addr_; LOG_INFO("my addr", K_(self_addr)); @@ -1566,6 +1594,7 @@ int ObServer::init_pre_setting() LOG_ERROR("init task controller fail", KR(ret)); } else { ObTaskController::get().set_log_rate_limit(config_.syslog_io_bandwidth_limit); + ObTaskController::get().set_diag_per_error_limit(config_.diag_syslog_per_error_limit); ObTaskController::get().switch_task(share::ObTaskType::GENERIC); } } @@ -2281,7 +2310,7 @@ static int64_t nic_rate_parse(const char *str, bool &valid) value <<= 30; } else { valid = false; - LOG_ERROR("parse nic rate error", K(str), K(p_unit)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "parse nic rate error", K(str), K(p_unit)); } } return value; diff --git a/src/observer/ob_server_reload_config.cpp b/src/observer/ob_server_reload_config.cpp index e80569c65..5fc1d4a39 100644 --- a/src/observer/ob_server_reload_config.cpp +++ b/src/observer/ob_server_reload_config.cpp @@ -128,6 +128,12 @@ int ObServerReloadConfig::operator()() { GMEMCONF.reload_config(GCONF); const int64_t limit_memory = GMEMCONF.get_server_memory_limit(); + OB_LOGGER.set_info_as_wdiag(GET_MIN_CLUSTER_VERSION() < CLUSTER_VERSION_4_1_0_0); + // reload log config again after get MIN_CLUSTER_VERSION + if (OB_FAIL(ObReloadConfig::operator()())) { + real_ret = ret; + LOG_WARN("ObReloadConfig operator() failed", K(ret)); + } const int64_t reserved_memory = GCONF.cache_wash_threshold; const int64_t reserved_urgent_memory = GCONF.memory_reserved; LOG_INFO("set limit memory", K(limit_memory)); @@ -247,6 +253,8 @@ int ObServerReloadConfig::operator()() // syslog bandwidth limitation share::ObTaskController::get().set_log_rate_limit( GCONF.syslog_io_bandwidth_limit.get_value()); + share::ObTaskController::get().set_diag_per_error_limit( + GCONF.diag_syslog_per_error_limit.get_value()); get_unis_global_compat_version() = GET_MIN_CLUSTER_VERSION(); lib::g_runtime_enabled = true; diff --git a/src/observer/ob_server_schema_updater.cpp b/src/observer/ob_server_schema_updater.cpp index 7f93eb9f3..4fa010944 100644 --- a/src/observer/ob_server_schema_updater.cpp +++ b/src/observer/ob_server_schema_updater.cpp @@ -167,7 +167,7 @@ int ObServerSchemaUpdater::init(const common::ObAddr &host, ObMultiVersionSchema void ObServerSchemaUpdater::stop() { if (!inited_) { - LOG_WARN("not init"); + LOG_WARN_RET(OB_NOT_INIT, "not init"); } else { task_queue_.stop(); } @@ -176,7 +176,7 @@ void ObServerSchemaUpdater::stop() void ObServerSchemaUpdater::wait() { if (!inited_) { - LOG_WARN("not init"); + LOG_WARN_RET(OB_NOT_INIT, "not init"); } else { task_queue_.wait(); } diff --git a/src/observer/ob_server_struct.cpp b/src/observer/ob_server_struct.cpp index 0838a9763..ca52ab428 100644 --- a/src/observer/ob_server_struct.cpp +++ b/src/observer/ob_server_struct.cpp @@ -152,7 +152,7 @@ ObUseWeakGuard::ObUseWeakGuard() tsi_value->inited_ = true; tsi_value->did_use_weak_ = GCTX.is_standby_cluster_and_started();; } else { - LOG_ERROR("tsi value is NULL"); + LOG_ERROR_RET(OB_ALLOCATE_MEMORY_FAILED, "tsi value is NULL"); } } @@ -169,7 +169,7 @@ bool ObUseWeakGuard::did_use_weak() bool use_weak = false; auto *tsi_value = GET_TSI(TSIUseWeak); if (NULL == tsi_value) { - LOG_ERROR("tsi value is NULL"); + LOG_ERROR_RET(OB_ALLOCATE_MEMORY_FAILED, "tsi value is NULL"); use_weak = GCTX.is_standby_cluster_and_started(); } else if (tsi_value->inited_) { use_weak = tsi_value->did_use_weak_; diff --git a/src/observer/ob_server_utils.cpp b/src/observer/ob_server_utils.cpp index 4ba6562ef..5cf12a4b0 100644 --- a/src/observer/ob_server_utils.cpp +++ b/src/observer/ob_server_utils.cpp @@ -15,6 +15,8 @@ #include "observer/ob_server_utils.h" #include "observer/ob_server_struct.h" #include "storage/ob_file_system_router.h" +#include +#include "share/ob_version.h" namespace oceanbase { @@ -227,6 +229,51 @@ int ObServerUtils::check_slog_data_binding( return ret; } +const char *ObServerUtils::build_syslog_file_info(const common::ObAddr &addr) +{ + int ret = OB_SUCCESS; + const static int64_t max_info_len = 512; + static char info[max_info_len]; + + // self address + const char *self_addr = addr.is_valid() ? to_cstring(addr) : ""; + + // OS info + struct utsname uts; + if (0 != ::uname(&uts)) { + ret = OB_ERR_SYS; + LOG_WARN("call uname failed"); + } + + // time zone info + int gmtoff_hour = 0; + int gmtoff_minute = 0; + if (OB_SUCC(ret)) { + time_t t = time(NULL); + struct tm lt; + if (NULL == localtime_r(&t, <)) { + ret = OB_ERR_SYS; + LOG_WARN("call localtime failed"); + } else { + gmtoff_hour = (std::abs(lt.tm_gmtoff) / 3600) * (lt.tm_gmtoff < 0 ? -1 : 1); + gmtoff_minute = std::abs(lt.tm_gmtoff) % 3600 / 60; + } + } + + if (OB_SUCC(ret)) { + int n = snprintf(info, max_info_len, + "address: %s, observer version: %s, revision: %s, " + "sysname: %s, os release: %s, machine: %s, tz GMT offset: %02d:%02d", + self_addr, PACKAGE_STRING, build_version(), + uts.sysname, uts.release, uts.machine, gmtoff_hour, gmtoff_minute); + if (n <= 0) { + ret = OB_ERR_SYS; + LOG_WARN("snprintf failed"); + } + } + + return OB_SUCCESS == ret ? info : nullptr; +} } // namespace observer } // namespace oceanbase diff --git a/src/observer/ob_server_utils.h b/src/observer/ob_server_utils.h index e113fa78d..70b430d6b 100644 --- a/src/observer/ob_server_utils.h +++ b/src/observer/ob_server_utils.h @@ -19,6 +19,10 @@ namespace oceanbase { +namespace common +{ +class ObAddr; +} using common::ObIAllocator; using common::ObString; @@ -49,6 +53,15 @@ public: int64_t& log_disk_percentage); static int check_slog_data_binding(const char *sstable_dir, const char *slog_dir); + + // Build info for syslog files which is logged when new file created. + // The following infors are included: + // - self address + // - observer version + // - OS info + // - timezone info + static const char *build_syslog_file_info(const common::ObAddr &addr); + private: static int decide_disk_size(const struct statvfs& svfs, const int64_t suggested_disk_size, diff --git a/src/observer/ob_service.cpp b/src/observer/ob_service.cpp index 239409452..d3183b890 100644 --- a/src/observer/ob_service.cpp +++ b/src/observer/ob_service.cpp @@ -222,6 +222,9 @@ int ObService::init(common::ObMySQLProxy &sql_proxy, inited_ = true; } FLOG_INFO("[OBSERVICE_NOTICE] init ob_service finish", KR(ret), K_(inited)); + if (OB_FAIL(ret)) { + LOG_DBA_ERROR(OB_ERR_OBSERVICE_START, "msg", "observice init() has failure", KR(ret)); + } return ret; } @@ -270,6 +273,9 @@ int ObService::start() LOG_ERROR("start meta table checker failed", KR(ret)); } FLOG_INFO("[OBSERVICE_NOTICE] start ob_service end", KR(ret)); + if (OB_FAIL(ret)) { + LOG_DBA_ERROR(OB_ERR_OBSERVICE_START, "msg", "observice start() has failure", KR(ret)); + } return ret; } @@ -284,7 +290,7 @@ void ObService::stop() { FLOG_INFO("[OBSERVICE_NOTICE] start to stop observice"); if (!inited_) { - FLOG_WARN("ob_service not init", K_(inited)); + FLOG_WARN_RET(OB_NOT_INIT, "ob_service not init", K_(inited)); } else { FLOG_INFO("begin to add server event"); SERVER_EVENT_ADD("observer", "stop"); @@ -316,7 +322,7 @@ void ObService::wait() { FLOG_INFO("[OBSERVICE_NOTICE] wait ob_service begin"); if (!inited_) { - LOG_WARN("ob_service not init", K_(inited)); + LOG_WARN_RET(OB_NOT_INIT, "ob_service not init", K_(inited)); } else { FLOG_INFO("begin to wait schema updater"); schema_updater_.wait(); @@ -1728,7 +1734,7 @@ bool ObService::is_heartbeat_expired() const { bool bret = false; // returns false on error if (OB_UNLIKELY(!inited_)) { - LOG_WARN("not init"); + LOG_WARN_RET(OB_NOT_INIT, "not init"); } else { bret = !lease_state_mgr_.is_valid_heartbeat(); } @@ -1740,7 +1746,7 @@ bool ObService::is_svr_lease_valid() const // Determine if local lease is valid in OFS mode bool bret = false; if (OB_UNLIKELY(!inited_)) { - LOG_WARN("not init"); + LOG_WARN_RET(OB_NOT_INIT, "not init"); } else { bret = lease_state_mgr_.is_valid_lease(); } diff --git a/src/observer/ob_srv_xlator.cpp b/src/observer/ob_srv_xlator.cpp index f7cda9271..72b41ae0e 100644 --- a/src/observer/ob_srv_xlator.cpp +++ b/src/observer/ob_srv_xlator.cpp @@ -102,10 +102,10 @@ using namespace oceanbase::obmysql; void ObSrvRpcXlator::register_rpc_process_function(int pcode, RPCProcessFunc func) { if(pcode >= MAX_PCODE || pcode < 0) { - SERVER_LOG(ERROR, "(SHOULD NEVER HAPPEN) input pcode is out of range in server rpc xlator", K(pcode)); + SERVER_LOG_RET(ERROR, OB_ERROR, "(SHOULD NEVER HAPPEN) input pcode is out of range in server rpc xlator", K(pcode)); ob_abort(); } else if (funcs_[pcode] != nullptr) { - SERVER_LOG(ERROR, "(SHOULD NEVER HAPPEN) duplicate pcode in server rpc xlator", K(pcode)); + SERVER_LOG_RET(ERROR, OB_ERROR, "(SHOULD NEVER HAPPEN) duplicate pcode in server rpc xlator", K(pcode)); ob_abort(); } else { funcs_[pcode] = func; diff --git a/src/observer/omt/ob_multi_tenant.cpp b/src/observer/omt/ob_multi_tenant.cpp index 62b2134bc..dea02b0c1 100644 --- a/src/observer/omt/ob_multi_tenant.cpp +++ b/src/observer/omt/ob_multi_tenant.cpp @@ -1986,7 +1986,7 @@ void ObMultiTenant::run1() set_group_sug_token(); for (TenantList::iterator it = tenants_.begin(); it != tenants_.end(); it++) { if (OB_ISNULL(*it)) { - LOG_ERROR("unexpected condition"); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "unexpected condition"); } else if ((*it)->has_stopped()) { // skip stopped tenant } else { diff --git a/src/observer/omt/ob_tenant.cpp b/src/observer/omt/ob_tenant.cpp index 3d81dc03d..f7ac370e3 100644 --- a/src/observer/omt/ob_tenant.cpp +++ b/src/observer/omt/ob_tenant.cpp @@ -62,7 +62,7 @@ using namespace oceanbase::obrpc; void MultiLevelReqCnt::atomic_inc(const int32_t level) { if (level < 0 || level >= MAX_REQUEST_LEVEL) { - LOG_WARN("unexpected level", K(level)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "unexpected level", K(level)); } else { ATOMIC_INC(&cnt_[level]); } @@ -208,7 +208,7 @@ void ObPxPool::handle(ObLink *task) { Task *t = static_cast(task); if (t == nullptr) { - LOG_ERROR("px task is invalid"); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "px task is invalid"); } else { t->func_(); OB_DELETE(Task, ObModIds::OMT_TENANT, t); @@ -905,7 +905,7 @@ void ObTenant::wait() } ob_usleep(10L * 1000L); } - LOG_WARN("start remove nesting", K(nesting_workers_.get_size()), K_(id)); + LOG_WARN_RET(OB_SUCCESS,"start remove nesting", K(nesting_workers_.get_size()), K_(id)); while (nesting_workers_.get_size() > 0) { int ret = OB_SUCCESS; if (OB_SUCC(workers_lock_.trylock())) { @@ -930,11 +930,11 @@ void ObTenant::wait() } ob_usleep(10L * 1000L); } - LOG_WARN("finish remove nesting", K(nesting_workers_.get_size()), K_(id)); + LOG_WARN_RET(OB_SUCCESS, "finish remove nesting", K(nesting_workers_.get_size()), K_(id)); - LOG_WARN("start remove group_map", K_(id)); + LOG_WARN_RET(OB_SUCCESS, "start remove group_map", K_(id)); group_map_.wait_group(); - LOG_WARN("finish remove group_map", K_(id)); + LOG_WARN_RET(OB_SUCCESS, "finish remove group_map", K_(id)); if (!is_virtual_tenant_id(id_) && !wait_mtl_finished_) { ObTenantSwitchGuard guard(this); @@ -954,7 +954,7 @@ void ObTenant::destroy() } if (cgroup_ctrl_.is_valid() && OB_SUCCESS != (tmp_ret = cgroup_ctrl_.remove_tenant_cgroup(id_))) { - LOG_WARN("remove tenant cgroup failed", K(tmp_ret), K_(id)); + LOG_WARN_RET(tmp_ret, "remove tenant cgroup failed", K(tmp_ret), K_(id)); } worker_pool_.destroy(); group_map_.destroy_group(); @@ -983,7 +983,7 @@ void ObTenant::set_unit_max_cpu(double cpu) int32_t cfs_quota_us = static_cast(default_cfs_period_us * cpu); if (cgroup_ctrl_.is_valid() && OB_SUCCESS != (tmp_ret = cgroup_ctrl_.set_cpu_cfs_quota(cfs_quota_us, id_))) { - LOG_WARN("set cpu cfs quota failed", K(tmp_ret), K_(id), K(cfs_quota_us)); + LOG_WARN_RET(tmp_ret, "set cpu cfs quota failed", K(tmp_ret), K_(id), K(cfs_quota_us)); } } @@ -995,7 +995,7 @@ void ObTenant::set_unit_min_cpu(double cpu) int32_t cpu_shares = static_cast(default_cpu_shares * cpu); if (cgroup_ctrl_.is_valid() && OB_SUCCESS != (tmp_ret = cgroup_ctrl_.set_cpu_shares(cpu_shares, id_))) { - LOG_WARN("set cpu shares failed", K(tmp_ret), K_(id), K(cpu_shares)); + LOG_WARN_RET(tmp_ret, "set cpu shares failed", K(tmp_ret), K_(id), K(cpu_shares)); } } diff --git a/src/observer/omt/ob_tenant_config.cpp b/src/observer/omt/ob_tenant_config.cpp index 27f056138..6b773bc66 100644 --- a/src/observer/omt/ob_tenant_config.cpp +++ b/src/observer/omt/ob_tenant_config.cpp @@ -60,7 +60,7 @@ void ObTenantConfig::print() const ObConfigContainer::const_iterator it = container_.begin(); for (; it != container_.end(); ++it) { if (OB_ISNULL(it->second)) { - OB_LOG(WARN, "config item is null", "name", it->first.str()); + OB_LOG_RET(WARN, OB_ERR_UNEXPECTED, "config item is null", "name", it->first.str()); } else { _OB_LOG(INFO, "| %-36s = %s", it->first.str(), it->second->str()); } diff --git a/src/observer/omt/ob_th_worker.cpp b/src/observer/omt/ob_th_worker.cpp index e16823946..789f88436 100644 --- a/src/observer/omt/ob_th_worker.cpp +++ b/src/observer/omt/ob_th_worker.cpp @@ -192,7 +192,7 @@ ObThWorker::Status ObThWorker::check_qtime_throttle() (get_query_start_time() - get_query_enqueue_time() >= static_cast(st_metrics.queue_time_ * 1000000L))) { st = WS_OUT_OF_THROTTLE; - LOG_WARN("query is throttled", + LOG_WARN_RET(OB_ERROR, "query is throttled", "queue_time_threshold(s)", st_metrics.queue_time_, "query_enqueue_time", get_query_enqueue_time(), "query_start_time", get_query_start_time()); @@ -215,7 +215,7 @@ ObThWorker::Status ObThWorker::check_throttle() (curr_time - get_query_start_time() >= static_cast(st_metrics.rt_ * 1000000L))) { st = WS_OUT_OF_THROTTLE; - LOG_WARN("query is throttled", + LOG_WARN_RET(OB_ERR_UNEXPECTED, "query is throttled", "rt_threshold(s)", st_metrics.rt_, "query_start_time", get_query_start_time(), "current_time", curr_time); diff --git a/src/observer/omt/ob_worker_processor.cpp b/src/observer/omt/ob_worker_processor.cpp index e748b9f9b..6ea7a1914 100644 --- a/src/observer/omt/ob_worker_processor.cpp +++ b/src/observer/omt/ob_worker_processor.cpp @@ -95,8 +95,13 @@ int ObWorkerProcessor::process(rpc::ObRequest &req) = static_cast(req.get_packet()); NG_TRACE_EXT(start_rpc, OB_ID(addr), RPC_REQ_OP.get_peer(&req), OB_ID(pcode), packet.get_pcode()); ObCurTraceId::set(req.generate_trace_id(myaddr_)); - if (OB_LOG_LEVEL_NONE != packet.get_log_level() && enable_trace_log) { - ObThreadLogLevelUtils::init(packet.get_log_level()); + // Do not set thread local log level while log level upgrading (OB_LOGGER.is_info_as_wdiag) + if (OB_LOGGER.is_info_as_wdiag()) { + ObThreadLogLevelUtils::clear(); + } else { + if (enable_trace_log && OB_LOG_LEVEL_NONE != packet.get_log_level()) { + ObThreadLogLevelUtils::init(packet.get_log_level()); + } } } else if (ObRequest::OB_MYSQL == req_type) { NG_TRACE_EXT(start_sql, OB_ID(addr), SQL_REQ_OP.get_peer(&req)); diff --git a/src/observer/report/ob_ls_table_updater.cpp b/src/observer/report/ob_ls_table_updater.cpp index 2616eb8c9..1a8c70740 100644 --- a/src/observer/report/ob_ls_table_updater.cpp +++ b/src/observer/report/ob_ls_table_updater.cpp @@ -85,7 +85,7 @@ bool ObLSTableUpdateTask::operator ==(const ObLSTableUpdateTask &other) const { bool equal = false; if (!is_valid() || !other.is_valid()) { - LOG_WARN("invalid argument", "self", *this, K(other)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "invalid argument", "self", *this, K(other)); } else if (this == &other) { // same pointer equal = true; } else { @@ -413,10 +413,10 @@ void ObLSTableUpdater::throttle( if (ls_id.is_sys_ls()) { // won't limit update for sys log stream sleep_us = 0; - LOG_WARN("detected slow update for sys table", K(ls_id)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "detected slow update for sys table", K(ls_id)); } else { sleep_us = MIN(RETRY_INTERVAL_US, (execute_time_us - SLOW_UPDATE_TIME_US)); - LOG_WARN("detected slow update, may be too many concurrent updating", + LOG_WARN_RET(OB_ERR_UNEXPECTED, "detected slow update, may be too many concurrent updating", K(ls_id), K(sleep_us)); } } diff --git a/src/observer/report/ob_tablet_table_updater.cpp b/src/observer/report/ob_tablet_table_updater.cpp index e5b2279b1..e45b71ef1 100644 --- a/src/observer/report/ob_tablet_table_updater.cpp +++ b/src/observer/report/ob_tablet_table_updater.cpp @@ -146,7 +146,7 @@ void ObTabletTableUpdateTask::check_task_status() const const int64_t safe_interval = TABLET_CHECK_INTERVAL; // need to print a WARN log if this task is not executed correctly since two minuts ago if (now - add_timestamp_ > safe_interval) { - FLOG_WARN("tablet table update task cost too much time to execute", + FLOG_WARN_RET(OB_ERR_UNEXPECTED, "tablet table update task cost too much time to execute", K(*this), K(safe_interval), "cost_time", now - add_timestamp_); } } diff --git a/src/observer/table/ob_htable_filters.cpp b/src/observer/table/ob_htable_filters.cpp index 3d33ba633..6b2baecd1 100644 --- a/src/observer/table/ob_htable_filters.cpp +++ b/src/observer/table/ob_htable_filters.cpp @@ -161,7 +161,7 @@ int RegexStringComparator::compare_to(const ObString &b) { // @todo UNUSED(b); - LOG_WARN("regexstring comparator not supported yet"); + LOG_WARN_RET(OB_NOT_SUPPORTED, "regexstring comparator not supported yet"); return 0; } @@ -172,7 +172,7 @@ int SubStringComparator::compare_to(const ObString &b) char *a_dup = strndupa(comparator_value_.ptr(), comparator_value_.length()); char *b_dup = strndupa(b.ptr(), b.length()); if (NULL == a_dup || NULL == b_dup) { - LOG_WARN("failed to dup string"); + LOG_WARN_RET(common::OB_ALLOCATE_MEMORY_FAILED, "failed to dup string"); } else { char* p = strcasestr(b_dup, a_dup); cmp_ret = (NULL == p) ? 1: 0; @@ -557,7 +557,7 @@ Filter::ReturnCode FilterListOR::merge_return_code(ReturnCode rc, ReturnCode loc ret_code = ReturnCode::SKIP; break; default: - LOG_ERROR("BUG"); + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "BUG"); break; } } @@ -585,7 +585,7 @@ Filter::ReturnCode FilterListOR::merge_return_code(ReturnCode rc, ReturnCode loc ret_code = ReturnCode::SKIP; break; default: - LOG_ERROR("BUG"); + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "BUG"); break; } } @@ -607,13 +607,13 @@ Filter::ReturnCode FilterListOR::merge_return_code(ReturnCode rc, ReturnCode loc ret_code = ReturnCode::SEEK_NEXT_USING_HINT; break; default: - LOG_ERROR("BUG", K(rc)); + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "BUG", K(rc)); break; } } break; default: - LOG_ERROR("BUG", K(local_rc)); + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "BUG", K(local_rc)); break; } // end switch return ret_code; diff --git a/src/observer/table/ob_rpc_async_response.h b/src/observer/table/ob_rpc_async_response.h index 3bf1631b5..d0538b2b4 100644 --- a/src/observer/table/ob_rpc_async_response.h +++ b/src/observer/table/ob_rpc_async_response.h @@ -52,7 +52,7 @@ char *ObRpcAsyncResponse::easy_alloc(int64_t size) const { void *buf = NULL; if (OB_ISNULL(req_)) { - RPC_OBRPC_LOG(ERROR, "request is invalid", KP(req_)); + RPC_OBRPC_LOG_RET(ERROR, OB_INVALID_ARGUMENT, "request is invalid", KP(req_)); } else { buf = RPC_REQ_OP.alloc_response_buffer(req_, static_cast(size)); } diff --git a/src/observer/table/ob_table_api_row_iterator.cpp b/src/observer/table/ob_table_api_row_iterator.cpp index 0346b72aa..f19a701ad 100644 --- a/src/observer/table/ob_table_api_row_iterator.cpp +++ b/src/observer/table/ob_table_api_row_iterator.cpp @@ -742,7 +742,7 @@ ObTableApiUpdateRowIterator::~ObTableApiUpdateRowIterator() access_service_->revert_scan_iter(scan_iter_); scan_iter_ = NULL; } else { - LOG_ERROR("The access service is NULL, but the scan iter is NOT NULL!"); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "The access service is NULL, but the scan iter is NOT NULL!"); } } } @@ -754,7 +754,7 @@ void ObTableApiUpdateRowIterator::reset() access_service_->revert_scan_iter(scan_iter_); scan_iter_ = NULL; } else { - LOG_ERROR("The access service is NULL, but the scan iter is NOT NULL!"); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "The access service is NULL, but the scan iter is NOT NULL!"); } } scan_param_.destroy(); @@ -1250,7 +1250,7 @@ ObTableApiDeleteRowIterator::~ObTableApiDeleteRowIterator() access_service_->revert_scan_iter(scan_iter_); scan_iter_ = NULL; } else { - LOG_ERROR("The access service is NULL, but the scan iter is NOT NULL!"); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "The access service is NULL, but the scan iter is NOT NULL!"); } } } @@ -1262,7 +1262,7 @@ void ObTableApiDeleteRowIterator::reset() access_service_->revert_scan_iter(scan_iter_); scan_iter_ = NULL; } else { - LOG_ERROR("The access service is NULL, but the scan iter is NOT NULL!"); + LOG_ERROR_RET(OB_INVALID_ERROR, "The access service is NULL, but the scan iter is NOT NULL!"); } } scan_param_.destroy(); @@ -1415,7 +1415,7 @@ ObTableApiGetRowIterator::~ObTableApiGetRowIterator() access_service_->revert_scan_iter(scan_iter_); scan_iter_ = NULL; } else { - LOG_ERROR("The access service is NULL, but the scan iter is NOT NULL!"); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "The access service is NULL, but the scan iter is NOT NULL!"); } } } @@ -1429,7 +1429,7 @@ void ObTableApiGetRowIterator::reset() access_service_->revert_scan_iter(scan_iter_); scan_iter_ = NULL; } else { - LOG_ERROR("The access service is NULL, but the scan iter is NOT NULL!"); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "The access service is NULL, but the scan iter is NOT NULL!"); } } ObTableApiRowIterator::reset(); diff --git a/src/observer/table/ob_table_query_sync_processor.cpp b/src/observer/table/ob_table_query_sync_processor.cpp index 935dec213..33bf18210 100644 --- a/src/observer/table/ob_table_query_sync_processor.cpp +++ b/src/observer/table/ob_table_query_sync_processor.cpp @@ -102,7 +102,7 @@ ObQuerySyncMgr &ObQuerySyncMgr::get_instance() instance = OB_NEW(ObQuerySyncMgr, ObModIds::TABLE_PROC); if (OB_LIKELY(OB_NOT_NULL(instance))) { if (common::OB_SUCCESS != instance->init()) { - LOG_WARN("failed to init ObQuerySyncMgr instance"); + LOG_WARN_RET(OB_ERROR, "failed to init ObQuerySyncMgr instance"); OB_DELETE(ObQuerySyncMgr, ObModIds::TABLE_PROC, instance); instance = NULL; ATOMIC_BCAS(&once_, 1, 0); diff --git a/src/observer/table/ob_table_rpc_processor_util.h b/src/observer/table/ob_table_rpc_processor_util.h index 4717a1d9f..cd91351b4 100644 --- a/src/observer/table/ob_table_rpc_processor_util.h +++ b/src/observer/table/ob_table_rpc_processor_util.h @@ -251,7 +251,7 @@ public: default: SET_AUDIT_SQL_STRING(unknown); - SERVER_LOG(WARN, "unknow process type", K(process_type), K(elapsed_us), K(rows)); + SERVER_LOG_RET(WARN, OB_ERR_UNEXPECTED, "unknow process type", K(process_type), K(elapsed_us), K(rows)); break; } } diff --git a/src/observer/table/ob_table_service.cpp b/src/observer/table/ob_table_service.cpp index 5f4bad132..8412f5e5a 100644 --- a/src/observer/table/ob_table_service.cpp +++ b/src/observer/table/ob_table_service.cpp @@ -142,4 +142,4 @@ int ObNormalTableQueryResultIterator::get_next_result(table::ObTableQueryResult bool ObNormalTableQueryResultIterator::has_more_result() const { return has_more_rows_; -} \ No newline at end of file +} diff --git a/src/observer/table/ob_table_session_pool.cpp b/src/observer/table/ob_table_session_pool.cpp index 00cd634a3..02cf2cc61 100644 --- a/src/observer/table/ob_table_session_pool.cpp +++ b/src/observer/table/ob_table_session_pool.cpp @@ -56,7 +56,7 @@ void ObTableApiSessPoolMgr::destroy() it != sess_pool_map_.end(); it++) { if (OB_ISNULL(it->second)) { - BACKTRACE(ERROR, true, "session pool is null"); + BACKTRACE_RET(ERROR, OB_ERR_UNEXPECTED, true, "session pool is null"); } else { it->second->~ObTableApiSessPool(); ob_free(it->second); @@ -293,7 +293,7 @@ void ObTableApiSessPool::destroy() { if (is_inited_) { if (OB_SUCCESS != evict_all_session()) { - LOG_WARN("fail to evict all seesion"); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "fail to evict all seesion"); } is_inited_ = false; } @@ -570,9 +570,9 @@ void ObTableApiSessNodeVal::give_back_to_free_list() ObLockGuard guard(owner_node_->sess_lists_.lock_); ObTableApiSessNodeVal *rm_sess = nullptr; if (OB_ISNULL(rm_sess = (used_list.remove(this)))) { - LOG_WARN("fail to remove sess from used list", K(*rm_sess)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "fail to remove sess from used list", K(*rm_sess)); } else if (false == (free_list.add_last(rm_sess))) { - LOG_WARN("fail to add sess val to free list", K(*rm_sess)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "fail to add sess val to free list", K(*rm_sess)); } } } diff --git a/src/observer/table_load/ob_table_load_general_table_compactor.cpp b/src/observer/table_load/ob_table_load_general_table_compactor.cpp index 4e18a1af2..7daf811c2 100644 --- a/src/observer/table_load/ob_table_load_general_table_compactor.cpp +++ b/src/observer/table_load/ob_table_load_general_table_compactor.cpp @@ -255,7 +255,7 @@ int ObTableLoadGeneralTableCompactor::start() void ObTableLoadGeneralTableCompactor::stop() { - LOG_WARN("LOAD TABLE COMPACT STOP"); + LOG_WARN_RET(OB_SUCCESS, "LOAD TABLE COMPACT STOP"); is_stop_ = true; // 遍历合并中的任务队列, 调用stop ObMutexGuard guard(mutex_); diff --git a/src/observer/table_load/ob_table_load_merger.cpp b/src/observer/table_load/ob_table_load_merger.cpp index 0833feca8..100b8984c 100644 --- a/src/observer/table_load/ob_table_load_merger.cpp +++ b/src/observer/table_load/ob_table_load_merger.cpp @@ -156,7 +156,7 @@ int ObTableLoadMerger::start() void ObTableLoadMerger::stop() { - LOG_WARN("LOAD MERGE STOP"); + LOG_WARN_RET(OB_SUCCESS, "LOAD MERGE STOP"); is_stop_ = true; // 停止table合并 table_compact_ctx_.stop(); diff --git a/src/observer/virtual_table/ob_all_virtual_sys_parameter_stat.cpp b/src/observer/virtual_table/ob_all_virtual_sys_parameter_stat.cpp index 4791930f3..d871a5d01 100644 --- a/src/observer/virtual_table/ob_all_virtual_sys_parameter_stat.cpp +++ b/src/observer/virtual_table/ob_all_virtual_sys_parameter_stat.cpp @@ -50,7 +50,7 @@ void ObAllVirtualSysParameterStat::reset() if (tenant_config_.is_valid()) { tenant_iter_ = tenant_config_->get_container().begin(); } else { - SERVER_LOG(ERROR, "failed to get tenant config"); + SERVER_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "failed to get tenant config"); } } diff --git a/src/observer/virtual_table/ob_all_virtual_tx_data_table.cpp b/src/observer/virtual_table/ob_all_virtual_tx_data_table.cpp index 0152c64d2..0dbf0343c 100644 --- a/src/observer/virtual_table/ob_all_virtual_tx_data_table.cpp +++ b/src/observer/virtual_table/ob_all_virtual_tx_data_table.cpp @@ -214,7 +214,7 @@ void ObAllVirtualTxDataTable::prepare_row_data_(ObITable *tx_data_table, RowData row_data.min_tx_scn_ = tx_data_sstable->get_filled_tx_scn(); row_data.max_tx_scn_ = tx_data_sstable->get_key().scn_range_.end_scn_; } else { - STORAGE_LOG(WARN, "Iterate an invalid table while select virtual tx data table."); + STORAGE_LOG_RET(WARN, OB_ERR_UNEXPECTED, "Iterate an invalid table while select virtual tx data table."); } } diff --git a/src/observer/virtual_table/ob_virtual_sql_monitor.cpp b/src/observer/virtual_table/ob_virtual_sql_monitor.cpp index cc81b77e7..5c1327765 100644 --- a/src/observer/virtual_table/ob_virtual_sql_monitor.cpp +++ b/src/observer/virtual_table/ob_virtual_sql_monitor.cpp @@ -53,7 +53,7 @@ void ObVirtualSqlMonitor::reset() { if (NULL != monitor_manager_) { if (OB_SUCCESS != monitor_manager_->revert(&ref_)) { - LOG_WARN("fail to revert ref"); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "fail to revert ref"); } } info_buf_[0] = '\0'; diff --git a/src/pl/ob_pl.cpp b/src/pl/ob_pl.cpp index fa43010fb..60a21b33b 100644 --- a/src/pl/ob_pl.cpp +++ b/src/pl/ob_pl.cpp @@ -194,7 +194,7 @@ void ObPLCtx::reset_obj() int tmp_ret = OB_SUCCESS; for (int64_t i = 0; i < objects_.count(); ++i) { if (OB_SUCCESS != (tmp_ret = ObUserDefinedType::destruct_obj(objects_.at(i)))) { - LOG_WARN("failed to destruct pl object", K(i), K(tmp_ret)); + LOG_WARN_RET(tmp_ret, "failed to destruct pl object", K(i), K(tmp_ret)); } } objects_.reset(); @@ -454,7 +454,7 @@ void ObPLContext::register_after_begin_autonomous_session_for_deadlock_(ObSQLSes } } } else { - DETECT_LOG(WARN, "not register to deadlock", K(last_trans_id), K(now_trans_id)); + DETECT_LOG_RET(WARN, OB_ERR_UNEXPECTED, "not register to deadlock", K(last_trans_id), K(now_trans_id)); } } @@ -3399,7 +3399,7 @@ void ObPLCompileUnit::dump_deleted_log_info(const bool is_debug_log /* = true */ if (is_anon()) { const pl::ObPLFunction *pl_func = dynamic_cast(this); if (OB_ISNULL(pl_func)) { - LOG_ERROR("the plan is null", K(object_id_), + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "the plan is null", K(object_id_), K(tenant_id_), K(added_to_lc_), K(get_ref_count()), diff --git a/src/pl/ob_pl_compile.cpp b/src/pl/ob_pl_compile.cpp index 8f70d2bcd..69085103d 100644 --- a/src/pl/ob_pl_compile.cpp +++ b/src/pl/ob_pl_compile.cpp @@ -502,7 +502,7 @@ int ObPLCompiler::update_schema_object_dep_info(ObPLCompileUnitAST &ast, if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(ret), K(temp_ret)); ret = OB_SUCC(ret) ? temp_ret : ret; } } diff --git a/src/pl/ob_pl_interface_pragma.cpp b/src/pl/ob_pl_interface_pragma.cpp index 73ceead8a..5b890ebd6 100644 --- a/src/pl/ob_pl_interface_pragma.cpp +++ b/src/pl/ob_pl_interface_pragma.cpp @@ -69,7 +69,7 @@ ObPLInterfaceType ObPLInterfaceService::get_type(ObString &name) const { ObPLInterfaceType type = INTERFACE_END; if (OB_SUCCESS != interface_map_.get_refactored(name, type)) { - LOG_WARN("get interface failed", K(name), K(type)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "get interface failed", K(name), K(type)); } return type; } diff --git a/src/pl/ob_pl_stmt.cpp b/src/pl/ob_pl_stmt.cpp index d0e57228d..204b28d37 100644 --- a/src/pl/ob_pl_stmt.cpp +++ b/src/pl/ob_pl_stmt.cpp @@ -515,7 +515,7 @@ bool ObPLRoutineInfo::has_self_param() const for (int64_t i = 0; !bret && i < params_.count(); ++i) { param = params_.at(i); if (OB_ISNULL(param)) { - LOG_WARN("get unexpected null param", K(i)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "get unexpected null param", K(i)); break; } else { bret = bret || param->get_is_self_param(); @@ -532,7 +532,7 @@ int64_t ObPLRoutineInfo::get_self_param_pos() const for (int64_t i = 0; !stop && i < params_.count(); ++i) { param = params_.at(i); if (OB_ISNULL(param)) { - LOG_WARN("get unexpected null param", K(i)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "get unexpected null param", K(i)); break; } else if (param->get_is_self_param()) { pos = i; diff --git a/src/pl/ob_pl_user_type.cpp b/src/pl/ob_pl_user_type.cpp index 912679a70..a3784c286 100644 --- a/src/pl/ob_pl_user_type.cpp +++ b/src/pl/ob_pl_user_type.cpp @@ -39,14 +39,14 @@ namespace pl { int64_t ObUserDefinedType::get_member_count() const { - LOG_WARN("Call virtual func of ObUserDefinedType! May forgot implement in SubClass", K(this)); + LOG_WARN_RET(OB_NOT_SUPPORTED, "Call virtual func of ObUserDefinedType! May forgot implement in SubClass", K(this)); return OB_NOT_SUPPORTED; } const ObPLDataType *ObUserDefinedType::get_member(int64_t i) const { UNUSEDx(i); - LOG_WARN("Call virtual func of ObUserDefinedType! May forgot implement in SubClass", K(this)); + LOG_WARN_RET(OB_NOT_SUPPORTED, "Call virtual func of ObUserDefinedType! May forgot implement in SubClass", K(this)); return NULL; } @@ -70,7 +70,7 @@ int ObUserDefinedType::generate_copy( bool in_notfound, bool in_warning, uint64_t package_id) const { UNUSEDx(generator, ns, allocator, src, dest, in_notfound, in_warning, package_id); - LOG_WARN("Call virtual func of ObUserDefinedType! May forgot implement in SubClass", K(this)); + LOG_WARN_RET(OB_NOT_SUPPORTED, "Call virtual func of ObUserDefinedType! May forgot implement in SubClass", K(this)); return OB_NOT_SUPPORTED; } @@ -78,7 +78,7 @@ int ObUserDefinedType::get_size( const ObPLINS &ns, ObPLTypeSize type, int64_t &size) const { UNUSEDx(ns, type, size); - LOG_WARN("Call virtual func of ObUserDefinedType! May forgot implement in SubClass", K(this)); + LOG_WARN_RET(OB_NOT_SUPPORTED, "Call virtual func of ObUserDefinedType! May forgot implement in SubClass", K(this)); return OB_NOT_SUPPORTED; } @@ -88,7 +88,7 @@ int ObUserDefinedType::init_session_var( common::ObObj &obj) const { UNUSEDx(resolve_ctx, obj_allocator, exec_ctx, default_expr, default_construct, obj); - LOG_WARN("Call virtual func of ObUserDefinedType! May forgot implement in SubClass", K(this)); + LOG_WARN_RET(OB_NOT_SUPPORTED, "Call virtual func of ObUserDefinedType! May forgot implement in SubClass", K(this)); return OB_NOT_SUPPORTED; } @@ -96,7 +96,7 @@ int ObUserDefinedType::free_session_var( const ObPLResolveCtx &resolve_ctx, common::ObIAllocator &obj_allocator, common::ObObj &obj) const { UNUSEDx(resolve_ctx, obj_allocator, obj); - LOG_WARN("Call virtual func of ObUserDefinedType! May forgot implement in SubClass", K(this)); + LOG_WARN_RET(OB_NOT_SUPPORTED, "Call virtual func of ObUserDefinedType! May forgot implement in SubClass", K(this)); return OB_NOT_SUPPORTED; } @@ -104,7 +104,7 @@ int ObUserDefinedType::free_data( const ObPLResolveCtx &resolve_ctx, common::ObIAllocator &data_allocator, void *data) const { UNUSEDx(resolve_ctx, data_allocator, data); - LOG_WARN("Call virtual func of ObUserDefinedType! May forgot implement in SubClass", K(this)); + LOG_WARN_RET(OB_NOT_SUPPORTED, "Call virtual func of ObUserDefinedType! May forgot implement in SubClass", K(this)); return OB_NOT_SUPPORTED; } @@ -112,7 +112,7 @@ int ObUserDefinedType::get_serialize_size( const ObPLResolveCtx &resolve_ctx, char *&src, int64_t &size) const { UNUSEDx(resolve_ctx, src, size); - LOG_WARN("Call virtual func of ObUserDefinedType! May forgot implement in SubClass", K(this)); + LOG_WARN_RET(OB_NOT_SUPPORTED, "Call virtual func of ObUserDefinedType! May forgot implement in SubClass", K(this)); return OB_NOT_SUPPORTED; } @@ -121,7 +121,7 @@ int ObUserDefinedType::serialize( char *&src, char* dst, int64_t dst_len, int64_t &dst_pos) const { UNUSEDx(resolve_ctx, src, dst, dst_len, dst_pos); - LOG_WARN("Call virtual func of ObUserDefinedType! May forgot implement in SubClass", K(this)); + LOG_WARN_RET(OB_NOT_SUPPORTED, "Call virtual func of ObUserDefinedType! May forgot implement in SubClass", K(this)); return OB_NOT_SUPPORTED; } @@ -131,7 +131,7 @@ int ObUserDefinedType::deserialize( const char* src, const int64_t src_len, int64_t &src_pos, char *&dst) const { UNUSEDx(resolve_ctx, allocator, src, src_len, src_pos, dst); - LOG_WARN("Call virtual func of ObUserDefinedType! May forgot implement in SubClass", K(this)); + LOG_WARN_RET(OB_NOT_SUPPORTED, "Call virtual func of ObUserDefinedType! May forgot implement in SubClass", K(this)); return OB_NOT_SUPPORTED; } @@ -144,7 +144,7 @@ int ObUserDefinedType::add_package_routine_schema_param( UNUSEDx( resolve_ctx, block_ns,package_name, param_name, mode, position, level, sequence, routine_info); - LOG_WARN("Call virtual func of ObUserDefinedType! May forgot implement in SubClass", K(this)); + LOG_WARN_RET(OB_NOT_SUPPORTED, "Call virtual func of ObUserDefinedType! May forgot implement in SubClass", K(this)); return OB_NOT_SUPPORTED; } @@ -152,7 +152,7 @@ int ObUserDefinedType::get_all_depended_user_type( const ObPLResolveCtx &resolve_ctx, const ObPLBlockNS ¤t_ns) const { UNUSEDx(resolve_ctx, current_ns); - LOG_WARN("Call virtual func of ObUserDefinedType! May forgot implement in SubClass", K(this)); + LOG_WARN_RET(OB_NOT_SUPPORTED, "Call virtual func of ObUserDefinedType! May forgot implement in SubClass", K(this)); return OB_NOT_SUPPORTED; } @@ -161,7 +161,7 @@ int ObUserDefinedType::init_obj( common::ObObj &obj, int64_t &init_size) const { UNUSEDx(schema_guard, allocator, obj, init_size); - LOG_WARN("Call virtual func of ObUserDefinedType! May forgot implement in SubClass", K(this)); + LOG_WARN_RET(OB_NOT_SUPPORTED, "Call virtual func of ObUserDefinedType! May forgot implement in SubClass", K(this)); return OB_NOT_SUPPORTED; } @@ -171,7 +171,7 @@ int ObUserDefinedType::serialize( char *&src, char *dst, const int64_t dst_len, int64_t &dst_pos) const { UNUSEDx(schema_guard, tz_info, type, src, dst, dst_len, dst_pos); - LOG_WARN("Call virtual func of ObUserDefinedType! May forgot implement in SubClass", K(this)); + LOG_WARN_RET(OB_NOT_SUPPORTED, "Call virtual func of ObUserDefinedType! May forgot implement in SubClass", K(this)); return OB_NOT_SUPPORTED; } @@ -183,14 +183,14 @@ int ObUserDefinedType::deserialize( { UNUSEDx( schema_guard, allocator, charset, cs_type, ncs_type, tz_info, src, dst, dst_len, dst_pos); - LOG_WARN("Call virtual func of ObUserDefinedType! May forgot implement in SubClass", K(this)); + LOG_WARN_RET(OB_NOT_SUPPORTED, "Call virtual func of ObUserDefinedType! May forgot implement in SubClass", K(this)); return OB_NOT_SUPPORTED; } int ObUserDefinedType::convert(ObPLResolveCtx &ctx, ObObj *&src, ObObj *&dst) const { UNUSEDx(ctx, src, dst); - LOG_WARN("Call virtual func of ObUserDefinedType! May forgot implement in SubClass", K(this)); + LOG_WARN_RET(OB_NOT_SUPPORTED, "Call virtual func of ObUserDefinedType! May forgot implement in SubClass", K(this)); return OB_NOT_SUPPORTED; } @@ -1476,7 +1476,7 @@ int ObPLComposite::assign(ObPLComposite *src, ObIAllocator *allocator) } break; default: { - LOG_WARN("unexpected composite to get init size", K(get_type())); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "unexpected composite to get init size", K(get_type())); } } return size; @@ -1496,7 +1496,7 @@ int64_t ObPLComposite::get_init_size() const default: { - LOG_WARN("unexpected composite to get init size", K(get_type())); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "unexpected composite to get init size", K(get_type())); } } return size; @@ -1537,7 +1537,7 @@ void ObPLComposite::print() const } break; default: { - LOG_WARN("unexpected composite to print", K(get_type())); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "unexpected composite to print", K(get_type())); } } } diff --git a/src/pl/pl_cache/ob_pl_cache.cpp b/src/pl/pl_cache/ob_pl_cache.cpp index 13ea4d305..5f90513c5 100644 --- a/src/pl/pl_cache/ob_pl_cache.cpp +++ b/src/pl/pl_cache/ob_pl_cache.cpp @@ -218,7 +218,7 @@ int64_t ObPLObjectValue::get_mem_size() { int64_t value_mem_size = 0; if (OB_ISNULL(pl_routine_obj_)) { - BACKTRACE(ERROR, true, "invalid routine obj"); + BACKTRACE_RET(ERROR, OB_ERR_UNEXPECTED, true, "invalid routine obj"); } else { value_mem_size = pl_routine_obj_->get_mem_size(); } @@ -974,7 +974,7 @@ int64_t ObPLObjectSet::get_mem_size() DLIST_FOREACH_NORET(pl_object_value, object_value_sets_) { if (OB_ISNULL(pl_object_value)) { - BACKTRACE(ERROR, true, "invalid pl_object_value"); + BACKTRACE_RET(ERROR, OB_ERR_UNEXPECTED, true, "invalid pl_object_value"); } else { value_mem_size += pl_object_value->get_mem_size(); } @@ -983,4 +983,4 @@ int64_t ObPLObjectSet::get_mem_size() } } -} \ No newline at end of file +} diff --git a/src/pl/sys_package/ob_dbms_sql.cpp b/src/pl/sys_package/ob_dbms_sql.cpp index 84de5e06d..a7fe6f9eb 100644 --- a/src/pl/sys_package/ob_dbms_sql.cpp +++ b/src/pl/sys_package/ob_dbms_sql.cpp @@ -155,7 +155,7 @@ const ObObjParam *ObDbmsInfo::get_bind_param(const ObString ¶m_name) const } } else { /*do nothing*/ } } else { - LOG_ERROR("BUG!!!: param name is not start with colon", K(param_name)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "BUG!!!: param name is not start with colon", K(param_name)); } } return param_value; diff --git a/src/rootserver/backup/ob_archive_scheduler_service.cpp b/src/rootserver/backup/ob_archive_scheduler_service.cpp index f593d625b..56b470cfa 100644 --- a/src/rootserver/backup/ob_archive_scheduler_service.cpp +++ b/src/rootserver/backup/ob_archive_scheduler_service.cpp @@ -153,7 +153,7 @@ void ObArchiveSchedulerService::run3() FLOG_INFO("ObArchiveSchedulerService run start"); if (IS_NOT_INIT) { tmp_ret = OB_NOT_INIT; - LOG_ERROR("not init", K(tmp_ret)); + LOG_ERROR_RET(tmp_ret, "not init", K(tmp_ret)); } else { while (true) { ++round; @@ -161,16 +161,16 @@ void ObArchiveSchedulerService::run3() FLOG_INFO("start do ObArchiveSchedulerService round", K(round)); if (stop_) { tmp_ret = OB_IN_STOP_STATE; - LOG_WARN("exit for stop state", K(tmp_ret)); + LOG_WARN_RET(tmp_ret, "exit for stop state", K(tmp_ret)); break; } else if (OB_SUCCESS != (tmp_ret = process_())) { - LOG_WARN("failed to do process", K(tmp_ret)); + LOG_WARN_RET(tmp_ret, "failed to do process", K(tmp_ret)); } int64_t checkpoint_interval = 1 * 1000 * 1000L; idling_.set_checkpoint_interval(checkpoint_interval); if (OB_SUCCESS != (tmp_ret = idling_.idle())) { - LOG_WARN("failed to to idling", K(tmp_ret)); + LOG_WARN_RET(tmp_ret, "failed to to idling", K(tmp_ret)); } } is_working_ = false; diff --git a/src/rootserver/backup/ob_backup_lease_service.cpp b/src/rootserver/backup/ob_backup_lease_service.cpp index efa31d37a..6e54dc897 100644 --- a/src/rootserver/backup/ob_backup_lease_service.cpp +++ b/src/rootserver/backup/ob_backup_lease_service.cpp @@ -310,7 +310,7 @@ void ObBackupLeaseService::run1() while(!has_set_stop()) { if (OB_SUCCESS != (tmp_ret = renew_lease_())) { - LOG_WARN("failed to renew lease", K(tmp_ret)); + LOG_WARN_RET(tmp_ret, "failed to renew lease", K(tmp_ret)); } do_idle(tmp_ret); } diff --git a/src/rootserver/backup/ob_backup_task_scheduler.cpp b/src/rootserver/backup/ob_backup_task_scheduler.cpp index 3d60296d5..1083862e1 100644 --- a/src/rootserver/backup/ob_backup_task_scheduler.cpp +++ b/src/rootserver/backup/ob_backup_task_scheduler.cpp @@ -64,10 +64,10 @@ void ObBackupTaskSchedulerQueue::reset() ObBackupScheduleTask *t = wait_list_.remove_first(); if (NULL != t) { if (OB_SUCCESS != (tmp_ret = clean_tenant_ref_(t->get_tenant_id()))) { - LOG_WARN("fail to clean tenant ref", K(tmp_ret), KPC(t)); + LOG_WARN_RET(tmp_ret, "fail to clean tenant ref", K(tmp_ret), KPC(t)); } if (OB_SUCCESS != (tmp_ret = clean_task_map(t->get_task_key()))) { - LOG_WARN("fail to clean task map", K(tmp_ret), KPC(t)); + LOG_WARN_RET(tmp_ret, "fail to clean task map", K(tmp_ret), KPC(t)); } t->~ObBackupScheduleTask(); task_allocator_.free(t); @@ -78,13 +78,13 @@ void ObBackupTaskSchedulerQueue::reset() ObBackupScheduleTask *t = schedule_list_.remove_first(); if (NULL != t) { if (OB_SUCCESS != (tmp_ret = clean_server_ref_(t->get_dst(), t->get_type()))) { - LOG_WARN("fail to clean server ref", K(tmp_ret), KPC(t)); + LOG_WARN_RET(tmp_ret, "fail to clean server ref", K(tmp_ret), KPC(t)); } if (OB_SUCCESS != (tmp_ret = clean_tenant_ref_(t->get_tenant_id()))) { - LOG_WARN("fail to clean tenant ref", K(tmp_ret), KPC(t)); + LOG_WARN_RET(tmp_ret, "fail to clean tenant ref", K(tmp_ret), KPC(t)); } if (OB_SUCCESS != (tmp_ret = clean_task_map(t->get_task_key()))) { - LOG_WARN("fail to clean task map", K(tmp_ret), KPC(t)); + LOG_WARN_RET(tmp_ret, "fail to clean task map", K(tmp_ret), KPC(t)); } t->~ObBackupScheduleTask(); task_allocator_.free(t); @@ -1120,7 +1120,7 @@ void ObBackupTaskScheduler::stop() int tmp_ret = OB_SUCCESS; if (IS_NOT_INIT) { tmp_ret = OB_NOT_INIT; - LOG_WARN("not init", K(tmp_ret)); + LOG_WARN_RET(tmp_ret, "not init", K(tmp_ret)); } else { ObRsReentrantThread::stop(); idling_.wakeup(); @@ -1147,7 +1147,7 @@ void ObBackupTaskScheduler::wakeup() int tmp_ret = OB_SUCCESS; if (!is_inited_) { tmp_ret = OB_NOT_INIT; - LOG_WARN("not init", K(tmp_ret)); + LOG_WARN_RET(tmp_ret, "not init", K(tmp_ret)); } else { idling_.wakeup(); } @@ -1440,7 +1440,7 @@ void ObBackupTaskScheduler::dump_statistics_(int64_t &last_dump_time) // record scheduler execution log periodically last_dump_time = now; if (OB_SUCCESS != (tmp_ret = queue_.dump_statistics())) { - LOG_WARN("fail to dump statistics", K(tmp_ret)); + LOG_WARN_RET(tmp_ret, "fail to dump statistics", K(tmp_ret)); } } } diff --git a/src/rootserver/ddl_task/ob_column_redefinition_task.cpp b/src/rootserver/ddl_task/ob_column_redefinition_task.cpp index 96fadff17..f1204ff08 100644 --- a/src/rootserver/ddl_task/ob_column_redefinition_task.cpp +++ b/src/rootserver/ddl_task/ob_column_redefinition_task.cpp @@ -67,6 +67,7 @@ int ObColumnRedefinitionTask::init(const uint64_t tenant_id, const int64_t task_ task_id_ = task_id; parallelism_ = parallelism; execution_id_ = 1L; + start_time_ = ObTimeUtility::current_time(); if (OB_FAIL(init_ddl_task_monitor_info(&alter_table_arg_.alter_table_schema_))) { LOG_WARN("init ddl task monitor info failed", K(ret)); } else { @@ -118,7 +119,7 @@ int ObColumnRedefinitionTask::init(const ObDDLTaskRecord &task_record) execution_id_ = task_record.execution_id_; tenant_id_ = task_record.tenant_id_; ret_code_ = task_record.ret_code_; - + start_time_ = ObTimeUtility::current_time(); if (OB_FAIL(init_ddl_task_monitor_info(&alter_table_arg_.alter_table_schema_))) { LOG_WARN("init ddl task monitor info failed", K(ret)); } else { diff --git a/src/rootserver/ddl_task/ob_ddl_redefinition_task.cpp b/src/rootserver/ddl_task/ob_ddl_redefinition_task.cpp index 8b9756990..470d6fa85 100644 --- a/src/rootserver/ddl_task/ob_ddl_redefinition_task.cpp +++ b/src/rootserver/ddl_task/ob_ddl_redefinition_task.cpp @@ -1340,6 +1340,7 @@ int ObDDLRedefinitionTask::check_health() || ObDDLTaskStatus::SUCCESS == static_cast(task_status_)) { ret = OB_SUCCESS; // allow clean up } + check_ddl_task_execute_too_long(); return ret; } diff --git a/src/rootserver/ddl_task/ob_ddl_task.cpp b/src/rootserver/ddl_task/ob_ddl_task.cpp index 82597995d..829e8b457 100644 --- a/src/rootserver/ddl_task/ob_ddl_task.cpp +++ b/src/rootserver/ddl_task/ob_ddl_task.cpp @@ -153,13 +153,13 @@ trace::ObSpanCtx* ObDDLTracing::restore_parent_task_span() if (OB_DDL_TASK_ENABLE_TRACING) { trace::ObSpanCtx *span = nullptr; if (!OBTRACE->get_trace_id().is_inited()) { - LOG_WARN("trace id not inited!!!", K(OBTRACE->get_trace_id()), K(OBTRACE->get_level())); + LOG_WARN_RET(OB_NOT_INIT, "trace id not inited!!!", K(OBTRACE->get_trace_id()), K(OBTRACE->get_level())); } else { // no need to specify start_ts, this is dummy parent, only span id is used by its child span = FLT_RESTORE_DDL_SPAN(ddl_table_redefinition, parent_task_span_id_, 0 /*start_ts*/); } if (OB_ISNULL(span)) { - LOG_WARN("restore parent task span return nullptr"); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "restore parent task span return nullptr"); } return span; } else { @@ -184,7 +184,7 @@ trace::ObSpanCtx* ObDDLTracing::begin_task_span() const share::ObDDLType task_type = task_->get_task_type(); trace::ObSpanCtx *span = nullptr; if (!OBTRACE->get_trace_id().is_inited()) { - LOG_WARN("trace id not inited!!!", K(OBTRACE->get_trace_id()), K(OBTRACE->get_level())); + LOG_WARN_RET(OB_NOT_INIT, "trace id not inited!!!", K(OBTRACE->get_trace_id()), K(OBTRACE->get_level())); } else { switch (task_type) { case DDL_CREATE_INDEX: @@ -228,7 +228,7 @@ trace::ObSpanCtx* ObDDLTracing::begin_task_span() break; default: span = nullptr; - LOG_WARN("begin task span return nullptr", K(task_type)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "begin task span return nullptr", K(task_type)); break; } } @@ -264,7 +264,7 @@ trace::ObSpanCtx* ObDDLTracing::restore_task_span() const share::ObDDLType task_type = task_->get_task_type(); trace::ObSpanCtx *span = nullptr; if (!OBTRACE->get_trace_id().is_inited()) { - LOG_WARN("trace id not inited!!!", K(OBTRACE->get_trace_id()), K(OBTRACE->get_level())); + LOG_WARN_RET(OB_NOT_INIT, "trace id not inited!!!", K(OBTRACE->get_trace_id()), K(OBTRACE->get_level())); } else { switch (task_type) { case DDL_CREATE_INDEX: @@ -308,7 +308,7 @@ trace::ObSpanCtx* ObDDLTracing::restore_task_span() break; default: span = nullptr; - LOG_WARN("restore task span return nullptr"); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "restore task span return nullptr"); break; } } @@ -333,7 +333,7 @@ trace::ObSpanCtx* ObDDLTracing::begin_status_span(const share::ObDDLTaskStatus s if (OB_DDL_TASK_ENABLE_TRACING) { trace::ObSpanCtx* span = nullptr; if (!OBTRACE->get_trace_id().is_inited()) { - LOG_WARN("trace id not inited!!! check if init_task_span() is invoked!", K(OBTRACE->get_trace_id()), K(OBTRACE->get_level())); + LOG_WARN_RET(OB_NOT_INIT, "trace id not inited!!! check if init_task_span() is invoked!", K(OBTRACE->get_trace_id()), K(OBTRACE->get_level())); } else { switch (status) { case ObDDLTaskStatus::PREPARE: @@ -388,7 +388,7 @@ trace::ObSpanCtx* ObDDLTracing::begin_status_span(const share::ObDDLTaskStatus s break; default: span = nullptr; - LOG_WARN("begin status span return nullptr", K(status)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "begin status span return nullptr", K(status)); break; } if (OB_NOT_NULL(span)) { @@ -427,7 +427,7 @@ trace::ObSpanCtx* ObDDLTracing::restore_status_span() const int64_t task_status = task_->get_task_status(); trace::ObSpanCtx* span = nullptr; if (!OBTRACE->get_trace_id().is_inited()) { - LOG_WARN("trace id not inited!!! check if init_task_span() is invoked!", K(OBTRACE->get_trace_id()), K(OBTRACE->get_level())); + LOG_WARN_RET(OB_NOT_INIT, "trace id not inited!!! check if init_task_span() is invoked!", K(OBTRACE->get_trace_id()), K(OBTRACE->get_level())); } else { switch (task_status) { case ObDDLTaskStatus::PREPARE: @@ -482,7 +482,7 @@ trace::ObSpanCtx* ObDDLTracing::restore_status_span() break; default: span = nullptr; - LOG_WARN("restore status span return nullptr"); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "restore status span return nullptr"); break; } } @@ -1262,6 +1262,18 @@ bool ObDDLTask::is_replica_build_need_retry( return need_retry; } +void ObDDLTask::check_ddl_task_execute_too_long() +{ + int ret = OB_SUCCESS; + const int64_t execute_time = ObTimeUtility::current_time() - start_time_; + if (execute_time > TASK_EXECUTE_TIME_THRESHOLD) { + if (REACH_TIME_INTERVAL(3600 * 1000 * 1000L)) { + ret = OB_DDL_TASK_EXECUTE_TOO_MUCH_TIME; + LOG_DBA_ERROR(OB_DDL_TASK_EXECUTE_TOO_MUCH_TIME, "msg","ddl task executes too much time", K(ret), K(tenant_id_), K(task_id_), K(execute_time)); + } + } +} + #ifdef ERRSIM int ObDDLTask::check_errsim_error() { diff --git a/src/rootserver/ddl_task/ob_ddl_task.h b/src/rootserver/ddl_task/ob_ddl_task.h index 1197fce8d..f724befd4 100644 --- a/src/rootserver/ddl_task/ob_ddl_task.h +++ b/src/rootserver/ddl_task/ob_ddl_task.h @@ -378,7 +378,8 @@ public: target_object_id_(0), task_status_(share::ObDDLTaskStatus::PREPARE), snapshot_version_(0), ret_code_(OB_SUCCESS), task_id_(0), parent_task_id_(0), parent_task_key_(), task_version_(0), parallelism_(0), allocator_(lib::ObLabel("DdlTask")), compat_mode_(lib::Worker::CompatMode::INVALID), err_code_occurence_cnt_(0), - longops_stat_(nullptr), stat_info_(), delay_schedule_time_(0), next_schedule_ts_(0), execution_id_(-1), sql_exec_addr_(), cluster_version_(0) + longops_stat_(nullptr), stat_info_(), delay_schedule_time_(0), next_schedule_ts_(0), + execution_id_(-1), sql_exec_addr_(), start_time_(0), cluster_version_(0) {} virtual ~ObDDLTask() {} virtual int process() = 0; @@ -439,6 +440,7 @@ public: bool is_replica_build_need_retry(const int ret_code); int64_t get_execution_id() const; static int push_execution_id(const uint64_t tenant_id, const int64_t task_id, int64_t &new_execution_id); + void check_ddl_task_execute_too_long(); virtual bool support_longops_monitoring() const { return false; } int cleanup(); virtual int cleanup_impl() = 0; @@ -488,6 +490,7 @@ protected: int init_ddl_task_monitor_info(const ObTableSchema *target_schema); protected: static const int64_t MAX_ERR_TOLERANCE_CNT = 3L; // Max torlerance count for error code. + static const int64_t TASK_EXECUTE_TIME_THRESHOLD = 3 * 24 * 60 * 60 * 1000000L; // 3 days common::TCRWLock lock_; ObDDLTracing ddl_tracing_; bool is_inited_; @@ -518,6 +521,7 @@ protected: int64_t next_schedule_ts_; int64_t execution_id_; // guarded by lock_ common::ObAddr sql_exec_addr_; + int64_t start_time_; int64_t cluster_version_; }; diff --git a/src/rootserver/ddl_task/ob_index_build_task.cpp b/src/rootserver/ddl_task/ob_index_build_task.cpp index b7d892c0b..cedaefed0 100644 --- a/src/rootserver/ddl_task/ob_index_build_task.cpp +++ b/src/rootserver/ddl_task/ob_index_build_task.cpp @@ -152,7 +152,7 @@ ObAsyncTask *ObIndexSSTableBuildTask::deep_copy(char *buf, const int64_t buf_siz { ObIndexSSTableBuildTask *task = NULL; if (NULL == buf || buf_size < (sizeof(*task))) { - LOG_WARN("invalid argument", KP(buf), K(buf_size)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "invalid argument", KP(buf), K(buf_size)); } else { task = new (buf) ObIndexSSTableBuildTask( task_id_, @@ -354,6 +354,7 @@ int ObIndexBuildTask::init( task_id_ = task_id; parent_task_id_ = parent_task_id; task_version_ = OB_INDEX_BUILD_TASK_VERSION; + start_time_ = ObTimeUtility::current_time(); cluster_version_ = GET_MIN_CLUSTER_VERSION(); if (OB_SUCC(ret)) { task_status_ = static_cast(task_status); @@ -424,6 +425,7 @@ int ObIndexBuildTask::init(const ObDDLTaskRecord &task_record) task_id_ = task_record.task_id_; parent_task_id_ = task_record.parent_task_id_; ret_code_ = task_record.ret_code_; + start_time_ = ObTimeUtility::current_time(); if (OB_FAIL(init_ddl_task_monitor_info(data_schema))) { LOG_WARN("init ddl task monitor info failed", K(ret)); @@ -519,6 +521,7 @@ int ObIndexBuildTask::check_health() || ObDDLTaskStatus::SUCCESS == static_cast(task_status_)) { ret = OB_SUCCESS; // allow clean up } + check_ddl_task_execute_too_long(); 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 6d537394c..b62ba4c94 100644 --- a/src/rootserver/ddl_task/ob_table_redefinition_task.cpp +++ b/src/rootserver/ddl_task/ob_table_redefinition_task.cpp @@ -69,6 +69,7 @@ int ObTableRedefinitionTask::init(const uint64_t tenant_id, const int64_t task_i parallelism_ = parallelism; cluster_version_ = GET_MIN_CLUSTER_VERSION(); alter_table_arg_.exec_tenant_id_ = tenant_id_; + start_time_ = ObTimeUtility::current_time(); if (OB_FAIL(init_ddl_task_monitor_info(&alter_table_arg_.alter_table_schema_))) { LOG_WARN("init ddl task monitor info failed", K(ret)); } else { @@ -108,6 +109,7 @@ int ObTableRedefinitionTask::init(const ObDDLTaskRecord &task_record) tenant_id_ = task_record.tenant_id_; ret_code_ = task_record.ret_code_; alter_table_arg_.exec_tenant_id_ = tenant_id_; + start_time_ = ObTimeUtility::current_time(); if (OB_FAIL(init_ddl_task_monitor_info(&alter_table_arg_.alter_table_schema_))) { LOG_WARN("init ddl task monitor info failed", K(ret)); diff --git a/src/rootserver/freeze/ob_checksum_validator.cpp b/src/rootserver/freeze/ob_checksum_validator.cpp index a55288dc2..a49afa4f5 100644 --- a/src/rootserver/freeze/ob_checksum_validator.cpp +++ b/src/rootserver/freeze/ob_checksum_validator.cpp @@ -329,7 +329,7 @@ int ObTabletChecksumValidator::check_table_compaction_finished( if (OB_FAIL(ObTabletReplicaChecksumOperator::check_tablet_replica_checksum(tenant_id_, pairs, frozen_scn, *sql_proxy_))) { if (OB_CHECKSUM_ERROR == ret) { - LOG_ERROR("ERROR! ERROR! ERROR! checksum error in major tablet_replica_checksum", + LOG_DBA_ERROR(OB_CHECKSUM_ERROR, "msg", "ERROR! ERROR! ERROR! checksum error in major tablet_replica_checksum", KR(ret), K_(tenant_id), K(frozen_scn), "pair_cnt", pairs.count()); } else { LOG_WARN("fail to check major tablet_replica checksum", KR(ret), K_(tenant_id), @@ -474,7 +474,7 @@ int ObCrossClusterTabletChecksumValidator::check_all_table_verification_finished } else if (is_exist || is_wait_tablet_checksum_timeout) { // all tablet checksum exist or timeout if (OB_FAIL(check_cross_cluster_checksum(*table_schema, frozen_scn))) { if (OB_CHECKSUM_ERROR == ret) { - LOG_ERROR("ERROR! ERROR! ERROR! checksum error in cross-cluster checksum", KR(ret), + LOG_DBA_ERROR(OB_CHECKSUM_ERROR, "msg", "ERROR! ERROR! ERROR! checksum error in cross-cluster checksum", KR(ret), K_(tenant_id), K(frozen_scn), KPC(table_schema)); } else { LOG_WARN("fail to check cross-cluster checksum", KR(ret), K_(tenant_id), @@ -613,7 +613,7 @@ int ObCrossClusterTabletChecksumValidator::check_column_checksum( } else if (0 == (cmp_ret = tablet_checksum_item.compare_tablet(tablet_replica_checksum_item))) { if (OB_FAIL(tablet_checksum_item.verify_tablet_column_checksum(tablet_replica_checksum_item))) { if (OB_CHECKSUM_ERROR == ret) { - LOG_ERROR("ERROR! ERROR! ERROR! checksum error in cross-cluster checksum", + LOG_DBA_ERROR(OB_CHECKSUM_ERROR, "msg", "ERROR! ERROR! ERROR! checksum error in cross-cluster checksum", K(tablet_checksum_item), K(tablet_replica_checksum_item)); check_ret = OB_CHECKSUM_ERROR; ret = OB_SUCCESS; // continue checking next checksum @@ -1011,7 +1011,7 @@ int ObIndexChecksumValidator::check_all_table_verification_finished( if (FAILEDx(ObTabletReplicaChecksumOperator::check_column_checksum(tenant_id_, *data_table_schema, *table_schema, frozen_scn, *sql_proxy_, expected_epoch))) { if (OB_CHECKSUM_ERROR == ret) { - LOG_ERROR("ERROR! ERROR! ERROR! checksum error in index checksum", KR(ret), KPC(data_table_schema), + LOG_DBA_ERROR(OB_CHECKSUM_ERROR, "msg", "ERROR! ERROR! ERROR! checksum error in index checksum", KR(ret), KPC(data_table_schema), K_(tenant_id), K(frozen_scn), KPC(table_schema)); } else { LOG_WARN("fail to check index column checksum", KR(ret), K_(tenant_id), KPC(data_table_schema), diff --git a/src/rootserver/freeze/ob_daily_major_freeze_launcher.cpp b/src/rootserver/freeze/ob_daily_major_freeze_launcher.cpp index 1622c84df..9ce503c16 100644 --- a/src/rootserver/freeze/ob_daily_major_freeze_launcher.cpp +++ b/src/rootserver/freeze/ob_daily_major_freeze_launcher.cpp @@ -227,7 +227,7 @@ int ObDailyMajorFreezeLauncher::try_gc_tablet_checksum() int tmp_ret = OB_SUCCESS; if (OB_SUCCESS != (tmp_ret = trans.end(OB_SUCC(ret)))) { ret = ((OB_SUCC(ret)) ? tmp_ret : ret); - LOG_WARN("fail to end trans", "is_commit", OB_SUCC(ret), KR(tmp_ret)); + LOG_WARN("fail to end trans", "is_commit", OB_SUCCESS == ret, KR(tmp_ret)); } } diff --git a/src/rootserver/freeze/ob_freeze_info_manager.cpp b/src/rootserver/freeze/ob_freeze_info_manager.cpp index 355806569..d5db9cdee 100644 --- a/src/rootserver/freeze/ob_freeze_info_manager.cpp +++ b/src/rootserver/freeze/ob_freeze_info_manager.cpp @@ -329,7 +329,7 @@ int ObFreezeInfoManager::set_freeze_info() int tmp_ret = OB_SUCCESS; if (OB_SUCCESS != (tmp_ret = trans.end(OB_SUCC(ret)))) { ret = ((OB_SUCC(ret)) ? tmp_ret : ret); - LOG_WARN("fail to end trans", "is_commit", OB_SUCC(ret), KR(tmp_ret)); + LOG_WARN("fail to end trans", "is_commit", OB_SUCCESS == ret, KR(tmp_ret)); } } } @@ -515,7 +515,7 @@ int ObFreezeInfoManager::renew_snapshot_gc_scn() int tmp_ret = OB_SUCCESS; if (OB_SUCCESS != (tmp_ret = trans.end(OB_SUCC(ret)))) { ret = ((OB_SUCC(ret)) ? tmp_ret : ret); - LOG_WARN("fail to end trans", "is_commit", OB_SUCC(ret), KR(tmp_ret)); + LOG_WARN("fail to end trans", "is_commit", OB_SUCCESS == ret, KR(tmp_ret)); } } @@ -605,7 +605,7 @@ int ObFreezeInfoManager::try_gc_freeze_info() int tmp_ret = OB_SUCCESS; if (OB_SUCCESS != (tmp_ret = trans.end(OB_SUCC(ret)))) { ret = ((OB_SUCC(ret)) ? tmp_ret : ret); - LOG_WARN("fail to end trans", "is_commit", OB_SUCC(ret), KR(tmp_ret)); + LOG_WARN("fail to end trans", "is_commit", OB_SUCCESS == ret, KR(tmp_ret)); } } return ret; diff --git a/src/rootserver/freeze/ob_major_freeze_util.cpp b/src/rootserver/freeze/ob_major_freeze_util.cpp index fc15d47a2..9c1b99555 100644 --- a/src/rootserver/freeze/ob_major_freeze_util.cpp +++ b/src/rootserver/freeze/ob_major_freeze_util.cpp @@ -78,6 +78,7 @@ ObFreezeTimeGuard::~ObFreezeTimeGuard() if (n >= buffer_size) { snprintf(&strbuffer[buffer_size - 6], 6, "..., "); } + int ret = OB_ERR_TOO_MUCH_TIME; common::OB_PRINT(log_mod_, OB_LOG_LEVEL_DIRECT(WARN), strbuffer, LOG_KVS(K_(warn_threshold_us), K(total_cost_us), K_(start_time_us), K(now_us))); } diff --git a/src/rootserver/freeze/ob_zone_merge_manager.cpp b/src/rootserver/freeze/ob_zone_merge_manager.cpp index 7a10eb1c4..11a73dea5 100644 --- a/src/rootserver/freeze/ob_zone_merge_manager.cpp +++ b/src/rootserver/freeze/ob_zone_merge_manager.cpp @@ -174,7 +174,7 @@ void ObZoneMergeManagerBase::handle_trans_stat( if (trans.is_started()) { int tmp_ret = OB_SUCCESS; if (OB_TMP_FAIL(trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(tmp_ret)); + LOG_WARN_RET(tmp_ret, "trans end failed", "is_commit", OB_SUCCESS == ret, K(tmp_ret)); ret = OB_SUCC(ret) ? tmp_ret : ret; } } @@ -1192,7 +1192,7 @@ ObZoneMergeManager::ObZoneMergeMgrGuard::~ObZoneMergeMgrGuard() if (OB_UNLIKELY(OB_SUCCESS != ret_)) { } else if (OB_UNLIKELY(OB_SUCCESS != (tmp_ret = ObZoneMergeManager::copy_infos(zone_merge_mgr_, shadow_)))) { - LOG_WARN("fail to copy from zone_merge_mgr shadow", K(tmp_ret), K_(ret)); + LOG_WARN_RET(tmp_ret, "fail to copy from zone_merge_mgr shadow", K(tmp_ret), K_(ret)); } if (OB_UNLIKELY(OB_SUCCESS != tmp_ret)) { ret_ = tmp_ret; diff --git a/src/rootserver/ob_all_server_checker.cpp b/src/rootserver/ob_all_server_checker.cpp index 717065fb9..39423d73a 100644 --- a/src/rootserver/ob_all_server_checker.cpp +++ b/src/rootserver/ob_all_server_checker.cpp @@ -159,7 +159,7 @@ ObAsyncTask *ObCheckServerTask::deep_copy(char *buf, const int64_t buf_size) con { ObCheckServerTask *task = NULL; if (NULL == buf || buf_size < static_cast(sizeof(*this))) { - LOG_WARN("buffer not large enough", K(buf_size)); + LOG_WARN_RET(common::OB_BUF_NOT_ENOUGH, "buffer not large enough", K(buf_size)); } else { task = new(buf) ObCheckServerTask(work_queue_, checker_); } diff --git a/src/rootserver/ob_balance_group_ls_stat_operator.cpp b/src/rootserver/ob_balance_group_ls_stat_operator.cpp index 52e3407c6..737476082 100644 --- a/src/rootserver/ob_balance_group_ls_stat_operator.cpp +++ b/src/rootserver/ob_balance_group_ls_stat_operator.cpp @@ -260,7 +260,7 @@ int ObBalanceGroupLSStatOperator::insert_update_balance_group_ls_stat( // commit/abort int tmp_ret = OB_SUCCESS; if (OB_SUCCESS != (tmp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", K(tmp_ret), "is_commit", OB_SUCC(ret)); + LOG_WARN("trans end failed", K(tmp_ret), "is_commit", OB_SUCCESS == ret); ret = (OB_SUCCESS == ret ? tmp_ret : ret); } } diff --git a/src/rootserver/ob_bootstrap.cpp b/src/rootserver/ob_bootstrap.cpp index cf994794f..c7bdf9030 100644 --- a/src/rootserver/ob_bootstrap.cpp +++ b/src/rootserver/ob_bootstrap.cpp @@ -455,7 +455,7 @@ bool ObBootstrap::TableIdCompare::operator() (const ObTableSchema* left, const O if (OB_ISNULL(left) || OB_ISNULL(right)) { ret_ = OB_INVALID_ARGUMENT; - LOG_WARN("invalid argument", K_(ret), KP(left), KP(right)); + LOG_WARN_RET(ret_, "invalid argument", K_(ret), KP(left), KP(right)); } else { bool left_is_sys_index = left->is_index_table() && is_sys_table(left->get_table_id()); bool right_is_sys_index = right->is_index_table() && is_sys_table(right->get_table_id()); diff --git a/src/rootserver/ob_ddl_operator.cpp b/src/rootserver/ob_ddl_operator.cpp index b1fd08f66..a745ccc06 100644 --- a/src/rootserver/ob_ddl_operator.cpp +++ b/src/rootserver/ob_ddl_operator.cpp @@ -94,7 +94,7 @@ ObSysStat::Item::Item(ObSysStat::ItemList &list, const char *name, const char *i value_.set_int(0); const bool add_success = list.add_last(this); if (!add_success) { - LOG_WARN("add last failed"); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "add last failed"); } } diff --git a/src/rootserver/ob_ddl_service.cpp b/src/rootserver/ob_ddl_service.cpp index 16dfd2f15..c030b577d 100644 --- a/src/rootserver/ob_ddl_service.cpp +++ b/src/rootserver/ob_ddl_service.cpp @@ -1976,7 +1976,7 @@ int ObDDLService::create_tables_in_trans(const bool if_not_exist, if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -2035,7 +2035,7 @@ int ObDDLService::create_table_in_trans( if (OB_ISNULL(sql_trans) && trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -4161,7 +4161,7 @@ int ObDDLService::delete_column_from_schema(obrpc::ObAlterTableArg &alter_table_ if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -4480,7 +4480,7 @@ int ObDDLService::remap_index_tablets_and_take_effect( if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -4573,7 +4573,7 @@ int ObDDLService::update_autoinc_schema(obrpc::ObAlterTableArg &alter_table_arg) if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -10909,7 +10909,7 @@ int ObDDLService::do_offline_ddl_in_trans(obrpc::ObAlterTableArg &alter_table_ar if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN_RET(temp_ret, "trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -11034,7 +11034,7 @@ int ObDDLService::create_hidden_table( if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -12597,7 +12597,7 @@ int ObDDLService::rename_table(const obrpc::ObRenameTableArg &rename_table_arg) if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -12983,7 +12983,7 @@ int ObDDLService::truncate_table_in_trans(const obrpc::ObTruncateTableArg &arg, if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -13204,7 +13204,7 @@ int ObDDLService::maintain_obj_dependency_info(const obrpc::ObDependencyObjDDLAr if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -14236,7 +14236,7 @@ int ObDDLService::rebuild_hidden_table_index_in_trans( if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -14508,7 +14508,7 @@ int ObDDLService::rebuild_hidden_table_constraints_in_trans( if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -15068,7 +15068,7 @@ int ObDDLService::rebuild_hidden_table_foreign_key(ObAlterTableArg &alter_table_ if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -15447,7 +15447,7 @@ int ObDDLService::swap_orig_and_hidden_table_state(obrpc::ObAlterTableArg &alter if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -15587,7 +15587,7 @@ int ObDDLService::modify_hidden_table_fk_state(obrpc::ObAlterTableArg &alter_tab if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -15693,7 +15693,7 @@ int ObDDLService::modify_hidden_table_fk_state(obrpc::ObAlterTableArg &alter_tab if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -15812,7 +15812,7 @@ int ObDDLService::cleanup_garbage(ObAlterTableArg &alter_table_arg) if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -17533,7 +17533,7 @@ int ObDDLService::drop_table_in_trans( if (OB_ISNULL(sql_trans) && trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -17734,7 +17734,7 @@ int ObDDLService::flashback_table_from_recyclebin_in_trans(const ObTableSchema & if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -18237,7 +18237,7 @@ int ObDDLService::flashback_index_in_trans(share::schema::ObSchemaGetterGuard &s if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -18309,7 +18309,7 @@ int ObDDLService::purge_index(const obrpc::ObPurgeIndexArg &arg) if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -18388,7 +18388,7 @@ int ObDDLService::purge_table( if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -18430,7 +18430,7 @@ int ObDDLService::flashback_database_in_trans(const ObDatabaseSchema &db_schema, if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -18534,7 +18534,7 @@ int ObDDLService::purge_database( if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -18685,7 +18685,7 @@ int ObDDLService::purge_recyclebin_except_tenant( if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -19535,7 +19535,7 @@ int ObDDLService::rebuild_index(const ObRebuildIndexArg &arg, obrpc::ObAlterTabl if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(ret), K(temp_ret)); ret = OB_SUCC(ret) ? temp_ret : ret; } } @@ -19613,7 +19613,7 @@ int ObDDLService::rebuild_index_in_trans( if (OB_ISNULL(sql_trans) && trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -19867,7 +19867,7 @@ int ObDDLService::alter_system_table_column_( if (trans.is_started()) { int tmp_ret = OB_SUCCESS; if (OB_TMP_FAIL(trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(tmp_ret)); + LOG_WARN_RET(tmp_ret, "trans end failed", "is_commit", OB_SUCCESS == ret, K(tmp_ret)); ret = (OB_SUCC(ret)) ? tmp_ret : ret; } } @@ -20000,10 +20000,10 @@ int ObDDLService::create_sys_tenant( } if (trans.is_started()) { int temp_ret = OB_SUCCESS; - LOG_INFO("end create tenant", "is_commit", OB_SUCC(ret), K(ret)); + LOG_INFO("end create tenant", "is_commit", OB_SUCCESS == ret, K(ret)); if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { ret = (OB_SUCC(ret)) ? temp_ret : ret; - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); } } } @@ -21251,10 +21251,10 @@ int ObDDLService::create_tenant_end(const uint64_t tenant_id) } int temp_ret = OB_SUCCESS; if (trans.is_started()) { - LOG_INFO("end create tenant", "is_commit", OB_SUCC(ret), K(ret)); + LOG_INFO("end create tenant", "is_commit", OB_SUCCESS == ret, K(ret)); if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { ret = (OB_SUCC(ret)) ? temp_ret : ret; - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); } } if (tenant_trans.is_started()) { @@ -21374,7 +21374,7 @@ int ObDDLService::commit_alter_tenant_locality( } int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", K(temp_ret), "is_commit", OB_SUCC(ret)); + LOG_WARN("trans end failed", K(temp_ret), "is_commit", OB_SUCCESS == ret); ret = (OB_SUCCESS == ret ? temp_ret : ret); } else {} // ok @@ -22371,7 +22371,7 @@ int ObDDLService::modify_tenant_inner_phase(const ObModifyTenantArg &arg, const if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -22449,7 +22449,7 @@ int ObDDLService::modify_tenant_inner_phase(const ObModifyTenantArg &arg, const if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -22517,7 +22517,7 @@ int ObDDLService::modify_tenant_inner_phase(const ObModifyTenantArg &arg, const if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -22907,7 +22907,7 @@ int ObDDLService::drop_tenant(const ObDropTenantArg &arg) if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -23139,7 +23139,7 @@ int ObDDLService::flashback_tenant_in_trans(const share::schema::ObTenantSchema if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -23220,7 +23220,7 @@ int ObDDLService::purge_tenant( if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -23273,7 +23273,7 @@ int ObDDLService::lock_tenant(const ObString &tenant_name, const bool is_lock) if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -23379,7 +23379,7 @@ int ObDDLService::add_system_variable(const ObAddSysVarArg &arg) if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -23481,7 +23481,7 @@ int ObDDLService::modify_system_variable(const ObModifySysVarArg &arg) if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -23591,7 +23591,7 @@ int ObDDLService::create_database(const bool if_not_exist, if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -23711,7 +23711,7 @@ int ObDDLService::alter_database(const ObAlterDatabaseArg &arg) if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -23840,7 +23840,7 @@ int ObDDLService::drop_database(const ObDropDatabaseArg &arg, if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -23915,7 +23915,7 @@ int ObDDLService::create_tablegroup(const bool if_not_exist, if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -23990,7 +23990,7 @@ int ObDDLService::drop_tablegroup(const ObDropTablegroupArg &arg) if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -24079,7 +24079,7 @@ int ObDDLService::alter_tablegroup(const ObAlterTablegroupArg &arg) // however, end the trans int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -24125,6 +24125,10 @@ int ObDDLService::refresh_schema(uint64_t tenant_id) if (refresh_count > 2) { LOG_ERROR("refresh schema failed", K(refresh_count), "refresh_schema_interval", static_cast(REFRESH_SCHEMA_INTERVAL_US), K(ret)); + if (REACH_TIME_INTERVAL(10 * 60 * 1000 * 1000L)) { // 10 min + LOG_DBA_ERROR(OB_ERR_REFRESH_SCHEMA_TOO_LONG, + "msg", "refresh schema failed", KR(ret), K(refresh_count)); + } } else { LOG_WARN("refresh schema failed", K(refresh_count), "refresh_schema_interval", static_cast(REFRESH_SCHEMA_INTERVAL_US), K(ret)); @@ -25044,7 +25048,7 @@ int ObDDLService::drop_user_in_trans(const uint64_t tenant_id, if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -25132,7 +25136,7 @@ int ObDDLService::alter_role_in_trans(const uint64_t tenant_id, if (trans.is_started()) { int tmp_ret = OB_SUCCESS; if (OB_SUCCESS != (tmp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(tmp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(tmp_ret)); ret = (OB_SUCC(ret)) ? tmp_ret : ret; } } @@ -25237,7 +25241,7 @@ int ObDDLService::rename_user_in_trans( if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -25347,7 +25351,7 @@ int ObDDLService::set_passwd_in_trans( if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -25398,7 +25402,7 @@ int ObDDLService::set_max_connection_in_trans( if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -25443,7 +25447,7 @@ int ObDDLService::alter_user_require_in_trans( if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -25529,7 +25533,7 @@ int ObDDLService::grant_sys_priv_to_ur( if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -25824,7 +25828,7 @@ int ObDDLService::grant(const ObGrantArg &arg) if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -26027,7 +26031,7 @@ int ObDDLService::revoke(const ObRevokeUserArg &arg) if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -26168,7 +26172,7 @@ int ObDDLService::revoke_all( if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -26212,7 +26216,7 @@ int ObDDLService::grant_revoke_user( if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -26397,7 +26401,7 @@ int ObDDLService::alter_user_default_role(const ObAlterUserProfileArg &arg) if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -26467,7 +26471,7 @@ int ObDDLService::alter_user_profile(const ObAlterUserProfileArg &arg) if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -26553,7 +26557,7 @@ int ObDDLService::lock_user_in_trans(const uint64_t tenant_id, if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -26632,7 +26636,7 @@ int ObDDLService::grant_database( if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -26683,7 +26687,7 @@ int ObDDLService::revoke_database( if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -26771,7 +26775,7 @@ int ObDDLService::revoke_syspriv( if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -26892,7 +26896,7 @@ int ObDDLService::grant_table( if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -26952,7 +26956,7 @@ int ObDDLService::grant_table( if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -27008,7 +27012,7 @@ int ObDDLService::revoke_table( if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -27142,7 +27146,7 @@ int ObDDLService::create_outline(share::schema::ObOutlineInfo &outline_info, if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -27256,7 +27260,7 @@ int ObDDLService::alter_outline_in_trans(const obrpc::ObAlterOutlineArg &arg) if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -27371,7 +27375,7 @@ int ObDDLService::drop_outline(const obrpc::ObDropOutlineArg &arg) if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -27429,7 +27433,7 @@ int ObDDLService::create_routine(ObRoutineInfo &routine_info, if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -27508,7 +27512,7 @@ int ObDDLService::drop_routine(const ObRoutineInfo &routine_info, if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -27570,7 +27574,7 @@ int ObDDLService::create_udt(ObUDTTypeInfo &udt_info, if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -27609,7 +27613,7 @@ int ObDDLService::drop_udt(const ObUDTTypeInfo &udt_info, if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -27655,7 +27659,7 @@ int ObDDLService::create_dblink(const obrpc::ObCreateDbLinkArg &arg, const ObStr if (trans.is_started()) { int tmp_ret = OB_SUCCESS; if (OB_SUCCESS != (tmp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("failed to end trans", K(tmp_ret), "is_commit", OB_SUCC(ret)); + LOG_WARN("failed to end trans", K(tmp_ret), "is_commit", OB_SUCCESS == ret); ret = (OB_SUCC(ret)) ? tmp_ret : ret; } } @@ -27702,7 +27706,7 @@ int ObDDLService::drop_dblink(const obrpc::ObDropDbLinkArg &arg, const ObString if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("failed to end trans", K(temp_ret), "is_commit", OB_SUCC(ret)); + LOG_WARN("failed to end trans", K(temp_ret), "is_commit", OB_SUCCESS == ret); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -27802,7 +27806,7 @@ int ObDDLService::create_synonym(share::schema::ObSynonymInfo &synonym_info, if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -27885,7 +27889,7 @@ int ObDDLService::drop_synonym(const obrpc::ObDropSynonymArg &arg) if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -27934,7 +27938,7 @@ int ObDDLService::create_package(ObSchemaGetterGuard &schema_guard, if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -27974,7 +27978,7 @@ int ObDDLService::alter_package(ObSchemaGetterGuard &schema_guard, if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -28018,7 +28022,7 @@ int ObDDLService::drop_package(const ObPackageInfo &package_info, if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -28111,7 +28115,7 @@ int ObDDLService::create_trigger_in_trans(ObTriggerInfo &trigger_info, if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -28192,7 +28196,7 @@ int ObDDLService::drop_trigger_in_trans(const ObTriggerInfo &trigger_info, if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -28249,7 +28253,7 @@ int ObDDLService::alter_trigger(const ObAlterTriggerArg &arg) if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -28468,7 +28472,7 @@ int ObDDLService::do_sequence_ddl(const obrpc::ObSequenceDDLArg &arg) if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -28562,7 +28566,7 @@ int ObDDLService::do_context_ddl(const obrpc::ObContextDDLArg &arg) if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -28710,7 +28714,7 @@ int ObDDLService::handle_label_se_policy_ddl(const ObLabelSePolicyDDLArg &arg) if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -28756,7 +28760,7 @@ int ObDDLService::handle_label_se_component_ddl(const ObLabelSeComponentDDLArg & if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -28803,7 +28807,7 @@ int ObDDLService::handle_label_se_label_ddl(const ObLabelSeLabelDDLArg &arg) if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -28849,7 +28853,7 @@ int ObDDLService::handle_label_se_user_level_ddl(const ObLabelSeUserLevelDDLArg if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -29044,7 +29048,7 @@ int ObDDLService::create_user_in_trans(share::schema::ObUserInfo &user_info, if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -29750,7 +29754,7 @@ int ObDDLService::drop_index_to_recyclebin(const ObTableSchema &table_schema) { if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -30103,7 +30107,7 @@ int ObDDLService::create_user_defined_function(share::schema::ObUDF &udf_info, if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -30169,7 +30173,7 @@ int ObDDLService::drop_user_defined_function(const obrpc::ObDropUserDefinedFunct if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -30907,7 +30911,7 @@ int ObDDLService::do_schema_revise(const obrpc::ObSchemaReviseArg &arg) if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -30994,7 +30998,7 @@ int ObDDLService::do_keystore_ddl(const obrpc::ObKeystoreDDLArg &arg) if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -31248,7 +31252,7 @@ int ObDDLService::do_tablespace_ddl(const obrpc::ObTablespaceDDLArg &arg) if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -31316,7 +31320,7 @@ int ObDDLService::handle_profile_ddl(const ObProfileDDLArg &arg) if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -31397,7 +31401,7 @@ int ObDDLService::create_directory(const obrpc::ObCreateDirectoryArg &arg, const if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -31466,7 +31470,7 @@ int ObDDLService::drop_directory(const obrpc::ObDropDirectoryArg &arg, const ObS if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -31536,7 +31540,7 @@ int ObDDLService::force_set_locality( if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -31984,7 +31988,7 @@ int ObDDLService::handle_rls_policy_ddl(const obrpc::ObRlsPolicyDDLArg &arg) if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -32090,7 +32094,7 @@ int ObDDLService::handle_rls_group_ddl(const obrpc::ObRlsGroupDDLArg &arg) if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -32190,7 +32194,7 @@ int ObDDLService::handle_rls_context_ddl(const obrpc::ObRlsContextDDLArg &arg) if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -32260,7 +32264,7 @@ int ObDDLService::recompile_all_views_batch(const uint64_t tenant_id, const ObIA if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -32315,7 +32319,7 @@ int ObDDLService::try_add_dep_info_for_all_synonyms_batch(const uint64_t tenant_ if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } diff --git a/src/rootserver/ob_disaster_recovery_task.cpp b/src/rootserver/ob_disaster_recovery_task.cpp index 5538fefca..504d41f3c 100644 --- a/src/rootserver/ob_disaster_recovery_task.cpp +++ b/src/rootserver/ob_disaster_recovery_task.cpp @@ -115,7 +115,7 @@ const char* ob_disaster_recovery_task_ret_comment_strs(const rootserver::ObDRTas str = disaster_recovery_task_ret_comment_strs[static_cast(ret_comment)]; } else { str = disaster_recovery_task_ret_comment_strs[static_cast(rootserver::ObDRTaskRetComment::MAX)]; - LOG_WARN("invalid ObDRTaskRetComment", K(ret_comment)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "invalid ObDRTaskRetComment", K(ret_comment)); } return str; } @@ -134,7 +134,7 @@ const char* ob_disaster_recovery_task_priority_strs(const rootserver::ObDRTaskPr if (task_priority >= rootserver::ObDRTaskPriority::HIGH_PRI && task_priority < rootserver::ObDRTaskPriority::MAX_PRI) { str = disaster_recovery_task_priority_strs[static_cast(task_priority)]; } else { - LOG_WARN("invalid ObDRTask priority", K(task_priority)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "invalid ObDRTask priority", K(task_priority)); } return str; } @@ -158,7 +158,7 @@ const char *ob_disaster_recovery_task_type_strs(const rootserver::ObDRTaskType t if (type >= rootserver::ObDRTaskType::LS_MIGRATE_REPLICA && type < rootserver::ObDRTaskType::MAX_TYPE) { str = disaster_recovery_task_type_strs[static_cast(type)]; } else { - LOG_WARN("invalid ObDRTask type", K(type)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "invalid ObDRTask type", K(type)); } return str; } @@ -184,7 +184,7 @@ const char *ob_replica_type_strs(const ObReplicaType type) break; } default: { - LOG_WARN("invalid replica type", K(type)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "invalid replica type", K(type)); break; } } diff --git a/src/rootserver/ob_disaster_recovery_task_mgr.cpp b/src/rootserver/ob_disaster_recovery_task_mgr.cpp index 0cd57ccc9..3d43307e3 100644 --- a/src/rootserver/ob_disaster_recovery_task_mgr.cpp +++ b/src/rootserver/ob_disaster_recovery_task_mgr.cpp @@ -698,7 +698,7 @@ void ObDRTaskMgr::run3() { FLOG_INFO("Disaster recovery task mgr start"); if (OB_UNLIKELY(!inited_ || stopped_)) { - LOG_WARN("ObDRTaskMgr not init", K(inited_), K_(stopped)); + LOG_WARN_RET(OB_NOT_INIT, "ObDRTaskMgr not init", K(inited_), K_(stopped)); } else { int64_t last_dump_ts = ObTimeUtility::current_time(); int64_t last_check_task_in_progress_ts = ObTimeUtility::current_time(); diff --git a/src/rootserver/ob_disaster_recovery_task_table_updater.cpp b/src/rootserver/ob_disaster_recovery_task_table_updater.cpp index a620d756d..97f395299 100644 --- a/src/rootserver/ob_disaster_recovery_task_table_updater.cpp +++ b/src/rootserver/ob_disaster_recovery_task_table_updater.cpp @@ -103,7 +103,7 @@ bool ObDRTaskTableUpdateTask::operator ==(const ObDRTaskTableUpdateTask &other) { bool equal = false; if (!is_valid() || !other.is_valid()) { - LOG_WARN("invalid argument", "self", *this, K(other)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "invalid argument", "self", *this, K(other)); } else if (this == &other) { // same pointer equal = true; } else { diff --git a/src/rootserver/ob_disaster_recovery_worker.cpp b/src/rootserver/ob_disaster_recovery_worker.cpp index 4ea79f589..f69751b80 100644 --- a/src/rootserver/ob_disaster_recovery_worker.cpp +++ b/src/rootserver/ob_disaster_recovery_worker.cpp @@ -1738,7 +1738,7 @@ void ObDRWorker::statistic_remain_dr_task() int64_t low_schedule_cnt = 0; if (OB_ISNULL(disaster_recovery_task_mgr_)) { tmp_ret = OB_ERR_UNEXPECTED; - LOG_WARN("disaster_recovery_task_mgr_ is null", KR(tmp_ret)); + LOG_WARN_RET(tmp_ret, "disaster_recovery_task_mgr_ is null", KR(tmp_ret)); } else if (FALSE_IT(dr_task_mgr_is_loaded_ = disaster_recovery_task_mgr_->is_loaded())) { LOG_INFO("disaster_recovery_task_mgr_ is not loaded yet"); } else if (!dr_task_mgr_is_loaded_) { @@ -1748,7 +1748,7 @@ void ObDRWorker::statistic_remain_dr_task() high_schedule_cnt, low_wait_cnt, low_schedule_cnt))) { - LOG_WARN("fail to get all task count", KR(tmp_ret)); + LOG_WARN_RET(tmp_ret, "fail to get all task count", KR(tmp_ret)); } else if (-1 != task_count_statistic_.remain_task_cnt_ || 0 != high_wait_cnt + high_schedule_cnt + low_wait_cnt + low_schedule_cnt) { // remain_task_cnt_ == -1 means it is the initial stat diff --git a/src/rootserver/ob_index_builder.cpp b/src/rootserver/ob_index_builder.cpp index 1927fe3d1..ad34cef4e 100644 --- a/src/rootserver/ob_index_builder.cpp +++ b/src/rootserver/ob_index_builder.cpp @@ -197,7 +197,7 @@ int ObIndexBuilder::drop_index(const ObDropIndexArg &arg, obrpc::ObDropIndexRes if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN_RET(temp_ret, "trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -305,7 +305,7 @@ int ObIndexBuilder::do_create_global_index( if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -474,7 +474,7 @@ int ObIndexBuilder::do_create_local_index( if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } diff --git a/src/rootserver/ob_root_balancer.cpp b/src/rootserver/ob_root_balancer.cpp index e57f12db7..a934c6955 100644 --- a/src/rootserver/ob_root_balancer.cpp +++ b/src/rootserver/ob_root_balancer.cpp @@ -110,7 +110,7 @@ int ObRootBalancer::idle() const void ObRootBalancer::wakeup() { if (!inited_) { - LOG_WARN("not init"); + LOG_WARN_RET(OB_NOT_INIT, "not init"); } else { idling_.wakeup(); } diff --git a/src/rootserver/ob_root_inspection.cpp b/src/rootserver/ob_root_inspection.cpp index 4180f94a6..204579889 100644 --- a/src/rootserver/ob_root_inspection.cpp +++ b/src/rootserver/ob_root_inspection.cpp @@ -207,6 +207,8 @@ int ObTenantChecker::check_garbage_tenant_(bool &passed) LOG_INFO("tenant is in restore", KPC(tenant_schema)); } else { LOG_ERROR("tenant maybe create failed", K(tenant_id)); + LOG_DBA_WARN(OB_ERR_ROOT_INSPECTION, "msg", "create tenant may fail", + K(tenant_id), "tenant_name", tenant_schema->get_tenant_name()); ROOTSERVICE_EVENT_ADD("inspector", "tenant_checker", "info", "tenant maybe create failed", "tenant_id", tenant_id, @@ -602,7 +604,7 @@ ObAsyncTask *ObInspector::deep_copy(char *buf, const int64_t buf_size) const { ObInspector *task = NULL; if (NULL == buf || buf_size < static_cast(sizeof(*this))) { - LOG_WARN("buffer not large enough", K(buf_size)); + LOG_WARN_RET(OB_BUF_NOT_ENOUGH, "buffer not large enough", K(buf_size)); } else { task = new(buf) ObInspector(rs_); } @@ -644,7 +646,7 @@ ObAsyncTask *ObPurgeRecyclebinTask::deep_copy(char *buf, const int64_t buf_size) { ObPurgeRecyclebinTask *task = NULL; if (NULL == buf || buf_size < static_cast(sizeof(*this))) { - LOG_WARN("buffer not large enough", K(buf_size)); + LOG_WARN_RET(OB_BUF_NOT_ENOUGH, "buffer not large enough", K(buf_size)); } else { task = new(buf) ObPurgeRecyclebinTask(root_service_); } @@ -1013,7 +1015,7 @@ int ObRootInspection::check_sys_param_(const uint64_t tenant_id) } else if (GCONF.in_upgrade_mode()) { LOG_WARN("check sys_variable failed", KR(ret)); } else { - LOG_ERROR("check sys_variable failed", KR(ret)); + LOG_DBA_ERROR(OB_ERR_ROOT_INSPECTION, "msg", "system variables are unmatched", KR(ret)); } return ret; } @@ -1334,6 +1336,7 @@ int ObRootInspection::check_sys_table_schemas_( LOG_WARN("check sys table schema failed", KR(ret), K(tenant_id)); } else { LOG_ERROR("check sys table schema failed", KR(ret), K(tenant_id)); + LOG_DBA_ERROR(OB_ERR_ROOT_INSPECTION, "msg", "inner tables are unmatched", KR(ret), K(tenant_id)); } return ret; } diff --git a/src/rootserver/ob_root_service.cpp b/src/rootserver/ob_root_service.cpp index 2a286dda1..3b3cba94d 100644 --- a/src/rootserver/ob_root_service.cpp +++ b/src/rootserver/ob_root_service.cpp @@ -397,7 +397,7 @@ ObAsyncTask *ObRootService::ObInnerTableMonitorTask::deep_copy(char *buf, const { ObInnerTableMonitorTask *task = NULL; if (NULL == buf || buf_size < static_cast(sizeof(*this))) { - LOG_WARN("buffer not large enough", K(buf_size)); + LOG_WARN_RET(OB_BUF_NOT_ENOUGH, "buffer not large enough", K(buf_size)); } else { task = new(buf) ObInnerTableMonitorTask(rs_); } @@ -961,6 +961,7 @@ int ObRootService::init(ObServerConfig &config, FLOG_INFO("[ROOTSERVICE_NOTICE] init rootservice success", KR(ret), K_(inited)); } else { LOG_ERROR("[ROOTSERVICE_NOTICE] fail to init root service", KR(ret)); + LOG_DBA_ERROR(OB_ERR_ROOTSERVICE_START, "msg", "rootservice init() has failure", KR(ret)); } return ret; @@ -969,16 +970,19 @@ int ObRootService::init(ObServerConfig &config, void ObRootService::destroy() { int ret = OB_SUCCESS; + int fail_ret = OB_SUCCESS; FLOG_INFO("[ROOTSERVICE_NOTICE] start to destroy rootservice"); if (in_service()) { if (OB_FAIL(stop_service())) { FLOG_WARN("stop service failed", KR(ret)); + fail_ret = OB_SUCCESS == fail_ret ? ret : fail_ret; } } FLOG_INFO("start destroy archive_service_"); if (OB_FAIL(archive_service_.destroy())) { FLOG_INFO("archive_service_ destory failed", KR(ret)); + fail_ret = OB_SUCCESS == fail_ret ? ret : fail_ret; } else { FLOG_INFO("finish destroy archive_service_"); } @@ -986,23 +990,27 @@ void ObRootService::destroy() // continue executing while error happen if (OB_FAIL(root_balancer_.destroy())) { FLOG_WARN("root balance destroy failed", KR(ret)); + fail_ret = OB_SUCCESS == fail_ret ? ret : fail_ret; } else { FLOG_INFO("root balance destroy"); } if (OB_FAIL(empty_server_checker_.destroy())) { FLOG_WARN("empty server checker destroy failed", KR(ret)); + fail_ret = OB_SUCCESS == fail_ret ? ret : fail_ret; } else { FLOG_INFO("empty server checker destroy"); } if (OB_FAIL(thread_checker_.destroy())) { FLOG_WARN("rs_monitor_check : thread checker destroy failed", KR(ret)); + fail_ret = OB_SUCCESS == fail_ret ? ret : fail_ret; } else { FLOG_INFO("rs_monitor_check : thread checker destroy"); } if (OB_FAIL(schema_history_recycler_.destroy())) { FLOG_WARN("schema history recycler destroy failed", KR(ret)); + fail_ret = OB_SUCCESS == fail_ret ? ret : fail_ret; } else { FLOG_INFO("schema history recycler destroy"); } @@ -1015,6 +1023,7 @@ void ObRootService::destroy() FLOG_INFO("ddl builder destroy"); if (OB_FAIL(hb_checker_.destroy())) { FLOG_WARN("heartbeat checker destroy failed", KR(ret)); + fail_ret = OB_SUCCESS == fail_ret ? ret : fail_ret; } else { FLOG_INFO("heartbeat checker destroy"); } @@ -1025,12 +1034,14 @@ void ObRootService::destroy() if (OB_FAIL(backup_task_scheduler_.destroy())) { FLOG_WARN("root backup task scheduler destroy failed", KR(ret)); + fail_ret = OB_SUCCESS == fail_ret ? ret : fail_ret; } else { FLOG_INFO("root backup task scheduler destroy"); } if (OB_FAIL(backup_service_.destroy())) { FLOG_WARN("root backup mgr destroy failed", KR(ret)); + fail_ret = OB_SUCCESS == fail_ret ? ret : fail_ret; } else { FLOG_INFO("root backup mgr destroy"); } @@ -1044,6 +1055,7 @@ void ObRootService::destroy() if (OB_FAIL(disaster_recovery_task_mgr_.destroy())) { FLOG_WARN("disaster recovery task mgr destroy failed", KR(ret)); + fail_ret = OB_SUCCESS == fail_ret ? ret : fail_ret; } else { FLOG_INFO("disaster recovery task mgr destroy"); } @@ -1061,6 +1073,9 @@ void ObRootService::destroy() } FLOG_INFO("[ROOTSERVICE_NOTICE] destroy rootservice end", KR(ret)); + if (OB_SUCCESS != fail_ret) { + LOG_DBA_WARN(OB_ERR_ROOTSERVICE_STOP, "msg", "rootservice destroy() has failure", KR(fail_ret)); + } } int ObRootService::start_service() @@ -1155,6 +1170,7 @@ int ObRootService::stop_service() int ObRootService::stop() { int ret = OB_SUCCESS; + int fail_ret = OB_SUCCESS; start_service_time_ = 0; int64_t start_time = ObTimeUtility::current_time(); ROOTSERVICE_EVENT_ADD("root_service", "stop_rootservice", K_(self_addr)); @@ -1162,8 +1178,10 @@ int ObRootService::stop() if (!inited_) { ret = OB_NOT_INIT; FLOG_WARN("rootservice not inited", KR(ret)); + fail_ret = OB_SUCCESS == fail_ret ? ret : fail_ret; } else if (OB_FAIL(rs_status_.set_rs_status(status::STOPPING))) { FLOG_WARN("fail to set rs status", KR(ret)); + fail_ret = OB_SUCCESS == fail_ret ? ret : fail_ret; } else { // set to rpc ls table as soon as possible if (OB_FAIL(lst_operator_->set_callback_for_obs( @@ -1172,6 +1190,7 @@ int ObRootService::stop() *rs_mgr_, sql_proxy_))) { FLOG_WARN("set as rs follower failed", KR(ret)); + fail_ret = OB_SUCCESS == fail_ret ? ret : fail_ret; } else { FLOG_INFO("set old rs to follower finished"); } @@ -1191,17 +1210,20 @@ int ObRootService::stop() int tmp_ret = OB_SUCCESS; if (OB_SUCCESS != (tmp_ret = upgrade_executor_.stop())) { FLOG_WARN("upgrade_executor stop failed", KR(tmp_ret)); + fail_ret = OB_SUCCESS == fail_ret ? tmp_ret : fail_ret; } else { FLOG_INFO("upgrade_executor stop finished"); } if (OB_SUCCESS != (tmp_ret = upgrade_storage_format_executor_.stop())) { FLOG_WARN("fail to stop upgrade storage format executor", KR(tmp_ret)); + fail_ret = OB_SUCCESS == fail_ret ? tmp_ret : fail_ret; } else { FLOG_INFO("upgrade_storage_format_executor stop finished"); } if (OB_SUCCESS != (tmp_ret = create_inner_schema_executor_.stop())) { FLOG_WARN("fail to stop create inner schema executor", KR(tmp_ret)); + fail_ret = OB_SUCCESS == fail_ret ? tmp_ret : fail_ret; } else { FLOG_INFO("create_inner_schema_executor stop finished"); } @@ -1209,6 +1231,7 @@ int ObRootService::stop() if (OB_SUCC(ret)) { if (OB_FAIL(stop_timer_tasks())) { FLOG_WARN("stop timer tasks failed", KR(ret)); + fail_ret = OB_SUCCESS == fail_ret ? ret : fail_ret; } else { FLOG_INFO("stop timer tasks success"); } @@ -1265,6 +1288,9 @@ int ObRootService::stop() ROOTSERVICE_EVENT_ADD("root_service", "finish_stop_thread", KR(ret), K_(self_addr)); FLOG_INFO("[ROOTSERVICE_NOTICE] finish stop rootservice", KR(ret)); + if (OB_SUCCESS != fail_ret) { + LOG_DBA_WARN(OB_ERR_ROOTSERVICE_STOP, "msg", "rootservice stop() has failure", KR(fail_ret)); + } return ret; } @@ -5401,7 +5427,7 @@ ObAsyncTask *ObRootService::ObRestartTask::deep_copy(char *buf, const int64_t bu { ObRestartTask *task = NULL; if (NULL == buf || buf_size < static_cast(sizeof(*this))) { - LOG_WARN("buffer not large enough", K(buf_size)); + LOG_WARN_RET(OB_BUF_NOT_ENOUGH, "buffer not large enough", K(buf_size)); } else { task = new(buf) ObRestartTask(root_service_); } @@ -5432,7 +5458,7 @@ ObAsyncTask *ObRootService::ObRefreshServerTask::deep_copy(char *buf, const int6 { ObRefreshServerTask *task = NULL; if (NULL == buf || buf_size < static_cast(sizeof(*this))) { - LOG_WARN("buffer not large enough", K(buf_size)); + LOG_WARN_RET(OB_BUF_NOT_ENOUGH, "buffer not large enough", K(buf_size)); } else { task = new(buf) ObRefreshServerTask(root_service_); } @@ -8129,7 +8155,7 @@ int ObRootService::physical_restore_tenant(const obrpc::ObPhysicalRestoreTenantA if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } @@ -8572,17 +8598,18 @@ bool ObRootService::check_config(const ObConfigItem &item, const char *&err_info err_info = NULL; if (!inited_) { bret = false; - LOG_WARN("service not init"); + LOG_WARN_RET(OB_NOT_INIT, "service not init"); } else if (0 == STRCMP(item.name(), MIN_OBSERVER_VERSION)) { if (OB_SUCCESS != ObClusterVersion::is_valid(item.str())) { - LOG_WARN("fail to parse min_observer_version value"); + LOG_WARN_RET(OB_INVALID_ERROR, "fail to parse min_observer_version value"); bret = false; } } else if (0 == STRCMP(item.name(), __BALANCE_CONTROLLER)) { ObString balance_troller_str(item.str()); ObRootBalanceHelp::BalanceController switch_info; - if (OB_SUCCESS != ObRootBalanceHelp::parse_balance_info(balance_troller_str, switch_info)) { - LOG_WARN("fail to parse balance switch", K(balance_troller_str)); + int tmp_ret = ObRootBalanceHelp::parse_balance_info(balance_troller_str, switch_info); + if (OB_SUCCESS != tmp_ret) { + LOG_WARN_RET(tmp_ret, "fail to parse balance switch", K(balance_troller_str)); bret = false; } } @@ -8721,7 +8748,7 @@ ObAsyncTask *ObRootService::ObReportCoreTableReplicaTask::deep_copy(char *buf, c { ObReportCoreTableReplicaTask *task = NULL; if (NULL == buf || buf_size < static_cast(sizeof(*this))) { - LOG_WARN("buffer not large enough", K(buf_size), KP(buf)); + LOG_WARN_RET(OB_BUF_NOT_ENOUGH, "buffer not large enough", K(buf_size), KP(buf)); } else { task = new (buf) ObReportCoreTableReplicaTask(root_service_); } @@ -8752,7 +8779,7 @@ ObAsyncTask *ObRootService::ObReloadUnitManagerTask::deep_copy(char *buf, const { ObReloadUnitManagerTask *task = NULL; if (NULL == buf || buf_size < static_cast(sizeof(*this))) { - LOG_WARN("buffer not large enough", K(buf_size), KP(buf)); + LOG_WARN_RET(OB_BUF_NOT_ENOUGH, "buffer not large enough", K(buf_size), KP(buf)); } else { task = new (buf) ObReloadUnitManagerTask(root_service_, unit_manager_); } @@ -8779,7 +8806,7 @@ ObAsyncTask *ObRootService::ObLoadDDLTask::deep_copy(char *buf, const int64_t bu { ObLoadDDLTask *task = nullptr; if (nullptr == buf || buf_size < static_cast(sizeof(*this))) { - LOG_WARN("buf is not enough", K(buf_size), "request_size", sizeof(*this)); + LOG_WARN_RET(OB_BUF_NOT_ENOUGH, "buf is not enough", K(buf_size), "request_size", sizeof(*this)); } else { task = new (buf) ObLoadDDLTask(root_service_); } @@ -8809,7 +8836,7 @@ ObAsyncTask *ObRootService::ObRefreshIOCalibrationTask::deep_copy(char *buf, con { ObRefreshIOCalibrationTask *task = nullptr; if (nullptr == buf || buf_size < static_cast(sizeof(*this))) { - LOG_WARN("buf is not enough", K(buf_size), "request_size", sizeof(*this)); + LOG_WARN_RET(OB_BUF_NOT_ENOUGH, "buf is not enough", K(buf_size), "request_size", sizeof(*this)); } else { task = new (buf) ObRefreshIOCalibrationTask(root_service_); } @@ -8839,7 +8866,7 @@ ObAsyncTask *ObRootService::ObSelfCheckTask::deep_copy(char *buf, const int64_t { ObSelfCheckTask *task = NULL; if (NULL == buf || buf_size < static_cast(sizeof(*this))) { - LOG_WARN("buffer not large enough", K(buf_size)); + LOG_WARN_RET(OB_BUF_NOT_ENOUGH, "buffer not large enough", K(buf_size)); } else { task = new(buf) ObSelfCheckTask(root_service_); } @@ -8869,7 +8896,7 @@ ObAsyncTask *ObRootService::ObUpdateAllServerConfigTask::deep_copy(char *buf, co { ObUpdateAllServerConfigTask *task = NULL; if (NULL == buf || buf_size < static_cast(sizeof(*this))) { - LOG_WARN("buffer not large enough", K(buf_size), KP(buf)); + LOG_WARN_RET(OB_BUF_NOT_ENOUGH, "buffer not large enough", K(buf_size), KP(buf)); } else { task = new (buf) ObUpdateAllServerConfigTask(root_service_); } @@ -9661,6 +9688,8 @@ void ObRootService::update_fail_count(int ret) } else { LOG_WARN("rs_monitor_check : fail to start root service", KR(ret), K(count)); } + LOG_DBA_WARN(OB_ERR_ROOTSERVICE_START, "msg", "rootservice start()/do_restart() has failure", + KR(ret), "fail_cnt", count); } int ObRootService::send_physical_restore_result(const obrpc::ObPhysicalRestoreResult &res) diff --git a/src/rootserver/ob_rs_reentrant_thread.cpp b/src/rootserver/ob_rs_reentrant_thread.cpp index e0c7e270e..d52dfe2ca 100644 --- a/src/rootserver/ob_rs_reentrant_thread.cpp +++ b/src/rootserver/ob_rs_reentrant_thread.cpp @@ -130,8 +130,11 @@ void ObRsReentrantThread::check_alert(const ObRsReentrantThread &thread) int64_t last_run_interval = ObTimeUtility::current_time() - last_run_timestamp; int64_t schedule_interval = thread.get_schedule_interval(); int64_t check_interval = schedule_interval + MAX_THREAD_SCHEDULE_OVERRUN_TIME; - LOG_ERROR("rs_monitor_check : thread hang", K(thread_id), K(thread_name), K(last_run_timestamp), + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "rs_monitor_check : thread hang", K(thread_id), K(thread_name), K(last_run_timestamp), KTIME(last_run_timestamp), K(last_run_interval), K(check_interval), K(schedule_interval)); + LOG_DBA_WARN(OB_ERR_ROOTSERVICE_THREAD_HUNG, "msg", "rootservice backgroud thread may be hung", + K(thread_id), K(thread_name), K(last_run_timestamp), KTIME(last_run_timestamp), + K(last_run_interval), K(check_interval), K(schedule_interval)); } } @@ -205,7 +208,7 @@ void CheckThreadSet::loop_operation(void (*func)(const ObRsReentrantThread&)) SpinRLockGuard guard(rwlock_); for (int i = 0; i < arr_.count(); i++) { if (OB_ISNULL(arr_[i])) { - LOG_WARN("rs_monitor_check : arr[i] is NULL", K(i)); + LOG_WARN_RET(common::OB_ERR_UNEXPECTED, "rs_monitor_check : arr[i] is NULL", K(i)); continue; } func(*(arr_[i])); diff --git a/src/rootserver/ob_rs_rpc_processor.h b/src/rootserver/ob_rs_rpc_processor.h index 8d68d12d3..aeb3f63c6 100644 --- a/src/rootserver/ob_rs_rpc_processor.h +++ b/src/rootserver/ob_rs_rpc_processor.h @@ -232,7 +232,7 @@ protected: virtual int leader_process() = 0; virtual int follower_process() { - RS_LOG(WARN, "not master rootserver"); + RS_LOG_RET(WARN, common::OB_RS_NOT_MASTER, "not master rootserver"); return common::OB_RS_NOT_MASTER; } protected: diff --git a/src/rootserver/ob_schema_history_recycler.cpp b/src/rootserver/ob_schema_history_recycler.cpp index 1558fadca..eea700c22 100644 --- a/src/rootserver/ob_schema_history_recycler.cpp +++ b/src/rootserver/ob_schema_history_recycler.cpp @@ -143,7 +143,7 @@ int ObSchemaHistoryRecycler::idle() void ObSchemaHistoryRecycler::wakeup() { if (!inited_) { - LOG_WARN("not init"); + LOG_WARN_RET(common::OB_NOT_INIT, "not init"); } else { idling_.wakeup(); } @@ -1251,7 +1251,7 @@ bool ObRecycleSchemaExecutor::is_valid() const || OB_ISNULL(recycler_) || NONE == mode_) { bret = false; - LOG_WARN("invalid argument", K(bret), K_(tenant_id), K_(schema_version), K_(mode), + LOG_WARN_RET(common::OB_INVALID_ARGUMENT, "invalid argument", K(bret), K_(tenant_id), K_(schema_version), K_(mode), KP_(table_name), KP_(schema_key_name), KP_(sql_proxy), KP_(recycler)); } return bret; @@ -1744,7 +1744,7 @@ bool ObSecondRecycleSchemaExecutor::is_valid() const || OB_ISNULL(sql_proxy_) || OB_ISNULL(recycler_)) { bret = false; - LOG_WARN("invalid argument", K(bret), K_(tenant_id), K_(schema_version), + LOG_WARN_RET(common::OB_INVALID_ARGUMENT, "invalid argument", K(bret), K_(tenant_id), K_(schema_version), KP_(table_name), KP_(schema_key_name), KP_(second_schema_key_name), KP_(sql_proxy), KP_(recycler)); } @@ -1860,7 +1860,7 @@ bool ObThirdRecycleSchemaExecutor::is_valid() const || OB_ISNULL(sql_proxy_) || OB_ISNULL(recycler_)) { bret = false; - LOG_WARN("invalid argument", K(bret), K_(tenant_id), K_(schema_version), + LOG_WARN_RET(common::OB_INVALID_ARGUMENT, "invalid argument", K(bret), K_(tenant_id), K_(schema_version), KP_(table_name), KP_(schema_key_name), KP_(second_schema_key_name), KP_(third_schema_key_name), KP_(sql_proxy), KP_(recycler)); } @@ -2046,7 +2046,7 @@ bool ObSystemVariableRecycleSchemaExecutor::is_valid() const || OB_ISNULL(sql_proxy_) || OB_ISNULL(recycler_)) { bret = false; - LOG_WARN("invalid argument", K(bret), K_(tenant_id), K_(schema_version), + LOG_WARN_RET(common::OB_INVALID_ARGUMENT, "invalid argument", K(bret), K_(tenant_id), K_(schema_version), KP_(table_name), KP_(sql_proxy), KP_(recycler)); } return bret; @@ -2283,7 +2283,7 @@ bool ObObjectPrivRecycleSchemaExecutor::is_valid() const || OB_ISNULL(sql_proxy_) || OB_ISNULL(recycler_)) { bret = false; - LOG_WARN("invalid argument", K(bret), K_(tenant_id), K_(schema_version), + LOG_WARN_RET(OB_INVALID_ARGUMENT, "invalid argument", K(bret), K_(tenant_id), K_(schema_version), KP_(table_name), KP_(sql_proxy), KP_(recycler)); } return bret; diff --git a/src/rootserver/ob_server_balancer.cpp b/src/rootserver/ob_server_balancer.cpp index 2cdc03d96..7ee565d04 100644 --- a/src/rootserver/ob_server_balancer.cpp +++ b/src/rootserver/ob_server_balancer.cpp @@ -7240,6 +7240,7 @@ bool ObServerBalancer::UnitGroupLoadCmp::operator()( bool bool_ret = false; double left_value = 0.0; double right_value = 0.0; + int &ret = ret_; if (OB_UNLIKELY(OB_SUCCESS != ret_)) { // ignore } else if (OB_UNLIKELY(NULL == left || NULL == right)) { @@ -7391,7 +7392,7 @@ bool ObServerBalancer::ServerTotalLoadCmp::operator()( // ignore } else if (OB_UNLIKELY(NULL == left || NULL == right)) { ret_ = OB_INVALID_ARGUMENT; - LOG_WARN("invalid argument", K(ret_), KP(left), KP(right)); + LOG_WARN_RET(ret_, "invalid argument", K(ret_), KP(left), KP(right)); } else if (left->wild_server_ && !left->wild_server_) { bool_ret = true; } else if (!left->wild_server_ && right->wild_server_) { @@ -7441,7 +7442,7 @@ bool ObServerBalancer::IntraServerLoadCmp::operator()( // ignore } else if (OB_UNLIKELY(NULL == left || NULL == right)) { ret_ = OB_INVALID_ARGUMENT; - LOG_WARN("invalid argument", K(ret_), KP(left), KP(right)); + LOG_WARN_RET(ret_, "invalid argument", K(ret_), KP(left), KP(right)); } else if (left->intra_ttg_load_value_ > right->intra_ttg_load_value_) { bool_ret = true; } else { @@ -7479,7 +7480,7 @@ bool ObServerBalancer::InterServerLoadCmp::operator()( // ignore } else if (OB_UNLIKELY(NULL == left || NULL == right)) { ret_ = OB_INVALID_ARGUMENT; - LOG_WARN("invalid argument", K(ret_), KP(left), KP(right)); + LOG_WARN_RET(ret_, "invalid argument", K(ret_), KP(left), KP(right)); } else if (left->inter_ttg_load_value_ > right->inter_ttg_load_value_) { bool_ret = true; } else { @@ -7517,7 +7518,7 @@ bool ObServerBalancer::ServerLoadUgCntCmp::operator()( // ignore } else if (OB_UNLIKELY(NULL == left || NULL == right)) { ret_ = OB_INVALID_ARGUMENT; - LOG_WARN("invalid argument", K(ret_), KP(left), KP(right)); + LOG_WARN_RET(ret_, "invalid argument", K(ret_), KP(left), KP(right)); } else if (left->unitgroup_loads_.count() < right->unitgroup_loads_.count()) { bool_ret = true; } else { @@ -8125,7 +8126,7 @@ bool ObServerBalancer::ServerDiskPercentCmp::operator()( // ignore } else if (OB_UNLIKELY(NULL == left || NULL == right)) { ret_ = OB_INVALID_ARGUMENT; - LOG_WARN("invalid argument", K(ret_), KP(left), KP(right)); + LOG_WARN_RET(ret_,"invalid argument", K(ret_), KP(left), KP(right)); } else { double left_percent = left->get_disk_used_percent(); double right_percent = right->get_disk_used_percent(); @@ -8145,6 +8146,7 @@ bool ObServerBalancer::UnitLoadDiskCmp::operator()( bool bool_ret = false; ObUnitStat left_stat; ObUnitStat right_stat; + int &ret = ret_; if (common::OB_SUCCESS != ret_) { // bypass } else if (NULL == left || NULL == right) { diff --git a/src/rootserver/ob_server_balancer.h b/src/rootserver/ob_server_balancer.h index 6776cb3cd..4a3ed5415 100644 --- a/src/rootserver/ob_server_balancer.h +++ b/src/rootserver/ob_server_balancer.h @@ -137,13 +137,13 @@ const T *Matrix::get(const int64_t row, const int64_t column) const int err = common::OB_SUCCESS; if (OB_UNLIKELY(!is_inited_)) { err = common::OB_NOT_INIT; - RS_LOG(WARN, "matrix not init", K(err)); + RS_LOG_RET(WARN, err, "matrix not init", K(err)); } else if (OB_UNLIKELY(row < 0 || column < 0 || row >= row_count_ || column >= column_count_)) { err = common::OB_INVALID_ARGUMENT; - RS_LOG(WARN, "invalid argument", K(err), K(row), K(column), K(row_count_), K(column_count_)); + RS_LOG_RET(WARN, err, "invalid argument", K(err), K(row), K(column), K(row_count_), K(column_count_)); } else { const int64_t index = column + row * column_count_; ptr_ret = &inner_array_.at(index); @@ -158,13 +158,13 @@ T *Matrix::get(const int64_t row, const int64_t column) int err = common::OB_SUCCESS; if (OB_UNLIKELY(!is_inited_)) { err = common::OB_NOT_INIT; - RS_LOG(WARN, "matrix not init", K(err)); + RS_LOG_RET(WARN, err, "matrix not init", K(err)); } else if (OB_UNLIKELY(row < 0 || column < 0 || row >= row_count_ || column >= column_count_)) { err = common::OB_INVALID_ARGUMENT; - RS_LOG(WARN, "invalid argument", K(err), K(row), K(column), K(row_count_), K(column_count_)); + RS_LOG_RET(WARN, err, "invalid argument", K(err), K(row), K(column), K(row_count_), K(column_count_)); } else { const int64_t index = column + row * column_count_; ptr_ret = &inner_array_.at(index); diff --git a/src/rootserver/ob_server_manager.cpp b/src/rootserver/ob_server_manager.cpp index bd78fc676..8974a009a 100644 --- a/src/rootserver/ob_server_manager.cpp +++ b/src/rootserver/ob_server_manager.cpp @@ -782,9 +782,9 @@ void ObServerManager::clear_in_recovery_server_takenover_by_rs( if (OB_SUCCESS == tmp_ret) { status_ptr->in_recovery_for_takenover_by_rs_ = false;; } else if (OB_ENTRY_NOT_EXIST != tmp_ret) { - LOG_WARN("find failed", K(server), K(tmp_ret)); + LOG_WARN_RET(tmp_ret, "find failed", K(server), K(tmp_ret)); } else { - LOG_WARN("fail to find server", K(server), K(tmp_ret)); + LOG_WARN_RET(tmp_ret, "fail to find server", K(server), K(tmp_ret)); } } @@ -2731,14 +2731,14 @@ bool ObServerManager::have_server_deleting() const ObArray server_statuses; if (!inited_) { tmp_ret = OB_NOT_INIT; - LOG_WARN("server manager not inited", K(tmp_ret)); + LOG_WARN_RET(tmp_ret, "server manager not inited", K(tmp_ret)); } else if (OB_SUCCESS != (tmp_ret = get_server_statuses(zone, server_statuses))) { - LOG_WARN("fail to get server status", K(zone), K(tmp_ret)); + LOG_WARN_RET(tmp_ret, "fail to get server status", K(zone), K(tmp_ret)); } else { FOREACH_CNT_X(status, server_statuses, OB_SUCCESS == tmp_ret) { if (OB_ISNULL(status)) { tmp_ret = OB_ERR_UNEXPECTED; - LOG_WARN("get invalid status", K(tmp_ret)); + LOG_WARN_RET(tmp_ret, "get invalid status", K(tmp_ret)); } else if (ObServerStatus::OB_SERVER_ADMIN_DELETING == status->admin_status_) { bret = true; break; diff --git a/src/rootserver/ob_tenant_role_transition_service.cpp b/src/rootserver/ob_tenant_role_transition_service.cpp index 7c15c9c5f..d68e5976f 100644 --- a/src/rootserver/ob_tenant_role_transition_service.cpp +++ b/src/rootserver/ob_tenant_role_transition_service.cpp @@ -840,7 +840,7 @@ int ObTenantRoleTransitionService::switchover_update_tenant_status( if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), KR(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, KR(temp_ret)); ret = OB_SUCC(ret) ? temp_ret : ret; } } diff --git a/src/rootserver/ob_thread_idling.cpp b/src/rootserver/ob_thread_idling.cpp index d37b88b9b..17cb4d1f2 100644 --- a/src/rootserver/ob_thread_idling.cpp +++ b/src/rootserver/ob_thread_idling.cpp @@ -33,7 +33,7 @@ void ObThreadIdling::wakeup() wakeup_cnt_++; int tmp_ret = cond_.broadcast(); if (OB_SUCCESS != tmp_ret) { - LOG_WARN("condition broadcast fail", K(tmp_ret)); + LOG_WARN_RET(tmp_ret, "condition broadcast fail", K(tmp_ret)); } } diff --git a/src/rootserver/ob_unit_manager.cpp b/src/rootserver/ob_unit_manager.cpp index 2a656bf5a..cba9a5aae 100644 --- a/src/rootserver/ob_unit_manager.cpp +++ b/src/rootserver/ob_unit_manager.cpp @@ -111,7 +111,7 @@ bool ObUnitManager::ObUnitLoadOrder::operator()(const ObUnitLoad &left, if (OB_SUCCESS != ret_) { } else if (!left.is_valid() || !right.is_valid()) { ret_ = OB_INVALID_ARGUMENT; - RS_LOG(WARN, "invalid argument", K(left), K(right), K_(ret)); + RS_LOG_RET(WARN, ret_, "invalid argument", K(left), K(right), K_(ret)); } else if (OB_SUCCESS != (ret_ = ObResourceUtils::calc_load(left, server_load_, weights_, weights_count_, left_load))) { } else if (OB_SUCCESS != (ret_ = ObResourceUtils::calc_load(right, server_load_, weights_, weights_count_, right_load))) { } else { @@ -335,7 +335,7 @@ bool ObUnitManager::ObServerLoadOrder::operator()(const ObServerLoad *left, } else if (OB_ISNULL(left) || OB_ISNULL(right) || !left->is_valid() || !right->is_valid()) { ret_ = OB_INVALID_ARGUMENT; - RS_LOG(WARN, "invalid argument", K(left), K(right), K_(ret)); + RS_LOG_RET(WARN, ret_, "invalid argument", K(left), K(right), K_(ret)); } else if (OB_SUCCESS != (ret_ = left->get_load(weights_, weights_count_, left_load))) { } else if (OB_SUCCESS != (ret_ = right->get_load(weights_, weights_count_, right_load))) { } else { @@ -423,7 +423,7 @@ void ObUnitManager::dump() common::ObArray *ptr = iter5->second; ObAddr server = iter5->first; if (OB_ISNULL(ptr)) { - LOG_WARN("DUMP get invalid unit info", K(server)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "DUMP get invalid unit info", K(server)); } else { LOG_INFO("DUMP SERVER_MIGRATE_UNIT_MAP", K(server), K(*ptr)); } diff --git a/src/rootserver/ob_update_rs_list_task.cpp b/src/rootserver/ob_update_rs_list_task.cpp index 91cc857f0..51e4906c6 100644 --- a/src/rootserver/ob_update_rs_list_task.cpp +++ b/src/rootserver/ob_update_rs_list_task.cpp @@ -49,7 +49,7 @@ bool ObUpdateRsListTask::try_lock() int64_t cnt = ATOMIC_AAF(&g_wait_cnt_, 1); if (1 != cnt) { if (cnt < 0) { - LOG_ERROR("unexpected waiting task cnt", K(cnt)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "unexpected waiting task cnt", K(cnt)); } else { LOG_INFO("update rslist task exist, do not submit again", K(cnt)); } @@ -441,7 +441,7 @@ ObAsyncTask *ObUpdateRsListTimerTask::deep_copy(char *buf, const int64_t buf_siz { ObUpdateRsListTimerTask *task = NULL; if (OB_ISNULL(buf) || buf_size < static_cast(sizeof(*this))) { - LOG_WARN("buffer not large enough", K(buf_size)); + LOG_WARN_RET(OB_BUF_NOT_ENOUGH, "buffer not large enough", K(buf_size)); } else { task = new(buf) ObUpdateRsListTimerTask(rs_); } diff --git a/src/rootserver/ob_zone_manager.cpp b/src/rootserver/ob_zone_manager.cpp index b3e10dc6e..9c6548377 100644 --- a/src/rootserver/ob_zone_manager.cpp +++ b/src/rootserver/ob_zone_manager.cpp @@ -949,7 +949,7 @@ ObZoneManager::ObZoneManagerShadowGuard::~ObZoneManagerShadowGuard() if (OB_UNLIKELY(OB_SUCCESS != ret_)) { } else if (OB_UNLIKELY(OB_SUCCESS != (ret_ = ObZoneManager::copy_infos(zone_mgr_, shadow_)))) { - LOG_WARN("copy from shadow_ failed", K(ret_)); + LOG_WARN_RET(ret_, "copy from shadow_ failed", K(ret_)); } } diff --git a/src/rootserver/ob_zone_unit_provider.cpp b/src/rootserver/ob_zone_unit_provider.cpp index 842639fdd..449d2f065 100644 --- a/src/rootserver/ob_zone_unit_provider.cpp +++ b/src/rootserver/ob_zone_unit_provider.cpp @@ -41,7 +41,7 @@ int64_t ObAliveZoneUnitAdaptor::count() const { int64_t cnt = 0; if (OB_UNLIKELY(NULL == zu_)) { - LOG_ERROR("unexpected null zu_"); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "unexpected null zu_"); } else { cnt = zu_->count(); } @@ -99,7 +99,7 @@ bool ObAliveZoneUnitsProvider::UnitSortOp::operator()( // jump out } else if (OB_UNLIKELY(nullptr == left || nullptr == right)) { ret_ = common::OB_ERR_UNEXPECTED; - LOG_WARN("left or right ptr is null", K(ret_), KP(left), KP(right)); + LOG_WARN_RET(ret_, "left or right ptr is null", K(ret_), KP(left), KP(right)); } else if (left->unit_.unit_id_ < right->unit_.unit_id_) { bool_ret = true; } else { @@ -117,11 +117,11 @@ bool ObAliveZoneUnitsProvider::ZoneUnitSortOp::operator()( // jump out } else if (left.count() <= 0 || right.count() <= 0) { ret_ = OB_ERR_UNEXPECTED; - LOG_WARN("left or right unit array empty", K(ret_), + LOG_WARN_RET(ret_, "left or right unit array empty", K(ret_), "left_count", left.count(), "right_count", right.count()); } else if (nullptr == left.at(0) || nullptr == right.at(0)) { ret_ = OB_ERR_UNEXPECTED; - LOG_WARN("unit ptr is null", K(ret_), "left_ptr", left.at(0), "right_ptr", right.at(0)); + LOG_WARN_RET(ret_, "unit ptr is null", K(ret_), "left_ptr", left.at(0), "right_ptr", right.at(0)); } else if (left.at(0)->unit_.zone_ < right.at(0)->unit_.zone_) { bool_ret = true; } else { @@ -276,7 +276,7 @@ int64_t ObAllZoneUnitAdaptor::count() const { int64_t cnt = 0; if (OB_UNLIKELY(NULL == all_unit_)) { - LOG_ERROR("unexpected null all_unit_"); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "unexpected null all_unit_"); } else { cnt = all_unit_->count(); } diff --git a/src/share/backup/ob_archive_mode.cpp b/src/share/backup/ob_archive_mode.cpp index 3874b2547..ae5fe3e43 100644 --- a/src/share/backup/ob_archive_mode.cpp +++ b/src/share/backup/ob_archive_mode.cpp @@ -36,7 +36,7 @@ const char* ObArchiveMode::to_str() const const char *str = OB_ARCHIVE_MODE_STR[0]; if (OB_UNLIKELY(mode_ >= ARRAYSIZEOF(OB_ARCHIVE_MODE_STR) || mode_ < Mode::INVALID)) { - LOG_ERROR("fatal error, unknown archive mode", K_(mode)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "fatal error, unknown archive mode", K_(mode)); } else { str = OB_ARCHIVE_MODE_STR[mode_]; } @@ -57,9 +57,9 @@ ObArchiveMode::ObArchiveMode(const ObString &str) } if (Mode::INVALID == mode_) { - LOG_WARN("invalid archive mode", K_(mode), K(str)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "invalid archive mode", K_(mode), K(str)); } } } -} \ No newline at end of file +} diff --git a/src/share/backup/ob_archive_piece.cpp b/src/share/backup/ob_archive_piece.cpp index bc1d57856..4e09dfabf 100644 --- a/src/share/backup/ob_archive_piece.cpp +++ b/src/share/backup/ob_archive_piece.cpp @@ -36,7 +36,7 @@ ObArchivePiece::~ObArchivePiece() ObArchivePiece::ObArchivePiece(const SCN &scn, const int64_t interval_us, const SCN &genesis_scn, const int64_t base_piece_id) { if (!scn.is_valid() || interval_us < ONE_SECOND || !genesis_scn.is_valid() || base_piece_id < 1) { - LOG_ERROR("invalid argument", K(scn), K(interval_us), K(genesis_scn), K(base_piece_id)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "invalid argument", K(scn), K(interval_us), K(genesis_scn), K(base_piece_id)); } else { interval_us_ = interval_us; genesis_scn_ = genesis_scn; @@ -107,7 +107,7 @@ ObArchivePiece &ObArchivePiece::operator++() bool ObArchivePiece::operator==(const ObArchivePiece &other) const { if (interval_us_ != other.interval_us_) { - LOG_ERROR("different piece interval, can not compare", KPC(this), K(other)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "different piece interval, can not compare", KPC(this), K(other)); } return piece_id_ == other.piece_id_; } @@ -120,7 +120,7 @@ bool ObArchivePiece::operator!=(const ObArchivePiece &other) const bool ObArchivePiece::operator>(const ObArchivePiece &other) const { if (interval_us_ != other.interval_us_) { - LOG_ERROR("different piece interval, can not compare", KPC(this), K(other)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "different piece interval, can not compare", KPC(this), K(other)); } return piece_id_ > other.piece_id_; } diff --git a/src/share/backup/ob_backup_clean_struct.cpp b/src/share/backup/ob_backup_clean_struct.cpp index 015eb2cc9..7d5b99314 100644 --- a/src/share/backup/ob_backup_clean_struct.cpp +++ b/src/share/backup/ob_backup_clean_struct.cpp @@ -40,7 +40,7 @@ const char* ObBackupCleanStatus::get_str() const STATIC_ASSERT(MAX_STATUS == ARRAYSIZEOF(new_backup_clean_status_strs), "status count mismatch"); if (status_ < INIT || status_ >= MAX_STATUS) { - LOG_ERROR("invalid backup clean job status", K(status_)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "invalid backup clean job status", K(status_)); } else { str = new_backup_clean_status_strs[status_]; } @@ -626,4 +626,4 @@ int ObDeletePolicyAttr::assign(const ObDeletePolicyAttr &other) bool ObDeletePolicyAttr::is_valid() const { return OB_INVALID_TENANT_ID != tenant_id_ && 0 != strlen(policy_name_); -} \ No newline at end of file +} diff --git a/src/share/backup/ob_backup_config.cpp b/src/share/backup/ob_backup_config.cpp index 13cc568cc..579dc60f4 100644 --- a/src/share/backup/ob_backup_config.cpp +++ b/src/share/backup/ob_backup_config.cpp @@ -84,7 +84,7 @@ const char *ObBackupConfigType::get_backup_config_type_str() const char *str = "UNKNOWN"; STATIC_ASSERT(Type::MAX_CONFIG_NAME == ARRAYSIZEOF(type_str), "types count mismatch"); if (type_ < Type::DATA_BACKUP_DEST || type_ >= Type::MAX_CONFIG_NAME) { - LOG_ERROR("invalid backup config type", K(type_)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "invalid backup config type", K(type_)); } else { str = type_str[type_]; } diff --git a/src/share/backup/ob_backup_io_adapter.cpp b/src/share/backup/ob_backup_io_adapter.cpp index d9eec98d7..3f70cceea 100644 --- a/src/share/backup/ob_backup_io_adapter.cpp +++ b/src/share/backup/ob_backup_io_adapter.cpp @@ -57,7 +57,7 @@ int ObBackupIoAdapter::open_with_access_type(ObIODevice*& device_handle, ObIOFd void release_device(ObIODevice*& dev_handle) { if (OB_ISNULL(dev_handle)) { - OB_LOG(WARN, "device handle is null, invalid parameter!"); + OB_LOG_RET(WARN, OB_INVALID_ARGUMENT, "device handle is null, invalid parameter!"); } else { ObDeviceManager::get_instance().release_device(dev_handle); dev_handle = NULL; diff --git a/src/share/backup/ob_backup_struct.cpp b/src/share/backup/ob_backup_struct.cpp index f5bd6a18b..f7cc72a35 100644 --- a/src/share/backup/ob_backup_struct.cpp +++ b/src/share/backup/ob_backup_struct.cpp @@ -1795,7 +1795,7 @@ const char *ObBackupInfoStatus::get_status_str(const BackupStatus &status) }; STATIC_ASSERT(MAX == ARRAYSIZEOF(info_backup_status_strs), "status count mismatch"); if (status < 0 || status >= MAX) { - LOG_ERROR("invalid backup info status", K(status)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "invalid backup info status", K(status)); } else { str = info_backup_status_strs[status]; } @@ -1887,7 +1887,7 @@ const char *ObBackupType::get_backup_type_str() const }; STATIC_ASSERT(MAX == ARRAYSIZEOF(backup_func_type_strs), "types count mismatch"); if (type_ < 0 || type_ >= MAX) { - LOG_ERROR("invalid backup type", K(type_)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "invalid backup type", K(type_)); } else { str = backup_func_type_strs[type_]; } @@ -1925,7 +1925,6 @@ int ObBackupType::set_backup_type( return ret; } - ObBaseBackupInfoStruct::ObBaseBackupInfoStruct() : tenant_id_(OB_INVALID_ID), backup_set_id_(0), incarnation_(0), backup_dest_(), backup_backup_dest_(), backup_snapshot_version_(0), backup_schema_version_(0), @@ -2722,16 +2721,16 @@ bool ObNonFrozenBackupPieceInfo::is_valid() const if (!cur_piece_info_.is_valid()) { is_valid = false; - LOG_WARN("cur piece info is invalid", K(*this)); + LOG_WARN_RET(OB_INVALID_ERROR, "cur piece info is invalid", K(*this)); } if (has_prev_piece_info_ && is_valid) { if (!prev_piece_info_.is_valid()) { is_valid = false; - LOG_WARN("prev piece info is invalid", K(*this)); + LOG_WARN_RET(OB_INVALID_ERROR, "prev piece info is invalid", K(*this)); } else if (ObBackupPieceStatus::BACKUP_PIECE_ACTIVE == prev_piece_info_.status_) { is_valid = false; - LOG_WARN("previous piece info is active", K(*this)); + LOG_WARN_RET(OB_INVALID_ERROR, "previous piece info is active", K(*this)); } } @@ -2934,7 +2933,7 @@ const char* ObBackupStatus::get_str() const STATIC_ASSERT(MAX_STATUS == ARRAYSIZEOF(status_strs), "status count mismatch"); if (status_ < INIT || status_ >= MAX_STATUS) { - LOG_ERROR("invalid backup data job status", K(status_)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "invalid backup data job status", K(status_)); } else { str = status_strs[status_]; } @@ -3007,7 +3006,7 @@ const char* ObBackupTaskStatus::get_str() const }; STATIC_ASSERT(MAX_STATUS == ARRAYSIZEOF(status_strs), "status count mismatch"); if (status_ < INIT || status_ >= MAX_STATUS) { - LOG_ERROR("invalid backup data task status", K(status_)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "invalid backup data task status", K(status_)); } else { str = status_strs[status_]; } @@ -3283,7 +3282,7 @@ const char* ObBackupDataTaskType::get_str() const "BACKUP_META" }; if (type_ < Type::BACKUP_DATA_SYS || type_ >= Type::BACKUP_MAX) { - LOG_ERROR("invalid compressor type", K(type_)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "invalid compressor type", K(type_)); } else { str = type_strs[type_]; } @@ -3550,7 +3549,7 @@ const char *ObBackupSetFileDesc::get_backup_set_status_str() const STATIC_ASSERT(MAX == ARRAYSIZEOF(backup_set_file_info_status_strs), "status count mismatch"); if (status_ < 0 || status_ >= MAX) { - LOG_WARN("invalid backup set status", K(status_)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "invalid backup set status", K(status_)); } else { str = backup_set_file_info_status_strs[status_]; } @@ -3724,7 +3723,7 @@ const char *ObBackupLevel::get_str() const "USER_TENANT" }; if (level_ < Level::CLUSTER || level_ >= Level::MAX_LEVEL) { - LOG_ERROR("invalid backup level", K(level_)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "invalid backup level", K(level_)); } else { str = level_strs[level_]; } @@ -3806,7 +3805,7 @@ const char *ObLogArchiveDestState::get_str() const "DEFER" }; if (!is_valid()) { - LOG_ERROR("invalid state", K(state_)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "invalid state", K(state_)); } else { str = state_strs[state_]; } diff --git a/src/share/cache/ob_cache_utils.h b/src/share/cache/ob_cache_utils.h index d194ce9cd..da97ecc43 100644 --- a/src/share/cache/ob_cache_utils.h +++ b/src/share/cache/ob_cache_utils.h @@ -74,7 +74,7 @@ public: Iterator &operator ++() { if (OB_ISNULL(hash_map_)) { - SHARE_LOG(ERROR, "hash_map_ is null"); + SHARE_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "hash_map_ is null"); } else if (NULL != node_ && NULL != (node_ = node_->next_)) { // do nothing } else { @@ -257,7 +257,7 @@ typename ObFixedHashMap::iterator ObFixedHashMapstatus_), FULL, FREE)) { int ret = OB_SUCCESS; @@ -1368,9 +1368,9 @@ void ObKVCacheStore::free_mb(ObTenantResourceMgrHandle &resource_handle, { if (NULL != ptr) { if (OB_INVALID_ID == tenant_id) { - COMMON_LOG(ERROR, "invalid tenant_id", K(tenant_id)); + COMMON_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "invalid tenant_id", K(tenant_id)); } else if (!resource_handle.is_valid()) { - COMMON_LOG(ERROR, "invalid resource_handle"); + COMMON_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "invalid resource_handle"); } else { resource_handle.get_memory_mgr()->free_cache_mb(ptr); } diff --git a/src/share/cache/ob_working_set_mgr.cpp b/src/share/cache/ob_working_set_mgr.cpp index 465ed55fc..3b0cf2bee 100644 --- a/src/share/cache/ob_working_set_mgr.cpp +++ b/src/share/cache/ob_working_set_mgr.cpp @@ -67,7 +67,7 @@ int WorkingSetMB::alloc( void WorkingSetMB::set_full(const double base_mb_score) { if (NULL == mb_handle_) { - LOG_ERROR("mb_handle_ is null", KP_(mb_handle)); + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "mb_handle_ is null", KP_(mb_handle)); } else { mb_handle_->set_full(base_mb_score); } @@ -356,7 +356,7 @@ bool ObWorkingSet::try_reuse_mb(WorkingSetMB *ws_mb, ObKVMemBlockHandle *&mb_han // try_check_and_inc_seq_num will set ref_cnt to 0, no need to de_handle_ref any more } else { if (!ATOMIC_BCAS((uint32_t*)(&reused_handle->status_), FREE, FULL)) { - COMMON_LOG(ERROR, "change mb_handle status back to FULL failed"); + COMMON_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "change mb_handle status back to FULL failed"); } mb_handle_allocator_->de_handle_ref(reused_handle); } diff --git a/src/share/client_feedback/ob_feedback_partition_struct.h b/src/share/client_feedback/ob_feedback_partition_struct.h index 83435e6b3..8584fb4e1 100644 --- a/src/share/client_feedback/ob_feedback_partition_struct.h +++ b/src/share/client_feedback/ob_feedback_partition_struct.h @@ -112,7 +112,7 @@ public: bool equal = true; if (!is_valid_obj() || !other.is_valid_obj()) { equal = false; - SHARE_LOG(WARN, "invalid argument", "self", *this, K(other)); + SHARE_LOG_RET(WARN, common::OB_INVALID_ARGUMENT, "invalid argument", "self", *this, K(other)); } else if (type_ != other.type_) { equal = false; } else if (replicas_.count() != other.replicas_.count()) { diff --git a/src/share/config/ob_config.cpp b/src/share/config/ob_config.cpp index 58c6afb2c..35a9a8f2c 100644 --- a/src/share/config/ob_config.cpp +++ b/src/share/config/ob_config.cpp @@ -77,11 +77,11 @@ void ObConfigItem::init(Scope::ScopeInfo scope_info, const ObParameterAttr attr) { if (OB_ISNULL(name) || OB_ISNULL(def) || OB_ISNULL(info)) { - OB_LOG(ERROR, "name or def or info is null", K(name), K(def), K(info)); + OB_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "name or def or info is null", K(name), K(def), K(info)); } else { set_name(name); if (!set_value(def)) { - OB_LOG(ERROR, "Set config item value failed", K(name), K(def)); + OB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "Set config item value failed", K(name), K(def)); } else { set_info(info); attr_ = attr; @@ -273,7 +273,7 @@ bool ObConfigStrListItem::set(const char *str) } } } else { - OB_LOG(WARN, "input str is not available", K(str), K_(value_.valid), K_(value_.size), K(bret)); + OB_LOG_RET(WARN, common::OB_ERR_UNEXPECTED, "input str is not available", K(str), K_(value_.valid), K_(value_.size), K(bret)); } } else { ObLatchRGuard wr_guard(value_.rwlock_, ObLatchIds::CONFIG_LOCK); @@ -294,9 +294,9 @@ void ObConfigIntegralItem::init(Scope::ScopeInfo scope_info, ObConfigItem::init(scope_info, name, def, info, attr); set_range(range); if (OB_ISNULL(range)) { - OB_LOG(ERROR, "Range is NULL"); + OB_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "Range is NULL"); } else if (!parse_range(range)) { - OB_LOG(ERROR, "Parse check range fail", K(range)); + OB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "Parse check range fail", K(range)); } } @@ -406,9 +406,9 @@ void ObConfigDoubleItem::init(Scope::ScopeInfo scope_info, ObConfigItem::init(scope_info, name, def, info, attr); set_range(range); if (OB_ISNULL(range)) { - OB_LOG(ERROR, "Range is NULL"); + OB_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "Range is NULL"); } else if (!parse_range(range)) { - OB_LOG(ERROR, "Parse check range fail", K(range)); + OB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "Parse check range fail", K(range)); } } @@ -558,7 +558,7 @@ int64_t ObConfigTimeItem::parse(const char *str, bool &valid) const { int64_t value = ObConfigTimeParser::get(str, valid); if (!valid) { - OB_LOG(ERROR, "set time error", "name", name(), K(str), K(valid)); + OB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "set time error", "name", name(), K(str), K(valid)); } return value; } @@ -595,7 +595,7 @@ int64_t ObConfigIntItem::parse(const char *str, bool &valid) const { int64_t value = ObConfigIntParser::get(str, valid); if (!valid) { - OB_LOG(ERROR, "set int error", "name", name(), K(str), K(valid)); + OB_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "set int error", "name", name(), K(str), K(valid)); } return value; } @@ -665,11 +665,11 @@ bool ObConfigBoolItem::parse(const char *str, bool &valid) const bool value = true; if (OB_ISNULL(str)) { valid = false; - OB_LOG(ERROR, "Get bool config item fail, str is NULL!"); + OB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "Get bool config item fail, str is NULL!"); } else { value = ObConfigBoolParser::get(str, valid); if (!valid) { - OB_LOG(WARN, "Get bool config item fail", K(valid), K(str)); + OB_LOG_RET(WARN, common::OB_ERR_UNEXPECTED, "Get bool config item fail", K(valid), K(str)); } } return value; @@ -825,7 +825,7 @@ bool ObConfigLogArchiveOptionsItem::is_valid_isolate_option(const int64_t idx) bret = true; } else { bret = false; - OB_LOG(WARN, "invalid isolated option idx", K(idx)); + OB_LOG_RET(WARN, common::OB_INVALID_ARGUMENT, "invalid isolated option idx", K(idx)); } return bret; } @@ -838,7 +838,7 @@ void ObConfigLogArchiveOptionsItem::process_isolated_option_(const int64_t idx) value_.is_mandatory_ = false; } else { value_.valid_ = false; - OB_LOG(WARN, "invalid isolated option idx", K(idx)); + OB_LOG_RET(WARN, common::OB_INVALID_ARGUMENT, "invalid isolated option idx", K(idx)); } } @@ -1000,7 +1000,7 @@ bool ObConfigVersionItem::set(const char *str) bool value_update = value_updated(); bool valid = ObConfigIntegralItem::set(str); if (valid && value_update && old_value > value_) { - OB_LOG(ERROR, "Attention!!! data version is retrogressive", K(old_value), K_(value)); + OB_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "Attention!!! data version is retrogressive", K(old_value), K_(value)); } if (old_value != value_) { ObTaskController::get().allow_next_syslog(); @@ -1025,7 +1025,7 @@ ObConfigVersionItem &ObConfigVersionItem::operator = (int64_t value) char buf[64] = {0}; (void) snprintf(buf, sizeof(buf), "%ld", value); if (!set_value(buf)) { - OB_LOG(WARN, "obconfig version item set value failed"); + OB_LOG_RET(WARN, OB_ERR_UNEXPECTED, "obconfig version item set value failed"); } return *this; } diff --git a/src/share/config/ob_config.h b/src/share/config/ob_config.h index b27f58e47..ebfeb839c 100644 --- a/src/share/config/ob_config.h +++ b/src/share/config/ob_config.h @@ -221,7 +221,7 @@ public: ObConfigIntListItem &operator=(const char *str) { if (!set_value(str)) { - OB_LOG(WARN, "obconfig int list item set value failed"); + OB_LOG_RET(WARN, common::OB_ERR_UNEXPECTED, "obconfig int list item set value failed"); } return *this; } @@ -289,7 +289,7 @@ public: ObConfigStrListItem &operator=(const char *str) { if (!set_value(str)) { - OB_LOG(WARN, "obconfig str list item set value failed"); + OB_LOG_RET(WARN, common::OB_ERR_UNEXPECTED, "obconfig str list item set value failed"); } return *this; } @@ -474,7 +474,7 @@ inline ObConfigDoubleItem &ObConfigDoubleItem::operator = (double value) char buf[2L<<10]; (void) snprintf(buf, sizeof(buf), "%f", value); if (!set_value(buf)) { - OB_LOG(WARN, "obconfig double item set value failed"); + OB_LOG_RET(WARN, common::OB_ERR_UNEXPECTED, "obconfig double item set value failed"); } return *this; } @@ -521,7 +521,7 @@ inline ObConfigCapacityItem &ObConfigCapacityItem::operator = (int64_t value) char buf[2L<<10]; (void) snprintf(buf, sizeof(buf), "%ldB", value); if (!set_value(buf)) { - OB_LOG(WARN, "obconfig capacity item set value failed"); + OB_LOG_RET(WARN, common::OB_ERR_UNEXPECTED, "obconfig capacity item set value failed"); } return *this; } @@ -553,7 +553,7 @@ inline ObConfigTimeItem &ObConfigTimeItem::operator = (int64_t value){ char buf[2L<<10]; (void) snprintf(buf, sizeof(buf), "%ldus", value); if (!set_value(buf)) { - OB_LOG(WARN, "obconfig time item set value failed"); + OB_LOG_RET(WARN, common::OB_ERR_UNEXPECTED, "obconfig time item set value failed"); } return *this; } @@ -589,7 +589,7 @@ inline ObConfigIntItem &ObConfigIntItem::operator = (int64_t value) char buf[64]; (void) snprintf(buf, sizeof(buf), "%ld", value); if (!set_value(buf)) { - OB_LOG(WARN, "obconfig int item set value failed"); + OB_LOG_RET(WARN, common::OB_ERR_UNEXPECTED, "obconfig int item set value failed"); } return *this; } @@ -721,7 +721,7 @@ public: ObConfigLogArchiveOptionsItem &operator=(const char *str) { if (!set_value(str)) { - OB_LOG(WARN, "obconfig log archive options item set value failed"); + OB_LOG_RET(WARN, common::OB_ERR_UNEXPECTED, "obconfig log archive options item set value failed"); } return *this; } diff --git a/src/share/config/ob_config_helper.cpp b/src/share/config/ob_config_helper.cpp index 61d72558a..588511b6b 100644 --- a/src/share/config/ob_config_helper.cpp +++ b/src/share/config/ob_config_helper.cpp @@ -444,7 +444,7 @@ int64_t ObConfigIntParser::get(const char *str, bool &valid) valid = true; } else { valid = false; - OB_LOG(WARN, "set int error", K(str), K(valid)); + OB_LOG_RET(WARN, OB_ERR_UNEXPECTED, "set int error", K(str), K(valid)); } } return value; @@ -487,7 +487,7 @@ int64_t ObConfigCapacityParser::get(const char *str, bool &valid) value <<= CAP_PB; } else { valid = false; - OB_LOG(WARN, "set capacity error", K(str), K(p_unit)); + OB_LOG_RET(WARN, OB_ERR_UNEXPECTED, "set capacity error", K(str), K(p_unit)); } } @@ -518,7 +518,7 @@ int64_t ObConfigReadableIntParser::get(const char *str, bool &valid) value *= UNIT_M; } else { valid = false; - OB_LOG(WARN, "set readable int error", K(str), K(p_unit)); + OB_LOG_RET(WARN, OB_ERR_UNEXPECTED, "set readable int error", K(str), K(p_unit)); } } @@ -554,7 +554,7 @@ int64_t ObConfigTimeParser::get(const char *str, bool &valid) value = value * TIME_DAY; } else { valid = false; - OB_LOG(WARN, "set time error", K(str), K(p_unit)); + OB_LOG_RET(WARN, OB_ERR_UNEXPECTED, "set time error", K(str), K(p_unit)); } } @@ -605,7 +605,7 @@ bool ObConfigBoolParser::get(const char *str, bool &valid) if (OB_ISNULL(str)) { valid = false; - OB_LOG(WARN, "Get bool config item fail, str is NULL!"); + OB_LOG_RET(WARN, OB_ERR_UNEXPECTED, "Get bool config item fail, str is NULL!"); } else if (0 == STRCASECMP(str, "false")) { valid = true; value = false; @@ -637,7 +637,7 @@ bool ObConfigBoolParser::get(const char *str, bool &valid) valid = true; value = false; } else { - OB_LOG(WARN, "Get bool config item fail", K(str)); + OB_LOG_RET(WARN, OB_ERR_UNEXPECTED, "Get bool config item fail", K(str)); valid = false; } return value; diff --git a/src/share/config/ob_server_config.cpp b/src/share/config/ob_server_config.cpp index dfea1aa8d..61721c3b2 100644 --- a/src/share/config/ob_server_config.cpp +++ b/src/share/config/ob_server_config.cpp @@ -125,7 +125,7 @@ int ObServerConfig::check_all() const OB_LOG(ERROR, "config item is null", "name", it->first.str(), K(ret)); } else if (!it->second->check()) { int temp_ret = OB_INVALID_CONFIG; - OB_LOG(WARN, "Configure setting invalid", + OB_LOG_RET(WARN, temp_ret, "Configure setting invalid", "name", it->first.str(), "value", it->second->str(), K(temp_ret)); } else { // do nothing @@ -152,7 +152,7 @@ void ObServerConfig::print() const ObConfigContainer::const_iterator it = container_.begin(); for (; it != container_.end(); ++it) { if (OB_ISNULL(it->second)) { - OB_LOG(WARN, "config item is null", "name", it->first.str()); + OB_LOG_RET(WARN, OB_ERROR, "config item is null", "name", it->first.str()); } else { _OB_LOG(INFO, "| %-36s = %s", it->first.str(), it->second->str()); } @@ -257,7 +257,7 @@ void ObServerMemoryConfig::set_server_memory_limit(int64_t memory_limit) if (memory_limit > system_memory_) { LOG_INFO("update memory_limit success", K(memory_limit), K(system_memory_)); } else { - LOG_ERROR("update memory_limit failed", K(memory_limit), K(system_memory_)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "update memory_limit failed", K(memory_limit), K(system_memory_)); } } diff --git a/src/share/datum/ob_datum.cpp b/src/share/datum/ob_datum.cpp index 763958d44..b0285d080 100644 --- a/src/share/datum/ob_datum.cpp +++ b/src/share/datum/ob_datum.cpp @@ -78,7 +78,7 @@ ObObjDatumMapType ObDatum::get_obj_datum_map_type(const ObObjType type) "new added type should extend this map"); ObObjDatumMapType t = OBJ_DATUM_MAPPING_MAX; if (type < 0 || type >= ObMaxType) { - LOG_ERROR("invalid obj type", K(type)); + LOG_ERROR_RET(common::OB_INVALID_ARGUMENT, "invalid obj type", K(type)); } else { t = maps[type]; } @@ -106,7 +106,7 @@ uint32_t ObDatum::get_reserved_size(const ObObjDatumMapType type) uint32_t res_size = 0; if (type >= OBJ_DATUM_MAPPING_MAX) { - LOG_ERROR("invalid obj type", K(type)); + LOG_ERROR_RET(common::OB_INVALID_ARGUMENT, "invalid obj type", K(type)); } else { res_size = OBOBJ_DATUM_MAP_TYPE_TO_RES_SIZE_MAP[type]; } diff --git a/src/share/datum/ob_datum_funcs.cpp b/src/share/datum/ob_datum_funcs.cpp index 860cbdae2..870e4252a 100644 --- a/src/share/datum/ob_datum_funcs.cpp +++ b/src/share/datum/ob_datum_funcs.cpp @@ -1105,7 +1105,7 @@ ObExprBasicFuncs* ObDatumFuncs::get_basic_func(const ObObjType type, res = &EXPR_BASIC_FUNCS[type]; } } else { - LOG_WARN("invalid obj type", K(type)); + LOG_WARN_RET(common::OB_INVALID_ARGUMENT, "invalid obj type", K(type)); } return res; } diff --git a/src/share/deadlock/ob_deadlock_arg_checker.h b/src/share/deadlock/ob_deadlock_arg_checker.h index ec2ae182a..955f100b3 100644 --- a/src/share/deadlock/ob_deadlock_arg_checker.h +++ b/src/share/deadlock/ob_deadlock_arg_checker.h @@ -82,21 +82,21 @@ do {\ #define CHECK_INIT()\ do {\ if (is_inited_ != true) {\ - DETECT_LOG(WARN, "not init yet", K_(is_inited));\ + DETECT_LOG_RET(WARN, OB_NOT_INIT, "not init yet", K_(is_inited));\ return OB_NOT_INIT;\ }} while(0) #define CHECK_START()\ do {\ if (is_running_ != true) {\ - DETECT_LOG(WARN, "not running", K_(is_running));\ + DETECT_LOG_RET(WARN, OB_NOT_RUNNING, "not running", K_(is_running));\ return OB_NOT_RUNNING;\ }} while(0) #define CHECK_ENABLED()\ do {\ if (!is_deadlock_enabled()) {\ - DETECT_LOG(WARN, "deadlock not enabled", K(is_deadlock_enabled()));\ + DETECT_LOG_RET(WARN, OB_NOT_RUNNING, "deadlock not enabled", K(is_deadlock_enabled()));\ return OB_NOT_RUNNING;\ }} while(0) @@ -105,4 +105,4 @@ if (!is_deadlock_enabled()) {\ } } } -#endif \ No newline at end of file +#endif diff --git a/src/share/deadlock/ob_deadlock_detector_common_define.cpp b/src/share/deadlock/ob_deadlock_detector_common_define.cpp index 97917d376..916d56f07 100644 --- a/src/share/deadlock/ob_deadlock_detector_common_define.cpp +++ b/src/share/deadlock/ob_deadlock_detector_common_define.cpp @@ -503,4 +503,4 @@ const ObDetectorUserReportInfo &ObDetectorInnerReportInfo::get_user_report_info( }// namespace detector }// namespace share -}// namespace oceanbase \ No newline at end of file +}// namespace oceanbase diff --git a/src/share/deadlock/ob_deadlock_detector_mgr.cpp b/src/share/deadlock/ob_deadlock_detector_mgr.cpp index 8d57c21e8..83e7d74e8 100644 --- a/src/share/deadlock/ob_deadlock_detector_mgr.cpp +++ b/src/share/deadlock/ob_deadlock_detector_mgr.cpp @@ -118,7 +118,7 @@ int ObDeadLockDetectorMgr::InnerAllocHandle::InnerFactory::create(const UserBina void ObDeadLockDetectorMgr::InnerAllocHandle::InnerFactory::release(ObIDeadLockDetector *p_detector) { if (nullptr == p_detector) { - DETECT_LOG(WARN, "p_detector is nullptr", KP(p_detector)); + DETECT_LOG_RET(WARN, common::OB_INVALID_ARGUMENT, "p_detector is nullptr", KP(p_detector)); } else { p_detector->~ObIDeadLockDetector(); ob_free(p_detector); @@ -133,7 +133,7 @@ ObDeadLockDetectorMgr::DetectorRefGuard::~DetectorRefGuard() { ObDeadLockDetectorMgr *p_deadlock_detector_mgr = MTL(ObDeadLockDetectorMgr *); if (OB_ISNULL(p_deadlock_detector_mgr)) { - DETECT_LOG(ERROR, "can not get ObDeadLockDetectorMgr", KP(p_deadlock_detector_mgr), K(MTL_ID())); + DETECT_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "can not get ObDeadLockDetectorMgr", KP(p_deadlock_detector_mgr), K(MTL_ID())); } else { p_deadlock_detector_mgr->detector_map_.revert(p_detector_); } @@ -389,7 +389,7 @@ int ObDeadLockDetectorMgr::process_notify_parent_message( 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 &, - const int64_t) -> int { DETECT_LOG(ERROR, "should not kill inner node"); + const int64_t) -> int { DETECT_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "should not kill inner node"); return common::OB_ERR_UNEXPECTED; }, [binary_key](ObDetectorUserReportInfo& report_info) -> int { ObSharedGuard ptr; diff --git a/src/share/deadlock/ob_deadlock_detector_rpc.cpp b/src/share/deadlock/ob_deadlock_detector_rpc.cpp index f725b670a..d825f84f7 100644 --- a/src/share/deadlock/ob_deadlock_detector_rpc.cpp +++ b/src/share/deadlock/ob_deadlock_detector_rpc.cpp @@ -117,7 +117,7 @@ void ObDeadLockDetectorRpc::destroy() if (is_inited_) { is_inited_ = false; } else { - DETECT_LOG(WARN, "ObDeadLockDetectorRpc has been destroyed", K(lbt())); + DETECT_LOG_RET(WARN, common::OB_ERR_UNEXPECTED, "ObDeadLockDetectorRpc has been destroyed", K(lbt())); } } diff --git a/src/share/deadlock/ob_deadlock_detector_rpc.h b/src/share/deadlock/ob_deadlock_detector_rpc.h index a16cb32ae..1bdff479e 100644 --- a/src/share/deadlock/ob_deadlock_detector_rpc.h +++ b/src/share/deadlock/ob_deadlock_detector_rpc.h @@ -103,9 +103,9 @@ public: ObRpcResultCode &rcode = ObDetectorRpcProxy::AsyncCB::rcode_; if (OB_SUCCESS != rcode.rcode_) { - DETECT_LOG(WARN, "detector rpc returns error code(rpc level)", K(rcode), K(dst)); + DETECT_LOG_RET(WARN, rcode.rcode_, "detector rpc returns error code(rpc level)", K(rcode), K(dst)); } else if (OB_SUCCESS != remote_ret) { - DETECT_LOG(WARN, "detector rpc returns error code(detector level)", + DETECT_LOG_RET(WARN, remote_ret, "detector rpc returns error code(detector level)", KR(remote_ret), K(rcode.rcode_), K(dst)); } else { // do nothing @@ -155,4 +155,4 @@ private: }// detector }// share }// oceanbase -#endif \ No newline at end of file +#endif diff --git a/src/share/deadlock/ob_deadlock_key_wrapper.cpp b/src/share/deadlock/ob_deadlock_key_wrapper.cpp index bc224fe79..e712bf7b7 100644 --- a/src/share/deadlock/ob_deadlock_key_wrapper.cpp +++ b/src/share/deadlock/ob_deadlock_key_wrapper.cpp @@ -107,7 +107,7 @@ int64_t UserBinaryKey::to_string(char *buffer, const int64_t length) const GET_TYPE(ID) key;\ if (OB_SUCCESS != key.deserialize(key_binary_code_buffer_,\ key_binary_code_buffer_length_, pos)) {\ - DETECT_LOG(WARN, "key deserilalize failed", KP_(key_type_id));\ + DETECT_LOG_RET(WARN, common::OB_ERR_UNEXPECTED, "key deserilalize failed", KP_(key_type_id));\ } else {\ used_length = key.to_string(buffer, length);\ }\ @@ -286,4 +286,4 @@ uint64_t UserBinaryKey::hash() const }// namespace detector }// namespace share -}// namespace oceanbase \ No newline at end of file +}// namespace oceanbase diff --git a/src/share/deadlock/ob_lcl_scheme/ob_lcl_batch_sender_thread.cpp b/src/share/deadlock/ob_lcl_scheme/ob_lcl_batch_sender_thread.cpp index 5bcc83573..4869d3fc2 100644 --- a/src/share/deadlock/ob_lcl_scheme/ob_lcl_batch_sender_thread.cpp +++ b/src/share/deadlock/ob_lcl_scheme/ob_lcl_batch_sender_thread.cpp @@ -40,7 +40,7 @@ bool ObLCLBatchSenderThread::RemoveIfOp::operator()(const ObDependencyResource & DETECT_TIME_GUARD(100_ms); if (OB_SUCCESS != (temp_ret = lcl_message_list_.push_back(lcl_msg))) { ret = false; - DETECT_LOG(WARN, "push lcl message to lcl_message_list failed", + DETECT_LOG_RET(WARN, temp_ret, "push lcl message to lcl_message_list failed", KR(temp_ret), K(lcl_msg)); } return ret; @@ -54,7 +54,7 @@ bool ObLCLBatchSenderThread::MergeOp::operator()(const ObDependencyResource &key DETECT_TIME_GUARD(100_ms); if (OB_SUCCESS != (temp_ret = value.merge(lcl_message_))) { - DETECT_LOG(WARN, "merge msg failed", K(temp_ret), K(value), K(lcl_message_)); + DETECT_LOG_RET(WARN, temp_ret, "merge msg failed", K(temp_ret), K(value), K(lcl_message_)); } return true; } @@ -141,7 +141,7 @@ void ObLCLBatchSenderThread::record_summary_info_and_logout_when_necessary_(int6 int64_t _lcl_op_interval = ObServerConfig::get_instance()._lcl_op_interval; if (diff > _lcl_op_interval) { ++over_night_times_; - DETECT_LOG(WARN, "ObLCLBatchSenderThread is too busy", + DETECT_LOG_RET(WARN, common::OB_ERR_UNEXPECTED, "ObLCLBatchSenderThread is too busy", K(end_ts), K(begin_ts), K(diff), K(*this)); } @@ -219,4 +219,4 @@ void ObLCLBatchSenderThread::run1() } } -} \ No newline at end of file +} diff --git a/src/share/gen_errno.pl b/src/share/gen_errno.pl index 5a63b5083..70b517f8a 100755 --- a/src/share/gen_errno.pl +++ b/src/share/gen_errno.pl @@ -355,6 +355,7 @@ my @errors_deps = map {$_->[0]} @sorted_deps; my @pairs = map {[$_, $map{$_}->[0] ]} keys %map; my @sorted = sort {$b->[1] <=> $a->[1]} @pairs; my @errors = map {$_->[0]} @sorted; +my @errnos = reverse sort { $a <=> $b } map {$map{$_}->[0]} keys %map; # generate share/ob_errno.h open my $fh_header, '>', "ob_errno.h"; @@ -424,6 +425,9 @@ constexpr int OB_ERR_SQL_END = -5999; my $tmp_ora_user_errmsg=sprintf($print_ora_errmsg, "ORA", $ora_errno, substr($ora_msg, 1, length($ora_msg) - 2)); print $fh_header "#define ${oberr}__ORA_USER_ERROR_MSG $tmp_ora_user_errmsg\n"; } + + print $fh_header "\nextern int g_all_ob_errnos[${\(scalar @errnos)}];"; + print $fh_header ' const char *ob_error_name(const int oberr); @@ -592,6 +596,10 @@ namespace oceanbase { namespace common { +'; +print $fh_cpp "int g_all_ob_errnos[${\(scalar @errnos)}] = {" . join(", ", @errnos) . "};"; + +print $fh_cpp ' const char *ob_error_name(const int err) { const char *ret = "Unknown error"; diff --git a/src/share/interrupt/ob_global_interrupt_call.cpp b/src/share/interrupt/ob_global_interrupt_call.cpp index 2e6bb77ec..c6e74102c 100644 --- a/src/share/interrupt/ob_global_interrupt_call.cpp +++ b/src/share/interrupt/ob_global_interrupt_call.cpp @@ -71,7 +71,7 @@ void ObInterruptChecker::clear_status() void ObInterruptChecker::clear_interrupt_status() { if (ref_count_ > 0) { - LIB_LOG(ERROR, "invlid interrupt ref count"); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "invlid interrupt ref count"); } interrupted_ = false; } diff --git a/src/share/interrupt/ob_global_interrupt_call.h b/src/share/interrupt/ob_global_interrupt_call.h index e39eef1e4..7bafbc832 100644 --- a/src/share/interrupt/ob_global_interrupt_call.h +++ b/src/share/interrupt/ob_global_interrupt_call.h @@ -294,7 +294,7 @@ OB_INLINE ObInterruptChecker *get_checker() OB_INLINE int SET_INTERRUPTABLE(const ObInterruptibleTaskID &tid) { if (OB_ISNULL(get_checker())) { - LIB_LOG(ERROR, "interrupt checker may not be set correctly"); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "interrupt checker may not be set correctly"); return OB_ERR_UNEXPECTED; } return get_checker()->register_checker(tid); @@ -304,7 +304,7 @@ OB_INLINE int SET_INTERRUPTABLE(const ObInterruptibleTaskID &tid) OB_INLINE bool IS_INTERRUPTED() { if (OB_ISNULL(get_checker())) { - LIB_LOG(ERROR, "interrupt checker may not be set correctly"); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "interrupt checker may not be set correctly"); return false; } return get_checker()->is_interrupted(); @@ -315,7 +315,7 @@ OB_INLINE ObInterruptCode &GET_INTERRUPT_CODE() { static ObInterruptCode err_code(OB_ERR_UNEXPECTED); if (OB_ISNULL(get_checker())) { - LIB_LOG(ERROR, "interrupt checker may not be set correctly"); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "interrupt checker may not be set correctly"); return err_code; } return get_checker()->get_interrupt_code(); @@ -325,7 +325,7 @@ OB_INLINE ObInterruptCode &GET_INTERRUPT_CODE() OB_INLINE void UNSET_INTERRUPTABLE(const ObInterruptibleTaskID &tid) { if (OB_ISNULL(get_checker())) { - LIB_LOG(ERROR, "interrupt checker may not be set correctly"); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "interrupt checker may not be set correctly"); } else { get_checker()->unregister_checker(tid); } @@ -334,7 +334,7 @@ OB_INLINE void UNSET_INTERRUPTABLE(const ObInterruptibleTaskID &tid) OB_INLINE void CLEAR_INTERRUPTABLE() { if (OB_ISNULL(get_checker())) { - LIB_LOG(ERROR, "interrupt checker may not be set correctly"); + LIB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "interrupt checker may not be set correctly"); } else { get_checker()->clear_interrupt_status(); } diff --git a/src/share/io/ob_io_define.cpp b/src/share/io/ob_io_define.cpp index b98e2cf51..6f10538f1 100644 --- a/src/share/io/ob_io_define.cpp +++ b/src/share/io/ob_io_define.cpp @@ -625,7 +625,7 @@ void ObIORequest::inc_ref(const char *msg) int tmp_ret = OB_SUCCESS; ObIOTracer::TraceType trace_type = 0 == old_ref_cnt ? ObIOTracer::TraceType::IS_FIRST : ObIOTracer::TraceType::OTHER; if (OB_TMP_FAIL(tenant_io_mgr_.get_ptr()->trace_request_if_need(this, msg, trace_type))) { - LOG_WARN("add trace for io request failed", K(tmp_ret), KP(this), K(trace_type)); + LOG_WARN_RET(tmp_ret, "add trace for io request failed", K(tmp_ret), KP(this), K(trace_type)); } } } @@ -882,7 +882,7 @@ void ObIOHandle::estimate() } static const int64_t LONG_IO_PRINT_TRIGGER_US = 1000L * 1000L * 3L; // 3s if (request_delay > LONG_IO_PRINT_TRIGGER_US) { - LOG_WARN("io request wait too long", KPC(req_), + LOG_WARN_RET(OB_ERR_UNEXPECTED, "io request wait too long", KPC(req_), K(prepare_delay), K(schedule_queue_delay), K(submit_delay), diff --git a/src/share/io/ob_io_struct.cpp b/src/share/io/ob_io_struct.cpp index b69813a9d..745b58cce 100644 --- a/src/share/io/ob_io_struct.cpp +++ b/src/share/io/ob_io_struct.cpp @@ -613,7 +613,7 @@ void ObCpuUsage::get_cpu_usage(double &avg_usage_percentage) int sys_errno = 0; if (0 != (sys_errno = getrusage(RUSAGE_SELF, &new_usage))) { if (REACH_TIME_INTERVAL(1000L * 1000L * 10)) { - LOG_WARN("get cpu usage failed", K(sys_errno)); + LOG_WARN_RET(OB_ERR_SYS, "get cpu usage failed", K(sys_errno)); } } else { if (last_ts_ > 0 && new_ts > last_ts_) { @@ -1721,7 +1721,7 @@ void ObAsyncIOChannel::destroy() ob_usleep(1000L * 10L); } if (submit_count_ > 0) { - LOG_WARN("some request have not returned from file system", K(submit_count_)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "some request have not returned from file system", K(submit_count_)); } destroy_thread(); if (nullptr != io_context_) { @@ -2666,7 +2666,7 @@ const char *oceanbase::common::device_health_status_to_str(const ObDeviceHealthS break; } if (STRLEN(hstr) > OB_MAX_DEVICE_HEALTH_STATUS_STR_LENGTH) { - LOG_ERROR("invalid device health status str", K(hstr), + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "invalid device health status str", K(hstr), K(OB_MAX_DEVICE_HEALTH_STATUS_STR_LENGTH), K(dhs)); } return hstr; @@ -2917,7 +2917,8 @@ void ObIOFaultDetector::set_device_error() } last_device_error_ts_ = ObTimeUtility::fast_current_time(); is_device_error_ = true; - LOG_ERROR("set_disk_error: attention!!!"); + LOG_ERROR_RET(OB_IO_ERROR, "set_disk_error: attention!!!"); + LOG_DBA_ERROR(OB_DISK_ERROR, "msg", "The disk may be corrupted"); } ObIOTracer::ObIOTracer() @@ -2963,7 +2964,7 @@ void ObIOTracer::reuse() { int tmp_ret = OB_SUCCESS; if (OB_TMP_FAIL(trace_map_.reuse())) { - LOG_WARN("reuse trace map failed", K(tmp_ret)); + LOG_WARN_RET(tmp_ret, "reuse trace map failed", K(tmp_ret)); } } @@ -3112,4 +3113,3 @@ void ObIOTracer::print_status() } } } - diff --git a/src/share/location_cache/ob_location_struct.cpp b/src/share/location_cache/ob_location_struct.cpp index 627cdefea..a8da13383 100644 --- a/src/share/location_cache/ob_location_struct.cpp +++ b/src/share/location_cache/ob_location_struct.cpp @@ -577,7 +577,7 @@ bool ObTabletLocation::operator==(const ObTabletLocation &other) const bool equal = true; if (!is_valid() || !other.is_valid()) { equal = false; - LOG_WARN("invalid argument", "self", *this, K(other)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "invalid argument", "self", *this, K(other)); } else if (replica_locations_.count() != other.replica_locations_.count()) { equal = false; } else { diff --git a/src/share/location_cache/ob_location_update_task.cpp b/src/share/location_cache/ob_location_update_task.cpp index f742ffa32..64982dbba 100644 --- a/src/share/location_cache/ob_location_update_task.cpp +++ b/src/share/location_cache/ob_location_update_task.cpp @@ -75,7 +75,7 @@ bool ObLSLocationUpdateTask::operator ==(const ObLSLocationUpdateTask &other) co { bool equal = false; if (!is_valid() || !other.is_valid()) { - LOG_WARN("invalid argument", "self", *this, K(other)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "invalid argument", "self", *this, K(other)); } else if (this == &other) { // same pointer equal = true; } else { @@ -153,7 +153,7 @@ bool ObTabletLSUpdateTask::operator ==(const ObTabletLSUpdateTask &other) const { bool equal = false; if (!is_valid() || !other.is_valid()) { - LOG_WARN("invalid argument", "self", *this, K(other)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "invalid argument", "self", *this, K(other)); } else if (this == &other) { // same pointer equal = true; } else { @@ -284,7 +284,7 @@ bool ObVTableLocUpdateTask::operator ==(const ObVTableLocUpdateTask &other) cons { bool equal = false; if (!is_valid() || !other.is_valid()) { - LOG_WARN("invalid argument", "self", *this, K(other)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "invalid argument", "self", *this, K(other)); } else if (this == &other) { // same pointer equal = true; } else { diff --git a/src/share/ls/ob_ls_creator.cpp b/src/share/ls/ob_ls_creator.cpp index 1422dd2f8..506689d0b 100644 --- a/src/share/ls/ob_ls_creator.cpp +++ b/src/share/ls/ob_ls_creator.cpp @@ -76,7 +76,7 @@ bool ObLSCreator::is_valid() if (OB_INVALID_TENANT_ID == tenant_id_ || !id_.is_valid()) { bret = false; - LOG_WARN("tenant id or log stream id is invalid", K(bret), K_(tenant_id), K_(id)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "tenant id or log stream id is invalid", K(bret), K_(tenant_id), K_(id)); } return bret; } diff --git a/src/share/ls/ob_ls_info.cpp b/src/share/ls/ob_ls_info.cpp index ccdebbd96..d0566b2c1 100644 --- a/src/share/ls/ob_ls_info.cpp +++ b/src/share/ls/ob_ls_info.cpp @@ -37,7 +37,7 @@ const char *ob_replica_status_str(const ObReplicaStatus status) if (status >= 0 && status < REPLICA_STATUS_MAX) { str = replica_display_status_strs[status]; } else { - LOG_WARN("invalid replica status", K(status)); + LOG_WARN_RET(OB_INVALID_ERROR, "invalid replica status", K(status)); } return str; } @@ -487,7 +487,7 @@ bool ObLSInfo::is_strong_leader(int64_t index) const } else { FOREACH_CNT(r, replicas_) { if (OB_ISNULL(r)) { - LOG_WARN("get invalie replica", K_(replicas), K(r)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "get invalie replica", K_(replicas), K(r)); } else if (r->get_proposal_id() > replicas_.at(index).get_proposal_id()) { is_leader = false; break; diff --git a/src/share/ls/ob_ls_operator.cpp b/src/share/ls/ob_ls_operator.cpp index 03e61cfa4..4c461361b 100644 --- a/src/share/ls/ob_ls_operator.cpp +++ b/src/share/ls/ob_ls_operator.cpp @@ -499,7 +499,7 @@ ObLSOperationType ObLSAttrOperator::get_ls_operation_by_status(const ObLSStatus ObLSOperationType type_ret = OB_LS_OP_INVALID_TYPE; if (OB_UNLIKELY(!is_valid_status_in_ls(ls_status))) { type_ret = OB_LS_OP_INVALID_TYPE; - LOG_WARN("status is invalid", K(ls_status)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "status is invalid", K(ls_status)); } else if (OB_LS_CREATING == ls_status) { type_ret = OB_LS_OP_CREATE_PRE; } else if (OB_LS_NORMAL == ls_status) { @@ -512,7 +512,7 @@ ObLSOperationType ObLSAttrOperator::get_ls_operation_by_status(const ObLSStatus type_ret = OB_LS_OP_DROP_PRE; } else { type_ret = OB_LS_OP_INVALID_TYPE; - LOG_WARN("status is invalid", K(ls_status)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "status is invalid", K(ls_status)); } return type_ret; } diff --git a/src/share/ls/ob_ls_status_operator.cpp b/src/share/ls/ob_ls_status_operator.cpp index 5843adace..4a5748511 100644 --- a/src/share/ls/ob_ls_status_operator.cpp +++ b/src/share/ls/ob_ls_status_operator.cpp @@ -237,7 +237,7 @@ const char* ObLSStatusOperator::ls_status_to_str(const ObLSStatus &status) const char* str = "UNKNOWN"; if (OB_UNLIKELY(OB_LS_EMPTY == status)) { - LOG_WARN("invalid log stream status", K(status)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "invalid log stream status", K(status)); } else { str = LS_STATUS_ARRAY[status]; } diff --git a/src/share/ls/ob_ls_table.cpp b/src/share/ls/ob_ls_table.cpp index da10cd030..415d091bd 100644 --- a/src/share/ls/ob_ls_table.cpp +++ b/src/share/ls/ob_ls_table.cpp @@ -44,7 +44,7 @@ bool ObLSTable::is_valid_key(const uint64_t tenant_id, const ObLSID &ls_id) bool valid = true; if (common::OB_INVALID_TENANT_ID == tenant_id || !ls_id.is_valid()) { valid = false; - LOG_WARN("invalid tenant and log stream id", KT(tenant_id), K(ls_id)); + LOG_WARN_RET(OB_INVALID_ERROR, "invalid tenant and log stream id", KT(tenant_id), K(ls_id)); } return valid; } diff --git a/src/share/ob_arbitration_service_status.cpp b/src/share/ob_arbitration_service_status.cpp index 66d03bc39..8eb1d7d04 100644 --- a/src/share/ob_arbitration_service_status.cpp +++ b/src/share/ob_arbitration_service_status.cpp @@ -37,7 +37,7 @@ const char* ObArbitrationServiceStatus::get_status_str() const && status_ < MAX) { str = arbitration_service_status_strs[static_cast(status_)]; } else { - LOG_WARN("invalid ArbitrationServiceStatus", K_(status)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "invalid ArbitrationServiceStatus", K_(status)); } return str; } diff --git a/src/share/ob_bg_thread_monitor.cpp b/src/share/ob_bg_thread_monitor.cpp index d75b5633d..7c30f38ff 100644 --- a/src/share/ob_bg_thread_monitor.cpp +++ b/src/share/ob_bg_thread_monitor.cpp @@ -171,7 +171,7 @@ void MonitorEntryStack::pop() { LockGuard guard(lock_); if (curr_idx_ <= 0 || curr_idx_ > NEST_LIMIT) { - SHARE_LOG(ERROR, "unexpected error, code mustn't go into this branch"); + SHARE_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "unexpected error, code mustn't go into this branch"); } else { inner_entry_[--curr_idx_].reset(); } @@ -336,7 +336,7 @@ void ObBGThreadMonitor::run_loop_() } int64_t cost_time = common::ObClockGenerator::getClock() - current_ts; if (cost_time > 100*1000) { - SHARE_LOG(WARN, "ObBGThreadMonitor cost too much time", K(cost_time)); + SHARE_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "ObBGThreadMonitor cost too much time", K(cost_time)); } int64_t sleep_time = CHECK_INTERVAL - cost_time; if (sleep_time < 0) { diff --git a/src/share/ob_bg_thread_monitor.h b/src/share/ob_bg_thread_monitor.h index 79daa41b5..b1b4eed28 100644 --- a/src/share/ob_bg_thread_monitor.h +++ b/src/share/ob_bg_thread_monitor.h @@ -68,7 +68,7 @@ private: do { \ ObTSIBGMonitorMemory *bg_memory = GET_TSI(ObTSIBGMonitorMemory); \ if (OB_UNLIKELY(OB_ISNULL(bg_memory))) { \ - SHARE_LOG(ERROR, "GET_TSI for ObTSIBGMonitorMemory failed"); \ + SHARE_LOG_RET(ERROR, OB_ALLOCATE_MEMORY_FAILED, "GET_TSI for ObTSIBGMonitorMemory failed"); \ } else { \ bg_memory->sub_size(PTR->get_class_size()); \ } \ @@ -128,7 +128,7 @@ public: int callback() final { int ret = common::OB_SUCCESS; - SHARE_LOG(WARN, "BGDummyCallback cost too much time-->", K(function_name_)); + SHARE_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "BGDummyCallback cost too much time-->", K(function_name_)); return ret; } void destroy() diff --git a/src/share/ob_cascad_member_list.cpp b/src/share/ob_cascad_member_list.cpp index ced744c04..65e9e8cc9 100644 --- a/src/share/ob_cascad_member_list.cpp +++ b/src/share/ob_cascad_member_list.cpp @@ -228,7 +228,7 @@ ObCascadMemberList &ObCascadMemberList::operator=(const ObCascadMemberList &memb if (this != &member_list) { int tmp_ret = OB_SUCCESS; if (OB_SUCCESS != ( tmp_ret = deep_copy(member_list))) { - COMMON_LOG(ERROR, "deep_copy failed", K(tmp_ret)); + COMMON_LOG_RET(ERROR, tmp_ret, "deep_copy failed", K(tmp_ret)); } } return *this; diff --git a/src/share/ob_cluster_info_proxy.cpp b/src/share/ob_cluster_info_proxy.cpp index 0aab9f29e..1f7d9cb78 100644 --- a/src/share/ob_cluster_info_proxy.cpp +++ b/src/share/ob_cluster_info_proxy.cpp @@ -104,7 +104,7 @@ const char* ObClusterInfo::in_memory_switchover_status_to_str(const InMemorySwit const char* str = "UNKNOWN"; if (status <= I_INVALID || status >= I_MAX_STATUS) { - LOG_WARN("invalid in-memory switchover status", K(status)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "invalid in-memory switchover status", K(status)); } else { str = IN_MEMORY_SWITCHOVER_STATUS_ARRAY[status]; } @@ -118,7 +118,7 @@ const char* ObClusterInfo::persistent_switchover_status_to_str(const PersistentS const char* str = "UNKNOWN"; if (status < P_SWITCHOVER_INVALID || status >= P_MAX_STATUS) { - LOG_WARN("invalid persistent switchover status", K(status)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "invalid persistent switchover status", K(status)); } else { str = PERSISTENT_SWITCHOVER_STATUS_ARRAY[status]; } diff --git a/src/share/ob_cluster_role.cpp b/src/share/ob_cluster_role.cpp index e51887896..808b751c9 100644 --- a/src/share/ob_cluster_role.cpp +++ b/src/share/ob_cluster_role.cpp @@ -40,7 +40,7 @@ const char *cluster_role_to_str(ObClusterRole type) { const char *type_str = "UNKNOWN"; if (OB_UNLIKELY(type < INVALID_CLUSTER_ROLE) || OB_UNLIKELY(type > STANDBY_CLUSTER)) { - LOG_ERROR("fatal error, unknown cluster type", K(type)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "fatal error, unknown cluster type", K(type)); } else { type_str = cluster_role_strs[type]; } @@ -50,7 +50,7 @@ const char *cluster_status_to_str(ObClusterStatus status) { const char *status_str = "UNKNOWN"; if (OB_UNLIKELY(status < INVALID_CLUSTER_STATUS) || OB_UNLIKELY(status >= MAX_CLUSTER_STATUS)) { - LOG_ERROR("fatal error, unknown cluster type", K(status)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "fatal error, unknown cluster type", K(status)); } else { status_str = cluster_status_strs[status]; } @@ -63,7 +63,7 @@ const char *cluster_protection_mode_to_str(ObProtectionMode mode) const char *mode_str = "UNKNOWN"; if (OB_UNLIKELY(mode < INVALID_PROTECTION_MODE) || OB_UNLIKELY(mode > MAXIMUM_PROTECTION_MODE)) { - LOG_ERROR("fatal error, unknown cluster protect mode", K(mode)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "fatal error, unknown cluster protect mode", K(mode)); } else { mode_str = cluster_protection_mode_strs[mode]; } @@ -77,7 +77,7 @@ const char *cluster_protection_level_to_str(ObProtectionLevel level) const char *level_str = "UNKNOWN"; if (OB_UNLIKELY(level > MPF_TO_MA_MPT_LEVEL) || OB_UNLIKELY(level < INVALID_PROTECTION_LEVEL)) { - LOG_ERROR("fatal error, unknown cluster level", K(level)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "fatal error, unknown cluster level", K(level)); } else { level_str = cluster_protection_level_strs[level]; } diff --git a/src/share/ob_cluster_sync_status.cpp b/src/share/ob_cluster_sync_status.cpp index 17f98258f..a14f2766b 100644 --- a/src/share/ob_cluster_sync_status.cpp +++ b/src/share/ob_cluster_sync_status.cpp @@ -62,7 +62,7 @@ const char * ObClusterSyncStatusHelp::cluster_sync_status_to_str( if (cluster_sync_status_is_valid(last_hb_ts)) { if (OB_UNLIKELY(sync_status >= share::ObClusterSyncStatus::SYNC_STATUS_MAX) || OB_UNLIKELY(sync_status < share::ObClusterSyncStatus::NOT_AVAILABLE)) { - LOG_ERROR("fatal error, unknown cluster sync status", K(sync_status)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "fatal error, unknown cluster sync status", K(sync_status)); } else { sync_status_str = cluster_sync_status_strs[sync_status]; } diff --git a/src/share/ob_debug_sync.cpp b/src/share/ob_debug_sync.cpp index 9ffe10bd5..a583bcfa6 100644 --- a/src/share/ob_debug_sync.cpp +++ b/src/share/ob_debug_sync.cpp @@ -47,7 +47,7 @@ void ObDSActionArray::clear(const ObDebugSyncPoint sync_point) LOG_INFO("clear sync point", K(sync_point)); } } else { - LOG_WARN("invalid sync point", K(sync_point)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "invalid sync point", K(sync_point)); } } @@ -270,7 +270,7 @@ void ObDSSessionActions::free_node(ObDSActionNode *node) } node->action_.reset(); if (!free_list_.add_first(node)) { - LOG_ERROR("add empty node to list should always success"); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "add empty node to list should always success"); } } } @@ -433,7 +433,7 @@ ObDSEventControl::ObDSEventControl() : stop_(false) { for (int64_t i = 0; i < ARRAYSIZEOF(events_); ++i) { if (!free_.add_first(&events_[i])) { - LOG_ERROR("add empty node to list should always success"); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "add empty node to list should always success"); } } cond_.init(ObWaitEventIds::DEBUG_SYNC_COND_WAIT); @@ -449,7 +449,7 @@ ObDSEventControl::Event *ObDSEventControl::alloc_event() { Event *e = NULL; if (free_.is_empty()) { - LOG_WARN("exceed max event count", LITERAL_K(MAX_EVENT_CNT)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "exceed max event count", LITERAL_K(MAX_EVENT_CNT)); } else { e = free_.remove_first(); } @@ -461,7 +461,7 @@ void ObDSEventControl::free_event(Event *e) if (NULL != e) { e->reset(); if (!free_.add_first(e)) { - LOG_ERROR("add empty node to list should always success"); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "add empty node to list should always success"); } } } @@ -647,7 +647,7 @@ void ObDSEventControl::stop() stop_ = true; int tmp_ret = cond_.broadcast(); if (OB_SUCCESS != tmp_ret) { - LOG_WARN("condition broadcast failed", K(tmp_ret)); + LOG_WARN_RET(tmp_ret, "condition broadcast failed", K(tmp_ret)); } } diff --git a/src/share/ob_device_manager.cpp b/src/share/ob_device_manager.cpp index 21c3b5313..57a1ca6b3 100644 --- a/src/share/ob_device_manager.cpp +++ b/src/share/ob_device_manager.cpp @@ -71,14 +71,14 @@ void ObDeviceManager::destroy() ret_handle = handle_map_.destroy(); allocator_.~ObFIFOAllocator(); if (OB_SUCCESS != ret_dev || OB_SUCCESS != ret_handle) { - OB_LOG(WARN, "fail to destroy device map", K(ret_dev), K(ret_handle)); + OB_LOG_RET(WARN, ret_dev, "fail to destroy device map", K(ret_dev), K(ret_handle)); } //free the arena allocator_.reset(); fin_oss_env(); is_init_ = false; device_count_ = 0; - OB_LOG(WARN, "release the init resource", K(ret_dev), K(ret_handle)); + OB_LOG_RET(WARN, ret_dev, "release the init resource", K(ret_dev), K(ret_handle)); } OB_LOG(INFO, "destroy device manager!"); } diff --git a/src/share/ob_errno.cpp b/src/share/ob_errno.cpp index 16a0e6f57..da1a9967a 100644 --- a/src/share/ob_errno.cpp +++ b/src/share/ob_errno.cpp @@ -2001,6 +2001,18 @@ static const _error _error_OB_PG_IS_REMOVED = { .oracle_str_error = "ORA-00600: internal error code, arguments: -4191, partition group is removed", .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4191, partition group is removed" }; +static const _error _error_OB_DDL_TASK_EXECUTE_TOO_MUCH_TIME = { + .error_name = "OB_DDL_TASK_EXECUTE_TOO_MUCH_TIME", + .error_cause = "Internal Error", + .error_solution = "Contact OceanBase Support", + .mysql_errno = -1, + .sqlstate = "42000", + .str_error = "ddl task executes too much time", + .str_user_error = "ddl task executes too much time", + .oracle_errno = 600, + .oracle_str_error = "ORA-00600: internal error code, arguments: -4192, ddl task executes too much time", + .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4192, ddl task executes too much time" +}; static const _error _error_OB_HASH_EXIST = { .error_name = "OB_HASH_EXIST", .error_cause = "Internal Error", @@ -4257,6 +4269,54 @@ static const _error _error_OB_DISK_CORRUPTED = { .oracle_str_error = "ORA-00600: internal error code, arguments: -4392, disk is corrupted", .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4392, disk is corrupted" }; +static const _error _error_OB_ERR_OBSERVER_START = { + .error_name = "OB_ERR_OBSERVER_START", + .error_cause = "Internal Error", + .error_solution = "Contact OceanBase Support", + .mysql_errno = -1, + .sqlstate = "HY000", + .str_error = "observer start process failure", + .str_user_error = "observer start process failure", + .oracle_errno = 600, + .oracle_str_error = "ORA-00600: internal error code, arguments: -4393, observer start process failure", + .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4393, observer start process failure" +}; +static const _error _error_OB_ERR_OBSERVER_STOP = { + .error_name = "OB_ERR_OBSERVER_STOP", + .error_cause = "Internal Error", + .error_solution = "Contact OceanBase Support", + .mysql_errno = -1, + .sqlstate = "HY000", + .str_error = "observer stop process failure", + .str_user_error = "observer stop process failure", + .oracle_errno = 600, + .oracle_str_error = "ORA-00600: internal error code, arguments: -4394, observer stop process failure", + .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4394, observer stop process failure" +}; +static const _error _error_OB_ERR_OBSERVICE_START = { + .error_name = "OB_ERR_OBSERVICE_START", + .error_cause = "Internal Error", + .error_solution = "Contact OceanBase Support", + .mysql_errno = -1, + .sqlstate = "HY000", + .str_error = "observice start process has failure", + .str_user_error = "observice start process has failure", + .oracle_errno = 600, + .oracle_str_error = "ORA-00600: internal error code, arguments: -4395, observice start process has failure", + .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4395, observice start process has failure" +}; +static const _error _error_OB_ERR_THREAD_PANIC = { + .error_name = "OB_ERR_THREAD_PANIC", + .error_cause = "Internal Error", + .error_solution = "Contact OceanBase Support", + .mysql_errno = -1, + .sqlstate = "HY000", + .str_error = "Worker thread pannic, thread may be terminated or hung", + .str_user_error = "Worker thread pannic, thread may be terminated or hung", + .oracle_errno = 600, + .oracle_str_error = "ORA-00600: internal error code, arguments: -4396, Worker thread pannic, thread may be terminated or hung", + .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4396, Worker thread pannic, thread may be terminated or hung" +}; static const _error _error_OB_IMPORT_NOT_IN_SERVER = { .error_name = "OB_IMPORT_NOT_IN_SERVER", .error_cause = "Internal Error", @@ -6417,6 +6477,54 @@ static const _error _error_OB_WAIT_DEGRATION_TIMEOUT = { .oracle_str_error = "ORA-00600: internal error code, arguments: -4751, wait degration finished timeout", .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4751, wait degration finished timeout" }; +static const _error _error_OB_ERR_ROOTSERVICE_START = { + .error_name = "OB_ERR_ROOTSERVICE_START", + .error_cause = "Internal Error", + .error_solution = "Contact OceanBase Support", + .mysql_errno = -1, + .sqlstate = "HY000", + .str_error = "rootservice start process has failure", + .str_user_error = "rootservice start process has failure", + .oracle_errno = 600, + .oracle_str_error = "ORA-00600: internal error code, arguments: -4752, rootservice start process has failure", + .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4752, rootservice start process has failure" +}; +static const _error _error_OB_ERR_ROOTSERVICE_STOP = { + .error_name = "OB_ERR_ROOTSERVICE_STOP", + .error_cause = "Internal Error", + .error_solution = "Contact OceanBase Support", + .mysql_errno = -1, + .sqlstate = "HY000", + .str_error = "rootservice stop process has failure", + .str_user_error = "rootservice stop process has failure", + .oracle_errno = 600, + .oracle_str_error = "ORA-00600: internal error code, arguments: -4753, rootservice stop process has failure", + .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4753, rootservice stop process has failure" +}; +static const _error _error_OB_ERR_ROOT_INSPECTION = { + .error_name = "OB_ERR_ROOT_INSPECTION", + .error_cause = "Internal Error", + .error_solution = "Contact OceanBase Support", + .mysql_errno = -1, + .sqlstate = "HY000", + .str_error = "root inspection is not passed", + .str_user_error = "root inspection is not passed", + .oracle_errno = 600, + .oracle_str_error = "ORA-00600: internal error code, arguments: -4754, root inspection is not passed", + .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4754, root inspection is not passed" +}; +static const _error _error_OB_ERR_ROOTSERVICE_THREAD_HUNG = { + .error_name = "OB_ERR_ROOTSERVICE_THREAD_HUNG", + .error_cause = "Internal Error", + .error_solution = "Contact OceanBase Support", + .mysql_errno = -1, + .sqlstate = "HY000", + .str_error = "rootservice backgroud thread may be hung", + .str_user_error = "rootservice backgroud thread may be hung", + .oracle_errno = 600, + .oracle_str_error = "ORA-00600: internal error code, arguments: -4755, rootservice backgroud thread may be hung", + .oracle_str_user_error = "ORA-00600: internal error code, arguments: -4755, rootservice backgroud thread may be hung" +}; static const _error _error_OB_ERR_PARSER_INIT = { .error_name = "OB_ERR_PARSER_INIT", .error_cause = "Internal Error", @@ -10833,6 +10941,30 @@ static const _error _error_OB_ERR_CTE_MAX_RECURSION_DEPTH = { .oracle_str_error = "ORA-00600: internal error code, arguments: -5408, Recursive query aborted after multiple iterations. Try increasing @@cte_max_recursion_depth to a larger value.", .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5408, Recursive query aborted after %lu iterations. Try increasing @@cte_max_recursion_depth to a larger value." }; +static const _error _error_OB_DUPLICATE_OBJECT_NAME_EXIST = { + .error_name = "OB_DUPLICATE_OBJECT_NAME_EXIST", + .error_cause = "Internal Error", + .error_solution = "Contact OceanBase Support", + .mysql_errno = -1, + .sqlstate = "HY000", + .str_error = "Duplicate object name exists, schema refreshing may be hung", + .str_user_error = "Duplicate object name exists, schema refreshing may be hung", + .oracle_errno = 600, + .oracle_str_error = "ORA-00600: internal error code, arguments: -5409, Duplicate object name exists, schema refreshing may be hung", + .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5409, Duplicate object name exists, schema refreshing may be hung" +}; +static const _error _error_OB_ERR_REFRESH_SCHEMA_TOO_LONG = { + .error_name = "OB_ERR_REFRESH_SCHEMA_TOO_LONG", + .error_cause = "Internal Error", + .error_solution = "Contact OceanBase Support", + .mysql_errno = -1, + .sqlstate = "HY000", + .str_error = "Refresh schema failed continuously, ddl may be hung", + .str_user_error = "Refresh schema failed continuously, ddl may be hung", + .oracle_errno = 600, + .oracle_str_error = "ORA-00600: internal error code, arguments: -5410, Refresh schema failed continuously, ddl may be hung", + .oracle_str_user_error = "ORA-00600: internal error code, arguments: -5410, Refresh schema failed continuously, ddl may be hung" +}; static const _error _error_OB_ERR_INVALID_JSON_TEXT = { .error_name = "OB_ERR_INVALID_JSON_TEXT", .error_cause = "Internal Error", @@ -18177,6 +18309,30 @@ static const _error _error_OB_TRANS_FREE_ROUTE_NOT_SUPPORTED = { .oracle_str_error = "ORA-00600: internal error code, arguments: -6279, Query is not supported to be executed on txn temporary node", .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6279, Query is not supported to be executed on txn temporary node" }; +static const _error _error_OB_TRANS_LIVE_TOO_MUCH_TIME = { + .error_name = "OB_TRANS_LIVE_TOO_MUCH_TIME", + .error_cause = "Internal Error", + .error_solution = "Contact OceanBase Support", + .mysql_errno = -1, + .sqlstate = "HY000", + .str_error = "Transaction cost too much without commit or rollback", + .str_user_error = "Transaction cost too much without commit or rollback", + .oracle_errno = 600, + .oracle_str_error = "ORA-00600: internal error code, arguments: -6280, Transaction cost too much without commit or rollback", + .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6280, Transaction cost too much without commit or rollback" +}; +static const _error _error_OB_TRANS_COMMIT_TOO_MUCH_TIME = { + .error_name = "OB_TRANS_COMMIT_TOO_MUCH_TIME", + .error_cause = "Internal Error", + .error_solution = "Contact OceanBase Support", + .mysql_errno = -1, + .sqlstate = "HY000", + .str_error = "Transaction commit cost too much", + .str_user_error = "Transaction commit cost too much", + .oracle_errno = 600, + .oracle_str_error = "ORA-00600: internal error code, arguments: -6281, Transaction commit cost too much", + .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6281, Transaction commit cost too much" +}; static const _error _error_OB_LOG_ID_NOT_FOUND = { .error_name = "OB_LOG_ID_NOT_FOUND", .error_cause = "Internal Error", @@ -18441,6 +18597,18 @@ static const _error _error_OB_CLOG_SLIDE_TIMEOUT = { .oracle_str_error = "ORA-00600: internal error code, arguments: -6322, ob clog slide timeout", .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6322, ob clog slide timeout" }; +static const _error _error_OB_LOG_REPLAY_ERROR = { + .error_name = "OB_LOG_REPLAY_ERROR", + .error_cause = "Internal Error", + .error_solution = "Contact OceanBase Support", + .mysql_errno = -1, + .sqlstate = "HY000", + .str_error = "log replay error", + .str_user_error = "log replay error", + .oracle_errno = 600, + .oracle_str_error = "ORA-00600: internal error code, arguments: -6323, log replay error", + .oracle_str_user_error = "ORA-00600: internal error code, arguments: -6323, log replay error" +}; static const _error _error_OB_ELECTION_WARN_LOGBUF_FULL = { .error_name = "OB_ELECTION_WARN_LOGBUF_FULL", .error_cause = "Internal Error", @@ -24289,6 +24457,7 @@ struct ObStrErrorInit _errors[-OB_INVALID_MACRO_BLOCK_TYPE] = &_error_OB_INVALID_MACRO_BLOCK_TYPE; _errors[-OB_INVALID_DATE_FORMAT_END] = &_error_OB_INVALID_DATE_FORMAT_END; _errors[-OB_PG_IS_REMOVED] = &_error_OB_PG_IS_REMOVED; + _errors[-OB_DDL_TASK_EXECUTE_TOO_MUCH_TIME] = &_error_OB_DDL_TASK_EXECUTE_TOO_MUCH_TIME; _errors[-OB_HASH_EXIST] = &_error_OB_HASH_EXIST; _errors[-OB_HASH_NOT_EXIST] = &_error_OB_HASH_NOT_EXIST; _errors[-OB_HASH_GET_TIMEOUT] = &_error_OB_HASH_GET_TIMEOUT; @@ -24477,6 +24646,10 @@ struct ObStrErrorInit _errors[-OB_ERR_REMOTE_SCHEMA_NOT_FULL] = &_error_OB_ERR_REMOTE_SCHEMA_NOT_FULL; _errors[-OB_DDL_SSTABLE_RANGE_CROSS] = &_error_OB_DDL_SSTABLE_RANGE_CROSS; _errors[-OB_DISK_CORRUPTED] = &_error_OB_DISK_CORRUPTED; + _errors[-OB_ERR_OBSERVER_START] = &_error_OB_ERR_OBSERVER_START; + _errors[-OB_ERR_OBSERVER_STOP] = &_error_OB_ERR_OBSERVER_STOP; + _errors[-OB_ERR_OBSERVICE_START] = &_error_OB_ERR_OBSERVICE_START; + _errors[-OB_ERR_THREAD_PANIC] = &_error_OB_ERR_THREAD_PANIC; _errors[-OB_IMPORT_NOT_IN_SERVER] = &_error_OB_IMPORT_NOT_IN_SERVER; _errors[-OB_CONVERT_ERROR] = &_error_OB_CONVERT_ERROR; _errors[-OB_BYPASS_TIMEOUT] = &_error_OB_BYPASS_TIMEOUT; @@ -24657,6 +24830,10 @@ struct ObStrErrorInit _errors[-OB_ARBITRATION_SERVICE_NOT_EXIST] = &_error_OB_ARBITRATION_SERVICE_NOT_EXIST; _errors[-OB_ARBITRATION_SERVICE_ALREADY_EXIST] = &_error_OB_ARBITRATION_SERVICE_ALREADY_EXIST; _errors[-OB_WAIT_DEGRATION_TIMEOUT] = &_error_OB_WAIT_DEGRATION_TIMEOUT; + _errors[-OB_ERR_ROOTSERVICE_START] = &_error_OB_ERR_ROOTSERVICE_START; + _errors[-OB_ERR_ROOTSERVICE_STOP] = &_error_OB_ERR_ROOTSERVICE_STOP; + _errors[-OB_ERR_ROOT_INSPECTION] = &_error_OB_ERR_ROOT_INSPECTION; + _errors[-OB_ERR_ROOTSERVICE_THREAD_HUNG] = &_error_OB_ERR_ROOTSERVICE_THREAD_HUNG; _errors[-OB_ERR_PARSER_INIT] = &_error_OB_ERR_PARSER_INIT; _errors[-OB_ERR_PARSE_SQL] = &_error_OB_ERR_PARSE_SQL; _errors[-OB_ERR_RESOLVE_SQL] = &_error_OB_ERR_RESOLVE_SQL; @@ -25025,6 +25202,8 @@ struct ObStrErrorInit _errors[-OB_ERR_INVALID_PARAM_TO_PROCEDURE] = &_error_OB_ERR_INVALID_PARAM_TO_PROCEDURE; _errors[-OB_ERR_WRONG_PARAMETERS_TO_NATIVE_FCT] = &_error_OB_ERR_WRONG_PARAMETERS_TO_NATIVE_FCT; _errors[-OB_ERR_CTE_MAX_RECURSION_DEPTH] = &_error_OB_ERR_CTE_MAX_RECURSION_DEPTH; + _errors[-OB_DUPLICATE_OBJECT_NAME_EXIST] = &_error_OB_DUPLICATE_OBJECT_NAME_EXIST; + _errors[-OB_ERR_REFRESH_SCHEMA_TOO_LONG] = &_error_OB_ERR_REFRESH_SCHEMA_TOO_LONG; _errors[-OB_ERR_INVALID_JSON_TEXT] = &_error_OB_ERR_INVALID_JSON_TEXT; _errors[-OB_ERR_INVALID_JSON_TEXT_IN_PARAM] = &_error_OB_ERR_INVALID_JSON_TEXT_IN_PARAM; _errors[-OB_ERR_INVALID_JSON_BINARY_DATA] = &_error_OB_ERR_INVALID_JSON_BINARY_DATA; @@ -25637,6 +25816,8 @@ struct ObStrErrorInit _errors[-OB_SCN_OUT_OF_BOUND] = &_error_OB_SCN_OUT_OF_BOUND; _errors[-OB_TRANS_IDLE_TIMEOUT] = &_error_OB_TRANS_IDLE_TIMEOUT; _errors[-OB_TRANS_FREE_ROUTE_NOT_SUPPORTED] = &_error_OB_TRANS_FREE_ROUTE_NOT_SUPPORTED; + _errors[-OB_TRANS_LIVE_TOO_MUCH_TIME] = &_error_OB_TRANS_LIVE_TOO_MUCH_TIME; + _errors[-OB_TRANS_COMMIT_TOO_MUCH_TIME] = &_error_OB_TRANS_COMMIT_TOO_MUCH_TIME; _errors[-OB_LOG_ID_NOT_FOUND] = &_error_OB_LOG_ID_NOT_FOUND; _errors[-OB_LSR_THREAD_STOPPED] = &_error_OB_LSR_THREAD_STOPPED; _errors[-OB_NO_LOG] = &_error_OB_NO_LOG; @@ -25659,6 +25840,7 @@ struct ObStrErrorInit _errors[-OB_TOO_MANY_LOG_TASK] = &_error_OB_TOO_MANY_LOG_TASK; _errors[-OB_INVALID_BATCH_SIZE] = &_error_OB_INVALID_BATCH_SIZE; _errors[-OB_CLOG_SLIDE_TIMEOUT] = &_error_OB_CLOG_SLIDE_TIMEOUT; + _errors[-OB_LOG_REPLAY_ERROR] = &_error_OB_LOG_REPLAY_ERROR; _errors[-OB_ELECTION_WARN_LOGBUF_FULL] = &_error_OB_ELECTION_WARN_LOGBUF_FULL; _errors[-OB_ELECTION_WARN_LOGBUF_EMPTY] = &_error_OB_ELECTION_WARN_LOGBUF_EMPTY; _errors[-OB_ELECTION_WARN_NOT_RUNNING] = &_error_OB_ELECTION_WARN_NOT_RUNNING; @@ -26146,6 +26328,7 @@ namespace oceanbase { namespace common { +int g_all_ob_errnos[2020] = {0, -4000, -4001, -4002, -4003, -4004, -4005, -4006, -4007, -4008, -4009, -4010, -4011, -4012, -4013, -4014, -4015, -4016, -4017, -4018, -4019, -4020, -4021, -4022, -4023, -4024, -4025, -4026, -4027, -4028, -4029, -4030, -4031, -4032, -4033, -4034, -4035, -4036, -4037, -4038, -4039, -4041, -4042, -4043, -4044, -4045, -4046, -4047, -4048, -4049, -4050, -4051, -4052, -4053, -4054, -4055, -4057, -4058, -4060, -4061, -4062, -4063, -4064, -4065, -4066, -4067, -4068, -4070, -4071, -4072, -4073, -4074, -4075, -4076, -4077, -4078, -4080, -4081, -4084, -4085, -4090, -4097, -4098, -4099, -4100, -4101, -4102, -4103, -4104, -4105, -4106, -4107, -4108, -4109, -4110, -4111, -4112, -4113, -4114, -4115, -4116, -4117, -4118, -4119, -4120, -4121, -4122, -4123, -4124, -4125, -4126, -4127, -4128, -4133, -4138, -4139, -4142, -4143, -4144, -4146, -4147, -4149, -4150, -4151, -4152, -4153, -4154, -4155, -4156, -4157, -4158, -4159, -4160, -4161, -4162, -4163, -4164, -4165, -4166, -4167, -4168, -4169, -4170, -4171, -4172, -4173, -4174, -4175, -4176, -4177, -4178, -4179, -4180, -4181, -4182, -4183, -4184, -4185, -4186, -4187, -4188, -4189, -4190, -4191, -4192, -4200, -4201, -4204, -4205, -4206, -4207, -4208, -4209, -4210, -4211, -4212, -4213, -4214, -4215, -4216, -4217, -4218, -4219, -4220, -4221, -4222, -4223, -4224, -4225, -4226, -4227, -4228, -4229, -4230, -4231, -4232, -4233, -4234, -4235, -4236, -4237, -4238, -4239, -4240, -4241, -4242, -4243, -4244, -4245, -4246, -4247, -4248, -4249, -4250, -4251, -4252, -4253, -4254, -4255, -4256, -4257, -4258, -4260, -4261, -4262, -4263, -4264, -4265, -4266, -4267, -4268, -4269, -4270, -4271, -4273, -4274, -4275, -4276, -4277, -4278, -4279, -4280, -4281, -4282, -4283, -4284, -4285, -4286, -4287, -4288, -4289, -4290, -4291, -4292, -4293, -4294, -4295, -4296, -4297, -4298, -4299, -4300, -4301, -4302, -4303, -4304, -4305, -4306, -4307, -4308, -4309, -4310, -4311, -4312, -4313, -4314, -4315, -4316, -4317, -4318, -4319, -4320, -4321, -4322, -4323, -4324, -4325, -4326, -4327, -4328, -4329, -4330, -4331, -4332, -4333, -4334, -4335, -4336, -4337, -4338, -4339, -4340, -4341, -4342, -4343, -4344, -4345, -4346, -4347, -4348, -4349, -4350, -4351, -4352, -4353, -4354, -4355, -4356, -4357, -4358, -4359, -4360, -4361, -4362, -4363, -4364, -4365, -4366, -4367, -4368, -4369, -4370, -4371, -4372, -4373, -4374, -4375, -4376, -4377, -4378, -4379, -4380, -4381, -4382, -4383, -4385, -4386, -4387, -4388, -4389, -4390, -4391, -4392, -4393, -4394, -4395, -4396, -4505, -4507, -4510, -4512, -4515, -4517, -4518, -4519, -4523, -4524, -4525, -4526, -4527, -4528, -4529, -4530, -4531, -4532, -4533, -4537, -4538, -4539, -4540, -4541, -4542, -4543, -4544, -4545, -4546, -4547, -4548, -4549, -4550, -4551, -4552, -4553, -4554, -4600, -4601, -4602, -4603, -4604, -4605, -4606, -4607, -4608, -4609, -4610, -4611, -4613, -4614, -4615, -4620, -4621, -4622, -4623, -4624, -4625, -4626, -4628, -4629, -4630, -4631, -4632, -4633, -4634, -4636, -4637, -4638, -4639, -4640, -4641, -4642, -4643, -4644, -4645, -4646, -4647, -4648, -4649, -4650, -4651, -4652, -4653, -4654, -4655, -4656, -4657, -4658, -4659, -4660, -4661, -4662, -4663, -4664, -4665, -4666, -4667, -4668, -4669, -4670, -4671, -4672, -4673, -4674, -4675, -4676, -4677, -4678, -4679, -4680, -4681, -4682, -4683, -4684, -4685, -4686, -4687, -4688, -4689, -4690, -4691, -4692, -4693, -4694, -4695, -4696, -4697, -4698, -4699, -4700, -4701, -4702, -4703, -4704, -4705, -4706, -4707, -4708, -4709, -4710, -4711, -4712, -4713, -4714, -4715, -4716, -4717, -4718, -4719, -4720, -4721, -4722, -4723, -4724, -4725, -4726, -4727, -4728, -4729, -4730, -4731, -4732, -4733, -4734, -4735, -4736, -4737, -4738, -4739, -4740, -4741, -4742, -4743, -4744, -4745, -4746, -4747, -4748, -4751, -4752, -4753, -4754, -4755, -5000, -5001, -5002, -5003, -5006, -5007, -5008, -5010, -5011, -5012, -5014, -5015, -5016, -5017, -5018, -5019, -5020, -5022, -5023, -5024, -5025, -5026, -5027, -5028, -5029, -5030, -5031, -5032, -5034, -5035, -5036, -5037, -5038, -5039, -5040, -5041, -5042, -5043, -5044, -5046, -5047, -5050, -5051, -5052, -5053, -5054, -5055, -5056, -5057, -5058, -5059, -5061, -5063, -5064, -5065, -5066, -5067, -5068, -5069, -5070, -5071, -5072, -5073, -5074, -5080, -5081, -5083, -5084, -5085, -5086, -5087, -5088, -5089, -5090, -5091, -5092, -5093, -5094, -5095, -5096, -5097, -5098, -5099, -5100, -5101, -5102, -5103, -5104, -5105, -5106, -5107, -5108, -5109, -5110, -5111, -5112, -5113, -5114, -5115, -5116, -5117, -5118, -5119, -5120, -5121, -5122, -5123, -5124, -5130, -5131, -5133, -5134, -5135, -5136, -5137, -5138, -5139, -5140, -5142, -5143, -5144, -5145, -5146, -5147, -5148, -5149, -5150, -5151, -5153, -5154, -5155, -5156, -5157, -5158, -5159, -5160, -5161, -5162, -5163, -5164, -5165, -5166, -5167, -5168, -5169, -5170, -5171, -5172, -5173, -5174, -5175, -5176, -5177, -5178, -5179, -5180, -5181, -5182, -5183, -5184, -5185, -5187, -5188, -5189, -5190, -5191, -5192, -5193, -5194, -5195, -5196, -5197, -5198, -5199, -5200, -5201, -5202, -5203, -5204, -5205, -5206, -5207, -5208, -5209, -5210, -5211, -5212, -5213, -5214, -5215, -5216, -5217, -5218, -5219, -5220, -5221, -5222, -5223, -5224, -5225, -5226, -5227, -5228, -5229, -5230, -5231, -5233, -5234, -5235, -5236, -5237, -5238, -5239, -5240, -5241, -5242, -5243, -5244, -5245, -5246, -5247, -5248, -5249, -5250, -5251, -5252, -5253, -5254, -5255, -5256, -5257, -5258, -5259, -5260, -5261, -5262, -5263, -5264, -5265, -5266, -5267, -5268, -5269, -5270, -5271, -5272, -5273, -5274, -5275, -5276, -5277, -5278, -5279, -5280, -5281, -5282, -5283, -5284, -5285, -5286, -5287, -5288, -5289, -5290, -5291, -5292, -5293, -5294, -5295, -5296, -5297, -5298, -5299, -5300, -5301, -5302, -5303, -5304, -5305, -5306, -5307, -5308, -5309, -5310, -5311, -5312, -5313, -5314, -5315, -5316, -5317, -5318, -5319, -5320, -5321, -5322, -5323, -5324, -5325, -5326, -5327, -5328, -5329, -5330, -5331, -5332, -5333, -5334, -5335, -5336, -5337, -5338, -5339, -5340, -5341, -5342, -5343, -5344, -5345, -5346, -5347, -5348, -5349, -5350, -5351, -5352, -5353, -5354, -5355, -5356, -5357, -5358, -5359, -5360, -5361, -5362, -5363, -5364, -5365, -5366, -5367, -5368, -5369, -5370, -5371, -5372, -5373, -5374, -5375, -5376, -5377, -5378, -5379, -5380, -5381, -5382, -5383, -5384, -5385, -5400, -5401, -5402, -5403, -5404, -5405, -5406, -5407, -5408, -5409, -5410, -5411, -5412, -5413, -5414, -5415, -5416, -5417, -5418, -5419, -5420, -5421, -5422, -5423, -5424, -5425, -5426, -5427, -5428, -5429, -5430, -5431, -5432, -5433, -5434, -5435, -5436, -5437, -5438, -5439, -5440, -5441, -5442, -5443, -5444, -5445, -5446, -5447, -5448, -5449, -5450, -5451, -5452, -5453, -5454, -5455, -5456, -5457, -5458, -5459, -5460, -5461, -5462, -5463, -5464, -5465, -5466, -5467, -5468, -5469, -5470, -5471, -5472, -5473, -5474, -5475, -5476, -5477, -5478, -5479, -5480, -5481, -5482, -5483, -5484, -5485, -5486, -5487, -5488, -5541, -5542, -5543, -5544, -5545, -5546, -5547, -5548, -5549, -5550, -5551, -5552, -5553, -5554, -5555, -5556, -5557, -5558, -5559, -5560, -5561, -5562, -5563, -5564, -5565, -5566, -5567, -5568, -5569, -5570, -5571, -5572, -5573, -5574, -5575, -5576, -5577, -5578, -5579, -5580, -5581, -5582, -5583, -5584, -5585, -5586, -5587, -5588, -5589, -5590, -5591, -5592, -5593, -5594, -5595, -5596, -5597, -5598, -5599, -5600, -5601, -5602, -5603, -5604, -5605, -5607, -5608, -5609, -5610, -5611, -5612, -5613, -5614, -5615, -5616, -5617, -5618, -5619, -5620, -5621, -5622, -5623, -5624, -5625, -5626, -5627, -5628, -5629, -5630, -5631, -5632, -5633, -5634, -5635, -5636, -5637, -5638, -5639, -5640, -5641, -5642, -5643, -5644, -5645, -5646, -5647, -5648, -5649, -5650, -5651, -5652, -5653, -5654, -5655, -5656, -5657, -5658, -5659, -5660, -5661, -5662, -5663, -5664, -5665, -5666, -5667, -5668, -5671, -5672, -5673, -5674, -5675, -5676, -5677, -5678, -5679, -5680, -5681, -5682, -5683, -5684, -5685, -5686, -5687, -5688, -5689, -5690, -5691, -5692, -5693, -5694, -5695, -5696, -5697, -5698, -5699, -5700, -5701, -5702, -5703, -5704, -5705, -5706, -5707, -5708, -5709, -5710, -5711, -5712, -5713, -5714, -5715, -5716, -5717, -5718, -5719, -5720, -5721, -5722, -5723, -5724, -5725, -5726, -5727, -5728, -5729, -5730, -5731, -5732, -5733, -5734, -5735, -5736, -5737, -5738, -5739, -5740, -5741, -5742, -5743, -5744, -5745, -5746, -5747, -5748, -5749, -5750, -5751, -5752, -5753, -5754, -5755, -5756, -5757, -5758, -5759, -5760, -5761, -5762, -5763, -5764, -5765, -5766, -5768, -5769, -5770, -5771, -5772, -5773, -5774, -5777, -5778, -5779, -5780, -5781, -5785, -5786, -5787, -5788, -5789, -5790, -5791, -5792, -5793, -5794, -5795, -5796, -5797, -5798, -5799, -5800, -5801, -5802, -5803, -5804, -5805, -5806, -5807, -5808, -5809, -5810, -5811, -5812, -5813, -5814, -5815, -5816, -5817, -5818, -5819, -5820, -5821, -5822, -5823, -5824, -5825, -5826, -5827, -5828, -5829, -5830, -5831, -5832, -5833, -5834, -5835, -5836, -5837, -5838, -5839, -5840, -5841, -5842, -5843, -5844, -5845, -5846, -5847, -5848, -5849, -5850, -5851, -5852, -5853, -5854, -5855, -5856, -5857, -5858, -5859, -5860, -5861, -5862, -5863, -5864, -5865, -5866, -5867, -5868, -5869, -5870, -5871, -5872, -5873, -5874, -5875, -5876, -5877, -5878, -5879, -5880, -5881, -5882, -5883, -5884, -5885, -5886, -5887, -5888, -5889, -5890, -5891, -5892, -5893, -5894, -5895, -5896, -5897, -5898, -5899, -5900, -5901, -5902, -5903, -5904, -5905, -5906, -5907, -5908, -5909, -5910, -5911, -5912, -5913, -5914, -5915, -5916, -5917, -5918, -5919, -5920, -5921, -5922, -5923, -5924, -5925, -5926, -5927, -5928, -5929, -5930, -5931, -5932, -5933, -5934, -5935, -5936, -5937, -5938, -5939, -5940, -5941, -5942, -5943, -5944, -5945, -5946, -5947, -5948, -5949, -5950, -5951, -5952, -5953, -5954, -5955, -5956, -5957, -5958, -5959, -5960, -5961, -5962, -5963, -5964, -5965, -5966, -5967, -5968, -5969, -5970, -5971, -5972, -5973, -5974, -5975, -5976, -5977, -5978, -5979, -5980, -5981, -5982, -5983, -5984, -5985, -5986, -5987, -5988, -5989, -5990, -5991, -5992, -5993, -5994, -5995, -5996, -5997, -5998, -5999, -6000, -6001, -6002, -6003, -6004, -6005, -6006, -6201, -6202, -6203, -6204, -6205, -6206, -6207, -6208, -6209, -6210, -6211, -6212, -6213, -6214, -6215, -6219, -6220, -6221, -6222, -6223, -6224, -6225, -6226, -6227, -6228, -6229, -6230, -6231, -6232, -6233, -6234, -6235, -6236, -6237, -6238, -6239, -6240, -6241, -6242, -6243, -6244, -6245, -6246, -6247, -6248, -6249, -6250, -6251, -6252, -6253, -6254, -6255, -6256, -6257, -6258, -6259, -6260, -6261, -6262, -6263, -6264, -6265, -6266, -6267, -6268, -6269, -6270, -6271, -6272, -6273, -6274, -6275, -6276, -6277, -6278, -6279, -6280, -6281, -6301, -6302, -6303, -6304, -6305, -6306, -6307, -6308, -6309, -6310, -6311, -6312, -6313, -6314, -6315, -6316, -6317, -6318, -6319, -6320, -6321, -6322, -6323, -7000, -7001, -7002, -7003, -7004, -7005, -7006, -7007, -7010, -7011, -7012, -7013, -7014, -7015, -7021, -7022, -7024, -7025, -7026, -7027, -7029, -7030, -7031, -7032, -7033, -7034, -7035, -7036, -7037, -7038, -7039, -7040, -7041, -7100, -7101, -7102, -7103, -7104, -7105, -7106, -7107, -7108, -7201, -7202, -7203, -7204, -7205, -7206, -7207, -7208, -7209, -7210, -7211, -7212, -7213, -7214, -7215, -7216, -7217, -7218, -7219, -7220, -7221, -7222, -7223, -7224, -7225, -7226, -7227, -7228, -7229, -7230, -7231, -7232, -7233, -7234, -7235, -7236, -7237, -7238, -7239, -7240, -7241, -7242, -7243, -7244, -7246, -7247, -7248, -7249, -7250, -7251, -7252, -7253, -7254, -7255, -7256, -7257, -7258, -7259, -7260, -7261, -7262, -7263, -7264, -7265, -7266, -7267, -7268, -7269, -7270, -7271, -7272, -7273, -7274, -7275, -7276, -7277, -7278, -7279, -7280, -7281, -7282, -7283, -7284, -7285, -7286, -7287, -7288, -8001, -8002, -8003, -8004, -9001, -9002, -9003, -9004, -9005, -9006, -9007, -9008, -9009, -9010, -9011, -9012, -9013, -9014, -9015, -9016, -9017, -9018, -9019, -9020, -9022, -9023, -9024, -9025, -9026, -9027, -9028, -9029, -9030, -9031, -9032, -9033, -9034, -9035, -9036, -9037, -9038, -9039, -9040, -9041, -9042, -9043, -9044, -9045, -9046, -9047, -9048, -9049, -9050, -9051, -9052, -9053, -9054, -9057, -9058, -9059, -9060, -9061, -9062, -9063, -9064, -9065, -9069, -9070, -9071, -9072, -9073, -9074, -9075, -9076, -9077, -9078, -9079, -9080, -9081, -9082, -9083, -9084, -9085, -9086, -9090, -9091, -9092, -9093, -9100, -9101, -9102, -9103, -9200, -9201, -9202, -9501, -9502, -9503, -9504, -9505, -9506, -9507, -9508, -9509, -9510, -9512, -9513, -9514, -9515, -9516, -9518, -9519, -9520, -9521, -9522, -9523, -9524, -9525, -9526, -9527, -9528, -9529, -9530, -9531, -9532, -9533, -9534, -9535, -9536, -9537, -9538, -9539, -9540, -9541, -9542, -9543, -9544, -9545, -9546, -9547, -9548, -9549, -9550, -9551, -9552, -9553, -9554, -9555, -9556, -9557, -9558, -9559, -9560, -9561, -9562, -9563, -9564, -9565, -9566, -9567, -9568, -9569, -9570, -9571, -9572, -9573, -9574, -9575, -9576, -9577, -9578, -9579, -9580, -9581, -9582, -9583, -9584, -9585, -9586, -9587, -9588, -9589, -9590, -9591, -9592, -9593, -9594, -9595, -9596, -9597, -9598, -9599, -9600, -9601, -9602, -9603, -9604, -9605, -9606, -9607, -9608, -9609, -9610, -9611, -9612, -9613, -9614, -9615, -9616, -9617, -9618, -9619, -9620, -9621, -9622, -9623, -9624, -9625, -9626, -9627, -9628, -9629, -9630, -9631, -9632, -9633, -9634, -9635, -9636, -9637, -9638, -9639, -9640, -9641, -9642, -9643, -9644, -9645, -9646, -9647, -9648, -9649, -9650, -9651, -9652, -9653, -9654, -9655, -9656, -9657, -9658, -9659, -9660, -9661, -9662, -9663, -9664, -9665, -9666, -9667, -9668, -9669, -9670, -9671, -9672, -9673, -9674, -9675, -9676, -9677, -9678, -9679, -9680, -9681, -9682, -9683, -9684, -9685, -9686, -9687, -9688, -9689, -9690, -9691, -9692, -9693, -9694, -9695, -9696, -9697, -9698, -9699, -9700, -9701, -9702, -9703, -9704, -9705, -9706, -9707, -9708, -9709, -9710, -9711, -9712, -9713, -9714, -9715, -9716, -9717, -9718, -9719, -9720, -9721, -9722, -9723, -9724, -9725, -9726, -9727, -9728, -9729, -9730, -9731, -9732, -9733, -9734, -9735, -9736, -9737, -9738, -9739, -9740, -9741, -9742, -9743, -9744, -20000, -21000, -22998, -30926, -32491, -38104, -38105}; const char *ob_error_name(const int err) { const char *ret = "Unknown error"; diff --git a/src/share/ob_errno.def b/src/share/ob_errno.def index 35fbd415e..f75deba62 100644 --- a/src/share/ob_errno.def +++ b/src/share/ob_errno.def @@ -249,6 +249,7 @@ DEFINE_ERROR(OB_SCHEDULER_TASK_CNT_MISMATCH, -4188, -1, "HY000", "Running task c DEFINE_ERROR(OB_INVALID_MACRO_BLOCK_TYPE, -4189, -1, "HY000", "the macro block type does not exist"); DEFINE_ORACLE_ERROR_DEP(OB_INVALID_DATE_FORMAT_END, -4190, ER_TRUNCATED_WRONG_VALUE, "22007", "Incorrect value", 1830, "date format picture ends before converting entire input string"); DEFINE_ERROR(OB_PG_IS_REMOVED, -4191, -1, "HY000", "partition group is removed"); +DEFINE_ERROR_DEP(OB_DDL_TASK_EXECUTE_TOO_MUCH_TIME, -4192, -1, "42000", "ddl task executes too much time"); DEFINE_ERROR_EXT_DEP(OB_HASH_EXIST, -4200, -1, "HY000", "hash map/set entry exist", "%s"); DEFINE_ERROR_EXT_DEP(OB_HASH_NOT_EXIST, -4201, -1, "HY000", "hash map/set entry not exist", "%s"); DEFINE_ERROR_DEP(OB_HASH_GET_TIMEOUT, -4204, -1, "HY000", "hash map/set get timeout"); @@ -435,11 +436,15 @@ DEFINE_ERROR(OB_GTI_NOT_READY, -4383, -1, "HY000", "transaction id is not ready" DEFINE_ERROR(OB_STACK_OVERFLOW, -4385, -1, "HY000", "stack overflow"); DEFINE_ERROR(OB_NOT_ALLOW_REMOVING_LEADER, -4386, -1, "HY000", "Do not allow removing leader"); DEFINE_ERROR(OB_NEED_SWITCH_CONSUMER_GROUP, -4387, 13937, "HY000", "Failed to switch resource group"); -DEFINE_ERROR(OB_UNEXPECT_INTERNAL_ERROR, -4388, -1, "HY000", "Unexpected internal error happen, please checkout the internal errcode"); -DEFINE_ERROR(OB_ERR_TOO_MUCH_TIME, -4389, -1, "HY000", "Porcessing time is too long"); +DEFINE_ERROR_DEP(OB_UNEXPECT_INTERNAL_ERROR, -4388, -1, "HY000", "Unexpected internal error happen, please checkout the internal errcode"); +DEFINE_ERROR_DEP(OB_ERR_TOO_MUCH_TIME, -4389, -1, "HY000", "Porcessing time is too long"); DEFINE_ERROR(OB_ERR_REMOTE_SCHEMA_NOT_FULL, -4390, -1, "HY000", "Schema of remote server is not refreshed yet"); DEFINE_ERROR(OB_DDL_SSTABLE_RANGE_CROSS, -4391, -1, "HY000", "ddl sstable version range cross"); DEFINE_ERROR(OB_DISK_CORRUPTED, -4392, -1, "HY000", "disk is corrupted"); +DEFINE_ERROR(OB_ERR_OBSERVER_START, -4393, -1, "HY000", "observer start process failure"); +DEFINE_ERROR(OB_ERR_OBSERVER_STOP, -4394, -1, "HY000", "observer stop process failure"); +DEFINE_ERROR(OB_ERR_OBSERVICE_START, -4395, -1, "HY000", "observice start process has failure"); +DEFINE_ERROR_DEP(OB_ERR_THREAD_PANIC, -4396, -1, "HY000", "Worker thread pannic, thread may be terminated or hung"); //////////////////////////////////////////////////////////////// //error code for root server & server management -4500 ---- -5000 @@ -630,6 +635,10 @@ DEFINE_ERROR(OB_ARBITRATION_SERVICE_ALREADY_EXIST, -4748, -1, "HY000", "arbitrat //-4749: OB_UNEXPECTED_TABLET_STATUS //-4750: OB_INVALID_TABLE_STORE DEFINE_ERROR(OB_WAIT_DEGRATION_TIMEOUT, -4751, -1, "HY000", "wait degration finished timeout") +DEFINE_ERROR(OB_ERR_ROOTSERVICE_START, -4752, -1, "HY000", "rootservice start process has failure"); +DEFINE_ERROR(OB_ERR_ROOTSERVICE_STOP, -4753, -1, "HY000", "rootservice stop process has failure"); +DEFINE_ERROR(OB_ERR_ROOT_INSPECTION, -4754, -1, "HY000", "root inspection is not passed"); +DEFINE_ERROR(OB_ERR_ROOTSERVICE_THREAD_HUNG, -4755, -1, "HY000", "rootservice backgroud thread may be hung"); //////////////////////////////////////////////////////////////// // SQL & Schema specific error code, -5000 ~ -6000 @@ -1006,6 +1015,8 @@ DEFINE_ERROR_EXT(OB_ERR_RESERVED_SYNTAX, -5405, ER_RESERVED_SYNTAX, "HY000", "Th DEFINE_ERROR_EXT(OB_ERR_INVALID_PARAM_TO_PROCEDURE, -5406, ER_WRONG_PARAMETERS_TO_PROCEDURE, "HY000", "Incorrect parameters to procedure \'%.*s\'", "Incorrect parameters to procedure \'%.*s\'"); DEFINE_ERROR_EXT(OB_ERR_WRONG_PARAMETERS_TO_NATIVE_FCT, -5407, ER_WRONG_PARAMETERS_TO_NATIVE_FCT, "42000", "Incorrect parameters in the call to native function", "Incorrect parameters in the call to native function '%.*s'"); DEFINE_ERROR_EXT(OB_ERR_CTE_MAX_RECURSION_DEPTH, -5408, ER_CTE_MAX_RECURSION_DEPTH, "HY000", "Recursive query aborted after multiple iterations. Try increasing @@cte_max_recursion_depth to a larger value.", "Recursive query aborted after %lu iterations. Try increasing @@cte_max_recursion_depth to a larger value."); +DEFINE_ERROR(OB_DUPLICATE_OBJECT_NAME_EXIST, -5409, -1, "HY000", "Duplicate object name exists, schema refreshing may be hung"); +DEFINE_ERROR(OB_ERR_REFRESH_SCHEMA_TOO_LONG, -5410, -1, "HY000", "Refresh schema failed continuously, ddl may be hung"); ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //error code for json -5410 ---- -5433, as for json only support mysql mode, error code for oracle use special values @@ -1661,6 +1672,9 @@ DEFINE_ORACLE_ERROR(OB_TRANS_IDLE_TIMEOUT, -6278, 6002, "25000", "Transaction id // for transaction free route DEFINE_ERROR(OB_TRANS_FREE_ROUTE_NOT_SUPPORTED, -6279, -1, "HY000", "Query is not supported to be executed on txn temporary node"); +DEFINE_ERROR(OB_TRANS_LIVE_TOO_MUCH_TIME, -6280, -1, "HY000", "Transaction cost too much without commit or rollback"); +DEFINE_ERROR(OB_TRANS_COMMIT_TOO_MUCH_TIME, -6281, -1, "HY000", "Transaction commit cost too much"); + // for clog DEFINE_ERROR(OB_LOG_ID_NOT_FOUND, -6301, -1, "HY000", "log id not found"); DEFINE_ERROR(OB_LSR_THREAD_STOPPED, -6302, -1, "HY000", "log scan runnable thread stop"); @@ -1684,6 +1698,7 @@ DEFINE_ERROR(OB_LOG_NEED_REBUILD, -6319, -1, "HY000", "need rebuild"); DEFINE_ERROR(OB_TOO_MANY_LOG_TASK, -6320, -1, "HY000", "too many log tasks"); DEFINE_ERROR(OB_INVALID_BATCH_SIZE, -6321, -1, "HY000", "ob invalid batch size"); DEFINE_ERROR(OB_CLOG_SLIDE_TIMEOUT, -6322, -1, "HY000", "ob clog slide timeout"); +DEFINE_ERROR(OB_LOG_REPLAY_ERROR, -6323, -1, "HY000", "log replay error"); // for freeze // DEFINE_ERROR(OB_TABLET_FREEZE_TIMEOUT, -6400, -1, "HY000", "tablet_freeze timeout"); diff --git a/src/share/ob_errno.h b/src/share/ob_errno.h index f24ea0d0b..412a1a97e 100644 --- a/src/share/ob_errno.h +++ b/src/share/ob_errno.h @@ -256,11 +256,12 @@ constexpr int OB_GTI_NOT_READY = -4383; constexpr int OB_STACK_OVERFLOW = -4385; constexpr int OB_NOT_ALLOW_REMOVING_LEADER = -4386; constexpr int OB_NEED_SWITCH_CONSUMER_GROUP = -4387; -constexpr int OB_UNEXPECT_INTERNAL_ERROR = -4388; -constexpr int OB_ERR_TOO_MUCH_TIME = -4389; constexpr int OB_ERR_REMOTE_SCHEMA_NOT_FULL = -4390; constexpr int OB_DDL_SSTABLE_RANGE_CROSS = -4391; constexpr int OB_DISK_CORRUPTED = -4392; +constexpr int OB_ERR_OBSERVER_START = -4393; +constexpr int OB_ERR_OBSERVER_STOP = -4394; +constexpr int OB_ERR_OBSERVICE_START = -4395; constexpr int OB_IMPORT_NOT_IN_SERVER = -4505; constexpr int OB_CONVERT_ERROR = -4507; constexpr int OB_BYPASS_TIMEOUT = -4510; @@ -438,6 +439,10 @@ constexpr int OB_PACKET_STATUS_UNKNOWN = -4746; constexpr int OB_ARBITRATION_SERVICE_NOT_EXIST = -4747; constexpr int OB_ARBITRATION_SERVICE_ALREADY_EXIST = -4748; constexpr int OB_WAIT_DEGRATION_TIMEOUT = -4751; +constexpr int OB_ERR_ROOTSERVICE_START = -4752; +constexpr int OB_ERR_ROOTSERVICE_STOP = -4753; +constexpr int OB_ERR_ROOT_INSPECTION = -4754; +constexpr int OB_ERR_ROOTSERVICE_THREAD_HUNG = -4755; constexpr int OB_ERR_PARSER_INIT = -5000; constexpr int OB_ERR_PARSE_SQL = -5001; constexpr int OB_ERR_RESOLVE_SQL = -5002; @@ -772,6 +777,8 @@ constexpr int OB_ERR_RESERVED_SYNTAX = -5405; constexpr int OB_ERR_INVALID_PARAM_TO_PROCEDURE = -5406; constexpr int OB_ERR_WRONG_PARAMETERS_TO_NATIVE_FCT = -5407; constexpr int OB_ERR_CTE_MAX_RECURSION_DEPTH = -5408; +constexpr int OB_DUPLICATE_OBJECT_NAME_EXIST = -5409; +constexpr int OB_ERR_REFRESH_SCHEMA_TOO_LONG = -5410; constexpr int OB_SQL_RETRY_SPM = -5434; constexpr int OB_OUTLINE_NOT_REPRODUCIBLE = -5435; constexpr int OB_EER_WINDOW_NO_CHILD_PARTITIONING = -5438; @@ -1293,6 +1300,8 @@ constexpr int OB_OBJ_UNLOCK_CONFLICT = -6276; constexpr int OB_SCN_OUT_OF_BOUND = -6277; constexpr int OB_TRANS_IDLE_TIMEOUT = -6278; constexpr int OB_TRANS_FREE_ROUTE_NOT_SUPPORTED = -6279; +constexpr int OB_TRANS_LIVE_TOO_MUCH_TIME = -6280; +constexpr int OB_TRANS_COMMIT_TOO_MUCH_TIME = -6281; constexpr int OB_LOG_ID_NOT_FOUND = -6301; constexpr int OB_LSR_THREAD_STOPPED = -6302; constexpr int OB_NO_LOG = -6303; @@ -1315,6 +1324,7 @@ constexpr int OB_LOG_NEED_REBUILD = -6319; constexpr int OB_TOO_MANY_LOG_TASK = -6320; constexpr int OB_INVALID_BATCH_SIZE = -6321; constexpr int OB_CLOG_SLIDE_TIMEOUT = -6322; +constexpr int OB_LOG_REPLAY_ERROR = -6323; constexpr int OB_ELECTION_WARN_LOGBUF_FULL = -7000; constexpr int OB_ELECTION_WARN_LOGBUF_EMPTY = -7001; constexpr int OB_ELECTION_WARN_NOT_RUNNING = -7002; @@ -1848,6 +1858,7 @@ constexpr int OB_ERR_INVALID_DATE_MSG_FMT_V2 = -4219; #define OB_INVALID_MACRO_BLOCK_TYPE__USER_ERROR_MSG "the macro block type does not exist" #define OB_INVALID_DATE_FORMAT_END__USER_ERROR_MSG "Incorrect value" #define OB_PG_IS_REMOVED__USER_ERROR_MSG "partition group is removed" +#define OB_DDL_TASK_EXECUTE_TOO_MUCH_TIME__USER_ERROR_MSG "ddl task executes too much time" #define OB_HASH_EXIST__USER_ERROR_MSG "%s" #define OB_HASH_NOT_EXIST__USER_ERROR_MSG "%s" #define OB_HASH_GET_TIMEOUT__USER_ERROR_MSG "hash map/set get timeout" @@ -2036,6 +2047,10 @@ constexpr int OB_ERR_INVALID_DATE_MSG_FMT_V2 = -4219; #define OB_ERR_REMOTE_SCHEMA_NOT_FULL__USER_ERROR_MSG "Schema of remote server is not refreshed yet" #define OB_DDL_SSTABLE_RANGE_CROSS__USER_ERROR_MSG "ddl sstable version range cross" #define OB_DISK_CORRUPTED__USER_ERROR_MSG "disk is corrupted" +#define OB_ERR_OBSERVER_START__USER_ERROR_MSG "observer start process failure" +#define OB_ERR_OBSERVER_STOP__USER_ERROR_MSG "observer stop process failure" +#define OB_ERR_OBSERVICE_START__USER_ERROR_MSG "observice start process has failure" +#define OB_ERR_THREAD_PANIC__USER_ERROR_MSG "Worker thread pannic, thread may be terminated or hung" #define OB_IMPORT_NOT_IN_SERVER__USER_ERROR_MSG "Import not in service" #define OB_CONVERT_ERROR__USER_ERROR_MSG "Convert error" #define OB_BYPASS_TIMEOUT__USER_ERROR_MSG "Bypass timeout" @@ -2216,6 +2231,10 @@ constexpr int OB_ERR_INVALID_DATE_MSG_FMT_V2 = -4219; #define OB_ARBITRATION_SERVICE_NOT_EXIST__USER_ERROR_MSG "arbitration service does not exist" #define OB_ARBITRATION_SERVICE_ALREADY_EXIST__USER_ERROR_MSG "arbitration service already exist" #define OB_WAIT_DEGRATION_TIMEOUT__USER_ERROR_MSG "wait degration finished timeout" +#define OB_ERR_ROOTSERVICE_START__USER_ERROR_MSG "rootservice start process has failure" +#define OB_ERR_ROOTSERVICE_STOP__USER_ERROR_MSG "rootservice stop process has failure" +#define OB_ERR_ROOT_INSPECTION__USER_ERROR_MSG "root inspection is not passed" +#define OB_ERR_ROOTSERVICE_THREAD_HUNG__USER_ERROR_MSG "rootservice backgroud thread may be hung" #define OB_ERR_PARSER_INIT__USER_ERROR_MSG "Failed to init SQL parser" #define OB_ERR_PARSE_SQL__USER_ERROR_MSG "%s near \'%.*s\' at line %d" #define OB_ERR_RESOLVE_SQL__USER_ERROR_MSG "Resolve error" @@ -2584,6 +2603,8 @@ constexpr int OB_ERR_INVALID_DATE_MSG_FMT_V2 = -4219; #define OB_ERR_INVALID_PARAM_TO_PROCEDURE__USER_ERROR_MSG "Incorrect parameters to procedure \'%.*s\'" #define OB_ERR_WRONG_PARAMETERS_TO_NATIVE_FCT__USER_ERROR_MSG "Incorrect parameters in the call to native function '%.*s'" #define OB_ERR_CTE_MAX_RECURSION_DEPTH__USER_ERROR_MSG "Recursive query aborted after %lu iterations. Try increasing @@cte_max_recursion_depth to a larger value." +#define OB_DUPLICATE_OBJECT_NAME_EXIST__USER_ERROR_MSG "Duplicate object name exists, schema refreshing may be hung" +#define OB_ERR_REFRESH_SCHEMA_TOO_LONG__USER_ERROR_MSG "Refresh schema failed continuously, ddl may be hung" #define OB_ERR_INVALID_JSON_TEXT__USER_ERROR_MSG "Invalid JSON text." #define OB_ERR_INVALID_JSON_TEXT_IN_PARAM__USER_ERROR_MSG "Invalid JSON text in argument." #define OB_ERR_INVALID_JSON_BINARY_DATA__USER_ERROR_MSG "The JSON binary value contains invalid data." @@ -3196,6 +3217,8 @@ constexpr int OB_ERR_INVALID_DATE_MSG_FMT_V2 = -4219; #define OB_SCN_OUT_OF_BOUND__USER_ERROR_MSG "scn is out of bounds of memtable" #define OB_TRANS_IDLE_TIMEOUT__USER_ERROR_MSG "Transaction idle timeout occurred, please rollback the transaction, set the variable ob_trx_idle_timeout to a larger value and then restart the transaction" #define OB_TRANS_FREE_ROUTE_NOT_SUPPORTED__USER_ERROR_MSG "Query is not supported to be executed on txn temporary node" +#define OB_TRANS_LIVE_TOO_MUCH_TIME__USER_ERROR_MSG "Transaction cost too much without commit or rollback" +#define OB_TRANS_COMMIT_TOO_MUCH_TIME__USER_ERROR_MSG "Transaction commit cost too much" #define OB_LOG_ID_NOT_FOUND__USER_ERROR_MSG "log id not found" #define OB_LSR_THREAD_STOPPED__USER_ERROR_MSG "log scan runnable thread stop" #define OB_NO_LOG__USER_ERROR_MSG "no log ever scanned" @@ -3218,6 +3241,7 @@ constexpr int OB_ERR_INVALID_DATE_MSG_FMT_V2 = -4219; #define OB_TOO_MANY_LOG_TASK__USER_ERROR_MSG "too many log tasks" #define OB_INVALID_BATCH_SIZE__USER_ERROR_MSG "ob invalid batch size" #define OB_CLOG_SLIDE_TIMEOUT__USER_ERROR_MSG "ob clog slide timeout" +#define OB_LOG_REPLAY_ERROR__USER_ERROR_MSG "log replay error" #define OB_ELECTION_WARN_LOGBUF_FULL__USER_ERROR_MSG "The log buffer is full" #define OB_ELECTION_WARN_LOGBUF_EMPTY__USER_ERROR_MSG "The log buffer is empty" #define OB_ELECTION_WARN_NOT_RUNNING__USER_ERROR_MSG "The object is not running" @@ -3859,6 +3883,7 @@ constexpr int OB_ERR_INVALID_DATE_MSG_FMT_V2 = -4219; #define OB_INVALID_MACRO_BLOCK_TYPE__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -4189, the macro block type does not exist" #define OB_INVALID_DATE_FORMAT_END__ORA_USER_ERROR_MSG "ORA-01830: date format picture ends before converting entire input string" #define OB_PG_IS_REMOVED__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -4191, partition group is removed" +#define OB_DDL_TASK_EXECUTE_TOO_MUCH_TIME__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -4192, ddl task executes too much time" #define OB_HASH_EXIST__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -4200, %s" #define OB_HASH_NOT_EXIST__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -4201, %s" #define OB_HASH_GET_TIMEOUT__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -4204, hash map/set get timeout" @@ -4047,6 +4072,10 @@ constexpr int OB_ERR_INVALID_DATE_MSG_FMT_V2 = -4219; #define OB_ERR_REMOTE_SCHEMA_NOT_FULL__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -4390, Schema of remote server is not refreshed yet" #define OB_DDL_SSTABLE_RANGE_CROSS__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -4391, ddl sstable version range cross" #define OB_DISK_CORRUPTED__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -4392, disk is corrupted" +#define OB_ERR_OBSERVER_START__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -4393, observer start process failure" +#define OB_ERR_OBSERVER_STOP__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -4394, observer stop process failure" +#define OB_ERR_OBSERVICE_START__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -4395, observice start process has failure" +#define OB_ERR_THREAD_PANIC__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -4396, Worker thread pannic, thread may be terminated or hung" #define OB_IMPORT_NOT_IN_SERVER__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -4505, Import not in service" #define OB_CONVERT_ERROR__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -4507, Convert error" #define OB_BYPASS_TIMEOUT__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -4510, Bypass timeout" @@ -4227,6 +4256,10 @@ constexpr int OB_ERR_INVALID_DATE_MSG_FMT_V2 = -4219; #define OB_ARBITRATION_SERVICE_NOT_EXIST__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -4747, arbitration service does not exist" #define OB_ARBITRATION_SERVICE_ALREADY_EXIST__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -4748, arbitration service already exist" #define OB_WAIT_DEGRATION_TIMEOUT__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -4751, wait degration finished timeout" +#define OB_ERR_ROOTSERVICE_START__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -4752, rootservice start process has failure" +#define OB_ERR_ROOTSERVICE_STOP__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -4753, rootservice stop process has failure" +#define OB_ERR_ROOT_INSPECTION__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -4754, root inspection is not passed" +#define OB_ERR_ROOTSERVICE_THREAD_HUNG__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -4755, rootservice backgroud thread may be hung" #define OB_ERR_PARSER_INIT__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -5000, Failed to init SQL parser" #define OB_ERR_PARSE_SQL__ORA_USER_ERROR_MSG "ORA-00900: %s near \'%.*s\' at line %d" #define OB_ERR_RESOLVE_SQL__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -5002, Resolve error" @@ -4595,6 +4628,8 @@ constexpr int OB_ERR_INVALID_DATE_MSG_FMT_V2 = -4219; #define OB_ERR_INVALID_PARAM_TO_PROCEDURE__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -5406, Incorrect parameters to procedure \'%.*s\'" #define OB_ERR_WRONG_PARAMETERS_TO_NATIVE_FCT__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -5407, Incorrect parameters in the call to native function '%.*s'" #define OB_ERR_CTE_MAX_RECURSION_DEPTH__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -5408, Recursive query aborted after %lu iterations. Try increasing @@cte_max_recursion_depth to a larger value." +#define OB_DUPLICATE_OBJECT_NAME_EXIST__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -5409, Duplicate object name exists, schema refreshing may be hung" +#define OB_ERR_REFRESH_SCHEMA_TOO_LONG__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -5410, Refresh schema failed continuously, ddl may be hung" #define OB_ERR_INVALID_JSON_TEXT__ORA_USER_ERROR_MSG "ORA-40441: JSON syntax error." #define OB_ERR_INVALID_JSON_TEXT_IN_PARAM__ORA_USER_ERROR_MSG "ORA-40441: JSON syntax error" #define OB_ERR_INVALID_JSON_BINARY_DATA__ORA_USER_ERROR_MSG "ORA-40783: invalid binary JSON data\nstring" @@ -5207,6 +5242,8 @@ constexpr int OB_ERR_INVALID_DATE_MSG_FMT_V2 = -4219; #define OB_SCN_OUT_OF_BOUND__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -6277, scn is out of bounds of memtable" #define OB_TRANS_IDLE_TIMEOUT__ORA_USER_ERROR_MSG "ORA-24761: transaction rolled back: transaction idle timeout" #define OB_TRANS_FREE_ROUTE_NOT_SUPPORTED__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -6279, Query is not supported to be executed on txn temporary node" +#define OB_TRANS_LIVE_TOO_MUCH_TIME__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -6280, Transaction cost too much without commit or rollback" +#define OB_TRANS_COMMIT_TOO_MUCH_TIME__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -6281, Transaction commit cost too much" #define OB_LOG_ID_NOT_FOUND__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -6301, log id not found" #define OB_LSR_THREAD_STOPPED__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -6302, log scan runnable thread stop" #define OB_NO_LOG__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -6303, no log ever scanned" @@ -5229,6 +5266,7 @@ constexpr int OB_ERR_INVALID_DATE_MSG_FMT_V2 = -4219; #define OB_TOO_MANY_LOG_TASK__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -6320, too many log tasks" #define OB_INVALID_BATCH_SIZE__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -6321, ob invalid batch size" #define OB_CLOG_SLIDE_TIMEOUT__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -6322, ob clog slide timeout" +#define OB_LOG_REPLAY_ERROR__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -6323, log replay error" #define OB_ELECTION_WARN_LOGBUF_FULL__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -7000, The log buffer is full" #define OB_ELECTION_WARN_LOGBUF_EMPTY__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -7001, The log buffer is empty" #define OB_ELECTION_WARN_NOT_RUNNING__ORA_USER_ERROR_MSG "ORA-00600: internal error code, arguments: -7002, The object is not running" @@ -5705,6 +5743,7 @@ constexpr int OB_ERR_INVALID_DATE_MSG_FMT_V2 = -4219; #define OB_ERR_DATA_TOO_LONG_MSG_FMT_V2__ORA_USER_ERROR_MSG "ORA-12899: value too large for column %.*s (actual: %ld, maximum: %ld)" #define OB_ERR_INVALID_DATE_MSG_FMT_V2__ORA_USER_ERROR_MSG "ORA-01861: Incorrect datetime value for column '%.*s' at row %ld" +extern int g_all_ob_errnos[2020]; const char *ob_error_name(const int oberr); const char* ob_error_cause(const int oberr); diff --git a/src/share/ob_event_history_table_operator.cpp b/src/share/ob_event_history_table_operator.cpp index 0ada754cd..7c558ad53 100644 --- a/src/share/ob_event_history_table_operator.cpp +++ b/src/share/ob_event_history_table_operator.cpp @@ -62,7 +62,7 @@ ObAsyncTask *ObEventTableClearTask::deep_copy(char *buf, const int64_t buf_size) { ObEventTableClearTask *task = NULL; if (NULL == buf || buf_size < static_cast(sizeof(*this))) { - LOG_WARN("buffer not large enough", K(buf_size)); + LOG_WARN_RET(OB_BUF_NOT_ENOUGH, "buffer not large enough", K(buf_size)); } else { task = new(buf) ObEventTableClearTask(rs_event_operator_, server_event_operator_, @@ -104,7 +104,7 @@ int64_t ObEventHistoryTableOperator::ObEventTableUpdateTask::hash() const { int64_t hash_value = 0; if (!this->is_valid()) { - LOG_WARN("invalid event table update task", "task", *this); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "invalid event table update task", "task", *this); } else { hash_value = reinterpret_cast(sql_.ptr()); } @@ -116,13 +116,13 @@ bool ObEventHistoryTableOperator::ObEventTableUpdateTask::operator==( { bool is_equal = false; if (!this->is_valid()) { - LOG_WARN("invalid event table update task", "task", *this); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "invalid event table update task", "task", *this); } else if (this->get_type() != other.get_type()) { is_equal = false; } else { const ObEventTableUpdateTask &o = static_cast(other); if (!o.is_valid()) { - LOG_WARN("invalid event table update task", "task", o); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "invalid event table update task", "task", o); } else if (this == &other) { is_equal = true; } else { @@ -138,9 +138,9 @@ IObDedupTask *ObEventHistoryTableOperator::ObEventTableUpdateTask::deep_copy( { ObEventTableUpdateTask *task = NULL; if (!this->is_valid()) { - LOG_WARN("invalid event table update task", "task", *this); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "invalid event table update task", "task", *this); } else if (NULL == buf || buf_size < get_deep_copy_size()) { - LOG_WARN("invalid argument", "buf", reinterpret_cast(buf), K(buf_size), + LOG_WARN_RET(OB_INVALID_ARGUMENT, "invalid argument", "buf", reinterpret_cast(buf), K(buf_size), "need size", get_deep_copy_size()); } else { task = new (buf) ObEventTableUpdateTask(table_operator_, is_delete_); diff --git a/src/share/ob_force_print_log.h b/src/share/ob_force_print_log.h index 38496e45b..c5e0053ec 100644 --- a/src/share/ob_force_print_log.h +++ b/src/share/ob_force_print_log.h @@ -53,4 +53,9 @@ _LOG_INFO (args); \ } while (0) + +#define FLOG_ERROR_RET(errcode, args...) { int ret = errcode; FLOG_ERROR(args); } +#define _FLOG_ERROR_RET(errcode, args...) { int ret = errcode; _FLOG_ERROR(args); } +#define FLOG_WARN_RET(errcode, args...) { int ret = errcode; FLOG_WARN(args); } +#define _FLOG_WARN_RET(errcode, args...) { int ret = errcode; _FLOG_WARN(args); } #endif /* SRC_SHARE_OB_FORCE_PRINT_LOG_H_ */ diff --git a/src/share/ob_lob_access_utils.cpp b/src/share/ob_lob_access_utils.cpp index 1e0d0704a..1fcd0c334 100644 --- a/src/share/ob_lob_access_utils.cpp +++ b/src/share/ob_lob_access_utils.cpp @@ -1004,7 +1004,7 @@ void ObTextStringResult::calc_buffer_len(int64_t res_len) res_len += sizeof(ObLobCommon); buff_len_ = ObLobLocatorV2::calc_locator_full_len(extern_flags, 0, res_len, false); } else { - LOG_WARN("Lob: out row temp lob not implemented", + LOG_WARN_RET(OB_NOT_IMPLEMENT, "Lob: out row temp lob not implemented", K(OB_NOT_IMPLEMENT), K(this), K(pos_), K(buff_len_)); } } @@ -1238,4 +1238,4 @@ int ObTextStringResult::ob_convert_datum_temporay_lob(ObDatum &datum, } } -} \ No newline at end of file +} diff --git a/src/share/ob_local_device.cpp b/src/share/ob_local_device.cpp index 6e8c7fc57..5f5428bc1 100644 --- a/src/share/ob_local_device.cpp +++ b/src/share/ob_local_device.cpp @@ -56,7 +56,7 @@ int ObLocalIOEvents::get_ith_ret_code(const int64_t i) const ret_code = -res; } } else { - SHARE_LOG(WARN, "invalid member", KP(io_events_), K(i), K(complete_io_cnt_)); + SHARE_LOG_RET(WARN, ret_code, "invalid member", KP(io_events_), K(i), K(complete_io_cnt_)); } return ret_code; } @@ -713,7 +713,7 @@ int ObLocalDevice::alloc_block(const common::ObIODOpts *opts, ObIOFd &block_id) SHARE_LOG(WARN, "The ObLocalDevice is not ready, ", K(ret), K(is_inited_), K(is_marked_)); } else if (OB_UNLIKELY(free_block_cnt_ <= 0)) { ret = OB_SERVER_OUTOF_DISK_SPACE; - SHARE_LOG(ERROR, "Fail to alloc block, ", K(ret), K(free_block_cnt_), K(total_block_cnt_)); + LOG_DBA_ERROR(OB_SERVER_OUTOF_DISK_SPACE, "msg", "Fail to alloc block", K(ret), K(free_block_cnt_), K(total_block_cnt_)); } else { block_idx = free_block_array_[free_block_pop_pos_]; if (0 == block_bitmap_[block_idx]) { @@ -1312,7 +1312,7 @@ int ObLocalDevice::check_space_full(const int64_t required_size) const && used_percent >= GCONF.data_disk_usage_limit_percentage) { ret = OB_SERVER_OUTOF_DISK_SPACE; if (REACH_TIME_INTERVAL(24 * 3600LL * 1000 * 1000 /* 24h */)) { - SHARE_LOG(ERROR, "disk is almost full", K(ret), K(required_size), + LOG_DBA_ERROR(OB_SERVER_OUTOF_DISK_SPACE, "msg", "disk is almost full", K(ret), K(required_size), K(required_count), K(free_count), K(used_percent)); } } @@ -1355,7 +1355,7 @@ int ObLocalDevice::get_block_file_size( block_file_size = suggest_file_size > 0 ? suggest_file_size : total_space * disk_percentage / 100; if (block_file_size > old_block_file_size + free_space) { ret = OB_SERVER_OUTOF_DISK_SPACE; - SHARE_LOG(ERROR, "data file size is too large, ", K(ret), K(block_file_size_), K(total_space), + LOG_DBA_ERROR(OB_SERVER_OUTOF_DISK_SPACE, "msg", "data file size is too large", K(ret), K(block_file_size_), K(total_space), K(free_space), K(reserved_size), K(old_block_file_size), K(block_file_size)); } else if (block_file_size <= block_size) { ret = OB_INVALID_ARGUMENT; diff --git a/src/share/ob_max_id_fetcher.cpp b/src/share/ob_max_id_fetcher.cpp index c226095ab..da6cfcb40 100644 --- a/src/share/ob_max_id_fetcher.cpp +++ b/src/share/ob_max_id_fetcher.cpp @@ -531,7 +531,7 @@ const char *ObMaxIdFetcher::get_max_id_name(const ObMaxIdType max_id_type) { const char *name = NULL; if (max_id_type < 0 || max_id_type >= ARRAYSIZEOF(max_id_name_info_)) { - LOG_WARN("invalid argument", K(max_id_type), "array size", ARRAYSIZEOF(max_id_name_info_)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "invalid argument", K(max_id_type), "array size", ARRAYSIZEOF(max_id_name_info_)); } else { name = max_id_name_info_[max_id_type][0]; } @@ -542,7 +542,7 @@ const char *ObMaxIdFetcher::get_max_id_info(const ObMaxIdType max_id_type) { const char *info = NULL; if (max_id_type < 0 || max_id_type >= ARRAYSIZEOF(max_id_name_info_)) { - LOG_WARN("invalid argument", K(max_id_type), "array size", ARRAYSIZEOF(max_id_name_info_)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "invalid argument", K(max_id_type), "array size", ARRAYSIZEOF(max_id_name_info_)); } else { info = max_id_name_info_[max_id_type][1]; } diff --git a/src/share/ob_occam_time_guard.h b/src/share/ob_occam_time_guard.h index 09d287643..30697f877 100644 --- a/src/share/ob_occam_time_guard.h +++ b/src/share/ob_occam_time_guard.h @@ -90,7 +90,7 @@ private: if (cur_ts > allow_print_ts) { int64_t next_allow_print_ts = point.timeout_ts_ + 30_s; next_print_ts_[idx] = next_allow_print_ts;// only this thread read it, so no need atomic write - OCCAM_LOG(WARN, "thread maybe hung!", K(point), K(idx), KTIMERANGE(next_allow_print_ts, HOUR, MSECOND)); + OCCAM_LOG_RET(WARN, OB_ERR_UNEXPECTED, "thread maybe hung!", K(point), K(idx), KTIMERANGE(next_allow_print_ts, HOUR, MSECOND)); } else { OCCAM_LOG(DEBUG, "this thread has been repoted hung, wait for next print time", K(point), K(idx), KTIME(allow_print_ts)); @@ -246,7 +246,7 @@ public: if (n >= buffer_size) { snprintf(&strbuffer[buffer_size - 6], 6, "..., "); } - ::oceanbase::common::OB_PRINT(log_mod_, OB_LOG_LEVEL_DIRECT(WARN), strbuffer, LOG_KVS(K(*this))); + ::oceanbase::common::OB_PRINT(log_mod_, OB_LOG_LEVEL_DIRECT_NO_ERRCODE(WARN), OB_SUCCESS, strbuffer, LOG_KVS(K(*this))); } } bool is_timeout() @@ -378,7 +378,7 @@ public: MEM_BARRIER(); ++g_point.version_; } else { - OCCAM_LOG(WARN, "this time guard will not detect thread hung, cause global slot is not enough", + OCCAM_LOG_RET(WARN, OB_ERR_UNEXPECTED, "this time guard will not detect thread hung, cause global slot is not enough", K(file), K(func), K(line), K(lbt())); } } diff --git a/src/share/ob_occam_timer.h b/src/share/ob_occam_timer.h index a4107664b..4566a49dd 100644 --- a/src/share/ob_occam_timer.h +++ b/src/share/ob_occam_timer.h @@ -78,14 +78,14 @@ class ObOccamTimerTask : public ObTimeWheelTask if (OB_LIKELY(func_shared_ptr.is_valid())) { int64_t delay_time = ObClockGenerator::getRealClock() - schedule_time_; if (OB_UNLIKELY(delay_time > 50_ms)) { - OCCAM_LOG(WARN, "task executed too delay", K(delay_time), K(*p_task_)); + OCCAM_LOG_RET(WARN, OB_ERR_UNEXPECTED, "task executed too delay", K(delay_time), K(*p_task_)); } stop_flag = (*func_shared_ptr)();// run the task if (__time_guard__.is_timeout()) { - OCCAM_LOG(WARN, "run this task use too much time", K(*p_task_)); + OCCAM_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "run this task use too much time", K(*p_task_)); } } else { - OCCAM_LOG(WARN, "func_shared_ptr_ upgrade failed, task has been stopped", K(function_)); + OCCAM_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "func_shared_ptr_ upgrade failed, task has been stopped", K(function_)); } } if (need_delete_) {// can use task_ pointer here, cause it;s promised it won't be free in other place diff --git a/src/share/ob_primary_standby_service.cpp b/src/share/ob_primary_standby_service.cpp index cf3a86650..6b6c78ba6 100644 --- a/src/share/ob_primary_standby_service.cpp +++ b/src/share/ob_primary_standby_service.cpp @@ -497,7 +497,7 @@ int ObPrimaryStandbyService::update_tenant_status_before_sw_to_standby_( if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), KR(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, KR(temp_ret)); ret = OB_SUCC(ret) ? temp_ret : ret; } } diff --git a/src/share/ob_replica_info.cpp b/src/share/ob_replica_info.cpp index eebdfaaeb..041d897bd 100644 --- a/src/share/ob_replica_info.cpp +++ b/src/share/ob_replica_info.cpp @@ -596,7 +596,7 @@ bool ObZoneReplicaAttrSet::sort_compare_less_than(const ObZoneReplicaAttrSet *ls { bool bret = false; if (OB_ISNULL(lset) || OB_ISNULL(rset)) { - LOG_ERROR("left or right is null", KP(lset), KP(rset)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "left or right is null", KP(lset), KP(rset)); } else { if (lset->zone_set_.count() < rset->zone_set_.count()) { bret = true; diff --git a/src/share/ob_rpc_struct.cpp b/src/share/ob_rpc_struct.cpp index ff5b03659..9a2a93a53 100644 --- a/src/share/ob_rpc_struct.cpp +++ b/src/share/ob_rpc_struct.cpp @@ -1607,7 +1607,7 @@ bool ObAlterTableArg::is_allow_when_upgrade() const for (int64_t i = 0 ; bret && i < index_arg_list_.count(); i++) { if (OB_ISNULL(index_arg_list_.at(i))) { bret = false; - LOG_WARN("ptr is null", K(bret)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "ptr is null", K(bret)); } else { bret = index_arg_list_.at(i)->is_allow_when_upgrade(); } @@ -1629,7 +1629,7 @@ bool ObAlterTableArg::is_allow_when_upgrade() const for(; bret && it_begin != it_end; it_begin++) { if (OB_ISNULL(*it_begin)) { bret = false; - LOG_WARN("*it_begin is NULL", K(bret)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "*it_begin is NULL", K(bret)); } else { alter_column_schema = static_cast(*it_begin); // mysql mode, OB_ALL_MODIFY_COLUMN function is a subset of OB_ALL_CHANGE_COLUMN; @@ -2653,10 +2653,10 @@ bool ObRenameIndexArg::is_valid() const int bret = true; if (origin_index_name_.empty()) { bret = false; - LOG_WARN("origin_index_name is empty", K_(origin_index_name)); + LOG_WARN_RET(OB_INVALID_ERROR, "origin_index_name is empty", K_(origin_index_name)); } else if (new_index_name_.empty()){ bret = false; - LOG_WARN("new_index_name is empty", K_(origin_index_name)); + LOG_WARN_RET(OB_INVALID_ERROR, "new_index_name is empty", K_(origin_index_name)); }else{ bret = ObIndexArg::is_valid(); } @@ -2791,14 +2791,14 @@ bool ObFlashBackTableFromRecyclebinArg::is_valid() const int bret = true; if (OB_INVALID_ID == tenant_id_) { bret = false; - LOG_WARN("tenant_id is invalid", K_(tenant_id)); + LOG_WARN_RET(OB_INVALID_ERROR, "tenant_id is invalid", K_(tenant_id)); } else if (origin_table_name_.empty()) { bret = false; - LOG_WARN("origin_table_name is empty", K_(origin_table_name)); + LOG_WARN_RET(OB_INVALID_ERROR, "origin_table_name is empty", K_(origin_table_name)); } else if ((new_db_name_.empty() && !new_table_name_.empty()) || (!new_db_name_.empty() && new_table_name_.empty())) { bret = false; - LOG_WARN("new_db_name or new_table_name is invalid", + LOG_WARN_RET(OB_INVALID_ERROR, "new_db_name or new_table_name is invalid", K_(new_db_name), K_(new_table_name)); } return bret; @@ -2816,13 +2816,13 @@ bool ObFlashBackTableToScnArg::is_valid() const int bret = true; if (OB_INVALID_ID == tenant_id_) { bret = false; - LOG_WARN("tenant_id is invalid", K_(tenant_id)); + LOG_WARN_RET(OB_INVALID_ERROR, "tenant_id is invalid", K_(tenant_id)); } else if (OB_INVALID_ID == time_point_) { bret = false; - LOG_WARN("timepoint is invalid", K_(time_point)); + LOG_WARN_RET(OB_INVALID_ERROR, "timepoint is invalid", K_(time_point)); } else if (0 == tables_.count()) { bret = false; - LOG_WARN("table is empty", K_(tables)); + LOG_WARN_RET(OB_INVALID_ERROR, "table is empty", K_(tables)); } else if (-1 == query_end_time_) { bret = false; } @@ -2840,14 +2840,14 @@ bool ObFlashBackIndexArg::is_valid() const int bret = true; if (OB_INVALID_ID == tenant_id_) { bret = false; - LOG_WARN("tenant_id is invalid", K_(tenant_id)); + LOG_WARN_RET(OB_INVALID_ERROR, "tenant_id is invalid", K_(tenant_id)); } else if (origin_table_name_.empty()) { bret = false; - LOG_WARN("origin_table_name is empty", K_(origin_table_name)); + LOG_WARN_RET(OB_INVALID_ERROR, "origin_table_name is empty", K_(origin_table_name)); } else if ((new_db_name_.empty() && !new_table_name_.empty()) || (!new_db_name_.empty() && new_table_name_.empty())) { bret = false; - LOG_WARN("new_db_name or new_table_name is invalid", + LOG_WARN_RET(OB_INVALID_ERROR, "new_db_name or new_table_name is invalid", K_(new_db_name), K_(new_table_name)); } return bret; diff --git a/src/share/ob_server_blacklist.cpp b/src/share/ob_server_blacklist.cpp index a6b7047d6..2108a74f8 100644 --- a/src/share/ob_server_blacklist.cpp +++ b/src/share/ob_server_blacklist.cpp @@ -59,7 +59,7 @@ bool ObServerBlacklist::ObMapMarkBlackFunctor::operator() (const ObCascadMember info.is_in_blacklist_ = true; mark_cnt_++; } - SHARE_LOG(WARN, "mark server in blacklist", K(member), K(info), K(black_svr_cnt_)); + SHARE_LOG_RET(WARN, OB_SUCCESS, "mark server in blacklist", K(member), K(info), K(black_svr_cnt_)); } return true; } @@ -91,15 +91,15 @@ bool ObServerBlacklist::ObMapRespFunctor::operator() (const ObCascadMember &memb const int64_t now = ObTimeUtility::current_time(); const int64_t server_start_time = resp_.get_server_start_time(); if (info.last_send_timestamp_ != req_send_ts) { - SHARE_LOG(WARN, "req_send_ts not match", K(member), K_(resp), K(info)); + SHARE_LOG_RET(WARN, OB_ERR_UNEXPECTED, "req_send_ts not match", K(member), K_(resp), K(info)); } else { const int64_t rpc_trans_time = (now - req_send_ts) / 2; if (rpc_trans_time > RPC_TRANS_TIME_THRESHOLD) { - SHARE_LOG(WARN, "[SERVER_BLACKLIST] rpc trans time is too large, attention !", + SHARE_LOG_RET(WARN, OB_SUCCESS, "[SERVER_BLACKLIST] rpc trans time is too large, attention !", K(rpc_trans_time), K(member)); } if (server_start_time != 0 && server_start_time > info.server_start_time_) { - SHARE_LOG(WARN, "[SERVER_BLACKLIST] dst server may restart, attention !", + SHARE_LOG_RET(WARN, OB_SUCCESS, "[SERVER_BLACKLIST] dst server may restart, attention !", K(info.server_start_time_), K(server_start_time), K(member)); } bool is_removed = info.is_in_blacklist_; @@ -123,7 +123,7 @@ bool ObServerBlacklist::ObMapIterFunctor::operator() (const ObCascadMember &memb bl_info.dst_svr_ = member.get_server(); bl_info.dst_info_ = info; if (OB_SUCCESS != (tmp_ret = info_iter_.push(bl_info))) { - SHARE_LOG(WARN, "info_iter_.push failed", K(tmp_ret)); + SHARE_LOG_RET(WARN, tmp_ret, "info_iter_.push failed", K(tmp_ret)); } else { bool_ret = true; } @@ -266,7 +266,7 @@ void ObServerBlacklist::run1() void ObServerBlacklist::blacklist_loop_() { while (!has_set_stop()) { - int tmp_ret = OB_SUCCESS; + int ret = OB_SUCCESS; const int64_t start_time = ObTimeUtility::current_time(); int64_t send_cnt = 0; if (IS_NOT_INIT) { @@ -276,34 +276,34 @@ void ObServerBlacklist::blacklist_loop_() } else { // Clean up the dst_server that does not need to communicate in the map ObMapRemoveFunctor remove_functor(ObTimeUtility::current_time()); - if (OB_SUCCESS != (tmp_ret = dst_info_map_.remove_if(remove_functor))) { - SHARE_LOG(WARN, "dst_info_map_ remove_if failed", K(tmp_ret)); + if (OB_SUCCESS != (ret = dst_info_map_.remove_if(remove_functor))) { + SHARE_LOG_RET(WARN, ret, "dst_info_map_ remove_if failed", K(ret)); } const int64_t remove_cnt = remove_functor.get_remove_cnt(); if (remove_cnt > 0) { - SHARE_LOG(INFO, "dst_info_map_ remove_if finished", K(tmp_ret), "remove count", + SHARE_LOG(INFO, "dst_info_map_ remove_if finished", K(ret), "remove count", remove_cnt); } // Statistics should be added to the server of the blacklist ObMapMarkBlackFunctor mark_functor; - if (OB_SUCCESS != (tmp_ret = dst_info_map_.for_each(mark_functor))) { - SHARE_LOG(WARN, "dst_info_map_ for_each failed", K(tmp_ret)); + if (OB_SUCCESS != (ret = dst_info_map_.for_each(mark_functor))) { + SHARE_LOG_RET(WARN, ret, "dst_info_map_ for_each failed", K(ret)); } const int64_t mark_cnt = mark_functor.get_mark_cnt(); if (mark_cnt > 0) { - SHARE_LOG(INFO, "dst_info_map_ mark blacklist finished", K(tmp_ret), "mark count", + SHARE_LOG(INFO, "dst_info_map_ mark blacklist finished", K(ret), "mark count", mark_cnt); } // Send message to server in map ObMapSendReqFunctor send_req_functor(this, self_); - if (OB_SUCCESS != (tmp_ret = dst_info_map_.for_each(send_req_functor))) { - SHARE_LOG(WARN, "dst_info_map_ for_each failed", K(tmp_ret)); + if (OB_SUCCESS != (ret = dst_info_map_.for_each(send_req_functor))) { + SHARE_LOG(WARN, "dst_info_map_ for_each failed", K(ret)); } send_cnt = send_req_functor.get_send_cnt(); } const int64_t cost_time = ObTimeUtility::current_time() - start_time; if (cost_time > 100 * 1000) { - SHARE_LOG(WARN, "blacklist_loop cost too much time", K(cost_time)); + SHARE_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "blacklist_loop cost too much time", K(cost_time)); } int32_t sleep_time = BLACKLIST_LOOP_INTERVAL - static_cast(cost_time); if (sleep_time < 0) { @@ -326,14 +326,14 @@ bool ObServerBlacklist::is_in_blacklist(const share::ObCascadMember &member, boo int tmp_ret = OB_SUCCESS; ObDstServerInfo svr_info; if (IS_NOT_INIT) { - SHARE_LOG(WARN, "ObServerBlacklist is not inited"); + SHARE_LOG_RET(WARN, OB_NOT_INIT, "ObServerBlacklist is not inited"); } else if (self_ == member.get_server()) { // always return false for self } else if (false == ATOMIC_LOAD(&is_enabled_)) { // always return false when not enable server_blacklist } else if (OB_SUCCESS != (tmp_ret = dst_info_map_.get(member, svr_info))) { if (OB_ENTRY_NOT_EXIST != tmp_ret) { - SHARE_LOG(WARN, "dst_info_map_.get failed", K(tmp_ret)); + SHARE_LOG_RET(WARN, tmp_ret, "dst_info_map_.get failed", K(tmp_ret)); } else if (add_server) { svr_info.clean_on_time_ = true; svr_info.add_timestamp_ = ObTimeUtility::current_time(); @@ -345,7 +345,7 @@ bool ObServerBlacklist::is_in_blacklist(const share::ObCascadMember &member, boo (server_start_time != 0 && svr_info.server_start_time_ != 0 && svr_info.server_start_time_ > server_start_time); if (bool_ret) { - SHARE_LOG(WARN, "server in blacklist", K(svr_info), K(server_start_time)); + SHARE_LOG_RET(WARN, OB_SUCCESS, "server in blacklist", K(svr_info), K(server_start_time)); } } return bool_ret; diff --git a/src/share/ob_simple_batch.cpp b/src/share/ob_simple_batch.cpp index 86ecf9ff2..c73033031 100644 --- a/src/share/ob_simple_batch.cpp +++ b/src/share/ob_simple_batch.cpp @@ -36,7 +36,7 @@ int64_t ObSimpleBatch::get_serialize_size(void) const if (T_NONE == type_) { /*do nothing*/ } else if (OB_ISNULL(range_)) { - LOG_ERROR("NULL data on calc size", K(range_)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "NULL data on calc size", K(range_)); } else if (T_SCAN == type_) { len += range_->get_serialize_size(); } else if (T_MULTI_SCAN == type_) { diff --git a/src/share/ob_snapshot_table_proxy.cpp b/src/share/ob_snapshot_table_proxy.cpp index 978dfce56..2fe3fd3ea 100644 --- a/src/share/ob_snapshot_table_proxy.cpp +++ b/src/share/ob_snapshot_table_proxy.cpp @@ -84,7 +84,7 @@ bool ObSnapshotInfo::is_valid() const || snapshot_type_ > MAX_SNAPSHOT_TYPE || !snapshot_scn_.is_valid()) { bret = false; - LOG_WARN("invalid snapshot", K(bret), K(*this)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "invalid snapshot", K(bret), K(*this)); } return bret; } diff --git a/src/share/ob_tablet_autoincrement_service.cpp b/src/share/ob_tablet_autoincrement_service.cpp index c49a960b7..d3c161a11 100644 --- a/src/share/ob_tablet_autoincrement_service.cpp +++ b/src/share/ob_tablet_autoincrement_service.cpp @@ -196,6 +196,7 @@ int ObTabletAutoincMgr::fetch_new_range(const ObTabletAutoincParam ¶m, LOG_WARN("failed to get autoinc cache", K(ret)); } else if (tablet_id.is_user_normal_rowid_table_tablet() && node.cache_end_ > OB_MAX_AUTOINC_SEQ_VALUE) { ret = OB_HEAP_TABLE_EXAUSTED; + LOG_DBA_ERROR(OB_HEAP_TABLE_EXAUSTED, "msg", "The hidden primary key sequence has exhausted", K(tablet_id), "current_seq", node.cache_end_); LOG_WARN("tablet autoinc seq has reached max", K(ret), K(node)); } else { LOG_INFO("fetch new range success", K(tablet_id), K(node)); diff --git a/src/share/ob_tablet_checksum_operator.cpp b/src/share/ob_tablet_checksum_operator.cpp index 29350518b..f2d6970e7 100644 --- a/src/share/ob_tablet_checksum_operator.cpp +++ b/src/share/ob_tablet_checksum_operator.cpp @@ -100,7 +100,7 @@ int ObTabletChecksumItem::verify_tablet_column_checksum(const ObTabletReplicaChe LOG_WARN("fail to check column_meta equal", KR(ret), K(replica_item)); } else if ((row_count_ != replica_item.row_count_) || !is_same_column_checksum) { ret = OB_CHECKSUM_ERROR; - LOG_ERROR("fatal checksum error", KR(ret), K(is_same_column_checksum), K(replica_item), K(*this)); + LOG_DBA_ERROR(OB_CHECKSUM_ERROR, "msg", "fatal checksum error", KR(ret), K(is_same_column_checksum), K(replica_item), K(*this)); } } } diff --git a/src/share/ob_tablet_meta_table_compaction_operator.cpp b/src/share/ob_tablet_meta_table_compaction_operator.cpp index 1792ae3c5..4edd5e820 100644 --- a/src/share/ob_tablet_meta_table_compaction_operator.cpp +++ b/src/share/ob_tablet_meta_table_compaction_operator.cpp @@ -125,7 +125,7 @@ void ObTabletMetaTableCompactionOperator::handle_trans_stat( if (trans.is_started()) { int tmp_ret = OB_SUCCESS; if (OB_TMP_FAIL(trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(tmp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(tmp_ret)); ret = OB_SUCC(ret) ? tmp_ret : ret; } } diff --git a/src/share/ob_tablet_replica_checksum_operator.cpp b/src/share/ob_tablet_replica_checksum_operator.cpp index c888befa4..8ac1207de 100644 --- a/src/share/ob_tablet_replica_checksum_operator.cpp +++ b/src/share/ob_tablet_replica_checksum_operator.cpp @@ -963,7 +963,7 @@ int ObTabletReplicaChecksumOperator::innner_verify_tablet_replica_checksum( if (curr_item.is_same_tablet(prev_item)) { // same tablet if (OB_FAIL(curr_item.verify_checksum(prev_item))) { if (OB_CHECKSUM_ERROR == ret) { - LOG_ERROR("ERROR! ERROR! ERROR! checksum error in tablet replica checksum", KR(ret), + LOG_DBA_ERROR(OB_CHECKSUM_ERROR, "msg", "checksum error in tablet replica checksum", KR(ret), K(curr_item), K(prev_item)); check_ret = ret; ret = OB_SUCCESS; // continue checking next checksum @@ -1090,7 +1090,7 @@ int ObTabletReplicaChecksumOperator::check_global_index_column_checksum( } else if (OB_FAIL(compare_column_checksum_(data_table_schema, index_table_schema, data_column_ckm_sum_map, index_column_ckm_sum_map, check_cnt, ckm_error_info))) { if (OB_CHECKSUM_ERROR == ret) { - LOG_ERROR("data table and global index table column checksum are not equal", KR(ret), K(ckm_error_info)); + LOG_DBA_ERROR(OB_CHECKSUM_ERROR, "msg", "data table and global index table column checksum are not equal", KR(ret), K(ckm_error_info)); if (OB_TMP_FAIL(ObColumnChecksumErrorOperator::insert_column_checksum_err_info(sql_proxy, tenant_id, ckm_error_info))) { LOG_WARN("fail to insert global index column checksum error info", KR(tmp_ret), K(ckm_error_info)); @@ -1189,7 +1189,7 @@ int ObTabletReplicaChecksumOperator::check_local_index_column_checksum( } else if (OB_FAIL(compare_column_checksum_(data_table_schema, index_table_schema, data_column_ckm_map, index_column_ckm_map, check_cnt, ckm_error_info))) { if (OB_CHECKSUM_ERROR == ret) { - LOG_ERROR("data table and local index table column checksum are not equal", KR(ret), K(ckm_error_info)); + LOG_DBA_ERROR(OB_CHECKSUM_ERROR, "msg", "data table and local index table column checksum are not equal", KR(ret), K(ckm_error_info)); if (OB_TMP_FAIL(ObColumnChecksumErrorOperator::insert_column_checksum_err_info(sql_proxy, tenant_id, ckm_error_info))) { LOG_WARN("fail to insert local index column checksum error info", KR(tmp_ret), K(ckm_error_info)); @@ -1555,7 +1555,7 @@ void ObTabletReplicaChecksumOperator::print_detail_tablet_replica_checksum( const int64_t item_cnt = items.count(); for (int64_t i = 0; i < item_cnt; ++i) { const ObTabletReplicaChecksumItem &cur_item = items.at(i); - FLOG_WARN("detail tablet replica checksum", K(i), K(cur_item)); + FLOG_WARN_RET(OB_SUCCESS, "detail tablet replica checksum", K(i), K(cur_item)); } } diff --git a/src/share/ob_task_define.cpp b/src/share/ob_task_define.cpp index c86497aff..d1659fc81 100644 --- a/src/share/ob_task_define.cpp +++ b/src/share/ob_task_define.cpp @@ -10,11 +10,18 @@ * See the Mulan PubL v2 for more details. */ +#define USING_LOG_PREFIX SHARE + #include "ob_task_define.h" #include "lib/allocator/ob_malloc.h" -#include "lib/utility/ob_simple_rate_limiter.h" +#include "lib/oblog/ob_syslog_rate_limiter.h" #include "lib/oblog/ob_log.h" #include +#include "lib/thread/thread_pool.h" +#include "lib/hash/ob_hashmap.h" +#include "lib/thread/ob_thread_name.h" +#include "share/ob_define.h" +#include "share/config/ob_server_config.h" using namespace oceanbase::lib; using namespace oceanbase::common; @@ -22,11 +29,117 @@ using namespace oceanbase::common; namespace oceanbase { namespace share { -class ObLogRateLimiter - : public lib::ObSimpleRateLimiter +class ObSyslogPerErrLimiter : public common::ObISyslogRateLimiter +{ +public: + const static int64_t REFRESH_INTERVAL_US = 1000000; + ObSyslogPerErrLimiter() : inited_(false), refresh_thread_(*this) + { + refresh_thread_.set_thread_count(1); + set_rate(GCONF.diag_syslog_per_error_limit); + } + + virtual ~ObSyslogPerErrLimiter() { destroy(); } + int init(); + + void destroy() + { + if (inited_) { + refresh_thread_.stop(); + refresh_thread_.wait(); + refresh_thread_.destroy(); + inited_ = false; + } + } + + + virtual int do_acquire(int64_t permits, int log_level, int errcode) override; + virtual bool is_force_allows() const override { return false; } + virtual void reset_force_allows() override {} + + static ObSyslogPerErrLimiter &instance() + { + static ObSyslogPerErrLimiter g_instance; + return g_instance; + } + +private: + void per_err_logs(int &first_thread_cnt, int &left_cnt) + { + int total_cnt = std::min(rate_, (int64_t)INT32_MAX); + first_thread_cnt = std::min(std::max(total_cnt / 2, 24), 48); + left_cnt = std::max(0, total_cnt - first_thread_cnt); + } + + class RefreshThread : public lib::ThreadPool + { + public: + RefreshThread(ObSyslogPerErrLimiter &limiter) : limiter_(limiter) {} + virtual void run1() override + { + lib::set_thread_name("LogLimiterRefresh"); + while (!has_set_stop()) { + usleep(100000); + limiter_.refresh(); + } + } + private: + ObSyslogPerErrLimiter &limiter_; + }; + + struct PerErrorItem + { + int errcode_; + volatile int first_tid_; + volatile int64_t first_log_time_; + volatile int tid_cnt_; + volatile int cnt_; + PerErrorItem * next_; + + // Only fields need printed add here. + TO_STRING_KV("errcode", errcode_, "dropped", cnt_, "tid", first_tid_); + + PerErrorItem() : errcode_(0), first_tid_(0), first_log_time_(0), + tid_cnt_(0), cnt_(0), next_(NULL) + { + } + }; + + inline PerErrorItem &locate_perr(int errcode) + { + PerErrorItem *p = buckets_[static_cast(errcode) % bucket_cnt_]; + while (NULL != p && p->errcode_ != errcode) { + p = p->next_; + } + if (NULL == p) { // for unknown error code. + p = &errors_[ARRAYSIZEOF(errors_) - 1]; + } + return *p; + } + + + void refresh(); + +private: + bool inited_; + const static int64_t bucket_cnt_ = 6151; // prime greater than error count. + static_assert(bucket_cnt_ > ARRAYSIZEOF(g_all_ob_errnos), "too small bucket cnt"); + PerErrorItem *buckets_[bucket_cnt_]; + PerErrorItem errors_[ARRAYSIZEOF(g_all_ob_errnos) + 1]; // 1 for unknown error. + + ObSEArray refresh_errlogs_; + RefreshThread refresh_thread_; +}; + +class ObLogRateLimiter : public common::ObSyslogSimpleRateLimiter { friend class ObTaskController; public: + ObLogRateLimiter(ObISyslogRateLimiter *wdiag_log_limiter) + : wdiag_log_limiter_(wdiag_log_limiter) + { + } + bool is_force_allows() const override { return OB_UNLIKELY(allows_ > 0); @@ -38,7 +151,14 @@ public: } } + int do_acquire(int64_t permits, int log_level, int errcode) override { + return NULL != wdiag_log_limiter_ && log_level == OB_LOG_LEVEL_WARN + ? wdiag_log_limiter_->do_acquire(1, log_level, errcode) + : ObSyslogSimpleRateLimiter::do_acquire(permits, log_level, errcode); + } + private: + ObISyslogRateLimiter *wdiag_log_limiter_; RLOCAL_STATIC(int64_t, allows_); }; @@ -52,13 +172,17 @@ ObTaskController::ObTaskController() {} ObTaskController::~ObTaskController() -{} +{ + ObSyslogPerErrLimiter::instance().destroy(); +} int ObTaskController::init() { int ret = OB_SUCCESS; + ObSyslogPerErrLimiter::instance().set_rate(GCONF.diag_syslog_per_error_limit); + OZ(ObSyslogPerErrLimiter::instance().init()); for (int i = 0; OB_SUCC(ret) && i < MAX_TASK_ID; i++) { - limiters_[i] = OB_NEW(ObLogRateLimiter, ObModIds::OB_LOG); + limiters_[i] = OB_NEW(ObLogRateLimiter, ObModIds::OB_LOG, &ObSyslogPerErrLimiter::instance()); if (nullptr == limiters_[i]) { ret = OB_ALLOCATE_MEMORY_FAILED; break; @@ -93,6 +217,8 @@ int ObTaskController::init() void ObTaskController::destroy() { + + ObSyslogPerErrLimiter::instance().destroy(); for (int i = 0; i < MAX_TASK_ID; i++) { if (nullptr != limiters_[i]) { ob_delete(limiters_[i]); @@ -120,6 +246,11 @@ void ObTaskController::set_log_rate_limit(int64_t limit) } } +void ObTaskController::set_diag_per_error_limit(int64_t cnt) +{ + ObSyslogPerErrLimiter::instance().set_rate(cnt); +} + void ObTaskController::calc_log_rate() { const double total = std::accumulate( @@ -141,5 +272,109 @@ ObTaskController::RateLimiter *ObTaskController::get_limiter(ObTaskType id) return limiters_[toUType(id)]; }; +int ObSyslogPerErrLimiter::init() +{ + int ret = OB_SUCCESS; + int first_tid_cnt = 0; + int left_cnt = 0; + per_err_logs(first_tid_cnt, left_cnt); + for (int64_t i = 0; i < ARRAYSIZEOF(g_all_ob_errnos); i++) { + int errcode = g_all_ob_errnos[i]; + PerErrorItem &perr = errors_[i]; + perr.errcode_ = errcode; + perr.tid_cnt_ = first_tid_cnt; + perr.cnt_ = left_cnt; + + int pos = static_cast(errcode) % bucket_cnt_; + perr.next_ = buckets_[pos]; + buckets_[pos] = &perr; + } + PerErrorItem &perr = errors_[ARRAYSIZEOF(errors_) - 1]; + perr.errcode_ = INT32_MIN; + perr.tid_cnt_ = first_tid_cnt; + perr.cnt_ = left_cnt; + + + OZ(refresh_thread_.init()); + OZ(refresh_thread_.start()); + + if (OB_SUCC(ret)) { + inited_ = true; + } + return ret; +} + +int ObSyslogPerErrLimiter::do_acquire(int64_t permits, int log_level, int errcode) +{ + UNUSED(permits); + int ret = OB_SUCCESS; + if (log_level == OB_LOG_LEVEL_WARN && inited_ && rate_ > 0) { + PerErrorItem &perr = locate_perr(errcode); + int mytid = GETTID(); + int tid = ATOMIC_LOAD(&perr.first_tid_); + int tidcnt = -1; + if (0 == tid) { + ATOMIC_SET(&perr.first_log_time_, ObTimeUtil::fast_current_time()); + MEM_BARRIER(); + if (ATOMIC_CAS(&perr.first_tid_, 0, mytid)) { + tid = mytid; + } + } + if (tid == mytid) { + tidcnt= ATOMIC_AAF(&perr.tid_cnt_, -1); + } + if (tidcnt < 0) { + // We continuously issue permints, instead of spread to one second. + if (ATOMIC_AAF(&perr.cnt_, -1) < 0) { + ret = OB_EAGAIN; + } + } + } + + return ret; +} + +void ObSyslogPerErrLimiter::refresh() +{ + int ret = OB_SUCCESS; + int64_t cur_time = ObTimeUtility::current_time(); + + int first_tid_cnt = 0; + int left_cnt = 0; + per_err_logs(first_tid_cnt, left_cnt); + + refresh_errlogs_.reuse(); + PerErrorItem cur; + + for (int64_t i = 0; OB_SUCC(ret) && i < ARRAYSIZEOF(errors_); i++) { + auto &perr = errors_[i]; + int tid = ATOMIC_LOAD(&perr.first_tid_); + MEM_BARRIER(); + if (tid > 0) { + int64_t log_time = ATOMIC_LOAD(&perr.first_log_time_); + if (log_time > 0 && cur_time - log_time> REFRESH_INTERVAL_US) { + cur.errcode_ = perr.errcode_; + cur.first_tid_ = tid; + cur.first_log_time_ = log_time; + cur.tid_cnt_ = ATOMIC_LOAD(&perr.tid_cnt_); + cur.cnt_ = ATOMIC_LOAD(&perr.cnt_); + ATOMIC_AAF(&perr.tid_cnt_, first_tid_cnt - cur.tid_cnt_); + ATOMIC_AAF(&perr.cnt_, left_cnt - cur.cnt_); + ATOMIC_SET(&perr.first_tid_, 0); + if (cur.cnt_ < 0) { + cur.cnt_ = -cur.cnt_; + OZ(refresh_errlogs_.push_back(cur)); + } + } + } + } + if (!refresh_errlogs_.empty()) { + ObTaskController::get().allow_next_syslog(); + LOG_WARN("Throttled WDIAG logs in last second", + "details {error code, dropped logs, earliest tid}", + refresh_errlogs_); + } +} + } // share } // oceanbase diff --git a/src/share/ob_task_define.h b/src/share/ob_task_define.h index d1b5cd136..96c3bfc5f 100644 --- a/src/share/ob_task_define.h +++ b/src/share/ob_task_define.h @@ -55,6 +55,8 @@ public: void set_log_rate_limit(int64_t limit); + void set_diag_per_error_limit(int64_t cnt); + static ObTaskController &get(); private: diff --git a/src/share/ob_tenant_role.cpp b/src/share/ob_tenant_role.cpp index ef0b3265a..528a1ab25 100644 --- a/src/share/ob_tenant_role.cpp +++ b/src/share/ob_tenant_role.cpp @@ -36,7 +36,7 @@ const char* ObTenantRole::to_str() const const char *type_str = "UNKNOWN"; if (OB_UNLIKELY(value_ >= ARRAYSIZEOF(TENANT_ROLE_ARRAY) || value_ < INVALID_TENANT)) { - LOG_ERROR("fatal error, unknown tenant role", K_(value)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "fatal error, unknown tenant role", K_(value)); } else { type_str = TENANT_ROLE_ARRAY[value_]; } @@ -57,7 +57,7 @@ ObTenantRole::ObTenantRole(const ObString &str) } if (INVALID_TENANT == value_) { - LOG_WARN("invalid tenant role", K_(value), K(str)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "invalid tenant role", K_(value), K(str)); } } diff --git a/src/share/ob_tenant_switchover_status.cpp b/src/share/ob_tenant_switchover_status.cpp index b21c9ed49..ccbe39469 100644 --- a/src/share/ob_tenant_switchover_status.cpp +++ b/src/share/ob_tenant_switchover_status.cpp @@ -40,7 +40,7 @@ const char* ObTenantSwitchoverStatus::to_str() const const char *type_str = "UNKNOWN"; if (OB_UNLIKELY(value_ >= ARRAYSIZEOF(TENANT_SWITCHOVER_ARRAY) || value_ < INVALID_STATUS)) { - LOG_ERROR("fatal error, unknown switchover status", K_(value)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "fatal error, unknown switchover status", K_(value)); } else { type_str = TENANT_SWITCHOVER_ARRAY[value_]; } @@ -61,7 +61,7 @@ ObTenantSwitchoverStatus::ObTenantSwitchoverStatus(const ObString &str) } if (INVALID_STATUS == value_) { - LOG_WARN("invalid switchover status", K_(value), K(str)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "invalid switchover status", K_(value), K(str)); } } diff --git a/src/share/ob_zone_merge_info.cpp b/src/share/ob_zone_merge_info.cpp index 0bbba12cc..d2fc9530c 100644 --- a/src/share/ob_zone_merge_info.cpp +++ b/src/share/ob_zone_merge_info.cpp @@ -208,7 +208,7 @@ const char *ObZoneMergeInfo::get_merge_status_str(const MergeStatus status) const char *str_array[] = { "IDLE", "MERGING", "CHECKSUM" }; STATIC_ASSERT(MERGE_STATUS_MAX == ARRAYSIZEOF(str_array), "status count mismatch"); if (status < 0 || status >= MERGE_STATUS_MAX) { - LOG_WARN("invalid merge status", K(status)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "invalid merge status", K(status)); } else { str = str_array[status]; } diff --git a/src/share/object/ob_obj_cast.cpp b/src/share/object/ob_obj_cast.cpp index d2b73cc29..5c7561ef9 100644 --- a/src/share/object/ob_obj_cast.cpp +++ b/src/share/object/ob_obj_cast.cpp @@ -66,7 +66,7 @@ static int cast_not_support(const ObObjType expect_type, const ObCastMode cast_mode) { UNUSED(params); - LOG_WARN("not supported obj type convert", + LOG_WARN_RET(OB_NOT_SUPPORTED, "not supported obj type convert", K(expect_type), K(in), K(out), K(cast_mode)); return OB_NOT_SUPPORTED; } @@ -78,7 +78,7 @@ static int cast_not_expected(const ObObjType expect_type, const ObCastMode cast_mode) { UNUSED(params); - LOG_WARN("not expected obj type convert", + LOG_WARN_RET(OB_ERR_UNEXPECTED, "not expected obj type convert", K(expect_type), K(in), K(out), K(cast_mode)); return OB_ERR_UNEXPECTED; } @@ -92,7 +92,7 @@ static int cast_inconsistent_types(const ObObjType expect_type, UNUSED(params); UNUSED(out); UNUSED(cast_mode); - LOG_WARN("inconsistent datatypes", "expected", expect_type, "got", in.get_type()); + LOG_WARN_RET(OB_ERR_INVALID_TYPE_FOR_OP, "inconsistent datatypes", "expected", expect_type, "got", in.get_type()); return OB_ERR_INVALID_TYPE_FOR_OP; } @@ -123,8 +123,8 @@ static int cast_inconsistent_type_json_explicit(const ObObjType expect_type, { UNUSED(params); UNUSED(out); - LOG_WARN("inconsistent datatypes", "expected", expect_type, "got", in.get_type()); int ret = OB_ERR_INVALID_TYPE_FOR_OP; + LOG_WARN("inconsistent datatypes", "expected", expect_type, "got", in.get_type()); return ret; } @@ -134,7 +134,7 @@ static int cast_not_support_enum_set(const ObExpectType &expect_type, ObObj &out) { UNUSED(params); - LOG_WARN("not supported obj type convert", K(expect_type), K(in), K(out)); + LOG_WARN_RET(OB_NOT_SUPPORTED, "not supported obj type convert", K(expect_type), K(in), K(out)); return OB_NOT_SUPPORTED; } @@ -157,7 +157,7 @@ static int cast_not_expected_enum_set(const ObExpectType &expect_type, ObObj &out) { UNUSED(params); - LOG_WARN("not expected obj type convert", K(expect_type), K(in), K(out)); + LOG_WARN_RET(common::OB_ERR_UNEXPECTED, "not expected obj type convert", K(expect_type), K(in), K(out)); return OB_ERR_UNEXPECTED; } @@ -11003,7 +11003,7 @@ bool cast_supported(const ObObjType orig_type, const ObCollationType orig_cs_typ || ob_is_blob_locator(expect_type, expect_cs_type); if (OB_UNLIKELY(ob_is_invalid_obj_type(orig_type) || ob_is_invalid_obj_type(expect_type))) { - LOG_WARN("invalid cast type", K(orig_type), K(expect_type)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "invalid cast type", K(orig_type), K(expect_type)); // number类型可以转换为clob但是不能转为blob, 无法通过矩阵实现这一点,所以在这里做特殊处理。 } else if (is_oracle_mode() && (clob_in || ob_is_number_tc(orig_type) || ob_is_int_tc(orig_type) || ob_is_datetime_tc(orig_type)) && blob_out) { @@ -11015,7 +11015,7 @@ bool cast_supported(const ObObjType orig_type, const ObCollationType orig_cs_typ ObObjTypeClass expect_tc = ob_obj_type_class(expect_type); if (ObIntervalTC == orig_tc && ObIntervalTC == expect_tc && orig_type != expect_type) { bret = false; - LOG_WARN("cast between intervalYM and intervalDS not allowed", + LOG_WARN_RET(OB_ERR_UNEXPECTED, "cast between intervalYM and intervalDS not allowed", K(bret), K(orig_type), K(expect_type)); } else { ObObjCastFunc cast_func = lib::is_oracle_mode() ? diff --git a/src/share/parameter/ob_parameter_seed.ipp b/src/share/parameter/ob_parameter_seed.ipp index e33e5b181..8113a19c9 100644 --- a/src/share/parameter/ob_parameter_seed.ipp +++ b/src/share/parameter/ob_parameter_seed.ipp @@ -183,11 +183,14 @@ DEF_INT(cluster_id, OB_CLUSTER_PARAMETER, "0", "[1,4294901759]", "ID of the clus ObParameterAttr(Section::OBSERVER, Source::DEFAULT, EditLevel::DYNAMIC_EFFECTIVE)); DEF_STR(obconfig_url, OB_CLUSTER_PARAMETER, "", "URL for OBConfig service", ObParameterAttr(Section::OBSERVER, Source::DEFAULT, EditLevel::DYNAMIC_EFFECTIVE)); -DEF_LOG_LEVEL(syslog_level, OB_CLUSTER_PARAMETER, "INFO", "specifies the current level of logging. There are DEBUG, TRACE, INFO, WARN, USER_ERR, ERROR, six different log levels.", +DEF_LOG_LEVEL(syslog_level, OB_CLUSTER_PARAMETER, "WDIAG", "specifies the current level of logging. There are DEBUG, TRACE, WDIAG, EDIAG, INFO, WARN, ERROR, seven different log levels.", ObParameterAttr(Section::OBSERVER, Source::DEFAULT, EditLevel::DYNAMIC_EFFECTIVE)); DEF_CAP(syslog_io_bandwidth_limit, OB_CLUSTER_PARAMETER, "30MB", "Syslog IO bandwidth limitation, exceeding syslog would be truncated. Use 0 to disable ERROR log.", ObParameterAttr(Section::OBSERVER, Source::DEFAULT, EditLevel::DYNAMIC_EFFECTIVE)); +DEF_INT(diag_syslog_per_error_limit, OB_CLUSTER_PARAMETER, "200", "[0,]", + "DIAG syslog limitation for each error per second, exceeding syslog would be truncated", + ObParameterAttr(Section::OBSERVER, Source::DEFAULT, EditLevel::DYNAMIC_EFFECTIVE)); DEF_INT(max_syslog_file_count, OB_CLUSTER_PARAMETER, "0", "[0,]", "specifies the maximum number of the log files " "that can co-exist before the log file recycling kicks in. " diff --git a/src/share/partition_table/ob_partition_location.cpp b/src/share/partition_table/ob_partition_location.cpp index f0bce192b..9c4d3680c 100644 --- a/src/share/partition_table/ob_partition_location.cpp +++ b/src/share/partition_table/ob_partition_location.cpp @@ -157,7 +157,7 @@ bool ObPartitionLocation::operator==(const ObPartitionLocation &other) const bool equal = true; if (!is_valid() || !other.is_valid()) { equal = false; - LOG_WARN("invalid argument", "self", *this, K(other)); + LOG_WARN_RET(common::OB_INVALID_ARGUMENT, "invalid argument", "self", *this, K(other)); } else if (replica_locations_.count() != other.replica_locations_.count()) { equal = false; } else { @@ -476,7 +476,7 @@ bool ObPartitionReplicaLocation::operator==(const ObPartitionReplicaLocation &ot bool equal = true; if (!is_valid() || !other.is_valid()) { equal = false; - LOG_WARN("invalid argument", "self", *this, K(other)); + LOG_WARN_RET(common::OB_INVALID_ARGUMENT, "invalid argument", "self", *this, K(other)); } else if (replica_location_ != other.replica_location_) { equal = false; } else { diff --git a/src/share/ratelimit/ob_rl_mgr.cpp b/src/share/ratelimit/ob_rl_mgr.cpp index a945ba737..86f377f9e 100644 --- a/src/share/ratelimit/ob_rl_mgr.cpp +++ b/src/share/ratelimit/ob_rl_mgr.cpp @@ -651,7 +651,7 @@ void ObRatelimitMgr::calculate_s2r_max_bw_all() { ObRegionBwStat *region_bw_stat = nullptr; if (IS_NOT_INIT) { - OB_LOG(ERROR, "ObRatelimitMgr not inited."); + OB_LOG_RET(ERROR, OB_NOT_INIT, "ObRatelimitMgr not inited."); } else { for (int i = 0; i < peer_region_bw_list_.count(); i++) { region_bw_stat = &(peer_region_bw_list_[i]); diff --git a/src/share/ratelimit/ob_rl_rpc.cpp b/src/share/ratelimit/ob_rl_rpc.cpp index ce65b8942..3811d7a5a 100644 --- a/src/share/ratelimit/ob_rl_rpc.cpp +++ b/src/share/ratelimit/ob_rl_rpc.cpp @@ -54,11 +54,11 @@ oceanbase::rpc::frame::ObReqTransport::AsyncCB* ObRLGetRegionBWCallback::clone( void *buf = NULL; ObRLGetRegionBWCallback *newcb = NULL; if (IS_NOT_INIT) { - OB_LOG(ERROR, "ObRLGetRegionBWCallback not inited."); + OB_LOG_RET(ERROR, OB_NOT_INIT, "ObRLGetRegionBWCallback not inited."); } else { buf = alloc(sizeof (*this)); if (OB_ISNULL(buf)) { - OB_LOG(ERROR, "Failed to alloc memory for ObRLGetRegionBWCallback clone", KP(buf)); + OB_LOG_RET(ERROR, OB_ALLOCATE_MEMORY_FAILED, "Failed to alloc memory for ObRLGetRegionBWCallback clone", KP(buf)); } else { newcb = new (buf) ObRLGetRegionBWCallback(); newcb->dst_server_idx_ = dst_server_idx_; diff --git a/src/share/ratelimit/ob_rl_struct.cpp b/src/share/ratelimit/ob_rl_struct.cpp index 20f469c07..937debcde 100644 --- a/src/share/ratelimit/ob_rl_struct.cpp +++ b/src/share/ratelimit/ob_rl_struct.cpp @@ -25,7 +25,7 @@ DEF_TO_STRING(ObServer2RegionMap) ObServer2RegionMap::ObServer2RegionMap(common::ObAddr &addr, char *region) { if (OB_ISNULL(region)) { - OB_LOG(ERROR, "invalid argument", KP(region)); + OB_LOG_RET(ERROR, OB_INVALID_ARGUMENT, "invalid argument", KP(region)); } else { addr_ = addr; region_.assign(region); @@ -65,7 +65,7 @@ DEF_TO_STRING(ObRegionBwStat) ObRegionBwStat::ObRegionBwStat(char *region, int64_t max_bw) { if (OB_ISNULL(region)) { - OB_LOG(ERROR, "invalid argument", KP(region)); + OB_LOG_RET(ERROR, OB_INVALID_ARGUMENT, "invalid argument", KP(region)); } else { max_bw_ = max_bw; region_.assign(region); @@ -124,4 +124,4 @@ void SingleWaitCond::signal() } } -} \ No newline at end of file +} diff --git a/src/share/rc/ob_context.h b/src/share/rc/ob_context.h index 9858754bc..e615fb056 100644 --- a/src/share/rc/ob_context.h +++ b/src/share/rc/ob_context.h @@ -322,7 +322,7 @@ public: ~_SBase() { if (OB_UNLIKELY(0 == i_)) { - OB_LOG(WARN, "has break statement!!!"); + OB_LOG_RET(WARN, common::OB_ERR_UNEXPECTED, "has break statement!!!"); } } int i_; diff --git a/src/share/rc/ob_tenant_base.cpp b/src/share/rc/ob_tenant_base.cpp index 138f6feab..2c9802818 100644 --- a/src/share/rc/ob_tenant_base.cpp +++ b/src/share/rc/ob_tenant_base.cpp @@ -223,7 +223,7 @@ void ObTenantBase::destroy() { destroy_mtl_module(); if (tg_set_.size() > 0) { - LOG_ERROR("tg thread not execute tg_destory make tg_id leak", K(tg_set_.size()), K(tg_set_)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "tg thread not execute tg_destory make tg_id leak", K(tg_set_.size()), K(tg_set_)); } tg_set_.destroy(); thread_dynamic_factor_map_.destroy(); @@ -401,7 +401,7 @@ int ObTenantBase::update_thread_cnt(double tenant_unit_cpu) void ObTenantEnv::set_tenant(ObTenantBase *ctx) { if (ctx != nullptr && ctx->id_ == OB_INVALID_TENANT_ID) { - LOG_ERROR("ObTenantEnv::set_tenant", KP(ctx)); + LOG_ERROR_RET(OB_ERROR, "ObTenantEnv::set_tenant", KP(ctx)); ob_abort(); } get_tenant() = ctx; diff --git a/src/share/redolog/ob_log_file_handler.cpp b/src/share/redolog/ob_log_file_handler.cpp index bdd9fa7f8..e36e28bd4 100644 --- a/src/share/redolog/ob_log_file_handler.cpp +++ b/src/share/redolog/ob_log_file_handler.cpp @@ -435,7 +435,7 @@ int ObLogFileHandler::open(const char *file_path, const int flags, const mode_t if (OB_SUCC(ret)) { const int64_t total_retry_time = ObTimeUtility::fast_current_time() - start_time; if (total_retry_time > MAX_RETRY_TIME) { - LOG_WARN("open file costs too much time", K(ret), K(total_retry_time), K(file_path), K(io_fd)); + LOG_WARN_RET(OB_ERR_TOO_MUCH_TIME, "open file costs too much time", K(ret), K(total_retry_time), K(file_path), K(io_fd)); } } } diff --git a/src/share/resource_manager/ob_resource_manager_proxy.cpp b/src/share/resource_manager/ob_resource_manager_proxy.cpp index 74835c521..429c63740 100644 --- a/src/share/resource_manager/ob_resource_manager_proxy.cpp +++ b/src/share/resource_manager/ob_resource_manager_proxy.cpp @@ -60,7 +60,7 @@ ObResourceManagerProxy::TransGuard::~TransGuard() bool is_commit = (OB_SUCCESS == ret_); int trans_ret = trans_.end(is_commit); if (OB_SUCCESS != trans_ret) { - LOG_WARN("fail commit/rollback trans", K_(ret), K(is_commit), K(trans_ret)); + LOG_WARN_RET(trans_ret, "fail commit/rollback trans", K_(ret), K(is_commit), K(trans_ret)); } if (OB_SUCCESS == ret_) { ret_ = trans_ret; diff --git a/src/share/restore/ob_ls_restore_status.cpp b/src/share/restore/ob_ls_restore_status.cpp index bee34a4c4..7a7af8816 100644 --- a/src/share/restore/ob_ls_restore_status.cpp +++ b/src/share/restore/ob_ls_restore_status.cpp @@ -49,7 +49,7 @@ const char *ObLSRestoreStatus::get_restore_status_str(const ObLSRestoreStatus &s }; STATIC_ASSERT(LS_RESTORE_STATUS_MAX == ARRAYSIZEOF(restore_status_str), "status count mismatch"); if (status.status_ < 0 || status.status_ >= LS_RESTORE_STATUS_MAX) { - LOG_ERROR("invalid status", K(status)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "invalid status", K(status)); } else { str = restore_status_str[status.status_]; } diff --git a/src/share/rpc/ob_async_rpc_proxy.h b/src/share/rpc/ob_async_rpc_proxy.h index b2ddc8ffe..0c967d677 100644 --- a/src/share/rpc/ob_async_rpc_proxy.h +++ b/src/share/rpc/ob_async_rpc_proxy.h @@ -93,7 +93,7 @@ void ObAsyncCB::on_invalid() int tmp_ret = common::OB_SUCCESS; AsyncCB::rcode_.rcode_ = common::OB_RPC_PACKET_INVALID; if (common::OB_SUCCESS != (tmp_ret = proxy_.receive_response())) { - RPC_LOG(WARN, "proxy_ receive_response failed", K(tmp_ret)); + RPC_LOG_RET(WARN, tmp_ret, "proxy_ receive_response failed", K(tmp_ret)); } } diff --git a/src/share/rpc/ob_batch_proxy.cpp b/src/share/rpc/ob_batch_proxy.cpp index 0e7ee12c4..7971a953d 100644 --- a/src/share/rpc/ob_batch_proxy.cpp +++ b/src/share/rpc/ob_batch_proxy.cpp @@ -89,7 +89,7 @@ public: { const ObAddr &dst = ObBatchRpcProxy::AsyncCB::dst_; const int error = this->get_error(); - RPC_LOG(WARN, "batch rpc timeout", K(dst), K(error)); + RPC_LOG_RET(WARN, OB_TIMEOUT, "batch rpc timeout", K(dst), K(error)); } private: DISALLOW_COPY_AND_ASSIGN(BatchCallBack); diff --git a/src/share/rpc/ob_batch_rpc.h b/src/share/rpc/ob_batch_rpc.h index e0317a432..c0fecaa07 100644 --- a/src/share/rpc/ob_batch_rpc.h +++ b/src/share/rpc/ob_batch_rpc.h @@ -296,7 +296,7 @@ public: } void set_dst_cluster_id(const int64_t cluster_id) { if (cluster_id == common::OB_INVALID_CLUSTER_ID) { - RPC_LOG(ERROR, "cluster_id is invalid, unexpected", "server", server_, K(cluster_id)); + RPC_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "cluster_id is invalid, unexpected", "server", server_, K(cluster_id)); } else if (cluster_id != dst_cluster_id_) { const int64_t old_cluster_id = dst_cluster_id_; dst_cluster_id_ = cluster_id; diff --git a/src/share/scheduler/ob_dag_scheduler.cpp b/src/share/scheduler/ob_dag_scheduler.cpp index 7cd70c50e..f5a2b1d04 100644 --- a/src/share/scheduler/ob_dag_scheduler.cpp +++ b/src/share/scheduler/ob_dag_scheduler.cpp @@ -631,7 +631,7 @@ int ObIDag::finish_task(ObITask &task) void ObIDag::free_task(ObITask &task) { if (IS_NOT_INIT) { - COMMON_LOG(WARN, "dag is not inited"); + COMMON_LOG_RET(WARN, OB_NOT_INIT, "dag is not inited"); } else { task.~ObITask(); allocator_.free(&task); @@ -909,10 +909,10 @@ void ObIDagNet::reset() iter != dag_record_map_.end(); ++iter) { ObDagRecord *dag_record = iter->second; if (OB_ISNULL(dag_record)) { - LOG_ERROR("dag record should not be NULL", KPC(this), KPC(dag_record)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "dag record should not be NULL", KPC(this), KPC(dag_record)); } else if (ObIDag::DAG_STATUS_FINISH != dag_record->dag_status_ && ObIDag::DAG_STATUS_ABORT != dag_record->dag_status_) { - LOG_ERROR("dag net should not be reset, dag in dag_net is not finish!!!", KPC(this), KPC(dag_record)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "dag net should not be reset, dag in dag_net is not finish!!!", KPC(this), KPC(dag_record)); } } dag_record_map_.destroy(); @@ -1064,10 +1064,10 @@ void ObIDagNet::gene_dag_info(ObDagInfo &info, const char *list_info) info.start_time_ = start_time_; int64_t tmp_ret = OB_SUCCESS; if (OB_TMP_FAIL(fill_dag_net_key(info.dag_net_key_, OB_DAG_KEY_LENGTH))) { - COMMON_LOG(WARN, "failed to fill dag key", K(tmp_ret)); + COMMON_LOG_RET(WARN, tmp_ret, "failed to fill dag key", K(tmp_ret)); } if (OB_TMP_FAIL(fill_comment(info.comment_, OB_DAG_COMMET_LENGTH))) { - COMMON_LOG(WARN, "failed to fill comment", K(tmp_ret)); + COMMON_LOG_RET(WARN, tmp_ret, "failed to fill comment", K(tmp_ret)); } ADD_TASK_INFO_PARAM(info.comment_, OB_DAG_COMMET_LENGTH, "list_info", list_info); @@ -1098,11 +1098,11 @@ void ObIDag::gene_dag_info(ObDagInfo &info, const char *list_info) info.start_time_ = start_time_; int64_t tmp_ret = OB_SUCCESS; if (OB_TMP_FAIL(fill_dag_key(info.dag_key_, OB_DAG_KEY_LENGTH))) { - COMMON_LOG(WARN, "failed to fill dag key", K(tmp_ret)); + COMMON_LOG_RET(WARN, tmp_ret, "failed to fill dag key", K(tmp_ret)); } if (OB_TMP_FAIL(fill_comment(info.comment_, OB_DAG_COMMET_LENGTH))) { - COMMON_LOG(WARN, "failed to fill dag comment", K(tmp_ret)); + COMMON_LOG_RET(WARN, tmp_ret, "failed to fill dag comment", K(tmp_ret)); } info.comment_[strlen(info.comment_)] = ';'; @@ -1128,13 +1128,13 @@ void ObIDag::gene_dag_info(ObDagInfo &info, const char *list_info) } // end while } else { if (OB_TMP_FAIL(fill_comment(info.comment_, OB_DAG_COMMET_LENGTH))) { - COMMON_LOG(WARN, "failed to fill dag comment", K(tmp_ret)); + COMMON_LOG_RET(WARN, tmp_ret, "failed to fill dag comment", K(tmp_ret)); } } if (OB_NOT_NULL(dag_net_)) { info.dag_net_type_ = dag_net_->get_type(); if (OB_TMP_FAIL(dag_net_->fill_dag_net_key(info.dag_net_key_, OB_DAG_KEY_LENGTH))) { - COMMON_LOG(WARN, "failed to fill dag key", K(tmp_ret)); + COMMON_LOG_RET(WARN, tmp_ret, "failed to fill dag key", K(tmp_ret)); } } } @@ -1629,7 +1629,7 @@ void ObTenantDagScheduler::destroy() while (NULL != cur_dag && head != cur_dag) { if (OB_TMP_FAIL(ObSysTaskStatMgr::get_instance().del_task(cur_dag->get_dag_id()))) { if (OB_ENTRY_NOT_EXIST != tmp_ret) { - STORAGE_LOG(WARN, "failed to del sys task", K(tmp_ret), K(cur_dag->get_dag_id())); + STORAGE_LOG_RET(WARN, tmp_ret, "failed to del sys task", K(tmp_ret), K(cur_dag->get_dag_id())); } } next = cur_dag->get_next(); @@ -1703,7 +1703,7 @@ void ObTenantDagScheduler::free_dag(ObIDag &dag, ObIDag *parent_dag) void ObTenantDagScheduler::inner_free_dag(ObIDag &dag) { if (OB_UNLIKELY(nullptr != dag.prev_ || nullptr != dag.next_)) { - LOG_ERROR("dag is in dag_list", K(dag), K(dag.prev_), K(dag.next_)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "dag is in dag_list", K(dag), K(dag.prev_), K(dag.next_)); } dag.~ObIDag(); allocator_.free(&dag); @@ -2610,7 +2610,7 @@ int64_t ObTenantDagScheduler::get_dag_count(const ObDagType::ObDagTypeEnum type) ObThreadCondGuard guard(scheduler_sync_); count = dag_cnts_[type]; } else { - COMMON_LOG(ERROR, "invalid type", K(type)); + COMMON_LOG_RET(ERROR, OB_INVALID_ARGUMENT, "invalid type", K(type)); } return count; } @@ -2622,7 +2622,7 @@ int64_t ObTenantDagScheduler::get_dag_net_count(const ObDagNetType::ObDagNetType ObMutexGuard guard(dag_net_map_lock_); count = dag_net_cnts_[type]; } else { - COMMON_LOG(ERROR, "invalid type", K(type)); + COMMON_LOG_RET(ERROR, OB_INVALID_ARGUMENT, "invalid type", K(type)); } return count; @@ -2916,12 +2916,12 @@ void ObTenantDagScheduler::loop_dag_net() { int64_t tmp_ret = OB_SUCCESS; if (OB_TMP_FAIL(loop_blocking_dag_net_list())) { - COMMON_LOG(WARN, "failed to loop blocking dag net list", K(tmp_ret)); + COMMON_LOG_RET(WARN, tmp_ret, "failed to loop blocking dag net list", K(tmp_ret)); } if (REACH_TENANT_TIME_INTERVAL(LOOP_RUNNING_DAG_NET_MAP_INTERVAL)) { if (OB_TMP_FAIL(loop_running_dag_net_map())) { - COMMON_LOG(WARN, "failed to add dag from running_dag_net_map", K(tmp_ret)); + COMMON_LOG_RET(WARN, tmp_ret, "failed to add dag from running_dag_net_map", K(tmp_ret)); } } } @@ -3103,7 +3103,7 @@ int32_t ObTenantDagScheduler::get_running_task_cnt(const ObDagPrio::ObDagPrioEnu ObThreadCondGuard guard(scheduler_sync_); count = running_task_cnts_[priority]; } else { - COMMON_LOG(ERROR, "invalid priority", K(priority)); + COMMON_LOG_RET(ERROR, OB_INVALID_ARGUMENT, "invalid priority", K(priority)); } return count; } diff --git a/src/share/scheduler/ob_dag_scheduler.h b/src/share/scheduler/ob_dag_scheduler.h index d7da400c9..536a1ffa1 100644 --- a/src/share/scheduler/ob_dag_scheduler.h +++ b/src/share/scheduler/ob_dag_scheduler.h @@ -561,7 +561,7 @@ public: if (prio >= 0 && prio < PRIO_CNT) { bret = dlists_[prio].add_first(item); } else { - COMMON_LOG(ERROR, "invalid priority", K(prio), K(PRIO_CNT)); + COMMON_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "invalid priority", K(prio), K(PRIO_CNT)); } return bret; } @@ -572,7 +572,7 @@ public: if (prio >= 0 && prio < PRIO_CNT) { bret = dlists_[prio].add_last(item); } else { - COMMON_LOG(ERROR, "invalid priority", K(prio), K(PRIO_CNT)); + COMMON_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "invalid priority", K(prio), K(PRIO_CNT)); } return bret; } @@ -585,7 +585,7 @@ public: bret = true; } } else { - COMMON_LOG(ERROR, "invalid priority", K(prio), K(PRIO_CNT)); + COMMON_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "invalid priority", K(prio), K(PRIO_CNT)); } return bret; } @@ -596,7 +596,7 @@ public: if (prio >= 0 && prio < PRIO_CNT) { result = dlists_[prio].get_header(); } else { - COMMON_LOG(ERROR, "invalid priority", K(prio), K(PRIO_CNT)); + COMMON_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "invalid priority", K(prio), K(PRIO_CNT)); } return result; } @@ -607,7 +607,7 @@ public: if (prio >= 0 && prio < PRIO_CNT) { result = dlists_[prio].get_first(); } else { - COMMON_LOG(ERROR, "invalid priority", K(prio), K(PRIO_CNT)); + COMMON_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "invalid priority", K(prio), K(PRIO_CNT)); } return result; } @@ -618,7 +618,7 @@ public: if (prio >= 0 && prio < PRIO_CNT) { result = dlists_[prio].remove_first(); } else { - COMMON_LOG(ERROR, "invalid priority", K(prio), K(PRIO_CNT)); + COMMON_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "invalid priority", K(prio), K(PRIO_CNT)); } return result; } @@ -629,7 +629,7 @@ public: if (prio >= 0 && prio < PRIO_CNT) { result = dlists_[prio].remove_last(); } else { - COMMON_LOG(ERROR, "invalid priority", K(prio), K(PRIO_CNT)); + COMMON_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "invalid priority", K(prio), K(PRIO_CNT)); } return result; } @@ -640,7 +640,7 @@ public: if (prio >= 0 && prio < PRIO_CNT) { bret = dlists_[prio].is_empty(); } else { - COMMON_LOG(ERROR, "invalid priority", K(prio), K(PRIO_CNT)); + COMMON_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "invalid priority", K(prio), K(PRIO_CNT)); } return bret; } diff --git a/src/share/scheduler/ob_dag_warning_history_mgr.h b/src/share/scheduler/ob_dag_warning_history_mgr.h index 134558040..114afa8f3 100644 --- a/src/share/scheduler/ob_dag_warning_history_mgr.h +++ b/src/share/scheduler/ob_dag_warning_history_mgr.h @@ -245,7 +245,7 @@ T* ObNodeArray::at(const int64_t idx) { T *ret_ptr = NULL; if (OB_UNLIKELY(!is_inited_)) { - COMMON_LOG(WARN, "ObNodeArray has not been inited"); + COMMON_LOG_RET(WARN, OB_NOT_INIT, "ObNodeArray has not been inited"); } else if (idx >= 0 && idx < max_cnt_) { ret_ptr = &array_[idx]; } diff --git a/src/share/schema/ob_column_schema.cpp b/src/share/schema/ob_column_schema.cpp index f085b95c0..0e9d3dac0 100644 --- a/src/share/schema/ob_column_schema.cpp +++ b/src/share/schema/ob_column_schema.cpp @@ -53,7 +53,7 @@ const char *ObColumnSchemaV2::convert_column_type_to_str(ColumnType type) } else if (ObRawType == type) { type_str = STR_COLUMN_TYPE_RAW; } else { - LOG_ERROR("Not supported column type, ", K(type)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "Not supported column type, ", K(type)); } return type_str; } @@ -86,7 +86,7 @@ ColumnType ObColumnSchemaV2::convert_str_to_column_type(const char *str) } else if (STRCMP(str, STR_COLUMN_TYPE_UNKNOWN) == 0) { type = ObUnknownType; } else { - LOG_ERROR("Not supported column type, ", K(str)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "Not supported column type, ", K(str)); } return type; } @@ -461,7 +461,7 @@ void ObColumnSchemaV2::print_info() const void ObColumnSchemaV2::print(FILE *fd) const { if (OB_ISNULL(fd)) { - LOG_WARN("fd is NULL"); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "fd is NULL"); } else { fprintf(fd, " column: %8ld %16ld %24.*s %16s %8d %8d %8d\n", column_id_, schema_version_, diff --git a/src/share/schema/ob_context_mgr.cpp b/src/share/schema/ob_context_mgr.cpp index 956b02f27..9143c301e 100644 --- a/src/share/schema/ob_context_mgr.cpp +++ b/src/share/schema/ob_context_mgr.cpp @@ -120,7 +120,7 @@ int ObContextMgr::init() void ObContextMgr::reset() { if (!is_inited_) { - LOG_WARN("context manger not init"); + LOG_WARN_RET(OB_NOT_INIT, "context manger not init"); } else { context_infos_.clear(); context_map_.clear(); @@ -238,16 +238,24 @@ int ObContextMgr::rebuild_context_hashmap(const ContextInfos &context_infos, ret = OB_ERR_UNEXPECTED; LOG_WARN("context schema is NULL", K(context_schema), K(ret)); } else { - bool overwrite = true; + bool overwrite = false; ObContextHashWrapper hash_wrapper(context_schema->get_tenant_id(), context_schema->get_namespace()); - if (OB_FAIL(context_map.set_refactored(hash_wrapper, context_schema, overwrite))) { - LOG_WARN("build context hash map failed", K(ret)); + int hash_ret = context_map.set_refactored(hash_wrapper, context_schema, overwrite); + if (OB_SUCCESS != hash_ret) { + ret = OB_HASH_EXIST == hash_ret ? OB_SUCCESS : hash_ret; + LOG_ERROR("build context hash map failed", KR(ret), KR(hash_ret), + "exist_tenant_id", context_schema->get_tenant_id(), + "exist_context_name", context_schema->get_namespace()); } } } if (OB_SUCC(ret) && OB_UNLIKELY(context_infos.count() != context_map.count())) { - LOG_ERROR("Unexpected context map count", K(context_infos.count()), K(context_map.count())); + ret = OB_DUPLICATE_OBJECT_NAME_EXIST; + LOG_ERROR("Unexpected context map count", KR(ret), K(context_infos.count()), K(context_map.count())); + LOG_DBA_ERROR(OB_DUPLICATE_OBJECT_NAME_EXIST, + "msg", "duplicate context name exist after rebuild", + K(context_infos.count()), K(context_map.count())); right_to_die_or_duty_to_live(); } return ret; diff --git a/src/share/schema/ob_ddl_epoch.cpp b/src/share/schema/ob_ddl_epoch.cpp index 82db696e2..268eed873 100644 --- a/src/share/schema/ob_ddl_epoch.cpp +++ b/src/share/schema/ob_ddl_epoch.cpp @@ -209,7 +209,7 @@ int ObDDLEpochMgr::promote_ddl_epoch_inner_(const uint64_t tenant_id, int64_t &n int tmp_ret = OB_SUCCESS; if (OB_SUCCESS != (tmp_ret = trans.end(OB_SUCC(ret)))) { ret = ((OB_SUCC(ret)) ? tmp_ret : ret); - LOG_WARN("fail to end trans", "is_commit", OB_SUCC(ret), KR(tmp_ret)); + LOG_WARN("fail to end trans", "is_commit", OB_SUCCESS == ret, KR(tmp_ret)); } } if (OB_SUCC(ret)) { diff --git a/src/share/schema/ob_directory_mgr.cpp b/src/share/schema/ob_directory_mgr.cpp index e676116e8..ef7cfcd57 100644 --- a/src/share/schema/ob_directory_mgr.cpp +++ b/src/share/schema/ob_directory_mgr.cpp @@ -81,7 +81,7 @@ int ObDirectoryMgr::init() void ObDirectoryMgr::reset() { if (IS_NOT_INIT) { - LOG_WARN("directory manger not init"); + LOG_WARN_RET(OB_NOT_INIT, "directory manger not init"); } else { directory_infos_.clear(); directory_name_map_.clear(); @@ -439,4 +439,4 @@ int ObDirectoryMgr::rebuild_directory_hashmap() } } // namespace schema } // namespace share -} // namespace oceanbase \ No newline at end of file +} // namespace oceanbase diff --git a/src/share/schema/ob_keystore_mgr.cpp b/src/share/schema/ob_keystore_mgr.cpp index efb83fc0f..297eb455c 100644 --- a/src/share/schema/ob_keystore_mgr.cpp +++ b/src/share/schema/ob_keystore_mgr.cpp @@ -61,7 +61,7 @@ int ObKeystoreMgr::init() void ObKeystoreMgr::reset() { if (!is_inited_) { - LOG_WARN("keystore manger not init"); + LOG_WARN_RET(OB_NOT_INIT, "keystore manger not init"); } else { keystore_infos_.clear(); keystore_map_.clear(); diff --git a/src/share/schema/ob_label_se_policy_mgr.cpp b/src/share/schema/ob_label_se_policy_mgr.cpp index 3e58f7af2..5c73d37dc 100644 --- a/src/share/schema/ob_label_se_policy_mgr.cpp +++ b/src/share/schema/ob_label_se_policy_mgr.cpp @@ -75,7 +75,7 @@ int ObLabelSePolicyMgr::init() void ObLabelSePolicyMgr::reset() { if (!is_inited_) { - LOG_WARN("label security policy manger not init"); + LOG_WARN_RET(OB_NOT_INIT, "label security policy manger not init"); } else { schema_infos_.clear(); policy_name_map_.clear(); @@ -516,7 +516,7 @@ int ObLabelSeCompMgr::init() void ObLabelSeCompMgr::reset() { if (!is_inited_) { - LOG_ERROR("schema mgr not inited"); + LOG_ERROR_RET(OB_NOT_INIT, "schema mgr not inited"); } else { schema_infos_.clear(); long_name_map_.clear(); @@ -1095,7 +1095,7 @@ int ObLabelSeLabelMgr::init() void ObLabelSeLabelMgr::reset() { if (!is_inited_) { - LOG_WARN("label security policy manger not init"); + LOG_WARN_RET(OB_NOT_INIT, "label security policy manger not init"); } else { schema_infos_.clear(); label_map_.clear(); @@ -1601,7 +1601,7 @@ int ObLabelSeUserLevelMgr::init() void ObLabelSeUserLevelMgr::reset() { if (!is_inited_) { - LOG_WARN("label security policy manger not init"); + LOG_WARN_RET(OB_NOT_INIT, "label security policy manger not init"); } else { schema_infos_.clear(); user_level_map_.clear(); diff --git a/src/share/schema/ob_mock_fk_parent_table_mgr.cpp b/src/share/schema/ob_mock_fk_parent_table_mgr.cpp index 42fb56b99..f49178b00 100644 --- a/src/share/schema/ob_mock_fk_parent_table_mgr.cpp +++ b/src/share/schema/ob_mock_fk_parent_table_mgr.cpp @@ -124,7 +124,7 @@ int ObMockFKParentTableMgr::init() void ObMockFKParentTableMgr::reset() { if (!is_inited_) { - LOG_WARN("mock_fk_parent_table manger not init"); + LOG_WARN_RET(OB_NOT_INIT, "mock_fk_parent_table manger not init"); } else { mock_fk_parent_table_infos_.clear(); mock_fk_parent_table_map_.clear(); @@ -221,18 +221,27 @@ int ObMockFKParentTableMgr::rebuild_mock_fk_parent_table_hashmap( ret = OB_ERR_UNEXPECTED; LOG_WARN("mock_fk_parent_table schema is NULL", K(ret), K(schema)); } else { - bool overwrite = true; + bool overwrite = false; ObMockFKParentTableHashWrapper hash_wrapper(schema->get_tenant_id(), schema->get_database_id(), schema->get_mock_fk_parent_table_name()); - if (OB_FAIL(map.set_refactored(hash_wrapper, schema, overwrite))) { - LOG_WARN("build mock_fk_parent_table_hashmap failed", K(ret)); + int hash_ret = map.set_refactored(hash_wrapper, schema, overwrite); + if (OB_SUCCESS != hash_ret) { + ret = OB_HASH_EXIST == hash_ret ? OB_SUCCESS : hash_ret; + LOG_ERROR("build mock_fk_parent_table_hashmap failed", KR(ret), KR(hash_ret), + "exist_tenant_id", schema->get_tenant_id(), + "exist_database_id", schema->get_database_id(), + "exist_mock_fk_parent_table_name", schema->get_mock_fk_parent_table_name()); } } } if (OB_SUCC(ret) && OB_UNLIKELY(infos.count() != map.count())) { + ret = OB_DUPLICATE_OBJECT_NAME_EXIST; LOG_ERROR("unexpected mock_fk_parent_table_hashmap map count", - K(infos.count()), K(map.count())); + KR(ret), K(infos.count()), K(map.count())); + LOG_DBA_ERROR(OB_DUPLICATE_OBJECT_NAME_EXIST, + "msg", "duplicate mock fk parent table name exist after rebuild", + K(infos.count()), K(map.count())); right_to_die_or_duty_to_live(); } return ret; diff --git a/src/share/schema/ob_multi_version_schema_service.cpp b/src/share/schema/ob_multi_version_schema_service.cpp index 74de42157..00d7d0ea5 100644 --- a/src/share/schema/ob_multi_version_schema_service.cpp +++ b/src/share/schema/ob_multi_version_schema_service.cpp @@ -149,7 +149,7 @@ void ObSchemaConstructTask::wait(const int64_t version) clock_gettime(CLOCK_REALTIME, &ts); ts.tv_sec += 1; if (dbg_construct_task) { - LOG_WARN("task: waiting", K(version), K(count())); + LOG_WARN_RET(OB_SUCCESS, "task: waiting", K(version), K(count())); } int rc = 0; do { @@ -161,7 +161,7 @@ void ObSchemaConstructTask::wait(const int64_t version) void ObSchemaConstructTask::wakeup(const int64_t version) { if (dbg_construct_task) { - LOG_WARN("task: wakingup", K(version), K(count())); + LOG_WARN_RET(OB_SUCCESS, "task: wakingup", K(version), K(count())); } (void)pthread_cond_broadcast(&schema_cond_); } diff --git a/src/share/schema/ob_profile_mgr.cpp b/src/share/schema/ob_profile_mgr.cpp index 8fe6545cf..80956f783 100644 --- a/src/share/schema/ob_profile_mgr.cpp +++ b/src/share/schema/ob_profile_mgr.cpp @@ -67,7 +67,7 @@ int ObProfileMgr::init() void ObProfileMgr::reset() { if (!is_inited_) { - LOG_WARN("profile manger not init"); + LOG_WARN_RET(OB_NOT_INIT, "profile manger not init"); } else { schema_infos_.clear(); name_map_.clear(); diff --git a/src/share/schema/ob_rls_mgr.cpp b/src/share/schema/ob_rls_mgr.cpp index 84d9d4eff..2c7d09c3d 100644 --- a/src/share/schema/ob_rls_mgr.cpp +++ b/src/share/schema/ob_rls_mgr.cpp @@ -83,7 +83,7 @@ int ObRlsPolicyMgr::init() void ObRlsPolicyMgr::reset() { if (IS_NOT_INIT) { - LOG_WARN("rls_policy manger not init"); + LOG_WARN_RET(OB_NOT_INIT, "rls_policy manger not init"); } else { rls_policy_infos_.clear(); rls_policy_name_map_.clear(); @@ -559,7 +559,7 @@ int ObRlsGroupMgr::init() void ObRlsGroupMgr::reset() { if (IS_NOT_INIT) { - LOG_WARN("rls_group manger not init"); + LOG_WARN_RET(OB_NOT_INIT, "rls_group manger not init"); } else { rls_group_infos_.clear(); rls_group_name_map_.clear(); @@ -1004,7 +1004,7 @@ int ObRlsContextMgr::init() void ObRlsContextMgr::reset() { if (IS_NOT_INIT) { - LOG_WARN("rls_context manger not init"); + LOG_WARN_RET(OB_NOT_INIT, "rls_context manger not init"); } else { rls_context_infos_.clear(); rls_context_name_map_.clear(); @@ -1399,4 +1399,4 @@ int ObRlsContextMgr::rebuild_rls_context_hashmap() } // namespace schema } // namespace share -} // namespace oceanbase \ No newline at end of file +} // namespace oceanbase diff --git a/src/share/schema/ob_routine_info.cpp b/src/share/schema/ob_routine_info.cpp index ec7eceaa0..fe36167b4 100644 --- a/src/share/schema/ob_routine_info.cpp +++ b/src/share/schema/ob_routine_info.cpp @@ -132,20 +132,20 @@ bool ObRoutineParam::is_same(const ObRoutineParam &other) const // bret = false; // } if (bret && 0 != get_name().case_compare(other.get_name())) { - LOG_WARN("param name is not same", K(get_name()), K(other.get_name())); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "param name is not same", K(get_name()), K(other.get_name())); bret = false; } if (bret && get_flag() != other.get_flag()) { - LOG_WARN("param flag is not same", K(get_flag()), K(other.get_flag())); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "param flag is not same", K(get_flag()), K(other.get_flag())); bret = false; } if (bret && get_param_type().get_obj_type() != other.get_param_type().get_obj_type()) { - LOG_WARN("param type is not same", K(get_param_type().get_obj_type()), + LOG_WARN_RET(OB_ERR_UNEXPECTED, "param type is not same", K(get_param_type().get_obj_type()), K(other.get_param_type().get_obj_type())); bret = false; } if (bret && is_complex_type() && get_type_owner() != other.get_type_owner()) { - LOG_WARN("param type is complex and not same", K(is_complex_type()), + LOG_WARN_RET(OB_ERR_UNEXPECTED, "param type is complex and not same", K(is_complex_type()), K(get_type_owner()), K(other.get_type_owner())); bret = false; diff --git a/src/share/schema/ob_schema_getter_guard.cpp b/src/share/schema/ob_schema_getter_guard.cpp index 7b4a4bea4..48cae8f5b 100644 --- a/src/share/schema/ob_schema_getter_guard.cpp +++ b/src/share/schema/ob_schema_getter_guard.cpp @@ -7224,7 +7224,7 @@ bool ObSchemaGetterGuard::is_tenant_schema_valid(const int64_t tenant_id) const int tmp_ret = OB_SUCCESS; int64_t schema_version = OB_INVALID_VERSION; if (OB_SUCCESS != (tmp_ret = get_schema_version(tenant_id, schema_version))) { - LOG_WARN("fail to get schema version", K(tmp_ret), K(tenant_id)); + LOG_WARN_RET(tmp_ret, "fail to get schema version", K(tmp_ret), K(tenant_id)); bret = false; } else if (schema_version <= OB_CORE_SCHEMA_VERSION) { bret = false; @@ -8700,7 +8700,7 @@ bool ObSchemaGetterGuard::ignore_tenant_not_exist_error( bool is_restore = false; int tmp_ret = check_tenant_is_restore(tenant_id, is_restore); if (OB_SUCCESS != tmp_ret) { - LOG_WARN("fail to check tenant is restore", K(bret), K(tmp_ret), K(tenant_id)); + LOG_WARN_RET(tmp_ret, "fail to check tenant is restore", K(bret), K(tmp_ret), K(tenant_id)); } else if (is_restore) { bret = true; } diff --git a/src/share/schema/ob_schema_mgr.cpp b/src/share/schema/ob_schema_mgr.cpp index 28013debf..3ca9e0161 100644 --- a/src/share/schema/ob_schema_mgr.cpp +++ b/src/share/schema/ob_schema_mgr.cpp @@ -2976,12 +2976,12 @@ bool ObSchemaMgr::check_schema_meta_consistent() // Check the number of foreign keys here, if not, you need to rebuild if (!is_consistent_) { // false == is_consistent, do nothing - LOG_WARN("fk or cst info is not consistent"); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "fk or cst info is not consistent"); } if (database_infos_.count() != database_name_map_.item_count()) { is_consistent_ = false; - LOG_WARN("database info is not consistent", + LOG_WARN_RET(OB_ERR_UNEXPECTED, "database info is not consistent", "database_infos_count", database_infos_.count(), "database_name_map_item_count", database_name_map_.item_count()); } @@ -2995,7 +2995,7 @@ bool ObSchemaMgr::check_schema_meta_consistent() lob_piece_infos_.count() + hidden_table_name_map_.item_count())) { is_consistent_ = false; - LOG_WARN("schema meta is not consistent, need rebuild", + LOG_WARN_RET(OB_ERR_UNEXPECTED, "schema meta is not consistent, need rebuild", "schema_mgr version", get_schema_version(), "table_infos_count", table_infos_.count(), "table_id_map_item_count", table_id_map_.item_count(), @@ -3041,8 +3041,17 @@ int ObSchemaMgr::rebuild_schema_meta_if_not_consistent() } // Check whether db and table are consistent if (!check_schema_meta_consistent()) { - ret = OB_ERROR; - LOG_ERROR("schema meta is still not consistent after rebuild, need fixing", K(ret)); + ret = OB_DUPLICATE_OBJECT_NAME_EXIST; + LOG_ERROR("schema meta is still not consistent after rebuild, need fixing", KR(ret), K_(tenant_id)); + LOG_DBA_ERROR(OB_DUPLICATE_OBJECT_NAME_EXIST, + "msg", "duplicate table/database/foreign key/constraint exist", K_(tenant_id), + "db_cnt", database_infos_.count(), "db_name_cnt", database_name_map_.item_count(), + "table_cnt", table_infos_.count(), "table_id_cnt", table_id_map_.item_count(), + "table_name_cnt", table_name_map_.item_count(), "index_name_cnt", index_name_map_.item_count(), + "aux_vp_name_cnt", aux_vp_name_map_.item_count(), "lob_meta_cnt", lob_meta_infos_.count(), + "log_piece_cnt", lob_piece_infos_.count(), "hidden_table_cnt", hidden_table_name_map_.item_count(), + "fk_cnt", fk_cnt, "fk_name_cnt", foreign_key_name_map_.item_count(), + "cst_cnt", cst_cnt, "cst_name_cnt", constraint_name_map_.item_count()); right_to_die_or_duty_to_live(); } } @@ -3347,7 +3356,7 @@ uint64_t ObSchemaMgr::extract_data_table_id_from_index_name(const ObString &inde ObString data_table_id_str; uint64_t data_table_id = OB_INVALID_ID; if (!index_name.prefix_match(OB_INDEX_PREFIX)) { - LOG_WARN("index table name not in valid format", K(index_name)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "index table name not in valid format", K(index_name)); } else { pos = strlen(OB_INDEX_PREFIX); while (NULL != index_name.ptr() && @@ -3356,9 +3365,9 @@ uint64_t ObSchemaMgr::extract_data_table_id_from_index_name(const ObString &inde ++pos; } if (pos + 1 >= index_name.length()) { - LOG_WARN("index table name not in valid format", K(pos), K(index_name), K(index_name.length())); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "index table name not in valid format", K(pos), K(index_name), K(index_name.length())); } else if ('_' != *(index_name.ptr() + pos)) { - LOG_WARN("index table name not in valid format", K(pos), K(index_name), K(index_name.length())); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "index table name not in valid format", K(pos), K(index_name), K(index_name.length())); } else { data_table_id_str.assign_ptr( index_name.ptr() + strlen(OB_INDEX_PREFIX), diff --git a/src/share/schema/ob_schema_mgr_cache.cpp b/src/share/schema/ob_schema_mgr_cache.cpp index 47df69ca3..c57922107 100644 --- a/src/share/schema/ob_schema_mgr_cache.cpp +++ b/src/share/schema/ob_schema_mgr_cache.cpp @@ -112,7 +112,7 @@ inline void ObSchemaMgrHandle::revert() && ref_timestamp_ > 0 && ObClockGenerator::getClock() - ref_timestamp_ >= REF_TIME_THRESHOLD) { ObSchemaMgr *&schema_mgr = schema_mgr_item_->schema_mgr_; - LOG_WARN("long time to hold one guard", K(schema_mgr), + LOG_WARN_RET(OB_SUCCESS, "long time to hold one guard", K(schema_mgr), "tenant_id", schema_mgr->get_tenant_id(), "version", schema_mgr->get_schema_version(), "cur_timestamp", ObTimeUtility::current_time(), diff --git a/src/share/schema/ob_schema_retrieve_utils.ipp b/src/share/schema/ob_schema_retrieve_utils.ipp index bd06a667e..73b9fb309 100644 --- a/src/share/schema/ob_schema_retrieve_utils.ipp +++ b/src/share/schema/ob_schema_retrieve_utils.ipp @@ -4083,7 +4083,7 @@ bool ObSchemaRetrieveUtils::compare_table_id( { bool cmp = false; if (OB_ISNULL(table_schema)) { - SHARE_SCHEMA_LOG(WARN, "table schema is NULL"); + SHARE_SCHEMA_LOG_RET(WARN, OB_ERR_UNEXPECTED, "table schema is NULL"); } else { //order by table id desc, used in sort function, the tenant_id is desc too cmp = table_schema->get_table_id() > table_id; @@ -5069,7 +5069,7 @@ bool ObSchemaRetrieveUtils::compare_rls_policy_id( { bool cmp = false; if (OB_ISNULL(rls_policy_schema)) { - SHARE_SCHEMA_LOG(WARN, "rls_policy schema is NULL"); + SHARE_SCHEMA_LOG_RET(WARN, OB_ERR_UNEXPECTED, "rls_policy schema is NULL"); } else { cmp = rls_policy_schema->get_rls_policy_id() > rls_policy_id; } diff --git a/src/share/schema/ob_schema_struct.cpp b/src/share/schema/ob_schema_struct.cpp index ef29590a6..2258870c9 100644 --- a/src/share/schema/ob_schema_struct.cpp +++ b/src/share/schema/ob_schema_struct.cpp @@ -1044,7 +1044,7 @@ common::ObIAllocator *ObSchema::get_allocator() if (NULL == allocator_) { if (!THIS_WORKER.has_req_flag()) { if (NULL == (allocator_ = OB_NEW(ObArenaAllocator, ObModIds::OB_SCHEMA_OB_SCHEMA_ARENA, ObModIds::OB_SCHEMA_OB_SCHEMA_ARENA))) { - LOG_WARN("Fail to new allocator."); + LOG_WARN_RET(OB_ALLOCATE_MEMORY_FAILED, "Fail to new allocator."); } else { is_inner_allocator_ = true; } @@ -1062,7 +1062,7 @@ void *ObSchema::alloc(int64_t size) void *ret = NULL; ObIAllocator *allocator = get_allocator(); if (NULL == allocator) { - LOG_WARN("Fail to get allocator."); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "Fail to get allocator."); } else { ret = allocator->alloc(size); } @@ -1462,7 +1462,7 @@ common::ObCollationType ObSchema::get_cs_type_with_cmp_mode(const ObNameCaseMode } else if (OB_ORIGIN_AND_SENSITIVE == mode){ cs_type = common::CS_TYPE_UTF8MB4_BIN; } else { - SHARE_SCHEMA_LOG(ERROR, "invalid ObNameCaseMode value", K(mode)); + SHARE_SCHEMA_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "invalid ObNameCaseMode value", K(mode)); } return cs_type; } @@ -1485,7 +1485,7 @@ const char *ob_tenant_status_str(const ObTenantStatus status) if (status >= 0 && status < TENANT_STATUS_MAX) { str = tenant_display_status_strs[status]; } else { - LOG_WARN("invalid tenant status", K(status)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "invalid tenant status", K(status)); } return str; } @@ -2746,7 +2746,7 @@ int64_t ObLocality::get_convert_size() const void ObLocality::reset() { if (OB_ISNULL(schema_)) { - LOG_ERROR("invalid schema info", K(schema_)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "invalid schema info", K(schema_)); } else { reset_zone_replica_attr_array(); if (!OB_ISNULL(locality_str_.ptr())) { @@ -3545,7 +3545,7 @@ int64_t ObPartitionSchema::get_all_part_num() const break; } default: { - LOG_WARN("invalid partition level", K_(part_level)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "invalid partition level", K_(part_level)); break; } } @@ -5269,7 +5269,7 @@ bool ObBasePartition::list_part_func_layout( * Ensure that the default partition is placed in the last partition */ if (OB_ISNULL(lhs) || OB_ISNULL(rhs)) { - LOG_ERROR("lhs or rhs should not be null", KP(lhs), KP(rhs)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "lhs or rhs should not be null", KP(lhs), KP(rhs)); } else if (lhs->get_list_row_values().count() < rhs->get_list_row_values().count()) { bool_ret = false; } else if (lhs->get_list_row_values().count() > rhs->get_list_row_values().count()) { @@ -5281,7 +5281,7 @@ bool ObBasePartition::list_part_func_layout( const common::ObNewRow &r_row = rhs->get_list_row_values().at(i); int cmp = 0; if (OB_SUCCESS != ObRowUtil::compare_row(l_row, r_row, cmp)) { - LOG_ERROR("l or r is invalid"); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "l or r is invalid"); finish = true; } else if (cmp < 0) { bool_ret = true; @@ -5613,7 +5613,7 @@ bool ObBasePartition::less_than(const ObBasePartition *lhs, const ObBasePartitio { bool bret = false; if (OB_ISNULL(lhs) || OB_ISNULL(rhs)) { - LOG_ERROR("lhs or rhs should not be NULL", KPC(lhs), KPC(rhs)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "lhs or rhs should not be NULL", KPC(lhs), KPC(rhs)); } else { ObNewRow lrow; lrow.cells_ = const_cast(lhs->high_bound_val_.get_obj_ptr()); @@ -5627,7 +5627,7 @@ bool ObBasePartition::less_than(const ObBasePartition *lhs, const ObBasePartitio rrow.projector_size_ = rhs->projector_size_; int cmp = 0; if (OB_SUCCESS != ObRowUtil::compare_row(lrow, rrow, cmp)) { - LOG_ERROR("lhs or rhs is invalid", K(lrow), K(rrow), K(lhs), K(rhs)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "lhs or rhs is invalid", K(lrow), K(rrow), K(lhs), K(rhs)); } else { bret = (cmp < 0); } @@ -5639,7 +5639,7 @@ bool ObBasePartition::range_like_func_less_than(const ObBasePartition *lhs, cons { bool bret = false; if (OB_ISNULL(lhs) || OB_ISNULL(rhs)) { - LOG_ERROR("lhs or rhs should not be NULL", KPC(lhs), KPC(rhs)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "lhs or rhs should not be NULL", KPC(lhs), KPC(rhs)); } else { ObNewRow lrow; lrow.cells_ = const_cast(lhs->high_bound_val_.get_obj_ptr()); @@ -5653,7 +5653,7 @@ bool ObBasePartition::range_like_func_less_than(const ObBasePartition *lhs, cons rrow.projector_size_ = rhs->projector_size_; int cmp = 0; if (OB_SUCCESS != ObRowUtil::compare_row(lrow, rrow, cmp)) { - LOG_ERROR("lhs or rhs is invalid", K(lrow), K(rrow), K(lhs), K(rhs)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "lhs or rhs is invalid", K(lrow), K(rrow), K(lhs), K(rhs)); } else if (0 == cmp) { bret = lhs->get_part_id() < rhs->get_part_id(); } else { @@ -5667,7 +5667,7 @@ bool ObBasePartition::hash_like_func_less_than(const ObBasePartition *lhs, const { bool bret = false; if (OB_ISNULL(lhs) || OB_ISNULL(rhs)) { - LOG_ERROR("lhs or rhs should not be NULL", KPC(lhs), KPC(rhs)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "lhs or rhs should not be NULL", KPC(lhs), KPC(rhs)); } else { int cmp = static_cast(lhs->get_part_idx() - rhs->get_part_idx()); if (0 == cmp) { @@ -6006,7 +6006,7 @@ bool ObSubPartition::less_than(const ObSubPartition *lhs, const ObSubPartition * { bool b_ret = false; if (OB_ISNULL(lhs) || OB_ISNULL(rhs)) { - LOG_ERROR("lhs or rhs should not be NULL", KPC(lhs), KPC(rhs)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "lhs or rhs should not be NULL", KPC(lhs), KPC(rhs)); } else if (lhs->get_part_id() < rhs->get_part_id()) { b_ret = true; } else if (lhs->get_part_id() == rhs->get_part_id()) { @@ -6022,7 +6022,7 @@ bool ObSubPartition::less_than(const ObSubPartition *lhs, const ObSubPartition * rrow.projector_size_ = rhs->projector_size_; int cmp = 0; if (OB_SUCCESS != ObRowUtil::compare_row(lrow, rrow, cmp)) { - LOG_ERROR("lhs or rhs is invalid"); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "lhs or rhs is invalid"); } else { b_ret = (cmp < 0); } @@ -6092,7 +6092,7 @@ bool ObSubPartition::hash_like_func_less_than(const ObSubPartition *lhs, const O { bool bret = false; if (OB_ISNULL(lhs) || OB_ISNULL(rhs)) { - LOG_ERROR("lhs or rhs should not be NULL", KPC(lhs), KPC(rhs)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "lhs or rhs should not be NULL", KPC(lhs), KPC(rhs)); } else { int cmp = static_cast(lhs->get_part_idx() - rhs->get_part_idx()); if (0 == cmp) { @@ -8887,7 +8887,7 @@ const char *ob_table_type_str(ObTableType type) break; } default: { - LOG_WARN("unkonw table type", K(type)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "unkonw table type", K(type)); break; } } @@ -8919,7 +8919,7 @@ const char *ob_mysql_table_type_str(ObTableType type) type_ptr = "TMP TABLE"; break; default: - LOG_WARN("unkonw table type", K(type)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "unkonw table type", K(type)); break; } return type_ptr; @@ -8927,7 +8927,7 @@ const char *ob_mysql_table_type_str(ObTableType type) ObTableType get_inner_table_type_by_id(const uint64_t tid) { if (!is_inner_table(tid)) { - LOG_WARN("tid is not inner table", K(tid)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "tid is not inner table", K(tid)); } ObTableType type = MAX_TABLE_TYPE; if (is_sys_table(tid)) { @@ -9412,7 +9412,7 @@ ObMaxConcurrentParam *ObOutlineParamsWrapper::get_outline_param(int64_t index) c if (index < outline_params_.count()) { ret = outline_params_.at(index); } else { - LOG_ERROR("index overflow", K(index), K(outline_params_.count())); + LOG_ERROR_RET(OB_SIZE_OVERFLOW, "index overflow", K(index), K(outline_params_.count())); } return ret; } @@ -9717,7 +9717,7 @@ OB_DEF_SERIALIZE_SIZE(ObOutlineParamsWrapper) len += serialization::encoded_length_vi64(outline_params_.count()); for (int64_t i = 0; i < outline_params_.count(); ++i) { if (OB_ISNULL(outline_params_.at(i))) { - LOG_ERROR("param is NULL"); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "param is NULL"); } else { len += outline_params_.at(i)->get_serialize_size(); } @@ -10616,7 +10616,7 @@ bool ObHostnameStuct::is_in_white_list(const common::ObString &client_ip, common { bool ret_bool = false; if (ip_white_list.empty() || client_ip.empty()) { - LOG_WARN("ip_white_list or client_ip is emtpy, denied any client", K(client_ip), K(ip_white_list)); + LOG_WARN_RET(OB_SUCCESS, "ip_white_list or client_ip is emtpy, denied any client", K(client_ip), K(ip_white_list)); } else { const char COMMA = ','; ObString orig_ip_white_list = ip_white_list; @@ -10632,10 +10632,10 @@ bool ObHostnameStuct::is_in_white_list(const common::ObString &client_ip, common } if (!ret_bool) { if (ip_white_list.empty()) { - LOG_WARN("ip_white_list is emtpy, denied any client", K(client_ip), K(orig_ip_white_list)); + LOG_WARN_RET(OB_SUCCESS, "ip_white_list is emtpy, denied any client", K(client_ip), K(orig_ip_white_list)); } else if (!ObHostnameStuct::is_wild_match(client_ip, ip_white_list) && !ObHostnameStuct::is_ip_match(client_ip, ip_white_list)) { - LOG_WARN("client ip is not in ip_white_list", K(client_ip), K(orig_ip_white_list)); + LOG_WARN_RET(OB_SUCCESS, "client ip is not in ip_white_list", K(client_ip), K(orig_ip_white_list)); } else { ret_bool = true; LOG_TRACE("match result", K(ret_bool), K(client_ip), K(ip_white_list)); @@ -11125,7 +11125,7 @@ ObSSLType get_ssl_type_from_string(const common::ObString &ssl_type_str) } else if (ssl_type_str == get_ssl_type_string(ObSSLType::SSL_TYPE_SPECIFIED)) { ssl_type_enum = ObSSLType::SSL_TYPE_SPECIFIED; } else { - LOG_WARN("unknown ssl type", K(ssl_type_str), K(common::lbt())); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "unknown ssl type", K(ssl_type_str), K(common::lbt())); } return ssl_type_enum; } diff --git a/src/share/schema/ob_schema_struct.h b/src/share/schema/ob_schema_struct.h index 76d7ca02d..511bfecb8 100644 --- a/src/share/schema/ob_schema_struct.h +++ b/src/share/schema/ob_schema_struct.h @@ -1817,7 +1817,7 @@ public: if (common::OB_SUCCESS != ret_) { // failed before } else if (common::OB_SUCCESS != (ret_ = common::ObRowUtil::compare_row(left, right, cmp))) { - SHARE_SCHEMA_LOG(ERROR, "l or r is invalid", K(ret_)); + SHARE_SCHEMA_LOG_RET(ERROR, ret_, "l or r is invalid", K(ret_)); } else { bool_ret = (cmp < 0); } diff --git a/src/share/schema/ob_security_audit_mgr.cpp b/src/share/schema/ob_security_audit_mgr.cpp index 94e3c102b..47128df37 100644 --- a/src/share/schema/ob_security_audit_mgr.cpp +++ b/src/share/schema/ob_security_audit_mgr.cpp @@ -108,7 +108,7 @@ int ObSAuditMgr::init() void ObSAuditMgr::reset() { if (OB_UNLIKELY(!is_inited_)) { - LOG_WARN("audit manger not init"); + LOG_WARN_RET(OB_NOT_INIT, "audit manger not init"); } else { audit_infos_.clear(); audit_map_.clear(); diff --git a/src/share/schema/ob_sequence_mgr.cpp b/src/share/schema/ob_sequence_mgr.cpp index ae714bc75..399aa3ab2 100644 --- a/src/share/schema/ob_sequence_mgr.cpp +++ b/src/share/schema/ob_sequence_mgr.cpp @@ -269,7 +269,7 @@ int ObSequenceMgr::init() void ObSequenceMgr::reset() { if (!is_inited_) { - LOG_WARN("sequence manger not init"); + LOG_WARN_RET(OB_NOT_INIT, "sequence manger not init"); } else { sequence_infos_.clear(); sequence_map_.clear(); diff --git a/src/share/schema/ob_synonym_mgr.cpp b/src/share/schema/ob_synonym_mgr.cpp index d0d8ee5de..1cb7ef478 100644 --- a/src/share/schema/ob_synonym_mgr.cpp +++ b/src/share/schema/ob_synonym_mgr.cpp @@ -159,7 +159,7 @@ int ObSynonymMgr::init() void ObSynonymMgr::reset() { if (!is_inited_) { - LOG_WARN("synonym manger not init"); + LOG_WARN_RET(OB_NOT_INIT, "synonym manger not init"); } else { synonym_infos_.clear(); synonym_id_map_.clear(); diff --git a/src/share/schema/ob_sys_variable_mgr.cpp b/src/share/schema/ob_sys_variable_mgr.cpp index 084a53565..62e7d4819 100644 --- a/src/share/schema/ob_sys_variable_mgr.cpp +++ b/src/share/schema/ob_sys_variable_mgr.cpp @@ -131,7 +131,7 @@ int ObSysVariableMgr::init() void ObSysVariableMgr::reset() { if (!is_inited_) { - LOG_WARN("sys_variable manger not init"); + LOG_WARN_RET(OB_NOT_INIT, "sys_variable manger not init"); } else { sys_variable_infos_.clear(); sys_variable_map_.clear(); diff --git a/src/share/schema/ob_table_dml_param.cpp b/src/share/schema/ob_table_dml_param.cpp index 0d7e90705..5ba06c8ca 100644 --- a/src/share/schema/ob_table_dml_param.cpp +++ b/src/share/schema/ob_table_dml_param.cpp @@ -226,7 +226,7 @@ const ObColumnParam * ObTableSchemaParam::get_column_by_idx(const int64_t idx) c { const ObColumnParam * ptr = NULL; if (idx < 0 || idx >= columns_.count()) { - LOG_WARN("idx out of range", K(idx), K(columns_.count()), K(lbt())); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "idx out of range", K(idx), K(columns_.count()), K(lbt())); } else { ptr = columns_.at(idx); } @@ -237,7 +237,7 @@ const ObColumnParam * ObTableSchemaParam::get_rowkey_column_by_idx(const int64_t { const ObColumnParam * ptr = NULL; if (idx < 0 || idx >= read_info_.get_schema_rowkey_count()) { - LOG_WARN("idx out of range", K(idx), K(read_info_.get_schema_rowkey_count())); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "idx out of range", K(idx), K(read_info_.get_schema_rowkey_count())); } else { ptr = columns_.at(idx); } diff --git a/src/share/schema/ob_table_schema.cpp b/src/share/schema/ob_table_schema.cpp index 10635a3cd..b95a93c14 100644 --- a/src/share/schema/ob_table_schema.cpp +++ b/src/share/schema/ob_table_schema.cpp @@ -1500,7 +1500,7 @@ bool ObTableSchema::is_valid() const if (!ObSimpleTableSchemaV2::is_valid()) { valid_ret = false; - LOG_WARN("schema is invalid", K_(error_ret)); + LOG_WARN_RET(OB_INVALID_ERROR, "schema is invalid", K_(error_ret)); } if (!valid_ret || is_view_table()) { @@ -1509,17 +1509,17 @@ bool ObTableSchema::is_valid() const } else { if (is_virtual_table(table_id_) && 0 > rowkey_column_num_) { valid_ret = false; - LOG_WARN("invalid rowkey_column_num:", K_(table_name), K_(rowkey_column_num)); + LOG_WARN_RET(OB_INVALID_ERROR, "invalid rowkey_column_num:", K_(table_name), K_(rowkey_column_num)); //TODO:(xiyu) confirm to delte it } else if (!is_virtual_table(table_id_) && 1 > rowkey_column_num_ && OB_INVALID_ID == dblink_id_) { valid_ret = false; - LOG_WARN("no primary key specified:", K_(table_name)); + LOG_WARN_RET(OB_INVALID_ERROR, "no primary key specified:", K_(table_name)); } else if (index_column_num_ < 0 || index_column_num_ > OB_MAX_ROWKEY_COLUMN_NUMBER) { valid_ret = false; - LOG_WARN("invalid index_column_num", K_(table_name), K_(index_column_num)); + LOG_WARN_RET(OB_INVALID_ERROR, "invalid index_column_num", K_(table_name), K_(index_column_num)); } else if (part_key_column_num_ > OB_MAX_PARTITION_KEY_COLUMN_NUMBER) { valid_ret = false; - LOG_WARN("partition key column num invalid", K_(table_name), + LOG_WARN_RET(OB_INVALID_ERROR, "partition key column num invalid", K_(table_name), K_(part_key_column_num), K(OB_MAX_PARTITION_KEY_COLUMN_NUMBER)); } else { int64_t def_rowkey_col = 0; @@ -1532,18 +1532,18 @@ bool ObTableSchema::is_valid() const if (NULL == column_array_) { valid_ret = false; - LOG_WARN("The column_array is NULL."); + LOG_WARN_RET(OB_INVALID_ERROR, "The column_array is NULL."); } for (int64_t i = 0; valid_ret && i < column_cnt_; ++i) { if (NULL == (column = column_array_[i])) { valid_ret = false; - LOG_WARN("The column is NULL."); + LOG_WARN_RET(OB_INVALID_ERROR, "The column is NULL."); } else { if (column->get_rowkey_position() > 0) { ++def_rowkey_col; if (column->get_column_id() > max_used_column_id_) { valid_ret = false; - LOG_WARN("column id is greater than max_used_column_id, ", + LOG_WARN_RET(OB_INVALID_ERROR, "column id is greater than max_used_column_id, ", "column_name", column->get_column_name(), "column_id", column->get_column_id(), K_(max_used_column_id)); @@ -1554,7 +1554,7 @@ bool ObTableSchema::is_valid() const ++def_index_col; if (column->get_column_id() > max_used_column_id_) { valid_ret = false; - LOG_WARN("column id is greater than max_used_column_id, ", + LOG_WARN_RET(OB_INVALID_ERROR, "column id is greater than max_used_column_id, ", "column_name", column->get_column_name(), "column_id", column->get_column_id(), K_(max_used_column_id)); @@ -1577,7 +1577,7 @@ bool ObTableSchema::is_valid() const } else { if (ObVarcharType == column->get_data_type()) { if (OB_MAX_VARCHAR_LENGTH < column->get_data_length()) { - LOG_WARN("length of varchar column is larger than the max allowed length, ", + LOG_WARN_RET(OB_INVALID_ERROR, "length of varchar column is larger than the max allowed length, ", "data_length", column->get_data_length(), "column_name", column->get_column_name(), K(OB_MAX_VARCHAR_LENGTH)); @@ -1596,7 +1596,7 @@ bool ObTableSchema::is_valid() const ObLength max_length = 0; max_length = ObAccuracy::MAX_ACCURACY[column->get_data_type()].get_length(); if (max_length < column->get_data_length()) { - LOG_WARN("length of text/blob column is larger than the max allowed length, ", + LOG_WARN_RET(OB_INVALID_ERROR, "length of text/blob column is larger than the max allowed length, ", "data_length", column->get_data_length(), "column_name", column->get_column_name(), K(max_length)); valid_ret = false; @@ -1618,14 +1618,14 @@ bool ObTableSchema::is_valid() const const int64_t max_row_length = is_sys_table() || is_vir_table() ? INT64_MAX : OB_MAX_USER_ROW_LENGTH; const int64_t max_rowkey_length = is_sys_table() || is_vir_table() ? OB_MAX_ROW_KEY_LENGTH : OB_MAX_USER_ROW_KEY_LENGTH; if (max_row_length < varchar_col_total_length) { - LOG_WARN("total length of varchar columns is larger than the max allowed length", + LOG_WARN_RET(OB_INVALID_ERROR, "total length of varchar columns is larger than the max allowed length", K(varchar_col_total_length), K(max_row_length)); const ObString &col_name = column->get_column_name_str(); LOG_USER_ERROR(OB_ERR_VARCHAR_TOO_LONG, static_cast(varchar_col_total_length), max_rowkey_length, col_name.ptr()); valid_ret = false; } else if (max_rowkey_length < rowkey_varchar_col_length) { - LOG_WARN("total length of varchar primary key columns is larger than the max allowed length", + LOG_WARN_RET(OB_INVALID_ERROR, "total length of varchar primary key columns is larger than the max allowed length", K(rowkey_varchar_col_length), K(max_rowkey_length)); LOG_USER_ERROR(OB_ERR_TOO_LONG_KEY_LENGTH, max_rowkey_length); valid_ret = false; @@ -1634,21 +1634,21 @@ bool ObTableSchema::is_valid() const if (valid_ret) { if (def_rowkey_col != rowkey_column_num_) { valid_ret = false; - LOG_WARN("rowkey_column_num not equal with defined_num", + LOG_WARN_RET(OB_INVALID_ERROR, "rowkey_column_num not equal with defined_num", K_(rowkey_column_num), K(def_rowkey_col), K_(table_name)); } } if (valid_ret) { if (def_index_col != index_column_num_) { valid_ret = false; - LOG_WARN("index_column_num not equal with defined_num", + LOG_WARN_RET(OB_INVALID_ERROR, "index_column_num not equal with defined_num", K_(index_column_num), K(def_index_col), K_(table_name)); } } if (valid_ret) { if (def_part_key_col != part_key_column_num_ || def_subpart_key_col != subpart_key_column_num_) { valid_ret = false; - LOG_WARN("partition key column num not equal with the defined num", + LOG_WARN_RET(OB_INVALID_ERROR, "partition key column num not equal with the defined num", K_(part_key_column_num), K(def_part_key_col), K_(table_name)); } } @@ -2544,7 +2544,7 @@ const ObColumnSchemaV2 *ObTableSchema::get_column_schema(const char *column_name { const ObColumnSchemaV2 *column = NULL; if (NULL == column_name || '\0' == column_name[0]) { - LOG_WARN("invalid column name, ", K(column_name)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "invalid column name, ", K(column_name)); } else { column = get_column_schema(ObString::make_string(column_name)); } @@ -2555,7 +2555,7 @@ ObColumnSchemaV2 *ObTableSchema::get_column_schema(const char *column_name) { ObColumnSchemaV2 *column = NULL; if (NULL == column_name || '\0' == column_name[0]) { - LOG_WARN("invalid column name, ", K(column_name)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "invalid column name, ", K(column_name)); } else { column = get_column_schema(ObString::make_string(column_name)); } diff --git a/src/share/schema/ob_table_sql_service.cpp b/src/share/schema/ob_table_sql_service.cpp index fe8c80e2d..af75427fe 100644 --- a/src/share/schema/ob_table_sql_service.cpp +++ b/src/share/schema/ob_table_sql_service.cpp @@ -3544,7 +3544,7 @@ int ObTableSqlService::add_sequence(const uint64_t tenant_id, if (trans.is_started()) { int temp_ret = OB_SUCCESS; if (OB_SUCCESS != (temp_ret = trans.end(OB_SUCC(ret)))) { - LOG_WARN("trans end failed", "is_commit", OB_SUCC(ret), K(temp_ret)); + LOG_WARN("trans end failed", "is_commit", OB_SUCCESS == ret, K(temp_ret)); ret = (OB_SUCC(ret)) ? temp_ret : ret; } } diff --git a/src/share/schema/ob_tablespace_mgr.cpp b/src/share/schema/ob_tablespace_mgr.cpp index 464422015..bbf6fd923 100644 --- a/src/share/schema/ob_tablespace_mgr.cpp +++ b/src/share/schema/ob_tablespace_mgr.cpp @@ -259,7 +259,7 @@ int ObTablespaceMgr::init() void ObTablespaceMgr::reset() { if (!is_inited_) { - LOG_WARN("tablespace manger not init"); + LOG_WARN_RET(OB_NOT_INIT, "tablespace manger not init"); } else { tablespace_infos_.clear(); tablespace_map_.clear(); diff --git a/src/share/schema/ob_trigger_info.cpp b/src/share/schema/ob_trigger_info.cpp index 19aacbbe1..076606f88 100644 --- a/src/share/schema/ob_trigger_info.cpp +++ b/src/share/schema/ob_trigger_info.cpp @@ -1009,7 +1009,7 @@ bool ObTriggerInfo::ActionOrderComparator::operator()(const ObTriggerInfo *left, // ignore } else if (OB_UNLIKELY(NULL == left) || OB_UNLIKELY(NULL == right)) { ret_ = OB_INVALID_ARGUMENT; - LOG_WARN("invalid argument", K(ret_), KP(left), KP(right)); + LOG_WARN_RET(ret_, "invalid argument", K(ret_), KP(left), KP(right)); } else { bool_ret = (left->get_action_order() < right->get_action_order()); } diff --git a/src/share/schema/ob_trigger_mgr.cpp b/src/share/schema/ob_trigger_mgr.cpp index 7002a78dd..0925b5729 100644 --- a/src/share/schema/ob_trigger_mgr.cpp +++ b/src/share/schema/ob_trigger_mgr.cpp @@ -315,7 +315,7 @@ int ObTriggerMgr::try_rebuild_trigger_hashmap() K(trigger_infos_.count()), K(trigger_id_map_.item_count()), K(trigger_name_map_.item_count())); - int over_write = 1; + int over_write = 0; ObTriggerNameHashWrapper name_wrapper; OV (is_inited_, OB_NOT_INIT); OX (trigger_id_map_.clear()); @@ -329,13 +329,32 @@ int ObTriggerMgr::try_rebuild_trigger_hashmap() OX (name_wrapper.set_trigger_name(trigger_info->get_trigger_name())); OZ (trigger_id_map_.set_refactored(trigger_info->get_trigger_id(), trigger_info, over_write), trigger_info); - OZ (trigger_name_map_.set_refactored(name_wrapper, trigger_info, over_write), - trigger_info); + if (OB_SUCC(ret)) { + int hash_ret = trigger_name_map_.set_refactored(name_wrapper, trigger_info, over_write); + if (OB_SUCCESS != hash_ret) { + ret = OB_HASH_EXIST == hash_ret ? OB_SUCCESS : hash_ret; + LOG_ERROR("build trigger name map failed", KR(ret), KR(hash_ret), + "exist_tenant_id", trigger_info->get_tenant_id(), + "exist_database_id", trigger_info->get_database_id(), + "exist_trigger_name", trigger_info->get_trigger_name()); + } + + } OX (LOG_INFO("rebuild", K(*trigger_info))); } - if (trigger_infos_.count() != trigger_id_map_.item_count() || - trigger_infos_.count() != trigger_name_map_.item_count()) { - LOG_ERROR("schema meta is still not consistent after rebuild, need fixing", K(ret)); + if (OB_SUCC(ret) + && (trigger_infos_.count() != trigger_id_map_.item_count() + || trigger_infos_.count() != trigger_name_map_.item_count())) { + ret = OB_DUPLICATE_OBJECT_NAME_EXIST; + LOG_ERROR("schema meta is still not consistent after rebuild, need fixing", KR(ret), + "trigger_info_cnt", trigger_infos_.count(), + "trigger_id_cnt", trigger_id_map_.item_count(), + "trigger_name_cnt", trigger_name_map_.item_count()); + LOG_DBA_ERROR(OB_DUPLICATE_OBJECT_NAME_EXIST, + "msg", "duplicate trigger name exist", + "trigger_info_cnt", trigger_infos_.count(), + "trigger_id_cnt", trigger_id_map_.item_count(), + "trigger_name_cnt", trigger_name_map_.item_count()); right_to_die_or_duty_to_live(); } } diff --git a/src/share/schema/ob_udf_mgr.cpp b/src/share/schema/ob_udf_mgr.cpp index 095e1fb15..1bf74638a 100644 --- a/src/share/schema/ob_udf_mgr.cpp +++ b/src/share/schema/ob_udf_mgr.cpp @@ -153,7 +153,7 @@ int ObUDFMgr::init() void ObUDFMgr::reset() { if (!is_inited_) { - LOG_WARN("udf manger not init"); + LOG_WARN_RET(OB_NOT_INIT, "udf manger not init"); } else { udf_infos_.clear(); udf_map_.clear(); diff --git a/src/share/scn.cpp b/src/share/scn.cpp index 1e94acf98..c6e1422b3 100644 --- a/src/share/scn.cpp +++ b/src/share/scn.cpp @@ -262,9 +262,9 @@ int64_t SCN::convert_to_ts(bool ignore_invalid) const ts_us = ts_ns_ / 1000UL; } else { if (ignore_invalid) { - PALF_LOG(WARN, "invalid scn should not convert to ts ", K(val_)); + PALF_LOG_RET(WARN, OB_ERR_UNEXPECTED, "invalid scn should not convert to ts ", K(val_)); } else { - PALF_LOG(ERROR, "invalid scn should not convert to ts ", K(val_), K(lbt())); + PALF_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "invalid scn should not convert to ts ", K(val_), K(lbt())); } } return ts_us; @@ -373,9 +373,9 @@ int64_t SCN::get_val_for_tx(const bool ignore_invalid_scn) const int64_t result_val = -1; if (!is_valid()) { if (!ignore_invalid_scn) { - PALF_LOG(ERROR, "invalid SCN", K(val_)); + PALF_LOG_RET(ERROR, OB_INVALID_ARGUMENT, "invalid SCN", K(val_)); } else { - PALF_LOG(WARN, "invalid SCN", K(val_)); + PALF_LOG_RET(WARN, OB_INVALID_ARGUMENT, "invalid SCN", K(val_)); } } else if (OB_MAX_SCN_TS_NS == ts_ns_) { result_val = INT64_MAX; diff --git a/src/share/stat/ob_column_stat.cpp b/src/share/stat/ob_column_stat.cpp index 6a314eca9..22c21d207 100644 --- a/src/share/stat/ob_column_stat.cpp +++ b/src/share/stat/ob_column_stat.cpp @@ -57,9 +57,9 @@ ObColumnStat::ObColumnStat(common::ObIAllocator &allocator) min_value_.set_min_value(); max_value_.set_max_value(); if (NULL == (llc_bitmap_ = static_cast(allocator.alloc(NUM_LLC_BUCKET)))) { - COMMON_LOG(WARN, "allocate memory for llc_bitmap_ failed."); + COMMON_LOG_RET(WARN, OB_ALLOCATE_MEMORY_FAILED, "allocate memory for llc_bitmap_ failed."); } else if (NULL == (object_buf_ = static_cast(allocator.alloc(MAX_OBJECT_SERIALIZE_SIZE * 2)))) { - COMMON_LOG(WARN, "allocate memory for object_buf_ failed."); + COMMON_LOG_RET(WARN, OB_ALLOCATE_MEMORY_FAILED, "allocate memory for object_buf_ failed."); } else { llc_bitmap_size_ = NUM_LLC_BUCKET; MEMSET(llc_bitmap_, 0, llc_bitmap_size_); diff --git a/src/share/stat/ob_opt_column_stat.cpp b/src/share/stat/ob_opt_column_stat.cpp index 6a8e6bef2..3df9de3bb 100644 --- a/src/share/stat/ob_opt_column_stat.cpp +++ b/src/share/stat/ob_opt_column_stat.cpp @@ -139,7 +139,7 @@ ObOptColumnStat::ObOptColumnStat(ObIAllocator &allocator) min_value_.set_null(); max_value_.set_null(); if (NULL == (llc_bitmap_ = static_cast(allocator.alloc(ObColumnStat::NUM_LLC_BUCKET)))) { - COMMON_LOG(WARN, "allocate memory for llc_bitmap_ failed."); + COMMON_LOG_RET(WARN, OB_ALLOCATE_MEMORY_FAILED, "allocate memory for llc_bitmap_ failed."); } else { llc_bitmap_size_ = ObColumnStat::NUM_LLC_BUCKET; MEMSET(llc_bitmap_, 0, llc_bitmap_size_); diff --git a/src/share/stat/ob_opt_stat_monitor_manager.cpp b/src/share/stat/ob_opt_stat_monitor_manager.cpp index 093200a90..e2b0a7b44 100644 --- a/src/share/stat/ob_opt_stat_monitor_manager.cpp +++ b/src/share/stat/ob_opt_stat_monitor_manager.cpp @@ -145,14 +145,14 @@ void ObOptStatMonitorManager::destroy() inited_ = false; for (auto iter = column_usage_maps_.begin(); iter != column_usage_maps_.end(); ++iter) { if (OB_ISNULL(iter->second)) { - BACKTRACE(ERROR, true, "column usage map is null"); + BACKTRACE_RET(ERROR, OB_ERR_UNEXPECTED, true, "column usage map is null"); } else { iter->second->destroy(); } } for (auto iter = dml_stat_maps_.begin(); iter != dml_stat_maps_.end(); ++iter) { if (OB_ISNULL(iter->second)) { - BACKTRACE(ERROR, true, "dml stats map is null"); + BACKTRACE_RET(ERROR, OB_ERR_UNEXPECTED, true, "dml stats map is null"); } else { iter->second->destroy(); } diff --git a/src/share/stat/ob_stat_item.cpp b/src/share/stat/ob_stat_item.cpp index 509636695..6d0a15fb6 100644 --- a/src/share/stat/ob_stat_item.cpp +++ b/src/share/stat/ob_stat_item.cpp @@ -584,7 +584,7 @@ int64_t ObGlobalNdvEval::get_ndv_from_llc(const char *llc_bitmap) int64_t num_distinct = 0; if (OB_ISNULL(llc_bitmap)) { // ret is useless here, we just need to raise a warn to avoid core. - LOG_WARN("get unexpected null pointer"); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "get unexpected null pointer"); } else { double sum_of_pmax = 0; double alpha = select_alpha_value(ObColumnStat::NUM_LLC_BUCKET); diff --git a/src/share/system_variable/ob_system_variable.h b/src/share/system_variable/ob_system_variable.h index 3c7a199d0..fb7746fde 100644 --- a/src/share/system_variable/ob_system_variable.h +++ b/src/share/system_variable/ob_system_variable.h @@ -118,7 +118,7 @@ public: type_names_(NULL) { if (OB_ISNULL(type_names)) { - SQL_SESSION_LOG(ERROR, "type names is NULL"); + SQL_SESSION_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "type names is NULL"); } else { // 这里没法按照编码规范检查下标 for (count_ = 0; 0 != type_names[count_]; count_++); diff --git a/src/share/table/ob_table.cpp b/src/share/table/ob_table.cpp index a144f4132..974c011ef 100644 --- a/src/share/table/ob_table.cpp +++ b/src/share/table/ob_table.cpp @@ -926,7 +926,7 @@ int ObTableQuery::set_scan_index(const ObString &index_name) int ObTableQuery::set_filter(const ObString &filter) { - LOG_WARN("general filter not supported", K(filter)); + LOG_WARN_RET(OB_NOT_SUPPORTED, "general filter not supported", K(filter)); return OB_NOT_SUPPORTED; } diff --git a/src/share/table/ob_table.h b/src/share/table/ob_table.h index db297f508..d81dbe234 100644 --- a/src/share/table/ob_table.h +++ b/src/share/table/ob_table.h @@ -172,7 +172,7 @@ ObITableEntity *ObTableEntityFactory::alloc() if (NULL == entity) { void * ptr = alloc_.alloc(sizeof(T)); if (NULL == ptr) { - CLIENT_LOG(WARN, "no memory for table entity"); + CLIENT_LOG_RET(WARN, common::OB_ALLOCATE_MEMORY_FAILED, "no memory for table entity"); } else { entity = new(ptr) T(); used_list_.add_last(entity); diff --git a/src/sql/das/ob_das_group_scan_op.cpp b/src/sql/das/ob_das_group_scan_op.cpp index 1c8bbe230..c0ff62adc 100644 --- a/src/sql/das/ob_das_group_scan_op.cpp +++ b/src/sql/das/ob_das_group_scan_op.cpp @@ -33,7 +33,7 @@ ObDASGroupScanOp::ObDASGroupScanOp(ObIAllocator &op_alloc) ObDASGroupScanOp::~ObDASGroupScanOp() { if (result_iter_ != nullptr && result_iter_->get_type() == ObNewRowIterator::ObTableScanIterator) { - LOG_ERROR("table group scan iter is not released, maybe some bug occured", + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "table group scan iter is not released, maybe some bug occured", KPC(scan_ctdef_), K(scan_param_), KPC(scan_rtdef_)); } } @@ -250,13 +250,13 @@ ObGroupLookupOp::~ObGroupLookupOp() { const ObNewRowIterator *lookup_iter = get_lookup_storage_iter(); if (lookup_iter != nullptr && lookup_iter->get_type() == ObNewRowIterator::ObTableScanIterator) { - LOG_ERROR("lookup_iter iter is not released, maybe some bug occured", + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "lookup_iter iter is not released, maybe some bug occured", KPC(lookup_ctdef_), K(scan_param_), KPC(index_ctdef_), K(lookup_rowkey_cnt_), K(lookup_row_cnt_)); } const ObNewRowIterator *rowkey_iter = static_cast(get_rowkey_iter())->get_iter(); if (rowkey_iter != nullptr && rowkey_iter->get_type() == ObNewRowIterator::ObTableScanIterator) { - LOG_ERROR("rowkey_iter iter is not released, maybe some bug occured", + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "rowkey_iter iter is not released, maybe some bug occured", KPC(lookup_ctdef_), K(scan_param_), KPC(index_ctdef_), K(lookup_rowkey_cnt_), K(lookup_row_cnt_)); } diff --git a/src/sql/das/ob_das_scan_op.cpp b/src/sql/das/ob_das_scan_op.cpp index 6d1bdae64..26c66548a 100644 --- a/src/sql/das/ob_das_scan_op.cpp +++ b/src/sql/das/ob_das_scan_op.cpp @@ -161,7 +161,7 @@ ObDASScanOp::ObDASScanOp(ObIAllocator &op_alloc) ObDASScanOp::~ObDASScanOp() { if (result_ != nullptr && result_->get_type() == ObNewRowIterator::ObTableScanIterator) { - LOG_ERROR("table scan iter is not released, maybe some bug occured", + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "table scan iter is not released, maybe some bug occured", KPC(scan_ctdef_), K(scan_param_), KPC(scan_rtdef_)); } scan_param_.destroy(); @@ -740,13 +740,13 @@ OB_SERIALIZE_MEMBER((ObDASScanResult, ObIDASTaskResult), ObLocalIndexLookupOp::~ObLocalIndexLookupOp() { if (lookup_iter_ != nullptr && lookup_iter_->get_type() == ObNewRowIterator::ObTableScanIterator) { - LOG_ERROR("lookup_iter_ iter is not released, maybe some bug occured", + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "lookup_iter_ iter is not released, maybe some bug occured", KPC(lookup_ctdef_), K(scan_param_), KPC(index_ctdef_), K(lookup_rowkey_cnt_), K(lookup_row_cnt_)); } if (rowkey_iter_ != nullptr && rowkey_iter_->get_type() == ObNewRowIterator::ObTableScanIterator) { - LOG_ERROR("rowkey_iter_ iter is not released, maybe some bug occured", + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "rowkey_iter_ iter is not released, maybe some bug occured", KPC(lookup_ctdef_), K(scan_param_), KPC(index_ctdef_), K(lookup_rowkey_cnt_), K(lookup_row_cnt_)); } diff --git a/src/sql/das/ob_das_spatial_index_lookup_op.cpp b/src/sql/das/ob_das_spatial_index_lookup_op.cpp index 21a032b16..d75432e6e 100644 --- a/src/sql/das/ob_das_spatial_index_lookup_op.cpp +++ b/src/sql/das/ob_das_spatial_index_lookup_op.cpp @@ -28,7 +28,7 @@ bool ObRowKeyCompare::operator()(const ObRowkey *left, const ObRowkey *right) } else if (OB_UNLIKELY(NULL == left) || OB_UNLIKELY(NULL == right)) { result_code_ = common::OB_INVALID_ARGUMENT; - LOG_WARN("Invaid argument, ", KP(left), KP(right), K_(result_code)); + LOG_WARN_RET(result_code_, "Invaid argument, ", KP(left), KP(right), K_(result_code)); } else { bool_ret = (*left) < (*right); } @@ -284,4 +284,4 @@ int ObSpatialIndexLookupOp::process_data_table_rowkey() } // namespace sql -} // namespace oceanbase \ No newline at end of file +} // namespace oceanbase diff --git a/src/sql/dtl/ob_dtl_basic_channel.cpp b/src/sql/dtl/ob_dtl_basic_channel.cpp index 2a5a27c6e..3b1d3010c 100644 --- a/src/sql/dtl/ob_dtl_basic_channel.cpp +++ b/src/sql/dtl/ob_dtl_basic_channel.cpp @@ -310,7 +310,7 @@ void ObDtlBasicChannel::destroy() } if (alloc_buffer_cnt_ != free_buffer_cnt_) { int tmp_ret = OB_ERR_UNEXPECTED; - LOG_ERROR("channel may exists buffer to free", KP(id_), K(peer_id_), K(tmp_ret), K(alloc_buffer_cnt_), K(free_buffer_cnt_)); + LOG_ERROR_RET(tmp_ret, "channel may exists buffer to free", KP(id_), K(peer_id_), K(tmp_ret), K(alloc_buffer_cnt_), K(free_buffer_cnt_)); } } diff --git a/src/sql/dtl/ob_dtl_interm_result_manager.cpp b/src/sql/dtl/ob_dtl_interm_result_manager.cpp index 48317d743..f76680592 100644 --- a/src/sql/dtl/ob_dtl_interm_result_manager.cpp +++ b/src/sql/dtl/ob_dtl_interm_result_manager.cpp @@ -545,7 +545,7 @@ void ObDTLIntermResultManager::dec_interm_result_ref_count(ObDTLIntermResultInfo int64_t ref_count = result_info->dec_ref_count(); if (ref_count <= 0) { if (OB_UNLIKELY(ref_count < 0)) { - LOG_ERROR("ref count of interm result < 0", K(ref_count), KPC(result_info)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "ref count of interm result < 0", K(ref_count), KPC(result_info)); } free_interm_result_info(result_info); result_info = NULL; diff --git a/src/sql/dtl/ob_dtl_local_first_buffer_manager.cpp b/src/sql/dtl/ob_dtl_local_first_buffer_manager.cpp index 8e19c4da8..b27d895e2 100644 --- a/src/sql/dtl/ob_dtl_local_first_buffer_manager.cpp +++ b/src/sql/dtl/ob_dtl_local_first_buffer_manager.cpp @@ -219,7 +219,7 @@ void ObDtlBufferInfoManager::ObDtlBufferInfoAllocator::destroy() DLIST_FOREACH_REMOVESAFE_NORET(node, free_list_) { buffer_info = node; if (nullptr != buffer_info->buffer()) { - LOG_ERROR("data buffer is not null", K(buffer_info)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "data buffer is not null", K(buffer_info)); buffer_info->set_buffer(nullptr); } free_list_.remove(buffer_info); diff --git a/src/sql/dtl/ob_dtl_rpc_channel.cpp b/src/sql/dtl/ob_dtl_rpc_channel.cpp index c507a252c..75cb019bd 100644 --- a/src/sql/dtl/ob_dtl_rpc_channel.cpp +++ b/src/sql/dtl/ob_dtl_rpc_channel.cpp @@ -32,7 +32,7 @@ namespace dtl { void ObDtlRpcChannel::SendMsgCB::on_invalid() { - LOG_WARN("SendMsgCB invalid, check object serialization impl or oom", + LOG_WARN_RET(OB_ERROR, "SendMsgCB invalid, check object serialization impl or oom", K_(trace_id)); AsyncCB::on_invalid(); const ObDtlRpcDataResponse &resp = result_; @@ -44,7 +44,7 @@ void ObDtlRpcChannel::SendMsgCB::on_invalid() void ObDtlRpcChannel::SendMsgCB::on_timeout() { - LOG_WARN("SendMsgCB timeout, if negtive timeout, check peer cpu load, network packet drop rate", + LOG_WARN_RET(OB_TIMEOUT, "SendMsgCB timeout, if negtive timeout, check peer cpu load, network packet drop rate", K_(trace_id)); const ObDtlRpcDataResponse &resp = result_; int ret = response_.on_finish(resp.is_block_, OB_TIMEOUT); @@ -80,7 +80,7 @@ rpc::frame::ObReqTransport::AsyncCB *ObDtlRpcChannel::SendMsgCB::clone( void ObDtlRpcChannel::SendBCMsgCB::on_invalid() { - LOG_WARN("SendBCMsgCB invalid, check object serialization impl or oom", + LOG_WARN_RET(OB_ERROR, "SendBCMsgCB invalid, check object serialization impl or oom", K_(trace_id)); AsyncCB::on_invalid(); ObIArray &resps = result_.resps_; @@ -98,7 +98,7 @@ void ObDtlRpcChannel::SendBCMsgCB::on_invalid() void ObDtlRpcChannel::SendBCMsgCB::on_timeout() { - LOG_WARN("SendBCMsgCB timeout, if negtive timeout, check peer cpu load, network packet drop rate", + LOG_WARN_RET(OB_TIMEOUT, "SendBCMsgCB timeout, if negtive timeout, check peer cpu load, network packet drop rate", K_(trace_id)); ObIArray &resps = result_.resps_; for (int64_t i = 0; i < responses_.count(); ++i) { diff --git a/src/sql/dtl/ob_dtl_tenant_mem_manager.cpp b/src/sql/dtl/ob_dtl_tenant_mem_manager.cpp index da514c0a0..bc5c0b842 100644 --- a/src/sql/dtl/ob_dtl_tenant_mem_manager.cpp +++ b/src/sql/dtl/ob_dtl_tenant_mem_manager.cpp @@ -205,7 +205,7 @@ int64_t ObDtlTenantMemManager::get_min_buffer_size() if (tenant_config.is_valid()) { reserve_buffer_min_size = tenant_config->_parallel_min_message_pool; } else { - LOG_WARN("failed to init tenant config", K(tenant_id_)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "failed to init tenant config", K(tenant_id_)); } return reserve_buffer_min_size; } diff --git a/src/sql/engine/aggregate/ob_aggregate_function.cpp b/src/sql/engine/aggregate/ob_aggregate_function.cpp index 85dbcc38d..1002f149c 100644 --- a/src/sql/engine/aggregate/ob_aggregate_function.cpp +++ b/src/sql/engine/aggregate/ob_aggregate_function.cpp @@ -38,7 +38,7 @@ uint64_t ObAggregateDistinctItem::hash() const { uint64_t hash_id = 0; if (OB_ISNULL(cells_) || OB_ISNULL(cs_type_list_)) { - LOG_ERROR("cells or cs type list is null"); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "cells or cs type list is null"); } else { hash_id = group_id_ + col_idx_; for (int64_t i = 0; i < cs_type_list_->count(); ++i) { @@ -52,7 +52,7 @@ bool ObAggregateDistinctItem::operator==(const ObAggregateDistinctItem &other) c { bool bool_ret = true; if (OB_ISNULL(cells_) || OB_ISNULL(cs_type_list_)) { - LOG_ERROR("cells or cs type list is null"); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "cells or cs type list is null"); } else { bool_ret = (group_id_ == other.group_id_ && col_idx_ == other.col_idx_); if (bool_ret && cs_type_list_->count() != other.cs_type_list_->count()) { diff --git a/src/sql/engine/basic/ob_chunk_datum_store.cpp b/src/sql/engine/basic/ob_chunk_datum_store.cpp index 42293cf01..bd3d82d7d 100644 --- a/src/sql/engine/basic/ob_chunk_datum_store.cpp +++ b/src/sql/engine/basic/ob_chunk_datum_store.cpp @@ -2122,7 +2122,7 @@ void ObChunkDatumStore::ChunkIterator::reset_cursor(const int64_t file_size) cur_iter_blk_ = NULL; store_->callback_free(chunk_read_size_); if (read_file_iter_end()) { - LOG_ERROR("unexpect status: chunk mem is allocated, but don't free"); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "unexpect status: chunk mem is allocated, but don't free"); } } diff --git a/src/sql/engine/basic/ob_chunk_row_store.cpp b/src/sql/engine/basic/ob_chunk_row_store.cpp index 99a75e243..de5cffaa0 100644 --- a/src/sql/engine/basic/ob_chunk_row_store.cpp +++ b/src/sql/engine/basic/ob_chunk_row_store.cpp @@ -1350,7 +1350,7 @@ void ObChunkRowStore::ChunkIterator::reset_cursor(const int64_t file_size) cur_iter_blk_ = NULL; store_->callback_free(chunk_read_size_); if (read_file_iter_end()) { - LOG_ERROR("unexpect status: chunk mem is allocated, but don't free"); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "unexpect status: chunk mem is allocated, but don't free"); } } if (!read_file_iter_end() && cur_iter_blk_ != NULL) { diff --git a/src/sql/engine/basic/ob_expr_values_op.cpp b/src/sql/engine/basic/ob_expr_values_op.cpp index 8e3f172cf..6b95a27c6 100644 --- a/src/sql/engine/basic/ob_expr_values_op.cpp +++ b/src/sql/engine/basic/ob_expr_values_op.cpp @@ -156,7 +156,7 @@ int64_t ObExprValuesSpec::get_serialize_size_(const ObPhyOpSeriCtx &seri_ctx) co array_idx < seri_ctx.exec_ctx_->get_row_id_list_array().count(); ++array_idx) { if (OB_ISNULL(row_id_list = seri_ctx.exec_ctx_->get_row_id_list_array().at(array_idx))) { - LOG_WARN("row id list is null"); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "row id list is null"); } else { for (int idx = 0; idx < row_id_list->count(); ++idx) { int64_t start_idx = row_id_list->at(idx) * col_num; 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 6712ae8c8..2702ed606 100644 --- a/src/sql/engine/basic/ob_hash_partitioning_infrastructure_op.h +++ b/src/sql/engine/basic/ob_hash_partitioning_infrastructure_op.h @@ -146,7 +146,7 @@ public: if (nullptr != allocator_) { allocator_->free(buckets_); } else { - SQL_ENG_LOG(ERROR, "buckets is not null", KP(buckets_)); + SQL_ENG_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "buckets is not null", KP(buckets_)); } buckets_ = nullptr; } diff --git a/src/sql/engine/basic/ob_limit.cpp b/src/sql/engine/basic/ob_limit.cpp index f4f48aecf..5e105123e 100644 --- a/src/sql/engine/basic/ob_limit.cpp +++ b/src/sql/engine/basic/ob_limit.cpp @@ -443,7 +443,7 @@ int64_t ObLimit::to_string_kv(char *buf, const int64_t buf_len) const int ObLimit::add_filter(ObSqlExpression *expr) { UNUSED(expr); - LOG_ERROR("limit operator should have no filter expr"); + LOG_ERROR_RET(OB_NOT_SUPPORTED, "limit operator should have no filter expr"); return OB_NOT_SUPPORTED; } diff --git a/src/sql/engine/basic/ob_topk.cpp b/src/sql/engine/basic/ob_topk.cpp index dd1a1da83..de1547aa9 100644 --- a/src/sql/engine/basic/ob_topk.cpp +++ b/src/sql/engine/basic/ob_topk.cpp @@ -309,7 +309,7 @@ int64_t ObTopK::to_string_kv(char *buf, const int64_t buf_len) const int ObTopK::add_filter(ObSqlExpression *expr) { UNUSED(expr); - LOG_ERROR("limit operator should have no filter expr"); + LOG_ERROR_RET(OB_NOT_SUPPORTED, "limit operator should have no filter expr"); return OB_NOT_SUPPORTED; } diff --git a/src/sql/engine/cmd/ob_load_data_rpc.cpp b/src/sql/engine/cmd/ob_load_data_rpc.cpp index a4e7c9606..e7d0f9e00 100644 --- a/src/sql/engine/cmd/ob_load_data_rpc.cpp +++ b/src/sql/engine/cmd/ob_load_data_rpc.cpp @@ -183,7 +183,7 @@ int ObRpcLoadDataShuffleTaskCallBack::process() { } void ObRpcLoadDataShuffleTaskCallBack::on_timeout() { - LOG_WARN("LOAD DATA main thread shuffle task rpc timeout"); + LOG_WARN_RET(OB_TIMEOUT, "LOAD DATA main thread shuffle task rpc timeout"); if (OB_NOT_NULL(handle_)) { handle_->result.flags_.set_bit(ObTaskResFlag::RPC_TIMEOUT); } @@ -230,12 +230,12 @@ void ObRpcLoadDataInsertTaskCallBack::set_args(const Request &arg) void ObRpcLoadDataInsertTaskCallBack::on_timeout() { int64_t task_id = -2; //undefined if (OB_ISNULL(insert_task_)) { - LOG_ERROR("insert task is null on timeout"); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "insert task is null on timeout"); } else { task_id = insert_task_->task_id_; insert_task_->result_.flags_.set_bit(ObTaskResFlag::RPC_TIMEOUT); } - LOG_WARN("LOAD DATA main thread insert task rpc timeout", K(task_id)); + LOG_WARN_RET(OB_TIMEOUT, "LOAD DATA main thread insert task rpc timeout", K(task_id)); release_resouce(); } @@ -526,18 +526,18 @@ void ObParallelTaskController::wait_all_task_finish(const char *task_name, int64 if (0 == wait_duration_ms % 1000) { int64_t current_ts = ObTimeUtil::current_time(); if (current_ts > until_ts) { - LOG_ERROR("waiting load data task too long and exceed max waiting timestamp", + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "waiting load data task too long and exceed max waiting timestamp", K(begin_ts), K(until_ts), K(current_ts)); } } if (!is_too_long && wait_duration_ms > 10 * 1000) { is_too_long = true; - LOG_WARN("LOAD DATA, waiting task finish too long", + LOG_WARN_RET(OB_ERR_UNEXPECTED, "LOAD DATA, waiting task finish too long", K(task_name), K(processing_count), K(wait_duration_ms), K(until_ts)); } } if (is_too_long) { - LOG_WARN("LOAD DATA finish waitting long task", K(wait_duration_ms)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "LOAD DATA finish waitting long task", K(wait_duration_ms)); } } diff --git a/src/sql/engine/cmd/ob_load_data_utils.cpp b/src/sql/engine/cmd/ob_load_data_utils.cpp index 344dda024..098c7736a 100644 --- a/src/sql/engine/cmd/ob_load_data_utils.cpp +++ b/src/sql/engine/cmd/ob_load_data_utils.cpp @@ -213,7 +213,7 @@ ObString ObLoadDataUtils::escape_quotation(const ObString &value, ObDataBuffer & ObString result; if (OB_ISNULL(buf)) { - LOG_WARN("data buf is not inited"); + LOG_WARN_RET(OB_NOT_INIT, "data buf is not inited"); } else { //check if escape is needed bool need_escape = false; @@ -242,7 +242,7 @@ ObString ObLoadDataUtils::escape_quotation(const ObString &value, ObDataBuffer & escape_sm.shift_by_input(*(src + i)); } if (OB_UNLIKELY(pos >= data_buf.get_capacity())) { - LOG_ERROR("data is too long"); //this should never happened, just for protection + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "data is too long"); //this should never happened, just for protection result.reset(); } else { result.assign_ptr(buf, static_cast(pos)); @@ -269,7 +269,7 @@ bool ObKMPStateMachine::scan_buf(char *&cur_pos, const char *buf_end) { bool matched = false; if (OB_UNLIKELY(!is_inited_ || NULL == cur_pos)) { - LOG_ERROR("ObKmpStateMachine not inited.", K(cur_pos), K(buf_end)); + LOG_ERROR_RET(OB_NOT_INIT, "ObKmpStateMachine not inited.", K(cur_pos), K(buf_end)); } else { for (;!matched && cur_pos < buf_end; cur_pos++) { while (matched_pos_ > 0 && *cur_pos != str_[matched_pos_]) { diff --git a/src/sql/engine/cmd/ob_load_data_utils.h b/src/sql/engine/cmd/ob_load_data_utils.h index d9938a444..b91c45941 100644 --- a/src/sql/engine/cmd/ob_load_data_utils.h +++ b/src/sql/engine/cmd/ob_load_data_utils.h @@ -249,7 +249,7 @@ public: { bool ret_bool = false; if (OB_UNLIKELY(!is_inited_)) { - SQL_ENG_LOG(ERROR, "ObKmpSeparatorDetector not inited."); + SQL_ENG_LOG_RET(ERROR, common::OB_NOT_INIT, "ObKmpSeparatorDetector not inited."); } else { while (matched_pos_ > 0 && c != str_[matched_pos_]) { matched_pos_ = next_[matched_pos_]; diff --git a/src/sql/engine/connect_by/ob_cnnt_by_pump.h b/src/sql/engine/connect_by/ob_cnnt_by_pump.h index efa6cafc7..33755d0ef 100644 --- a/src/sql/engine/connect_by/ob_cnnt_by_pump.h +++ b/src/sql/engine/connect_by/ob_cnnt_by_pump.h @@ -32,7 +32,7 @@ private: virtual ~MallocWrapper() { if (OB_UNLIKELY(alloc_cnt_ != 0)) { - OB_LOG(WARN, "memory expanded in cby execution.", K(alloc_cnt_)); + OB_LOG_RET(WARN, common::OB_ERR_UNEXPECTED, "memory expanded in cby execution.", K(alloc_cnt_)); } } void *alloc(const int64_t sz) 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 f70df541c..25be92794 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 @@ -43,7 +43,7 @@ bool ObConnectByOpBFSPump::RowComparer::operator()(const PumpNode &pump_node1, c || OB_ISNULL(r) || OB_UNLIKELY(l->cnt_ != r->cnt_)) { ret_ = OB_ERR_UNEXPECTED; - LOG_WARN("invalid parameter", KPC(l), KPC(r), K(ret_)); + LOG_WARN_RET(ret_, "invalid parameter", KPC(l), KPC(r), K(ret_)); } else { const ObDatum *lcells = l->cells(); const ObDatum *rcells = r->cells(); diff --git a/src/sql/engine/dml/ob_table_delete_op.cpp b/src/sql/engine/dml/ob_table_delete_op.cpp index 50a8a7c5f..1f55a047a 100644 --- a/src/sql/engine/dml/ob_table_delete_op.cpp +++ b/src/sql/engine/dml/ob_table_delete_op.cpp @@ -332,7 +332,7 @@ int ObTableDeleteOp::check_delete_affected_row() ret = OB_ERR_DEFENSIVE_CHECK; ObString func_name = ObString::make_string("check_delete_affected_row"); LOG_USER_ERROR(OB_ERR_DEFENSIVE_CHECK, func_name.length(), func_name.ptr()); - LOG_ERROR("Fatal Error!!! data table delete affected row is not match with index table", + LOG_DBA_ERROR(OB_ERR_DEFENSIVE_CHECK, "msg", "Fatal Error!!! data table delete affected row is not match with index table", K(ret), K(primary_write_rows), K(index_write_rows), KPC(primary_del_ctdef), K(primary_del_rtdef), KPC(index_del_ctdef), K(index_del_rtdef)); @@ -343,7 +343,7 @@ int ObTableDeleteOp::check_delete_affected_row() ret = OB_ERR_DEFENSIVE_CHECK; ObString func_name = ObString::make_string("check_delete_affected_row"); LOG_USER_ERROR(OB_ERR_DEFENSIVE_CHECK, func_name.length(), func_name.ptr()); - LOG_ERROR("Fatal Error!!! data table delete affected row is not match with found rows", + LOG_DBA_ERROR(OB_ERR_DEFENSIVE_CHECK, "msg", "Fatal Error!!! data table delete affected row is not match with found rows", K(ret), K(primary_write_rows), K(primary_del_rtdef.cur_row_num_), KPC(primary_del_ctdef), K(primary_del_rtdef)); } diff --git a/src/sql/engine/dml/ob_table_insert_op.cpp b/src/sql/engine/dml/ob_table_insert_op.cpp index a25eb0d11..5d25c8016 100644 --- a/src/sql/engine/dml/ob_table_insert_op.cpp +++ b/src/sql/engine/dml/ob_table_insert_op.cpp @@ -355,7 +355,7 @@ OB_INLINE int ObTableInsertOp::check_insert_affected_row() ret = OB_ERR_DEFENSIVE_CHECK; ObString func_name = ObString::make_string("check_insert_affected_row"); LOG_USER_ERROR(OB_ERR_DEFENSIVE_CHECK, func_name.length(), func_name.ptr()); - LOG_ERROR("Fatal Error!!! data table insert affected row is not match with index table", K(ret), + LOG_DBA_ERROR(OB_ERR_DEFENSIVE_CHECK, "msg", "Fatal Error!!! data table insert affected row is not match with index table", K(ret), "primary_affected_rows", pri_rtdef.das_rtdef_.affected_rows_, "index_affected_rows", idx_rtdef.das_rtdef_.affected_rows_, "primary_ins_ctdef", pri_ctdef, @@ -369,7 +369,7 @@ OB_INLINE int ObTableInsertOp::check_insert_affected_row() ret = OB_ERR_DEFENSIVE_CHECK; ObString func_name = ObString::make_string("check_insert_affected_row"); LOG_USER_ERROR(OB_ERR_DEFENSIVE_CHECK, func_name.length(), func_name.ptr()); - LOG_ERROR("Fatal Error!!! data table insert affected row is not match with found rows", K(ret), + LOG_DBA_ERROR(OB_ERR_DEFENSIVE_CHECK, "msg", "Fatal Error!!! data table insert affected row is not match with found rows", K(ret), "primary_affected_rows", pri_rtdef.das_rtdef_.affected_rows_, "primary_ins_ctdef", pri_ctdef, "primary_ins_rtdef", pri_rtdef); diff --git a/src/sql/engine/dml/ob_table_insert_up_op.cpp b/src/sql/engine/dml/ob_table_insert_up_op.cpp index 9e4e48afb..c707104a2 100644 --- a/src/sql/engine/dml/ob_table_insert_up_op.cpp +++ b/src/sql/engine/dml/ob_table_insert_up_op.cpp @@ -80,7 +80,7 @@ OB_DEF_SERIALIZE_SIZE(ObTableInsertUpSpec) if (insert_up_ctdef != nullptr) { OB_UNIS_ADD_LEN(*insert_up_ctdef); } else { - LOG_WARN("insert_up_ctdef is null, unexpected"); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "insert_up_ctdef is null, unexpected"); } } OB_UNIS_ADD_LEN(conflict_checker_ctdef_); diff --git a/src/sql/engine/dml/ob_table_replace_op.cpp b/src/sql/engine/dml/ob_table_replace_op.cpp index e6378735f..7588940a5 100644 --- a/src/sql/engine/dml/ob_table_replace_op.cpp +++ b/src/sql/engine/dml/ob_table_replace_op.cpp @@ -86,7 +86,7 @@ OB_DEF_SERIALIZE_SIZE(ObTableReplaceSpec) if (replace_ctdef != nullptr) { OB_UNIS_ADD_LEN(*replace_ctdef); } else { - LOG_WARN("replace_ctdef is null unexpected"); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "replace_ctdef is null unexpected"); } } OB_UNIS_ADD_LEN(only_one_unique_key_); diff --git a/src/sql/engine/dml/ob_table_update_op.cpp b/src/sql/engine/dml/ob_table_update_op.cpp index 821804499..7e51dc4db 100644 --- a/src/sql/engine/dml/ob_table_update_op.cpp +++ b/src/sql/engine/dml/ob_table_update_op.cpp @@ -402,7 +402,7 @@ int ObTableUpdateOp::check_update_affected_row() ret = OB_ERR_DEFENSIVE_CHECK; ObString func_name = ObString::make_string("check_update_affected_row"); LOG_USER_ERROR(OB_ERR_DEFENSIVE_CHECK, func_name.length(), func_name.ptr()); - LOG_ERROR("Fatal Error!!! data table update affected row is not match with index table", + LOG_DBA_ERROR(OB_ERR_DEFENSIVE_CHECK, "msg", "Fatal Error!!! data table update affected row is not match with index table", K(ret), K(primary_write_rows), K(index_write_rows), KPC(primary_upd_ctdef), K(primary_upd_rtdef), KPC(index_upd_ctdef), K(index_upd_rtdef)); @@ -413,7 +413,7 @@ int ObTableUpdateOp::check_update_affected_row() ret = OB_ERR_DEFENSIVE_CHECK; ObString func_name = ObString::make_string("check_update_affected_row"); LOG_USER_ERROR(OB_ERR_DEFENSIVE_CHECK, func_name.length(), func_name.ptr()); - LOG_ERROR("Fatal Error!!! data table update affected row is not match with found rows", + LOG_DBA_ERROR(OB_ERR_DEFENSIVE_CHECK, "msg", "Fatal Error!!! data table update affected row is not match with found rows", K(ret), K(primary_write_rows), K(primary_upd_rtdef.found_rows_), KPC(primary_upd_ctdef), K(primary_upd_rtdef)); } diff --git a/src/sql/engine/expr/ob_expr.h b/src/sql/engine/expr/ob_expr.h index 0391c2648..2683928ef 100644 --- a/src/sql/engine/expr/ob_expr.h +++ b/src/sql/engine/expr/ob_expr.h @@ -456,7 +456,7 @@ public: len = 0; int64_t idx = batch_idx_mask_ & datum_idx; if (OB_UNLIKELY(!ObDynReserveBuf::supported(datum_meta_.type_))) { - SQL_ENG_LOG(ERROR, "unexpected alloc string result memory called", K(*this)); + SQL_ENG_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "unexpected alloc string result memory called", K(*this)); } else { ObDynReserveBuf *drb = reinterpret_cast( ctx.frames_[frame_idx_] + dyn_buf_header_offset_ + sizeof(ObDynReserveBuf) * idx); @@ -1080,7 +1080,7 @@ inline const char *get_vectorized_row_str(ObEvalCtx &eval_ctx, mgr->inc_level(); CStringBufMgr::BufNode *node = mgr->acquire(); if (OB_ISNULL(node)) { - LIB_LOG(ERROR, "buffer is NULL"); + LIB_LOG_RET(ERROR, OB_ALLOCATE_MEMORY_FAILED, "buffer is NULL"); } else { buffer = node->buf_; databuff_printf(buffer, CStringBufMgr::BUF_SIZE, pos, "vectorized_rows(%ld)=", index); diff --git a/src/sql/engine/expr/ob_expr_dll_udf.cpp b/src/sql/engine/expr/ob_expr_dll_udf.cpp index 7207ae2d6..9a5c6fb64 100644 --- a/src/sql/engine/expr/ob_expr_dll_udf.cpp +++ b/src/sql/engine/expr/ob_expr_dll_udf.cpp @@ -228,7 +228,7 @@ OB_DEF_SERIALIZE_SIZE(ObExprDllUdf) const ObUdfConstArgs &args = calculable_results_.at(j); const ObSqlExpression *expr = args.sql_calc_; if (OB_ISNULL(expr)) { - LOG_ERROR("udf normal expr is null"); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "udf normal expr is null"); } else { len += expr->get_serialize_size(); } diff --git a/src/sql/engine/expr/ob_expr_like.cpp b/src/sql/engine/expr/ob_expr_like.cpp index b7fe78fd2..d8ebfc472 100644 --- a/src/sql/engine/expr/ob_expr_like.cpp +++ b/src/sql/engine/expr/ob_expr_like.cpp @@ -791,7 +791,7 @@ int64_t ObExprLike::match_with_instr_mode(const ObString &text, const InstrInfo text_len -= new_text != NULL ? new_text - text_ptr + instr_len[idx] : 0; if (OB_UNLIKELY(text_len < 0)) { match = false; - LOG_ERROR("unexpected result of memmem", K(text), + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "unexpected result of memmem", K(text), K(ObString(instr_len[idx], instr_pos[idx]))); } else { match = new_text != NULL; diff --git a/src/sql/engine/expr/ob_expr_lower.cpp b/src/sql/engine/expr/ob_expr_lower.cpp index 35c5705d5..9bc06a2e3 100644 --- a/src/sql/engine/expr/ob_expr_lower.cpp +++ b/src/sql/engine/expr/ob_expr_lower.cpp @@ -220,7 +220,7 @@ int32_t ObExprLower::get_case_mutiply(const ObCollationType cs_type) const { int32_t mutiply_num = 0; if (OB_UNLIKELY(!ObCharset::is_valid_collation(cs_type))) { - LOG_WARN("invalid charset", K(cs_type)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "invalid charset", K(cs_type)); } else { mutiply_num = ObCharset::get_charset(cs_type)->casedn_multiply; } @@ -245,7 +245,7 @@ int32_t ObExprUpper::get_case_mutiply(const ObCollationType cs_type) const { int32_t mutiply_num = 0; if (OB_UNLIKELY(!ObCharset::is_valid_collation(cs_type))) { - LOG_WARN("invalid charset", K(cs_type)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "invalid charset", K(cs_type)); } else { mutiply_num = ObCharset::get_charset(cs_type)->caseup_multiply; } @@ -537,7 +537,7 @@ int32_t ObExprNlsLower::get_case_mutiply(const ObCollationType cs_type) const { int32_t mutiply_num = 0; if (OB_UNLIKELY(!ObCharset::is_valid_collation(cs_type))) { - LOG_WARN("invalid charset", K(cs_type)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "invalid charset", K(cs_type)); } else { mutiply_num = ObCharset::get_charset(cs_type)->casedn_multiply; } @@ -579,7 +579,7 @@ int32_t ObExprNlsUpper::get_case_mutiply(const ObCollationType cs_type) const { int32_t mutiply_num = 0; if (OB_UNLIKELY(!ObCharset::is_valid_collation(cs_type))) { - LOG_WARN("invalid charset", K(cs_type)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "invalid charset", K(cs_type)); } else { mutiply_num = ObCharset::get_charset(cs_type)->casedn_multiply; } diff --git a/src/sql/engine/expr/ob_expr_operator.h b/src/sql/engine/expr/ob_expr_operator.h index c4def820b..4dbdd5ca4 100644 --- a/src/sql/engine/expr/ob_expr_operator.h +++ b/src/sql/engine/expr/ob_expr_operator.h @@ -69,7 +69,7 @@ public: calc_meta_(calc_meta), max_length_(max_length), flag_(flag) { if (OB_UNLIKELY(calc_meta.get_type() >= common::ObMaxType)) { - SQL_LOG(ERROR, "the wrong type"); + SQL_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "the wrong type"); } } virtual ~ObFuncInputType() {} @@ -712,7 +712,7 @@ inline int ObExprOperator::calc_result_type0(ObExprResType &type, UNUSED(type); UNUSED(type_ctx); UNUSED(arg_arrs); - SQL_LOG(WARN, "not implement"); + SQL_LOG_RET(WARN, common::OB_NOT_IMPLEMENT, "not implement"); return common::OB_NOT_IMPLEMENT; } @@ -725,7 +725,7 @@ inline int ObExprOperator::calc_result_type1(ObExprResType &type, UNUSED(type1); UNUSED(type_ctx); UNUSED(arg_arrs); - SQL_LOG(WARN, "not implement"); + SQL_LOG_RET(WARN, common::OB_NOT_IMPLEMENT, "not implement"); return common::OB_NOT_IMPLEMENT; } @@ -740,7 +740,7 @@ inline int ObExprOperator::calc_result_type2(ObExprResType &type, UNUSED(type2); UNUSED(type_ctx); UNUSED(arg_arrs); - SQL_LOG(WARN, "not implement"); + SQL_LOG_RET(WARN, common::OB_NOT_IMPLEMENT, "not implement"); return common::OB_NOT_IMPLEMENT; } @@ -757,7 +757,7 @@ inline int ObExprOperator::calc_result_type3(ObExprResType &type, UNUSED(type3); UNUSED(type_ctx); UNUSED(arg_arrs); - SQL_LOG(WARN, "not implement"); + SQL_LOG_RET(WARN, common::OB_NOT_IMPLEMENT, "not implement"); return common::OB_NOT_IMPLEMENT; } @@ -772,7 +772,7 @@ inline int ObExprOperator::calc_result_typeN(ObExprResType &type, UNUSED(param_num); UNUSED(type_ctx); UNUSED(arg_arrs); - SQL_LOG(ERROR, "not implement", K(type_), K(get_type_name(type_))); + SQL_LOG_RET(ERROR, common::OB_NOT_IMPLEMENT, "not implement", K(type_), K(get_type_name(type_))); return common::OB_NOT_IMPLEMENT; } @@ -781,7 +781,7 @@ inline int ObExprOperator::calc_result_type0(ObExprResType &type, { UNUSED(type); UNUSED(type_ctx); - SQL_LOG(WARN, "not implement"); + SQL_LOG_RET(WARN, common::OB_NOT_IMPLEMENT, "not implement"); return common::OB_NOT_IMPLEMENT; } @@ -792,7 +792,7 @@ inline int ObExprOperator::calc_result_type1(ObExprResType &type, UNUSED(type); UNUSED(type1); UNUSED(type_ctx); - SQL_LOG(WARN, "not implement"); + SQL_LOG_RET(WARN, common::OB_NOT_IMPLEMENT, "not implement"); return common::OB_NOT_IMPLEMENT; } @@ -805,7 +805,7 @@ inline int ObExprOperator::calc_result_type2(ObExprResType &type, UNUSED(type1); UNUSED(type2); UNUSED(type_ctx); - SQL_LOG(WARN, "not implement"); + SQL_LOG_RET(WARN, common::OB_NOT_IMPLEMENT, "not implement"); return common::OB_NOT_IMPLEMENT; } @@ -820,7 +820,7 @@ inline int ObExprOperator::calc_result_type3(ObExprResType &type, UNUSED(type2); UNUSED(type3); UNUSED(type_ctx); - SQL_LOG(WARN, "not implement"); + SQL_LOG_RET(WARN, common::OB_NOT_IMPLEMENT, "not implement"); return common::OB_NOT_IMPLEMENT; } @@ -833,7 +833,7 @@ inline int ObExprOperator::calc_result_typeN(ObExprResType &type, UNUSED(types); UNUSED(param_num); UNUSED(type_ctx); - SQL_LOG(ERROR, "not implement", K(type_), K(get_type_name(type_))); + SQL_LOG_RET(ERROR, common::OB_NOT_IMPLEMENT, "not implement", K(type_), K(get_type_name(type_))); return common::OB_NOT_IMPLEMENT; } @@ -945,7 +945,7 @@ inline void ObExprOperator::calc_result_flagN(ObExprResType &type, bool not_null = true; if (OB_ISNULL(types) || OB_UNLIKELY(param_num < 0)) { - SQL_LOG(ERROR, "null types or the wrong param_num"); + SQL_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "null types or the wrong param_num"); } else { for (int64_t i = 0; i < param_num; ++i) { if (!types[i].has_result_flag(NOT_NULL_FLAG)) { @@ -2162,14 +2162,14 @@ private: if (lib::is_oracle_mode()) { \ if (common::OB_SUCCESS != (expr_ctx).my_session_-> \ get_collation_server(cast_coll_type)) { \ - SQL_LOG(ERROR, "fail to get server collation"); \ + SQL_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "fail to get server collation"); \ cast_coll_type = ObCharset::get_default_collation( \ ObCharset::get_default_charset()); \ } \ } else if (lib::is_mysql_mode()) { \ if (common::OB_SUCCESS != (expr_ctx).my_session_-> \ get_collation_connection(cast_coll_type)) { \ - SQL_LOG(ERROR, "fail to get collation_connection, " \ + SQL_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "fail to get collation_connection, " \ "set it to default collation"); \ cast_coll_type = ObCharset::get_default_collation( \ ObCharset::get_default_charset()); \ @@ -2177,10 +2177,10 @@ private: } \ if (common::OB_SUCCESS != ObSQLUtils::set_compatible_cast_mode( \ (expr_ctx).my_session_, cp_cast_mode_)) { \ - SQL_LOG(ERROR, "fail to get compatible mode for cast_mode"); \ + SQL_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "fail to get compatible mode for cast_mode"); \ } \ } else { \ - SQL_LOG(WARN, "session is null"); \ + SQL_LOG_RET(WARN, common::OB_ERR_UNEXPECTED, "session is null"); \ cast_coll_type = ObCharset::get_system_collation(); \ } \ const ObDataTypeCastParams dtc_params = ObBasicSessionInfo::create_dtc_params((expr_ctx).my_session_);\ diff --git a/src/sql/engine/expr/ob_expr_operator_factory.cpp b/src/sql/engine/expr/ob_expr_operator_factory.cpp index 499a9d379..f292c131b 100644 --- a/src/sql/engine/expr/ob_expr_operator_factory.cpp +++ b/src/sql/engine/expr/ob_expr_operator_factory.cpp @@ -396,7 +396,7 @@ static AllocFunc OP_ALLOC_ORCL[T_MAX_OP]; [&]() { \ OpClass op(alloc); \ if (OB_UNLIKELY(i >= EXPR_OP_NUM)) { \ - LOG_ERROR("out of the max expr"); \ + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "out of the max expr"); \ } else { \ NAME_TYPES[i].name_ = op.get_name(); \ NAME_TYPES[i].type_ = op.get_type(); \ @@ -414,9 +414,9 @@ static AllocFunc OP_ALLOC_ORCL[T_MAX_OP]; do { \ [&]() { \ if (OB_UNLIKELY((idx_mysql) >= EXPR_OP_NUM)) { \ - LOG_ERROR("out of the max expr"); \ + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "out of the max expr"); \ } else if (OB_ISNULL(OP_ALLOC[OriOpType])) { \ - LOG_ERROR("OriOp is not registered yet", K(OriOpType), K(NewOpType)); \ + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "OriOp is not registered yet", K(OriOpType), K(NewOpType)); \ } else { \ NAME_TYPES[(idx_mysql)].name_ = NewOpName; \ NAME_TYPES[(idx_mysql)].type_ = NewOpType; \ @@ -431,7 +431,7 @@ static AllocFunc OP_ALLOC_ORCL[T_MAX_OP]; [&]() { \ OpClass op(alloc); \ if (OB_UNLIKELY(j >= EXPR_OP_NUM)) { \ - LOG_ERROR("out of the max expr"); \ + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "out of the max expr"); \ } else { \ NAME_TYPES_ORCL[j].name_ = op.get_name(); \ NAME_TYPES_ORCL[j].type_ = op.get_type(); \ @@ -447,9 +447,9 @@ static AllocFunc OP_ALLOC_ORCL[T_MAX_OP]; do { \ [&]() { \ if (OB_UNLIKELY((idx_oracle) >= EXPR_OP_NUM)) { \ - LOG_ERROR("out of the max expr"); \ + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "out of the max expr"); \ } else if (OB_ISNULL(OP_ALLOC_ORCL[OriOpType])) { \ - LOG_ERROR("OriOp is not registered yet", K(OriOpType), K(NewOpType)); \ + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "OriOp is not registered yet", K(OriOpType), K(NewOpType)); \ } else { \ NAME_TYPES_ORCL[(idx_oracle)].name_ = NewOpName; \ NAME_TYPES_ORCL[(idx_oracle)].type_ = NewOpType; \ diff --git a/src/sql/engine/expr/ob_expr_promotion_util.cpp b/src/sql/engine/expr/ob_expr_promotion_util.cpp index dd5b6b5ef..dd0399108 100644 --- a/src/sql/engine/expr/ob_expr_promotion_util.cpp +++ b/src/sql/engine/expr/ob_expr_promotion_util.cpp @@ -33,7 +33,7 @@ struct MyIntegrityChecker3 for (int tc1 = ObNullTC; tc1 < ObMaxTC; tc1++) { for (int tc2 = ObNullTC; tc2 < tc1; tc2++) { if (DIV_TYPE_PROMOTION[tc1][tc2] != DIV_TYPE_PROMOTION[tc2][tc1]) { - LOG_ERROR("DIV_TYPE_PROMOTION is wrong", "ret", OB_ERR_UNEXPECTED, + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "DIV_TYPE_PROMOTION is wrong", "ret", OB_ERR_UNEXPECTED, K(tc1), K(tc2), "tc1 => tc2", DIV_TYPE_PROMOTION[tc1][tc2], "tc2 => tc1", DIV_TYPE_PROMOTION[tc2][tc1]); diff --git a/src/sql/engine/expr/ob_postfix_expression.cpp b/src/sql/engine/expr/ob_postfix_expression.cpp index 99548173e..31aae0e26 100644 --- a/src/sql/engine/expr/ob_postfix_expression.cpp +++ b/src/sql/engine/expr/ob_postfix_expression.cpp @@ -153,7 +153,7 @@ void ObPostExprItem::set_op(ObIAllocator &alloc, const char *op_name, int32_t re { ObExprOperatorType type = ObExprOperatorFactory::get_type_by_name(ObString::make_string(op_name)); if (T_INVALID == type) { - LOG_ERROR("invaid op type", K(type)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "invaid op type", K(type)); right_to_die_or_duty_to_live(); } else { ObExprOperator *op = NULL; @@ -189,7 +189,7 @@ int64_t ObPostExprItem::to_string(char *buf, const int64_t buf_len) const if (IS_EXPR_OP(item_type_)) { J_OW(J_KV(N_OP, *get_expr_operator())); } else { - LOG_WARN("unknown item", K_(item_type)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "unknown item", K_(item_type)); } break; } @@ -274,7 +274,7 @@ DEFINE_GET_SERIALIZE_SIZE(ObPostExprItem) } else if (IS_EXPR_OP(item_type_)) { OB_UNIS_ADD_LEN(*v2_.op_); } else { - LOG_ERROR("Unknown expr item to serialize", K_(item_type)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "Unknown expr item to serialize", K_(item_type)); } return len; } diff --git a/src/sql/engine/join/ob_hash_join_op.h b/src/sql/engine/join/ob_hash_join_op.h index 03d73ba4a..c7f1a376f 100644 --- a/src/sql/engine/join/ob_hash_join_op.h +++ b/src/sql/engine/join/ob_hash_join_op.h @@ -225,7 +225,7 @@ public: } } else if (SyncValueMode::FIRST_MODE == val_mode) { } else { - OB_LOG(ERROR, "the value mode is not supported", K(val_mode)); + OB_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "the value mode is not supported", K(val_mode)); } if (n_times + 1 >= shared_hj_info->sqc_thread_count_) { // last time, set final value diff --git a/src/sql/engine/ob_exec_context.cpp b/src/sql/engine/ob_exec_context.cpp index fc9931508..436492a63 100644 --- a/src/sql/engine/ob_exec_context.cpp +++ b/src/sql/engine/ob_exec_context.cpp @@ -466,7 +466,7 @@ ObStmtFactory *ObExecContext::get_stmt_factory() { if (OB_ISNULL(stmt_factory_)) { if (OB_ISNULL(stmt_factory_ = OB_NEWx(ObStmtFactory, (&allocator_), allocator_))) { - LOG_WARN("fail to create log plan factory", K(stmt_factory_)); + LOG_WARN_RET(OB_ALLOCATE_MEMORY_FAILED, "fail to create log plan factory", K(stmt_factory_)); } } else { // do nothing @@ -478,7 +478,7 @@ ObRawExprFactory *ObExecContext::get_expr_factory() { if (OB_ISNULL(expr_factory_)) { if (OB_ISNULL(expr_factory_ = OB_NEWx(ObRawExprFactory, (&allocator_), allocator_))) { - LOG_WARN("fail to create log plan factory", K(expr_factory_)); + LOG_WARN_RET(OB_ALLOCATE_MEMORY_FAILED, "fail to create log plan factory", K(expr_factory_)); } } else { // do nothing diff --git a/src/sql/engine/ob_exec_context.h b/src/sql/engine/ob_exec_context.h index 27de69031..70a957742 100644 --- a/src/sql/engine/ob_exec_context.h +++ b/src/sql/engine/ob_exec_context.h @@ -42,7 +42,7 @@ op_ctx = new (ptr) ctx_type(exec_ctx); \ int64_t tenant_id = GET_MY_SESSION(exec_ctx)->get_effective_tenant_id(); \ if (oceanbase::common::OB_SUCCESS != (_ret_ = op_ctx->init_base(tenant_id))) { \ - SQL_ENG_LOG(WARN, "init operator ctx failed", K(_ret_)); \ + SQL_ENG_LOG_RET(WARN, _ret_, "init operator ctx failed", K(_ret_)); \ } else { \ op_ctx->set_op_id(op_id); \ op_ctx->set_op_type(op_type); \ diff --git a/src/sql/engine/ob_phy_operator_type.cpp b/src/sql/engine/ob_phy_operator_type.cpp index 39ffed2d4..a918243d4 100644 --- a/src/sql/engine/ob_phy_operator_type.cpp +++ b/src/sql/engine/ob_phy_operator_type.cpp @@ -49,7 +49,7 @@ void ObPhyOperatorTypeDescSet::set_type_str(ObPhyOperatorType type, const char * if (OB_LIKELY(type >= PHY_INVALID && type < PHY_END)) { set_[type].name_ = type_str; } else { - LOG_WARN("invalid phy operator", K(type)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "invalid phy operator", K(type)); } } diff --git a/src/sql/engine/ob_physical_plan.cpp b/src/sql/engine/ob_physical_plan.cpp index 9fbacf56e..50a9a0e66 100644 --- a/src/sql/engine/ob_physical_plan.cpp +++ b/src/sql/engine/ob_physical_plan.cpp @@ -962,7 +962,7 @@ int64_t ObPhysicalPlan::get_pre_expr_ref_count() const void ObPhysicalPlan::inc_pre_expr_ref_count() { if (OB_ISNULL(stat_.pre_cal_expr_handler_)) { - LOG_WARN("pre-calcuable expression handler has not been initalized."); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "pre-calcuable expression handler has not been initalized."); } else { stat_.pre_cal_expr_handler_->inc_ref_cnt(); } diff --git a/src/sql/engine/ob_serializable_function.cpp b/src/sql/engine/ob_serializable_function.cpp index bc9120927..30ec25faa 100644 --- a/src/sql/engine/ob_serializable_function.cpp +++ b/src/sql/engine/ob_serializable_function.cpp @@ -45,7 +45,7 @@ bool check_all_ser_func_registered() } } if (!found) { - LOG_ERROR("serialize function array not registered", "ObSerFuncArrayID", i); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "serialize function array not registered", "ObSerFuncArrayID", i); all_registered = false; } } @@ -99,7 +99,7 @@ ObFuncSerialization::FuncIdxTable &ObFuncSerialization::create_hash_table() FuncIdxTable *ht = static_cast(ob_malloc(sizeof(FuncIdxTable), attr)); FuncIdx *buckets = static_cast(ob_malloc(sizeof(FuncIdx) * bucket_size, attr)); if (NULL == ht || NULL == buckets) { - LOG_ERROR("allocate memory failed"); + LOG_ERROR_RET(OB_ALLOCATE_MEMORY_FAILED, "allocate memory failed"); if (NULL != ht) { ob_free(ht); } @@ -137,7 +137,7 @@ ObFuncSerialization::FuncIdxTable &ObFuncSerialization::create_hash_table() conflicts += 1; } if (i + 1 == ht->bucket_size_) { - LOG_ERROR("hash table is full, impossible"); + LOG_ERROR_RET(OB_ERROR, "hash table is full, impossible"); ob_abort(); } } diff --git a/src/sql/engine/ob_sql_mem_mgr_processor.cpp b/src/sql/engine/ob_sql_mem_mgr_processor.cpp index 81b3cb93a..8512e0b8e 100644 --- a/src/sql/engine/ob_sql_mem_mgr_processor.cpp +++ b/src/sql/engine/ob_sql_mem_mgr_processor.cpp @@ -329,7 +329,7 @@ int ObSqlWorkareaUtil::get_workarea_size(const ObSqlWorkAreaType wa_type, const void ObSqlMemMgrProcessor::unregister_profile_if_necessary() { if (!is_unregistered()) { - LOG_ERROR("profile is not actively unregistered", K(lbt())); + LOG_ERROR_RET(OB_ERROR, "profile is not actively unregistered", K(lbt())); unregister_profile(); } } diff --git a/src/sql/engine/ob_sql_mem_mgr_processor.h b/src/sql/engine/ob_sql_mem_mgr_processor.h index 22390bfbd..9cce5ffc4 100644 --- a/src/sql/engine/ob_sql_mem_mgr_processor.h +++ b/src/sql/engine/ob_sql_mem_mgr_processor.h @@ -152,7 +152,7 @@ public: int64_t get_dir_id() { if (dir_id_ < -1) { - SQL_ENG_LOG(ERROR, "get unexpected dir id", K(dir_id_)); + SQL_ENG_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "get unexpected dir id", K(dir_id_)); } return dir_id_; } diff --git a/src/sql/engine/ob_tenant_sql_memory_manager.cpp b/src/sql/engine/ob_tenant_sql_memory_manager.cpp index 47c4657ff..5afc1af07 100644 --- a/src/sql/engine/ob_tenant_sql_memory_manager.cpp +++ b/src/sql/engine/ob_tenant_sql_memory_manager.cpp @@ -1095,7 +1095,7 @@ bool ObTenantSqlMemoryManager::enable_auto_sql_memory_manager() LOG_TRACE("get work area policy config", K(tenant_id_), K(auto_memory_mgr), K(tmp_str), K(tenant_config->workarea_size_policy.str())); } else { - LOG_WARN("failed to init tenant config", K(tenant_id_)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "failed to init tenant config", K(tenant_id_)); } return auto_memory_mgr; } diff --git a/src/sql/engine/px/exchange/ob_px_ms_receive_op.cpp b/src/sql/engine/px/exchange/ob_px_ms_receive_op.cpp index 6783b38ec..814a10d4f 100644 --- a/src/sql/engine/px/exchange/ob_px_ms_receive_op.cpp +++ b/src/sql/engine/px/exchange/ob_px_ms_receive_op.cpp @@ -255,7 +255,7 @@ void ObPxMSReceiveOp::LocalOrderInput::clean_row_store(ObExecContext &ctx) void ObPxMSReceiveOp::LocalOrderInput::destroy() { if (nullptr != get_row_store_ || nullptr != add_row_store_) { - LOG_ERROR("unexpected status: row store is not null", K(get_row_store_), K(add_row_store_)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "unexpected status: row store is not null", K(get_row_store_), K(add_row_store_)); } get_row_store_ = nullptr; add_row_store_ = nullptr; @@ -493,7 +493,7 @@ void ObPxMSReceiveOp::GlobalOrderInput::clean_row_store( void ObPxMSReceiveOp::GlobalOrderInput::destroy() { if (nullptr != add_row_store_ || nullptr != get_row_store_) { - LOG_ERROR("unexpect status: row store is not null", K(add_row_store_), K(get_row_store_)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "unexpect status: row store is not null", K(add_row_store_), K(get_row_store_)); } get_row_store_ = nullptr; add_row_store_ = nullptr; diff --git a/src/sql/engine/px/ob_px_admission.cpp b/src/sql/engine/px/ob_px_admission.cpp index 928c9ff6d..ef2eab2e5 100644 --- a/src/sql/engine/px/ob_px_admission.cpp +++ b/src/sql/engine/px/ob_px_admission.cpp @@ -192,13 +192,13 @@ void ObPxSubAdmission::acquire(int64_t max, int64_t min, int64_t &acquired_cnt) oceanbase::omt::ObThWorker *worker = nullptr; int64_t upper_bound = 1; if (nullptr == (worker = THIS_THWORKER_SAFE)) { - LOG_ERROR("Oooops! can't find tenant. Unexpected!", K(max), K(min)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "Oooops! can't find tenant. Unexpected!", K(max), K(min)); } else if (nullptr == (tenant = worker->get_tenant())) { - LOG_ERROR("Oooops! can't find tenant. Unexpected!", KP(worker), K(max), K(min)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "Oooops! can't find tenant. Unexpected!", KP(worker), K(max), K(min)); } else { oceanbase::omt::ObTenantConfigGuard tenant_config(TENANT_CONF(tenant->id())); if (!tenant_config.is_valid()) { - LOG_WARN("get tenant config failed, use default cpu_quota_concurrency"); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "get tenant config failed, use default cpu_quota_concurrency"); upper_bound = tenant->unit_min_cpu() * 4; } else { upper_bound = tenant->unit_min_cpu() * tenant_config->cpu_quota_concurrency; diff --git a/src/sql/engine/px/ob_px_rpc_processor.cpp b/src/sql/engine/px/ob_px_rpc_processor.cpp index 1980de598..38fbee83d 100644 --- a/src/sql/engine/px/ob_px_rpc_processor.cpp +++ b/src/sql/engine/px/ob_px_rpc_processor.cpp @@ -540,7 +540,7 @@ void ObDealWithRpcTimeoutCall::deal_with_rpc_timeout_err() int a_ret = OB_SUCCESS; if (OB_UNLIKELY(OB_SUCCESS != (a_ret = retry_info_->add_invalid_server_distinctly( addr_)))) { - LOG_WARN("fail to add invalid server distinctly", K_(trace_id), K(a_ret), K_(addr)); + LOG_WARN_RET(a_ret, "fail to add invalid server distinctly", K_(trace_id), K(a_ret), K_(addr)); } } ret_ = OB_RPC_CONNECT_ERROR; diff --git a/src/sql/engine/px/ob_px_sqc_async_proxy.cpp b/src/sql/engine/px/ob_px_sqc_async_proxy.cpp index f9fd56687..f77b21acd 100644 --- a/src/sql/engine/px/ob_px_sqc_async_proxy.cpp +++ b/src/sql/engine/px/ob_px_sqc_async_proxy.cpp @@ -249,7 +249,7 @@ void ObPxSqcAsyncProxy::destroy() { } void ObPxSqcAsyncProxy::fail_process() { - LOG_WARN( + LOG_WARN_RET(OB_SUCCESS, "async sqc fails, process the callbacks that have not yet got results", K(return_cb_count_), K(callbacks_.count())); while (return_cb_count_ < callbacks_.count()) { @@ -267,7 +267,7 @@ void ObPxSqcAsyncProxy::fail_process() { } cond_.wait_us(500); } - LOG_WARN("async sqc fails, all callbacks have been processed"); + LOG_WARN_RET(OB_SUCCESS, "async sqc fails, all callbacks have been processed"); } } // namespace sql diff --git a/src/sql/engine/px/ob_px_sqc_handler.cpp b/src/sql/engine/px/ob_px_sqc_handler.cpp index dcb02b239..40b8c6a40 100644 --- a/src/sql/engine/px/ob_px_sqc_handler.cpp +++ b/src/sql/engine/px/ob_px_sqc_handler.cpp @@ -153,7 +153,7 @@ void ObPxSqcHandler::release_handler(ObPxSqcHandler *sqc_handler) { bool all_released = false; if (OB_ISNULL(sqc_handler)) { - LOG_ERROR("Get null sqc handler", K(sqc_handler)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "Get null sqc handler", K(sqc_handler)); } else if (FALSE_IT(sqc_handler->release(all_released))) { } else if (all_released) { IGNORE_RETURN sqc_handler->destroy_sqc(); diff --git a/src/sql/engine/px/ob_px_sqc_proxy.cpp b/src/sql/engine/px/ob_px_sqc_proxy.cpp index 94308709d..8a2d0d6e1 100644 --- a/src/sql/engine/px/ob_px_sqc_proxy.cpp +++ b/src/sql/engine/px/ob_px_sqc_proxy.cpp @@ -171,7 +171,7 @@ void ObPxSQCProxy::destroy() int ret_unreg = OB_SUCCESS; if (OB_SUCCESS != (ret_unreg = sqc_ctx_.msg_loop_.unregister_all_channel())) { // the following unlink actions is not safe is any unregister failure happened - LOG_ERROR("fail unregister all channel from msg_loop", KR(ret_unreg)); + LOG_ERROR_RET(ret_unreg, "fail unregister all channel from msg_loop", KR(ret_unreg)); } sample_msg_.reset(); } diff --git a/src/sql/engine/px/ob_px_task_process.cpp b/src/sql/engine/px/ob_px_task_process.cpp index 1ce0830f0..ebc5366c9 100644 --- a/src/sql/engine/px/ob_px_task_process.cpp +++ b/src/sql/engine/px/ob_px_task_process.cpp @@ -500,7 +500,7 @@ void ObPxTaskProcess::release() { if (NULL != arg_.sqc_task_ptr_) { arg_.sqc_task_ptr_->set_task_state(SQC_TASK_EXIT); } else { - LOG_ERROR("Unexpected px task process", K(arg_.sqc_task_ptr_)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "Unexpected px task process", K(arg_.sqc_task_ptr_)); } } @@ -722,9 +722,9 @@ uint64_t ObPxTaskProcess::get_session_id() const ObExecContext *exec_ctx = NULL; ObSQLSessionInfo *session = NULL; if (OB_ISNULL(exec_ctx = arg_.exec_ctx_)) { - LOG_WARN("exec ctx is NULL", K(exec_ctx)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "exec ctx is NULL", K(exec_ctx)); } else if (OB_ISNULL(session = exec_ctx->get_my_session())) { - LOG_WARN("session is NULL", K(exec_ctx)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "session is NULL", K(exec_ctx)); } else { session_id = session->get_sessid(); } @@ -737,9 +737,9 @@ uint64_t ObPxTaskProcess::get_tenant_id() const ObExecContext *exec_ctx = NULL; ObSQLSessionInfo *session = NULL; if (OB_ISNULL(exec_ctx = arg_.exec_ctx_)) { - LOG_WARN("exec ctx is NULL", K(exec_ctx)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "exec ctx is NULL", K(exec_ctx)); } else if (OB_ISNULL(session = exec_ctx->get_my_session())) { - LOG_WARN("session is NULL", K(exec_ctx)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "session is NULL", K(exec_ctx)); } else { tenant_id = session->get_effective_tenant_id(); } diff --git a/src/sql/engine/px/ob_px_worker.cpp b/src/sql/engine/px/ob_px_worker.cpp index 9cec2c06e..8cd0b9b19 100644 --- a/src/sql/engine/px/ob_px_worker.cpp +++ b/src/sql/engine/px/ob_px_worker.cpp @@ -157,8 +157,13 @@ void PxWorkerFunctor::operator ()() ObPxInterruptGuard px_int_guard(task_arg_.task_.get_interrupt_id().px_interrupt_id_); // 环境初始化 ObCurTraceId::set(env_arg_.get_trace_id()); - if (OB_LOG_LEVEL_NONE != env_arg_.get_log_level() && enable_trace_log) { - ObThreadLogLevelUtils::init(env_arg_.get_log_level()); + // Do not set thread local log level while log level upgrading (OB_LOGGER.is_info_as_wdiag) + if (OB_LOGGER.is_info_as_wdiag()) { + ObThreadLogLevelUtils::clear(); + } else { + if (OB_LOG_LEVEL_NONE != env_arg_.get_log_level() && enable_trace_log) { + ObThreadLogLevelUtils::init(env_arg_.get_log_level()); + } } THIS_WORKER.set_group_id(env_arg_.get_group_id()); MTL_SWITCH(sqc_handler->get_tenant_id()) { diff --git a/src/sql/engine/recursive_cte/ob_search_method_op.h b/src/sql/engine/recursive_cte/ob_search_method_op.h index 095c77de3..fa338d187 100644 --- a/src/sql/engine/recursive_cte/ob_search_method_op.h +++ b/src/sql/engine/recursive_cte/ob_search_method_op.h @@ -92,7 +92,7 @@ public: || OB_ISNULL(r) || (l->cnt_ != r->cnt_)) { *err_ = OB_ERR_UNEXPECTED; - SQL_LOG(WARN, "invalid parameter", KPC(l), KPC(r), K(*err_)); + SQL_LOG_RET(WARN, *err_, "invalid parameter", KPC(l), KPC(r), K(*err_)); } else { const ObDatum *lcells = l->cells(); const ObDatum *rcells = r->cells(); @@ -101,7 +101,7 @@ public: const int64_t idx = sort_collations_.at(i).field_idx_; if (idx >= exprs_.count()) { *err_ = OB_ERR_UNEXPECTED; - SQL_LOG(WARN, "compare column id greater than exprs count", K(*err_), + SQL_LOG_RET(WARN, *err_, "compare column id greater than exprs count", K(*err_), K(idx), K(exprs_.count())); } else { bool null_first = (NULL_FIRST == sort_collations_.at(i).null_pos_); diff --git a/src/sql/engine/sequence/ob_sequence_op.cpp b/src/sql/engine/sequence/ob_sequence_op.cpp index dfd0143f9..a21f75fe5 100644 --- a/src/sql/engine/sequence/ob_sequence_op.cpp +++ b/src/sql/engine/sequence/ob_sequence_op.cpp @@ -57,7 +57,7 @@ ObSequenceOp::ObSequenceOp(ObExecContext &exec_ctx, const ObOpSpec &spec, ObOpIn { sequence_cache_ = &share::ObSequenceCache::get_instance(); if (OB_ISNULL(sequence_cache_)) { - LOG_ERROR("fail alloc memory for ObSequenceCache instance"); + LOG_ERROR_RET(OB_ALLOCATE_MEMORY_FAILED, "fail alloc memory for ObSequenceCache instance"); } } diff --git a/src/sql/engine/sort/ob_specific_columns_sort.cpp b/src/sql/engine/sort/ob_specific_columns_sort.cpp index 5b98e7eb2..39e0a0b19 100644 --- a/src/sql/engine/sort/ob_specific_columns_sort.cpp +++ b/src/sql/engine/sort/ob_specific_columns_sort.cpp @@ -203,9 +203,9 @@ int ObSpecificColumnsSort::specific_columns_cmp(const void * p1, ObSpecificColumnsSort** scs1 = (ObSpecificColumnsSort**) p1; ObSpecificColumnsSort** scs2 = (ObSpecificColumnsSort**) p2; if (OB_ISNULL(scs1) || OB_ISNULL(scs2)) { - LOG_WARN("scs1 is null or scs2 is null", K(bret)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "scs1 is null or scs2 is null", K(bret)); } else if (OB_ISNULL(*scs1) || OB_ISNULL(*scs2)) { - LOG_WARN("*scs1 is null or *scs2 is null", K(bret)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "*scs1 is null or *scs2 is null", K(bret)); } else if (OB_UNLIKELY(OB_SUCCESS != (*scs1)->err_) || OB_UNLIKELY(OB_SUCCESS != (*scs2)->err_)) { // do nothing if we already have an error, diff --git a/src/sql/engine/table/ob_link_scan_op.cpp b/src/sql/engine/table/ob_link_scan_op.cpp index 79bfe2fd3..a98bc128e 100644 --- a/src/sql/engine/table/ob_link_scan_op.cpp +++ b/src/sql/engine/table/ob_link_scan_op.cpp @@ -134,7 +134,7 @@ void ObLinkScanOp::reset_dblink() int tmp_ret = OB_SUCCESS; if (OB_NOT_NULL(dblink_proxy_) && OB_NOT_NULL(dblink_conn_) && !in_xa_trascaction_ && OB_SUCCESS != (tmp_ret = dblink_proxy_->release_dblink(link_type_, dblink_conn_, sessid_))) { - LOG_WARN("failed to release connection", K(tmp_ret)); + LOG_WARN_RET(tmp_ret, "failed to release connection", K(tmp_ret)); } if (OB_NOT_NULL(reverse_link_)) { reverse_link_->close(); @@ -155,7 +155,7 @@ void ObLinkScanOp::reset_result() if (DBLINK_DRV_OB == link_type_) { int tmp_ret = OB_SUCCESS; if (OB_SUCCESS != (tmp_ret = result_->close())) { - LOG_WARN("failed to close result", K(tmp_ret)); + LOG_WARN_RET(tmp_ret, "failed to close result", K(tmp_ret)); } } result_ = NULL; diff --git a/src/sql/executor/ob_executor_rpc_impl.cpp b/src/sql/executor/ob_executor_rpc_impl.cpp index ce02587fa..ce901333f 100644 --- a/src/sql/executor/ob_executor_rpc_impl.cpp +++ b/src/sql/executor/ob_executor_rpc_impl.cpp @@ -210,7 +210,7 @@ void ObExecutorRpcImpl::deal_with_rpc_timeout_err(ObExecutorRpcCtx &rpc_ctx, int a_ret = OB_SUCCESS; if (OB_UNLIKELY(OB_SUCCESS != (a_ret = retry_info->add_invalid_server_distinctly( dist_server)))) { - LOG_WARN("fail to add invalid server distinctly", K(a_ret), K(dist_server)); + LOG_WARN_RET(a_ret, "fail to add invalid server distinctly", K(a_ret), K(dist_server)); } else { //LOG_INFO("YZFDEBUG add invalid server distinctly", K(a_ret), K(dist_server), "p", &retry_info->get_invalid_servers()); } diff --git a/src/sql/executor/ob_executor_rpc_impl.h b/src/sql/executor/ob_executor_rpc_impl.h index f09bda96e..08146aff9 100644 --- a/src/sql/executor/ob_executor_rpc_impl.h +++ b/src/sql/executor/ob_executor_rpc_impl.h @@ -63,7 +63,7 @@ public: { MyResult *ret_result = NULL; if (!result_.is_inited()) { - SQL_EXE_LOG(ERROR, "result_ is not inited"); + SQL_EXE_LOG_RET(ERROR, common::OB_NOT_INIT, "result_ is not inited"); } else { ret_result = &result_; } diff --git a/src/sql/executor/ob_remote_executor_processor.cpp b/src/sql/executor/ob_remote_executor_processor.cpp index 85cc8e26b..ed5ab8346 100644 --- a/src/sql/executor/ob_remote_executor_processor.cpp +++ b/src/sql/executor/ob_remote_executor_processor.cpp @@ -525,7 +525,7 @@ bool ObRemoteBaseExecuteP::query_can_retry_in_remote(int &last_err, last_err = err; if (OB_SUCCESS != (err = exec_ctx_.check_status())) { bret = false; - LOG_WARN("cehck execute status failed", K(err), K(last_err), K(bret)); + LOG_WARN_RET(err, "cehck execute status failed", K(err), K(last_err), K(bret)); err = last_err; //返回真实值 } else { LOG_INFO("query retry in remote", K(retry_times), K(last_err)); @@ -537,7 +537,7 @@ bool ObRemoteBaseExecuteP::query_can_retry_in_remote(int &last_err, } if (!bret && is_try_lock_row_err(last_err) && is_timeout_err(err)) { //锁冲突重试到超时,最后直接给用户报LOCK CONFLICT错误 - LOG_WARN("retry query until query timeout", K(last_err), K(err)); + LOG_WARN_RET(err, "retry query until query timeout", K(last_err), K(err)); err = OB_ERR_EXCLUSIVE_LOCK_CONFLICT; } } @@ -763,7 +763,7 @@ int ObRemoteBaseExecuteP::base_before_response(common::ObScanner &scanner) int get_ret = MTL(transaction::ObTransService*) ->get_tx_exec_result(*session->get_tx_desc(), scanner.get_trans_result()); if (OB_SUCCESS != get_ret) { - LOG_WARN("failed to get trans result", + LOG_WARN_RET(get_ret, "failed to get trans result", K(get_ret), "scanner_trans_result", scanner.get_trans_result(), "tx_desc", *session->get_tx_desc()); @@ -794,7 +794,7 @@ int ObRemoteBaseExecuteP::base_before_response(common::ObScanner &scanner) has_store_pl_msg = true; } if (!has_store_pl_msg) { - LOG_WARN("get pl msg fail.", K(exec_errcode_)); + LOG_WARN_RET(OB_ERROR, "get pl msg fail.", K(exec_errcode_)); } } if (!has_store_pl_msg) { diff --git a/src/sql/executor/ob_task.cpp b/src/sql/executor/ob_task.cpp index 2ab4c62b2..6d86205da 100644 --- a/src/sql/executor/ob_task.cpp +++ b/src/sql/executor/ob_task.cpp @@ -160,7 +160,7 @@ OB_DEF_SERIALIZE_SIZE(ObTask) { int64_t len = 0; if (OB_I(t1) OB_ISNULL(exec_ctx_) || OB_ISNULL(ser_phy_plan_)) { - LOG_ERROR("task not init", K_(exec_ctx), K_(ser_phy_plan)); + LOG_ERROR_RET(OB_NOT_INIT, "task not init", K_(exec_ctx), K_(ser_phy_plan)); } else { if (ser_phy_plan_->is_dist_insert_or_replace_plan() && location_idx_ != OB_INVALID_INDEX) { exec_ctx_->reset_one_row_id_list(exec_ctx_->get_part_row_manager().get_row_id_list(location_idx_)); @@ -171,7 +171,7 @@ OB_DEF_SERIALIZE_SIZE(ObTask) LST_DO_CODE(OB_UNIS_ADD_LEN, runner_svr_); LST_DO_CODE(OB_UNIS_ADD_LEN, ob_task_id_); if (OB_ISNULL(root_spec_)) { - LOG_ERROR("unexpected status: op root is null"); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "unexpected status: op root is null"); } else { const ObExprFrameInfo *frame_info = &ser_phy_plan_->get_expr_frame_info(); len += ObPxTreeSerializer::get_serialize_expr_frame_info_size(*exec_ctx_, @@ -260,7 +260,7 @@ OB_DEF_SERIALIZE_SIZE(ObMiniTask) OB_UNIS_ADD_LEN(has_extend_root_spec); if (has_extend_root_spec) { if (OB_ISNULL(extend_root_spec_) || OB_ISNULL(exec_ctx_)) { - LOG_ERROR("invalid argument", KP(extend_root_spec_), KP(exec_ctx_)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "invalid argument", KP(extend_root_spec_), KP(exec_ctx_)); } else { len += ObPxTreeSerializer::get_tree_serialize_size(*extend_root_spec_, false/*is fulltree*/); @@ -343,7 +343,7 @@ OB_DEF_SERIALIZE_SIZE(ObRemoteTask) if (OB_ISNULL(remote_sql_info_) || OB_ISNULL(session_info_) || OB_ISNULL(ps_params = remote_sql_info_->ps_params_)) { - LOG_WARN("remote task not init", K_(remote_sql_info), K_(session_info), K(ps_params)); + LOG_WARN_RET(OB_NOT_INIT, "remote task not init", K_(remote_sql_info), K_(session_info), K(ps_params)); } else { int64_t tenant_id = session_info_->get_effective_tenant_id(); LST_DO_CODE(OB_UNIS_ADD_LEN, diff --git a/src/sql/executor/ob_task_runner_notifier_service.cpp b/src/sql/executor/ob_task_runner_notifier_service.cpp index 6b2963341..8ddfef9fa 100644 --- a/src/sql/executor/ob_task_runner_notifier_service.cpp +++ b/src/sql/executor/ob_task_runner_notifier_service.cpp @@ -39,10 +39,10 @@ void ObTaskRunnerNotifierService::ObKillTaskRunnerNotifier::operator()( ret_ = OB_SUCCESS; if (OB_ISNULL(entry.second)) { ret_ = OB_ERR_UNEXPECTED; - LOG_ERROR("notifier is NULL", K(ret_), "key", entry.first); + LOG_ERROR_RET(ret_, "notifier is NULL", K(ret_), "key", entry.first); } else { if (OB_SUCCESS != (ret_ = entry.second->kill())) { - LOG_WARN("notify kill task failed", K(ret_)); + LOG_WARN_RET(ret_, "notify kill task failed", K(ret_)); } } } @@ -103,7 +103,7 @@ ObTaskRunnerNotifierService *ObTaskRunnerNotifierService::get_instance() { ObTaskRunnerNotifierService *instance = NULL; if (OB_ISNULL(instance_) || OB_UNLIKELY(!instance_->inited_)) { - LOG_ERROR("instance is NULL or not inited", K(instance_)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "instance is NULL or not inited", K(instance_)); } else { instance = instance_; } diff --git a/src/sql/monitor/ob_monitor_info_elimination_task.cpp b/src/sql/monitor/ob_monitor_info_elimination_task.cpp index 3a891efef..5f6afdbe5 100644 --- a/src/sql/monitor/ob_monitor_info_elimination_task.cpp +++ b/src/sql/monitor/ob_monitor_info_elimination_task.cpp @@ -30,7 +30,7 @@ int ObMonitorInfoEliminationTask::init(ObMonitorInfoManager *info) void ObMonitorInfoEliminationTask::runTimerTask() { if (OB_ISNULL(monitor_info_)) { - SQL_MONITOR_LOG(ERROR, "invalid history info", K(monitor_info_)); + SQL_MONITOR_LOG_RET(ERROR, OB_INVALID_ARGUMENT, "invalid history info", K(monitor_info_)); } else { monitor_info_->print_memory_size(); monitor_info_->gc(); diff --git a/src/sql/monitor/ob_phy_operator_monitor_info.cpp b/src/sql/monitor/ob_phy_operator_monitor_info.cpp index 0d6c44a37..f58ce61c2 100644 --- a/src/sql/monitor/ob_phy_operator_monitor_info.cpp +++ b/src/sql/monitor/ob_phy_operator_monitor_info.cpp @@ -87,7 +87,7 @@ int ObPhyOperatorMonitorInfo::assign(const ObPhyOperatorMonitorInfo &other) void ObPhyOperatorMonitorInfo::operator=(const ObPhyOperatorMonitorInfo &other) { if (OB_SUCCESS != assign(other)) { - LOG_ERROR("fail to assign", K(&other)); + LOG_ERROR_RET(OB_ERROR, "fail to assign", K(&other)); } } @@ -152,7 +152,7 @@ int64_t ObPhyOperatorMonitorInfo::print_info(char* buf, int64_t buf_len) const J_OBJ_START(); if (is_timestamp(i)) { if (OB_SUCCESS != ObTimeUtility2::usec_to_str(info_array_[i], timebuf, time_buf_len, time_buf_pos)) { - LOG_WARN("fail to print time as str", K(i)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "fail to print time as str", K(i)); J_KV(OB_OPERATOR_MONITOR_INFOS[i].info_name_, info_array_[i]); } else { timebuf[time_buf_pos] = '\0'; @@ -173,7 +173,7 @@ void ObPhyOperatorMonitorInfo::set_value(ObOperatorMonitorInfoIds index, int64_t if (index >= 0 && index < OB_MAX_INFORMATION_COUNT) { info_array_[index] = value; } else { - LOG_WARN("invalid index", K(index), K(value)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "invalid index", K(index), K(value)); } } @@ -183,7 +183,7 @@ void ObPhyOperatorMonitorInfo::increase_value(ObOperatorMonitorInfoIds index) if (index >= 0 && index < OB_MAX_INFORMATION_COUNT) { info_array_[index]++; } else { - LOG_WARN("invalid index", K(index)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "invalid index", K(index)); } } @@ -192,7 +192,7 @@ void ObPhyOperatorMonitorInfo::get_value(ObOperatorMonitorInfoIds index, int64_t if (index >= 0 && index < OB_MAX_INFORMATION_COUNT) { value = info_array_[index]; } else { - LOG_WARN("invalid index", K(index)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "invalid index", K(index)); } } diff --git a/src/sql/monitor/ob_phy_plan_exec_info.h b/src/sql/monitor/ob_phy_plan_exec_info.h index 65207bb3f..1396840ac 100644 --- a/src/sql/monitor/ob_phy_plan_exec_info.h +++ b/src/sql/monitor/ob_phy_plan_exec_info.h @@ -104,7 +104,7 @@ int64_t ObPhyPlanExecInfo::print_info(char *buf, int64_t buf_len) const J_OBJ_START(); if (is_timestamp(i)) { if (common::OB_SUCCESS != share::ObTimeUtility2::usec_to_str(plan_info_array_[i], timebuf, time_buf_len, time_buf_pos)) { - SQL_MONITOR_LOG(WARN, "fail to print time as str", K(i)); + SQL_MONITOR_LOG_RET(WARN, common::OB_ERR_UNEXPECTED, "fail to print time as str", K(i)); J_KV(OB_PLAN_MONITOR_INFOS[i].info_name_, plan_info_array_[i]); } else { timebuf[time_buf_pos] = '\0'; diff --git a/src/sql/ob_end_trans_callback.cpp b/src/sql/ob_end_trans_callback.cpp index 2f24d610c..33fcd2d00 100644 --- a/src/sql/ob_end_trans_callback.cpp +++ b/src/sql/ob_end_trans_callback.cpp @@ -62,11 +62,11 @@ void ObEndTransAsyncCallback::callback(int cb_param) { bool need_disconnect = false; if (OB_UNLIKELY(!has_set_need_rollback_)) { - LOG_ERROR("is_need_rollback_ has not been set", + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "is_need_rollback_ has not been set", K(has_set_need_rollback_), K(is_need_rollback_)); } else if (OB_UNLIKELY(ObExclusiveEndTransCallback::END_TRANS_TYPE_INVALID == end_trans_type_)) { - LOG_ERROR("end trans type is invalid", K(cb_param), K(end_trans_type_)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "end trans type is invalid", K(cb_param), K(end_trans_type_)); } else { ObSQLUtils::check_if_need_disconnect_after_end_trans( cb_param, is_need_rollback_, diff --git a/src/sql/ob_i_end_trans_callback.h b/src/sql/ob_i_end_trans_callback.h index 766cd5ffc..b09455459 100644 --- a/src/sql/ob_i_end_trans_callback.h +++ b/src/sql/ob_i_end_trans_callback.h @@ -105,7 +105,7 @@ protected: inline void CHECK_BALANCE(const char *type) const { if (OB_UNLIKELY(callback_counter_ != call_counter_)) { - SQL_LOG(ERROR, "Callback times mismatch. bug!!!", + SQL_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "Callback times mismatch. bug!!!", K(type), K(this), K(common::lbt()), K_(callback_counter), K_(call_counter)); } } diff --git a/src/sql/ob_phy_table_location.cpp b/src/sql/ob_phy_table_location.cpp index b1a65ac1d..f0f13731b 100644 --- a/src/sql/ob_phy_table_location.cpp +++ b/src/sql/ob_phy_table_location.cpp @@ -27,7 +27,7 @@ bool ObPhyTableLocation::compare_phy_part_loc_info_asc(const ObCandiTabletLoc *& { bool is_less_than = false; if (OB_ISNULL(left) || OB_ISNULL(right)) { - LOG_ERROR("phy part loc info ptr is NULL", K(left), K(right)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "phy part loc info ptr is NULL", K(left), K(right)); } else { is_less_than = left->get_partition_location().get_partition_id() < right->get_partition_location().get_partition_id(); @@ -40,7 +40,7 @@ bool ObPhyTableLocation::compare_phy_part_loc_info_desc(const ObCandiTabletLoc * { bool is_larger_than = false; if (OB_ISNULL(left) || OB_ISNULL(right)) { - LOG_ERROR("phy part loc info ptr is NULL", K(left), K(right)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "phy part loc info ptr is NULL", K(left), K(right)); } else { is_larger_than = left->get_partition_location().get_partition_id() > right->get_partition_location().get_partition_id(); diff --git a/src/sql/ob_result_set.cpp b/src/sql/ob_result_set.cpp index c7889e5c3..26267b723 100644 --- a/src/sql/ob_result_set.cpp +++ b/src/sql/ob_result_set.cpp @@ -423,7 +423,7 @@ bool ObResultSet::transaction_set_violation_and_retry(int &err, int64_t &retry_t // bug#6361189 pass err to force rollback stmt in do_close_plan() if (OB_TRANSACTION_SET_VIOLATION == err && 0 == retry_times && !is_isolation_RR_or_SE) { // TSC错误重试时,只在第一次打印WARN日志 - LOG_WARN("transaction set consistency violation, will retry"); + LOG_WARN_RET(err, "transaction set consistency violation, will retry"); } int ret = do_close_plan(err, get_exec_context()); ObPhysicalPlanCtx *plan_ctx = get_exec_context().get_physical_plan_ctx(); @@ -1048,7 +1048,7 @@ void ObResultSet::refresh_location_cache(ObTaskExecutorCtx &task_exec_ctx, bool int err2 = ObTaskExecutorCtxUtil::refresh_location_cache(task_exec_ctx, is_nonblock); if (OB_SUCCESS != err2) { - LOG_WARN("fail to refresh location cache", K(err2), K(is_nonblock), K(err)); + LOG_WARN_RET(err2, "fail to refresh location cache", K(err2), K(is_nonblock), K(err)); } LOG_TRACE("partition change or not master or no response, refresh location cache", K(err)); } diff --git a/src/sql/ob_sql_trans_control.cpp b/src/sql/ob_sql_trans_control.cpp index f8c68cbde..f8bd7e167 100644 --- a/src/sql/ob_sql_trans_control.cpp +++ b/src/sql/ob_sql_trans_control.cpp @@ -956,7 +956,7 @@ int ObSqlTransControl::reset_session_tx_state(ObSQLSessionInfo *session, bool re && tx_desc->get_addr() == GCONF.self_addr_) { temp_ret = session->drop_temp_tables(false); if (OB_SUCCESS != temp_ret) { - LOG_WARN("trx level temporary table clean failed", KR(temp_ret)); + LOG_WARN_RET(temp_ret, "trx level temporary table clean failed", KR(temp_ret)); } } int ret = reset_session_tx_state(static_cast(session), reuse_tx_desc); diff --git a/src/sql/ob_sql_utils.cpp b/src/sql/ob_sql_utils.cpp index e08b3e1d4..f01e58208 100644 --- a/src/sql/ob_sql_utils.cpp +++ b/src/sql/ob_sql_utils.cpp @@ -126,7 +126,7 @@ void ObSQLUtils::check_if_need_disconnect_after_end_trans(const int end_trans_er if (OB_UNLIKELY(OB_SUCCESS != end_trans_err && is_explicit)) { // 显式rollback失败,要断连接 is_need_disconnect = true; - LOG_WARN("fail to rollback explicitly, disconnect", K(end_trans_err)); + LOG_WARN_RET(end_trans_err, "fail to rollback explicitly, disconnect", K(end_trans_err)); } else { // 隐式rollback(不管成功还是失败),或者显式rollback成功,不用断连接 is_need_disconnect = false; @@ -135,7 +135,7 @@ void ObSQLUtils::check_if_need_disconnect_after_end_trans(const int end_trans_er // commit if (OB_UNLIKELY(ObSQLUtils::is_trans_commit_need_disconnect_err(end_trans_err))) { is_need_disconnect = true; - LOG_WARN("fail to commit, and error number is unexpected, disconnect", K(end_trans_err), K(lbt())); + LOG_WARN_RET(end_trans_err, "fail to commit, and error number is unexpected, disconnect", K(end_trans_err), K(lbt())); } else { is_need_disconnect = false; } @@ -963,7 +963,7 @@ int64_t ObSQLUtils::get_usec() { struct timeval time_val; if (0 != gettimeofday(&time_val, NULL)) { //success: return 0, failed: return -1 - LOG_WARN("fail to get time of day"); + LOG_WARN_RET(OB_ERR_SYS, "fail to get time of day"); } return time_val.tv_sec*1000000 + time_val.tv_usec; } @@ -2813,7 +2813,7 @@ void ObSQLUtils::init_type_ctx(const ObSQLSessionInfo *session, ObExprTypeCtx &t } CHECK_COMPATIBILITY_MODE(session); } else { - LOG_WARN("Molly couldn't get compatibility mode from session, use default", K(lbt())); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "Molly couldn't get compatibility mode from session, use default", K(lbt())); } type_ctx.set_session(session); } @@ -4324,7 +4324,7 @@ bool ObSQLUtils::is_select_from_dual(ObExecContext &ctx) depend_tables = ctx.get_sql_ctx()->cur_stmt_->get_global_dependency_table(); } if (depend_tables == nullptr) { - LOG_WARN("depend tables is nullptr"); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "depend tables is nullptr"); } else if (depend_tables->empty()) { bret = true; } else { diff --git a/src/sql/ob_sql_utils.h b/src/sql/ob_sql_utils.h index 1fca511b6..8f2b87357 100644 --- a/src/sql/ob_sql_utils.h +++ b/src/sql/ob_sql_utils.h @@ -221,7 +221,7 @@ public: const char *res_ptr = eval_ctx.frames_[(*e)->frame_idx_] + (*e)->res_buf_off_ + (*e)->res_buf_len_ * idx; if (datum_ptr != res_ptr) { - SQL_LOG(WARN, "sanity check failure, column index", K(expr_idx), K(idx), + SQL_LOG_RET(WARN, OB_ERR_UNEXPECTED, "sanity check failure, column index", K(expr_idx), K(idx), KP(datum_ptr), KP(res_ptr), KP(*e), K(eval_ctx)); abort(); } @@ -230,7 +230,7 @@ public: const char *datum_ptr = datum->ptr_; const char *res_ptr = eval_ctx.frames_[(*e)->frame_idx_] + (*e)->res_buf_off_; if (datum_ptr != res_ptr) { - SQL_LOG(WARN, "sanity check failure, column index", + SQL_LOG_RET(WARN, OB_ERR_UNEXPECTED, "sanity check failure, column index", K(expr_idx), KP(datum_ptr), KP(res_ptr), KP(*e), K(eval_ctx)); abort(); } diff --git a/src/sql/optimizer/ob_log_granule_iterator.cpp b/src/sql/optimizer/ob_log_granule_iterator.cpp index 1d4a0d8db..d157d3aa8 100644 --- a/src/sql/optimizer/ob_log_granule_iterator.cpp +++ b/src/sql/optimizer/ob_log_granule_iterator.cpp @@ -41,7 +41,7 @@ const char *ObLogGranuleIterator::get_name() const int tmp_ret = OB_SUCCESS; int64_t index = 0; if (OB_UNLIKELY(OB_SUCCESS != (tmp_ret = is_partition_gi(is_part_gi)))) { - LOG_ERROR("failed to check is partition gi", K(tmp_ret)); + LOG_ERROR_RET(tmp_ret, "failed to check is partition gi", K(tmp_ret)); index = 1; } else if (is_part_gi) { index = 1; diff --git a/src/sql/optimizer/ob_log_plan_factory.cpp b/src/sql/optimizer/ob_log_plan_factory.cpp index d4332dd0f..3dfa405a6 100644 --- a/src/sql/optimizer/ob_log_plan_factory.cpp +++ b/src/sql/optimizer/ob_log_plan_factory.cpp @@ -47,7 +47,7 @@ ObLogPlan *ObLogPlanFactory::create(ObOptimizerContext &ctx, const ObDMLStmt &st if (NULL != ptr) { ret = new (ptr) ObSelectLogPlan(ctx, static_cast(&stmt)); } else { - SQL_OPT_LOG(WARN, "Allocate ObSelectLogPlan error"); + SQL_OPT_LOG_RET(WARN, OB_ALLOCATE_MEMORY_FAILED, "Allocate ObSelectLogPlan error"); } break; } @@ -56,7 +56,7 @@ ObLogPlan *ObLogPlanFactory::create(ObOptimizerContext &ctx, const ObDMLStmt &st if (NULL != ptr) { ret = new (ptr) ObDeleteLogPlan(ctx, static_cast(&stmt)); } else { - SQL_OPT_LOG(WARN, "Allocate ObDeleteLogPlan error"); + SQL_OPT_LOG_RET(WARN, OB_ALLOCATE_MEMORY_FAILED, "Allocate ObDeleteLogPlan error"); } break; } @@ -65,7 +65,7 @@ ObLogPlan *ObLogPlanFactory::create(ObOptimizerContext &ctx, const ObDMLStmt &st if (NULL != ptr) { ret = new (ptr) ObUpdateLogPlan(ctx, static_cast(&stmt)); } else { - SQL_OPT_LOG(WARN, "Allocate ObUpdateLogPlan error"); + SQL_OPT_LOG_RET(WARN, OB_ALLOCATE_MEMORY_FAILED, "Allocate ObUpdateLogPlan error"); } break; } @@ -75,7 +75,7 @@ ObLogPlan *ObLogPlanFactory::create(ObOptimizerContext &ctx, const ObDMLStmt &st if (NULL != ptr) { ret = new (ptr) ObInsertLogPlan(ctx, static_cast(&stmt)); } else { - SQL_OPT_LOG(WARN, "Allocate ObInsertLogPlan error"); + SQL_OPT_LOG_RET(WARN, OB_ALLOCATE_MEMORY_FAILED, "Allocate ObInsertLogPlan error"); } break; } @@ -84,7 +84,7 @@ ObLogPlan *ObLogPlanFactory::create(ObOptimizerContext &ctx, const ObDMLStmt &st if (NULL != ptr) { ret = new (ptr) ObExplainLogPlan(ctx, &stmt); } else { - SQL_OPT_LOG(WARN, "Allocate ObExplainLogPlan error"); + SQL_OPT_LOG_RET(WARN, OB_ALLOCATE_MEMORY_FAILED, "Allocate ObExplainLogPlan error"); } break; } @@ -101,7 +101,7 @@ ObLogPlan *ObLogPlanFactory::create(ObOptimizerContext &ctx, const ObDMLStmt &st if (NULL != ptr) { ret = new (ptr) ObMergeLogPlan(ctx, static_cast(&stmt)); } else { - SQL_OPT_LOG(WARN, "Allocate ObMergeLogPlan error"); + SQL_OPT_LOG_RET(WARN, OB_ALLOCATE_MEMORY_FAILED, "Allocate ObMergeLogPlan error"); } break; } @@ -110,7 +110,7 @@ ObLogPlan *ObLogPlanFactory::create(ObOptimizerContext &ctx, const ObDMLStmt &st if (NULL != ptr) { ret = new (ptr) ObInsertAllLogPlan(ctx, static_cast(&stmt)); } else { - SQL_OPT_LOG(WARN, "Allocate ObInsertAllLogPlan error"); + SQL_OPT_LOG_RET(WARN, OB_ALLOCATE_MEMORY_FAILED, "Allocate ObInsertAllLogPlan error"); } break; } @@ -120,7 +120,7 @@ ObLogPlan *ObLogPlanFactory::create(ObOptimizerContext &ctx, const ObDMLStmt &st if (ret != NULL) { int err = OB_SUCCESS; if (OB_SUCCESS != (err = plan_store_.store_obj(ret))) { - LOG_WARN("store log plan failed", K(err)); + LOG_WARN_RET(err, "store log plan failed", K(err)); ret->~ObLogPlan(); ret = NULL; } diff --git a/src/sql/optimizer/ob_log_window_function.cpp b/src/sql/optimizer/ob_log_window_function.cpp index 88fff28cb..836844689 100644 --- a/src/sql/optimizer/ob_log_window_function.cpp +++ b/src/sql/optimizer/ob_log_window_function.cpp @@ -370,7 +370,7 @@ bool ObLogWindowFunction::is_block_op() const ObWinFunRawExpr *win_expr = NULL; for (int64_t i = 0; i < win_exprs_.count(); ++i) { if (OB_ISNULL(win_expr = win_exprs_.at(i))) { - LOG_ERROR("win expr is null"); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "win expr is null"); } else if (win_expr->get_partition_exprs().count() > 0 || win_expr->get_upper().type_ != BoundType::BOUND_UNBOUNDED || win_expr->get_lower().type_ != BoundType::BOUND_UNBOUNDED ) { diff --git a/src/sql/optimizer/ob_logical_operator.cpp b/src/sql/optimizer/ob_logical_operator.cpp index ecdf7c61a..09dcf605a 100644 --- a/src/sql/optimizer/ob_logical_operator.cpp +++ b/src/sql/optimizer/ob_logical_operator.cpp @@ -217,7 +217,7 @@ ObPxPipeBlockingCtx::OpCtx *ObPxPipeBlockingCtx::alloc() OpCtx *ctx = NULL; void *mem = alloc_.alloc(sizeof(OpCtx)); if (OB_ISNULL(mem)) { - LOG_WARN("allocate memory failed"); + LOG_WARN_RET(OB_ALLOCATE_MEMORY_FAILED, "allocate memory failed"); } else { ctx = new(mem)OpCtx(); } @@ -426,7 +426,7 @@ double FilterCompare::get_selectivity(ObRawExpr *expr) } } if (!found) { - LOG_PRINT_EXPR(WARN, "Failed to get selectivity", expr); + LOG_PRINT_EXPR_RET(WARN, OB_ERR_UNEXPECTED, "Failed to get selectivity", expr); } return selectivity; } diff --git a/src/sql/optimizer/ob_opt_est_cost_model.cpp b/src/sql/optimizer/ob_opt_est_cost_model.cpp index 98c52e7e0..0ba094f60 100644 --- a/src/sql/optimizer/ob_opt_est_cost_model.cpp +++ b/src/sql/optimizer/ob_opt_est_cost_model.cpp @@ -2024,11 +2024,11 @@ double ObOptEstCostModel::cost_hash(double rows, const ObIArray &ha for (int64_t i = 0; i < hash_exprs.count(); ++i) { const ObRawExpr *expr = hash_exprs.at(i); if (OB_ISNULL(expr)) { - LOG_WARN("qual should not be NULL, but we don't set error return code here, just skip it"); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "qual should not be NULL, but we don't set error return code here, just skip it"); } else { ObObjTypeClass calc_type = expr->get_result_type().get_calc_type_class(); if (OB_UNLIKELY(hash_params_[calc_type] < 0)) { - LOG_WARN("hash type not supported, skipped", K(calc_type)); + LOG_WARN_RET(OB_NOT_SUPPORTED, "hash type not supported, skipped", K(calc_type)); } else { cost_per_row += hash_params_[calc_type]; } @@ -2166,7 +2166,7 @@ double ObOptEstCostModel::cost_quals(double rows, const ObIArray &q for (int64_t i = 0; i < quals.count(); ++i) { const ObRawExpr *qual = quals.at(i); if (OB_ISNULL(qual)) { - LOG_WARN("qual should not be NULL, but we don't set error return code here, just skip it"); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "qual should not be NULL, but we don't set error return code here, just skip it"); } else if (qual->is_spatial_expr()) { cost_per_row += cost_params_.CMP_SPATIAL_COST * factor; if (need_scale) { @@ -2175,7 +2175,7 @@ double ObOptEstCostModel::cost_quals(double rows, const ObIArray &q } else { ObObjTypeClass calc_type = qual->get_result_type().get_calc_type_class(); if (OB_UNLIKELY(comparison_params_[calc_type] < 0)) { - LOG_WARN("comparison type not supported, skipped", K(calc_type)); + LOG_WARN_RET(OB_NOT_SUPPORTED, "comparison type not supported, skipped", K(calc_type)); } else { cost_per_row += comparison_params_[calc_type] * factor; if (need_scale) { diff --git a/src/sql/optimizer/ob_optimizer_util.cpp b/src/sql/optimizer/ob_optimizer_util.cpp index e67a4bdde..1cb0e22a7 100644 --- a/src/sql/optimizer/ob_optimizer_util.cpp +++ b/src/sql/optimizer/ob_optimizer_util.cpp @@ -523,12 +523,12 @@ bool ObOptimizerUtil::is_expr_equivalent(const ObRawExpr *from, // do nothing } else if (ObRawExprUtils::expr_is_order_consistent(from, to, is_consistent) != OB_SUCCESS) { - LOG_WARN("check expr is order consist ent failed"); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "check expr is order consist ent failed"); } else if (is_consistent) { int64_t N = equal_sets.count(); for (int64_t i = 0; !found && i < N; ++i) { if (OB_ISNULL(equal_sets.at(i))) { - LOG_WARN("get null equal set"); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "get null equal set"); } else if (find_equal_expr(*equal_sets.at(i), from) && find_equal_expr(*equal_sets.at(i), to)) { found = true; diff --git a/src/sql/optimizer/ob_route_policy.cpp b/src/sql/optimizer/ob_route_policy.cpp index 618edec36..a3f1a33c4 100644 --- a/src/sql/optimizer/ob_route_policy.cpp +++ b/src/sql/optimizer/ob_route_policy.cpp @@ -435,7 +435,7 @@ bool ObRoutePolicy::is_same_idc(const share::ObServerLocality &locality1, const if (locality1.get_region().is_empty() || locality2.get_region().is_empty()) { //如果没有为集群设置REGION,则无法判断是否在同一REGION ret_bool = false; - LOG_WARN("cluster region is not set", K(locality1), K(locality2)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "cluster region is not set", K(locality1), K(locality2)); } else if (locality1.get_idc().is_empty() || locality2.get_idc().is_empty()) { //如果没有为zone设置IDC,则无法判断是否在同一IDC ret_bool = false; @@ -455,7 +455,7 @@ bool ObRoutePolicy::is_same_region(const share::ObServerLocality &locality1, con if (locality1.get_region().is_empty() || locality2.get_region().is_empty()) { //如果没有为集群设置REGION,则无法判断是否在同一REGION ret_bool = false; - LOG_WARN("cluster region is not set", K(locality1), K(locality2)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "cluster region is not set", K(locality1), K(locality2)); } else if (locality1.get_region() == locality2.get_region()) { ret_bool = true; } diff --git a/src/sql/optimizer/ob_table_location.cpp b/src/sql/optimizer/ob_table_location.cpp index 479d78914..c3c2c1467 100644 --- a/src/sql/optimizer/ob_table_location.cpp +++ b/src/sql/optimizer/ob_table_location.cpp @@ -409,18 +409,18 @@ ObPartLocCalcNode *ObPartLocCalcNode::create_part_calc_node( break; } default: { - LOG_WARN("Invalid ObPartLocCalcNode type", K(type)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "Invalid ObPartLocCalcNode type", K(type)); break; } } if (OB_UNLIKELY(NULL == ptr) || OB_UNLIKELY(NULL == ret_node)) { - LOG_WARN("Failed to allocate ObPartLocCalcNode", K(type)); + LOG_WARN_RET(OB_ALLOCATE_MEMORY_FAILED, "Failed to allocate ObPartLocCalcNode", K(type)); } else if (OB_SUCCESS != calc_nodes.push_back(ret_node)) { ret_node->~ObPartLocCalcNode(); allocator.free(ret_node); ret_node = NULL; - LOG_WARN("Store ObPartLocCalcNode failed"); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "Store ObPartLocCalcNode failed"); } else { }//do nothing return ret_node; diff --git a/src/sql/parser/ob_parser.cpp b/src/sql/parser/ob_parser.cpp index 17f6e8d43..c83732fce 100644 --- a/src/sql/parser/ob_parser.cpp +++ b/src/sql/parser/ob_parser.cpp @@ -493,7 +493,7 @@ ObParser::State ObParser::transform_normal( } break; default: { is_not_pl = true; - LOG_WARN("unexpecte state", K(state)); + LOG_WARN_RET(common::OB_ERR_UNEXPECTED, "unexpecte state", K(state)); } break; } return state; diff --git a/src/sql/plan_cache/ob_cache_object.cpp b/src/sql/plan_cache/ob_cache_object.cpp index 321a18782..0454c99ab 100644 --- a/src/sql/plan_cache/ob_cache_object.cpp +++ b/src/sql/plan_cache/ob_cache_object.cpp @@ -366,14 +366,14 @@ void ObPlanCacheObject::dump_deleted_log_info(const bool is_debug_log /* = true if (is_sql_crsr()) { const ObPhysicalPlan *plan = dynamic_cast(this); if (OB_ISNULL(plan)) { - LOG_ERROR("the plan is null", K(plan), K(this)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "the plan is null", K(plan), K(this)); } else { raw_sql = ObTruncatedString(plan->stat_.raw_sql_, OB_MAX_SQL_LENGTH).string(); } } else if (is_anon()) { const pl::ObPLFunction *pl_func = dynamic_cast(this); if (OB_ISNULL(pl_func)) { - LOG_ERROR("the pl_func is null", K(this)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "the pl_func is null", K(this)); } else { raw_sql = ObTruncatedString(pl_func->get_stat().raw_sql_, OB_MAX_SQL_LENGTH).string(); } diff --git a/src/sql/plan_cache/ob_cache_object_factory.cpp b/src/sql/plan_cache/ob_cache_object_factory.cpp index 8920967cf..53d8e9a9a 100644 --- a/src/sql/plan_cache/ob_cache_object_factory.cpp +++ b/src/sql/plan_cache/ob_cache_object_factory.cpp @@ -51,7 +51,7 @@ void ObCacheObjectFactory::inner_free(ObILibCacheObject *&cache_obj, uint64_t tenant_id = cache_obj->get_tenant_id(); ObPlanCache *lib_cache = MTL(ObPlanCache*); if (OB_ISNULL(lib_cache)) { - LOG_WARN("invalid null plan cache"); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "invalid null plan cache"); } else { lib_cache->free_cache_obj(cache_obj, ref_handle); } @@ -62,7 +62,7 @@ void ObCacheObjectFactory::inner_free(ObPlanCache *pc, const CacheRefHandleID ref_handle) { if (OB_ISNULL(pc)) { - LOG_WARN("invalid null plan cache"); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "invalid null plan cache"); } else { pc->free_cache_obj(cache_obj, ref_handle); } diff --git a/src/sql/plan_cache/ob_dist_plans.cpp b/src/sql/plan_cache/ob_dist_plans.cpp index 67e55b77c..ef6ad7fad 100644 --- a/src/sql/plan_cache/ob_dist_plans.cpp +++ b/src/sql/plan_cache/ob_dist_plans.cpp @@ -236,7 +236,7 @@ int64_t ObDistPlans::get_mem_size() const int64_t plan_set_mem = 0; for (int64_t i = 0; i < dist_plans_.count(); i++) { if (OB_ISNULL(dist_plans_.at(i))) { - BACKTRACE(ERROR, true, "null physical plan"); + BACKTRACE_RET(ERROR, OB_ERR_UNEXPECTED, true, "null physical plan"); } else { plan_set_mem += dist_plans_.at(i)->get_mem_size(); } @@ -260,11 +260,11 @@ int ObDistPlans::remove_plan_stat() for (int64_t i = 0; i < dist_plans_.count(); i++) { if (OB_ISNULL(dist_plans_.at(i))) { tmp_ret = OB_ERR_UNEXPECTED; - LOG_WARN("get an unexpected null", K(tmp_ret), K(dist_plans_.at(i))); + LOG_WARN_RET(tmp_ret, "get an unexpected null", K(tmp_ret), K(dist_plans_.at(i))); } else if (FALSE_IT(plan_id = dist_plans_.at(i)->get_plan_id())) { } else if (OB_SUCCESS != (tmp_ret = plan_set_->remove_cache_obj_entry(plan_id))) { - LOG_WARN("failed to remove plan stat", + LOG_WARN_RET(tmp_ret, "failed to remove plan stat", K(tmp_ret), K(plan_id), K(i)); } else { /* do nothing */ 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 431c71f6c..0871112b5 100644 --- a/src/sql/plan_cache/ob_i_lib_cache_node.cpp +++ b/src/sql/plan_cache/ob_i_lib_cache_node.cpp @@ -40,7 +40,7 @@ int ObILibCacheNode::init(ObILibCacheCtx &ctx, const ObILibCacheObject *cache_ob void ObILibCacheNode::free_cache_obj_array() { if (OB_ISNULL(lib_cache_)) { - LOG_WARN("lib cache is invalid"); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "lib cache is invalid"); } else { ObLCObjectManager &mgr = lib_cache_->get_cache_obj_mgr(); SpinWLockGuard lock_guard(co_list_lock_); 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 ee023e952..4e34e3c3f 100644 --- a/src/sql/plan_cache/ob_i_lib_cache_object.cpp +++ b/src/sql/plan_cache/ob_i_lib_cache_object.cpp @@ -50,7 +50,7 @@ void ObILibCacheObject::reset() void ObILibCacheObject::dump_deleted_log_info(const bool is_debug_log /* = true */) const { if (is_debug_log) { - SQL_PC_LOG(WARN, "Dumping Cache Deleted Info", + SQL_PC_LOG_RET(WARN, OB_SUCCESS, "Dumping Cache Deleted Info", K(object_id_), K(tenant_id_), K(added_to_lc_), diff --git a/src/sql/plan_cache/ob_lib_cache_register.cpp b/src/sql/plan_cache/ob_lib_cache_register.cpp index 6aa4fe260..192f320a1 100644 --- a/src/sql/plan_cache/ob_lib_cache_register.cpp +++ b/src/sql/plan_cache/ob_lib_cache_register.cpp @@ -42,7 +42,7 @@ const char *ObLibCacheRegister::NAME_TYPES[NS_MAX] = { }; do { \ [&]() { \ if (OB_UNLIKELY(NS >= NS_MAX)) { \ - LOG_ERROR("out of the max type"); \ + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "out of the max type"); \ } else { \ NAME_TYPES[NS] = NS_NAME; \ LC_NS_TYPE_LABELS[NS] = LABEL; \ @@ -55,7 +55,7 @@ do { \ do { \ [&]() { \ if (OB_UNLIKELY(NS >= NS_MAX)) { \ - LOG_ERROR("out of the max type"); \ + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "out of the max type"); \ } else { \ LC_CN_ALLOC[NS] = ObLCNodeFactory::create; \ } \ @@ -66,7 +66,7 @@ do { \ do { \ [&]() { \ if (OB_UNLIKELY(NS >= NS_MAX)) { \ - LOG_ERROR("out of the max type"); \ + LOG_ERROR_RET(common::OB_ERR_UNEXPECTED, "out of the max type"); \ } else { \ LC_CK_ALLOC[NS] = OBLCKeyCreator::create; \ } \ diff --git a/src/sql/plan_cache/ob_plan_cache.cpp b/src/sql/plan_cache/ob_plan_cache.cpp index dddbacb6b..4959379d3 100644 --- a/src/sql/plan_cache/ob_plan_cache.cpp +++ b/src/sql/plan_cache/ob_plan_cache.cpp @@ -224,11 +224,11 @@ bool stat_compare(const LCKeyValue &left, const LCKeyValue &right) bool cmp_ret = false; if (OB_ISNULL(left.node_) || OB_ISNULL(right.node_)) { cmp_ret = false; - SQL_PC_LOG(ERROR, "invalid argument", KP(left.node_), KP(right.node_), K(cmp_ret)); + SQL_PC_LOG_RET(ERROR, OB_INVALID_ARGUMENT, "invalid argument", KP(left.node_), KP(right.node_), K(cmp_ret)); } else if (OB_ISNULL(left.node_->get_node_stat()) || OB_ISNULL(right.node_->get_node_stat())) { cmp_ret = false; - SQL_PC_LOG(ERROR, "invalid argument", K(left.node_->get_node_stat()), + SQL_PC_LOG_RET(ERROR, OB_INVALID_ARGUMENT, "invalid argument", K(left.node_->get_node_stat()), K(right.node_->get_node_stat()), K(cmp_ret)); } else { cmp_ret = left.node_->get_node_stat()->weight() < right.node_->get_node_stat()->weight(); @@ -318,7 +318,7 @@ void ObPlanCache::destroy() if (inited_) { TG_DESTROY(tg_id_); if (OB_SUCCESS != (cache_evict_all_obj())) { - SQL_PC_LOG(WARN, "fail to evict all lib cache cache"); + SQL_PC_LOG_RET(WARN, OB_ERROR, "fail to evict all lib cache cache"); } inited_ = false; } diff --git a/src/sql/plan_cache/ob_plan_cache_manager.cpp b/src/sql/plan_cache/ob_plan_cache_manager.cpp index 3ef5e291d..b5776e875 100644 --- a/src/sql/plan_cache/ob_plan_cache_manager.cpp +++ b/src/sql/plan_cache/ob_plan_cache_manager.cpp @@ -71,7 +71,7 @@ void ObPlanCacheManager::destroy() it != pcm_.end(); it++) { if (OB_ISNULL(it->second)) { - BACKTRACE(ERROR, true, "plan_cache is null"); + BACKTRACE_RET(ERROR, OB_ERR_UNEXPECTED, true, "plan_cache is null"); } else { it->second->destroy(); } diff --git a/src/sql/plan_cache/ob_plan_cache_value.cpp b/src/sql/plan_cache/ob_plan_cache_value.cpp index bce42dddf..bf92f2ca5 100644 --- a/src/sql/plan_cache/ob_plan_cache_value.cpp +++ b/src/sql/plan_cache/ob_plan_cache_value.cpp @@ -1273,7 +1273,7 @@ void ObPlanCacheValue::reset() reset_tpl_sql_const_cons(); if (OB_SUCCESS != outline_params_wrapper_.destroy()) { - LOG_ERROR("fail to destroy ObOutlineParamWrapper"); + LOG_ERROR_RET(OB_ERROR, "fail to destroy ObOutlineParamWrapper"); } outline_params_wrapper_.reset_allocator(); //use_global_location_cache_ = true; @@ -1303,7 +1303,7 @@ int64_t ObPlanCacheValue::get_mem_size() int64_t value_mem_size = 0; DLIST_FOREACH_NORET(plan_set, plan_sets_) { if (OB_ISNULL(plan_set)) { - BACKTRACE(ERROR, true, "invalid plan_set"); + BACKTRACE_RET(ERROR, OB_ERR_UNEXPECTED, true, "invalid plan_set"); } else { value_mem_size += plan_set->get_mem_size(); } diff --git a/src/sql/plan_cache/ob_plan_set.cpp b/src/sql/plan_cache/ob_plan_set.cpp index fa57d98e9..06fa9cd51 100644 --- a/src/sql/plan_cache/ob_plan_set.cpp +++ b/src/sql/plan_cache/ob_plan_set.cpp @@ -1782,7 +1782,7 @@ void ObSqlPlanSet::reset() if (OB_ISNULL(plan_cache_value_) || OB_ISNULL(plan_cache_value_->get_pc_alloc())) { //do nothing - LOG_WARN("plan_cache_value or pc allocator is NULL"); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "plan_cache_value or pc allocator is NULL"); } local_plan_ = NULL; array_binding_plan_ = NULL; diff --git a/src/sql/plan_cache/ob_prepare_stmt_struct.cpp b/src/sql/plan_cache/ob_prepare_stmt_struct.cpp index 430236eaa..8b15ba2ae 100644 --- a/src/sql/plan_cache/ob_prepare_stmt_struct.cpp +++ b/src/sql/plan_cache/ob_prepare_stmt_struct.cpp @@ -628,7 +628,7 @@ bool ObPsStmtInfo::dec_ref_count_check_erase() need_erase = true; LOG_INFO("free ps info", K(ref_count), K(*this), K(need_erase)); } else if (ref_count < 0) { - BACKTRACE(ERROR, true, "ObPsStmtInfo %p ref count < 0, ref_count = %ld", this, ref_count); + BACKTRACE_RET(ERROR, OB_ERR_UNEXPECTED, true, "ObPsStmtInfo %p ref count < 0, ref_count = %ld", this, ref_count); } return need_erase; } diff --git a/src/sql/plan_cache/ob_ps_cache_callback.cpp b/src/sql/plan_cache/ob_ps_cache_callback.cpp index 0ea6076d5..134fa2275 100644 --- a/src/sql/plan_cache/ob_ps_cache_callback.cpp +++ b/src/sql/plan_cache/ob_ps_cache_callback.cpp @@ -32,7 +32,7 @@ void ObPsStmtItemRefAtomicOp::operator()(const PsStmtIdKV &entry) } } else { callback_ret_ = OB_ERR_UNEXPECTED; - LOG_WARN("value is NULL", K(entry), K(callback_ret_)); + LOG_WARN_RET(callback_ret_, "value is NULL", K(entry), K(callback_ret_)); } } @@ -53,7 +53,7 @@ void ObPsStmtItemDerefAtomicOp::operator()(const PsStmtIdKV &entry) { if (OB_ISNULL(entry.second)) { ret_ = OB_HASH_NOT_EXIST; - LOG_WARN("entry not exist", K_(ret)); + LOG_WARN_RET(ret_, "entry not exist", K_(ret)); } else { entry.second->dec_ref_count_check_erase(); } @@ -63,7 +63,7 @@ void ObPsStmtItemEraseAtomicOp::operator()(const PsStmtIdKV &entry) { if (OB_ISNULL(entry.second)) { ret_ = OB_HASH_NOT_EXIST; - LOG_WARN("entry not exist", K_(ret)); + LOG_WARN_RET(ret_, "entry not exist", K_(ret)); } else if (entry.second->get_ps_stmt_id() == stmt_id_) { if (ATOMIC_BCAS(entry.second->get_is_expired_evicted_ptr(), false, true)) { need_erase_ = true; @@ -83,7 +83,7 @@ void ObPsStmtInfoRefAtomicOp::operator ()(const PsStmtInfoKV &entry) } } else { callback_ret_ = OB_ERR_UNEXPECTED; - LOG_WARN("value is NULL", K(entry), K(callback_ret_)); + LOG_WARN_RET(callback_ret_, "value is NULL", K(entry), K(callback_ret_)); } } @@ -104,7 +104,7 @@ void ObPsStmtInfoDerefAtomicOp::operator()(const PsStmtInfoKV &entry) { if (OB_ISNULL(entry.second)) { ret_ = OB_HASH_NOT_EXIST; - LOG_WARN("entry not exist", K_(ret)); + LOG_WARN_RET(ret_, "entry not exist", K_(ret)); } else { is_erase_ = entry.second->dec_ref_count_check_erase(); if (is_erase_) { diff --git a/src/sql/plan_cache/ob_ps_cache_callback.h b/src/sql/plan_cache/ob_ps_cache_callback.h index 7afd26a8f..5246f15bf 100644 --- a/src/sql/plan_cache/ob_ps_cache_callback.h +++ b/src/sql/plan_cache/ob_ps_cache_callback.h @@ -39,7 +39,7 @@ public: // ref_count 为1表示所有session均不依赖当前cache中对象; int operator()(common::hash::HashMapPair &entry) { - int callback_ret_ = common::OB_SUCCESS; + int &ret = callback_ret_; if (OB_ISNULL(closed_ps_) || OB_ISNULL(expired_ps_)) { callback_ret_ = common::OB_NOT_INIT; SQL_PC_LOG(WARN, "key_array not inited", K(callback_ret_)); @@ -102,9 +102,9 @@ public: int callback_ret_ = common::OB_SUCCESS; if (OB_ISNULL(key_array_)) { callback_ret_ = common::OB_NOT_INIT; - SQL_PC_LOG(WARN, "key_array not inited", K(callback_ret_)); + SQL_PC_LOG_RET(WARN, callback_ret_, "key_array not inited", K(callback_ret_)); } else if (OB_SUCCESS != (callback_ret_ = key_array_->push_back(entry.first))) { - SQL_PC_LOG(WARN, "fail to push back key", K(callback_ret_)); + SQL_PC_LOG_RET(WARN, callback_ret_, "fail to push back key", K(callback_ret_)); } // The Story Behind Return Code: diff --git a/src/sql/privilege_check/ob_privilege_check.cpp b/src/sql/privilege_check/ob_privilege_check.cpp index b8705c251..e0521e45a 100644 --- a/src/sql/privilege_check/ob_privilege_check.cpp +++ b/src/sql/privilege_check/ob_privilege_check.cpp @@ -3138,7 +3138,7 @@ bool ObPrivilegeCheck::check_password_expired_time(int64_t password_last_changed /*do nothing*/ } else if ((uint64_t)(timeline) > (uint64_t)password_last_changed_ts) { is_expired = true; - LOG_WARN("the password is out of date, please change the password"); + LOG_WARN_RET(OB_SUCCESS, "the password is out of date, please change the password"); } return is_expired; } diff --git a/src/sql/resolver/cmd/ob_resource_resolver.h b/src/sql/resolver/cmd/ob_resource_resolver.h index dfa4be61e..b4b41eaba 100644 --- a/src/sql/resolver/cmd/ob_resource_resolver.h +++ b/src/sql/resolver/cmd/ob_resource_resolver.h @@ -246,7 +246,7 @@ public: name = "IOPS_WEIGHT"; break; default: - LOG_WARN("invalid item type for RESOURCE UNIT", K(type)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "invalid item type for RESOURCE UNIT", K(type)); name = "UNKNOWN"; break; } diff --git a/src/sql/resolver/dml/ob_dml_resolver.cpp b/src/sql/resolver/dml/ob_dml_resolver.cpp index f4ab55481..1b05e3279 100755 --- a/src/sql/resolver/dml/ob_dml_resolver.cpp +++ b/src/sql/resolver/dml/ob_dml_resolver.cpp @@ -6297,7 +6297,7 @@ bool ObDMLResolver::is_need_add_additional_function(const ObRawExpr *expr) { bool bret = false; if (OB_ISNULL(expr)) { - LOG_WARN("invalid argument to check whether to add additional function", K(expr)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "invalid argument to check whether to add additional function", K(expr)); } else if (T_FUN_COLUMN_CONV == expr->get_expr_type()) { bret = false; } else { @@ -11315,7 +11315,7 @@ const ParseNode *ObDMLResolver::get_outline_data_hint_node() || NULL == (select_node = params_.outline_parse_result_->result_tree_->children_[0])) { /* do nothing */ } else if (OB_UNLIKELY(T_SELECT != select_node->type_)) { - LOG_WARN("unexpected node type", "type", get_type_name(select_node->type_)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "unexpected node type", "type", get_type_name(select_node->type_)); } else { node = select_node->children_[PARSE_SELECT_HINTS]; } diff --git a/src/sql/resolver/dml/ob_dml_stmt.cpp b/src/sql/resolver/dml/ob_dml_stmt.cpp index 1f0b4427d..19de38fd4 100644 --- a/src/sql/resolver/dml/ob_dml_stmt.cpp +++ b/src/sql/resolver/dml/ob_dml_stmt.cpp @@ -2444,7 +2444,7 @@ TableItem *ObDMLStmt::create_table_item(ObIAllocator &allocator) TableItem *table_item = NULL; void *ptr = NULL; if (NULL == (ptr = allocator.alloc(sizeof(TableItem)))) { - LOG_WARN("alloc table item failed"); + LOG_WARN_RET(OB_ALLOCATE_MEMORY_FAILED, "alloc table item failed"); } else { table_item = new(ptr) TableItem(); } diff --git a/src/sql/resolver/dml/ob_hint.cpp b/src/sql/resolver/dml/ob_hint.cpp index f3455d882..6b42ffee1 100644 --- a/src/sql/resolver/dml/ob_hint.cpp +++ b/src/sql/resolver/dml/ob_hint.cpp @@ -218,9 +218,9 @@ void ObGlobalHint::merge_log_level_hint(const ObString &log_level) // do nothing } else if (0 == log_level.case_compare("disabled")) { //allowed for variables - LOG_WARN("Log level parse check error", K(tmp_ret)); + LOG_WARN_RET(tmp_ret, "Log level parse check error", K(tmp_ret)); } else if (OB_UNLIKELY(tmp_ret = OB_LOGGER.parse_check(log_level.ptr(), log_level.length()))) { - LOG_WARN("Log level parse check error", K(tmp_ret)); + LOG_WARN_RET(tmp_ret, "Log level parse check error", K(tmp_ret)); } else { log_level_.assign_ptr(log_level.ptr(), log_level.length()); } diff --git a/src/sql/resolver/expr/ob_raw_expr.cpp b/src/sql/resolver/expr/ob_raw_expr.cpp index cffad21d9..d539ce025 100644 --- a/src/sql/resolver/expr/ob_raw_expr.cpp +++ b/src/sql/resolver/expr/ob_raw_expr.cpp @@ -173,7 +173,7 @@ int ObVarInfo::deep_copy(common::ObIAllocator &allocator, ObVarInfo &var_info) c ObRawExpr::~ObRawExpr() { if (0x86427531 == magic_num_) { - LOG_ERROR("ObRawExpr maybe double free!"); + LOG_ERROR_RET(OB_ERROR, "ObRawExpr maybe double free!"); } magic_num_ = 0x86427531; } @@ -548,7 +548,7 @@ bool ObRawExpr::is_priv_geo_expr() const ObGeoType ObRawExpr::get_geo_expr_result_type() const { if (!is_geo_expr() && T_FUN_SYS_CAST != this->get_expr_type()) { - LOG_WARN("Expr is not a geo expr"); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "Expr is not a geo expr"); return ObGeoType::GEOTYPEMAX; } else { switch (this->get_expr_type()) { @@ -1783,7 +1783,7 @@ const ObRawExpr *ObAliasRefRawExpr::get_param_expr(int64_t index) const { ObRawExpr *expr = NULL; if (index < 0 || index > 1) { - LOG_WARN("index out of range", K(index)); + LOG_WARN_RET(OB_ERROR, "index out of range", K(index)); } else { expr = ref_expr_; } @@ -1794,7 +1794,7 @@ ObRawExpr *&ObAliasRefRawExpr::get_param_expr(int64_t index) { ObRawExpr **expr = &USELESS_POINTER; if (index < 0 || index >= 1) { - LOG_WARN("index out of range", K(index)); + LOG_WARN_RET(OB_ERROR, "index out of range", K(index)); } else { expr = &ref_expr_; } @@ -1833,7 +1833,7 @@ bool ObAliasRefRawExpr::inner_same_as(const ObRawExpr &expr, UNUSED(check_context); bool bret = false; if (OB_ISNULL(ref_expr_)) { - LOG_WARN("ref_expr_ is null"); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "ref_expr_ is null"); } else if (expr.get_expr_type() == get_expr_type()) { const ObAliasRefRawExpr &alias_ref = static_cast(expr); bret = (alias_ref.get_ref_expr() == get_ref_expr()); @@ -1846,13 +1846,13 @@ ObExprOperator *ObNonTerminalRawExpr::get_op() { if (NULL == op_) { if (OB_ISNULL(inner_alloc_)) { - LOG_WARN("invalid inner alloc", K(inner_alloc_)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "invalid inner alloc", K(inner_alloc_)); } else if (type_ != T_OP_ROW) { ObExprOperatorFactory factory(*inner_alloc_); if (OB_SUCCESS != factory.alloc(type_, op_)) { - LOG_WARN("Can not malloc expression operator", "expr_type", get_type_name(type_), K(lbt())); + LOG_WARN_RET(OB_ALLOCATE_MEMORY_FAILED, "Can not malloc expression operator", "expr_type", get_type_name(type_), K(lbt())); } else if (OB_ISNULL(op_)) { - LOG_ERROR("alloc a null expr_op", K(op_)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "alloc a null expr_op", K(op_)); } } } @@ -3656,11 +3656,11 @@ ObExprOperator *ObSysFunRawExpr::get_op() if (T_INVALID != (type = ObExprOperatorFactory::get_type_by_name(func_name_))) { set_expr_type(type); } else { - LOG_ERROR("invalid func name", K_(func_name)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "invalid func name", K_(func_name)); } } if (OB_UNLIKELY(NULL == (op = ObOpRawExpr::get_op()))) { - LOG_ERROR("make function failed", K_(func_name)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "make function failed", K_(func_name)); } return op; } diff --git a/src/sql/resolver/expr/ob_raw_expr.h b/src/sql/resolver/expr/ob_raw_expr.h index 4401f3b2b..97e2188c5 100644 --- a/src/sql/resolver/expr/ob_raw_expr.h +++ b/src/sql/resolver/expr/ob_raw_expr.h @@ -325,9 +325,9 @@ public: { BitSetWord word = 0; if (!is_valid()) { - SQL_RESV_LOG(WARN, "not inited", K(desc_.init_errcode_)); + SQL_RESV_LOG_RET(WARN, OB_NOT_INIT, "not inited", K(desc_.init_errcode_)); } else if (index < 0 || index >= desc_.len_) { - SQL_RESV_LOG(WARN, "bitmap word index exceeds scope", K(index), K(desc_.len_)); + SQL_RESV_LOG_RET(WARN, OB_ERR_UNEXPECTED, "bitmap word index exceeds scope", K(index), K(desc_.len_)); } else { word = bit_set_word_array_[index]; } @@ -363,7 +363,7 @@ public: if (!is_valid()) { // do nothing } else if (OB_UNLIKELY(index < 0)) { - SQL_RESV_LOG(WARN, "negative bitmap member not allowed"); + SQL_RESV_LOG_RET(WARN, OB_INVALID_ARGUMENT, "negative bitmap member not allowed"); } else { int64_t pos = index >> PER_BITSETWORD_MOD_BITS; if (pos >= desc_.len_) { diff --git a/src/sql/resolver/expr/ob_raw_expr_util.h b/src/sql/resolver/expr/ob_raw_expr_util.h index 121086580..494fbf3a9 100644 --- a/src/sql/resolver/expr/ob_raw_expr_util.h +++ b/src/sql/resolver/expr/ob_raw_expr_util.h @@ -92,7 +92,7 @@ public: void free(T *data) { if (NULL == data || NULL == allocator_) { - SQL_LOG(WARN, "invalid param null pointer", KP(data), KP(allocator_)); + SQL_LOG_RET(WARN, common::OB_INVALID_ARGUMENT, "invalid param null pointer", KP(data), KP(allocator_)); } else { data->~T(); allocator_->free(data); diff --git a/src/sql/resolver/ob_resolver_utils.cpp b/src/sql/resolver/ob_resolver_utils.cpp index 6e60ecda9..abae6de84 100644 --- a/src/sql/resolver/ob_resolver_utils.cpp +++ b/src/sql/resolver/ob_resolver_utils.cpp @@ -4448,7 +4448,7 @@ ObColumnSchemaV2* ObResolverUtils::get_column_schema_from_array( { for (int64_t i = 0; i < resolved_cols.count(); ++i) { if (OB_ISNULL(resolved_cols.at(i))) { - LOG_WARN("resolved_cols has null pointer", K(i), K(resolved_cols)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "resolved_cols has null pointer", K(i), K(resolved_cols)); return NULL; } else if (0 == resolved_cols.at(i)->get_column_name_str().case_compare(column_name)) { return resolved_cols.at(i); @@ -7370,7 +7370,7 @@ ColumnItem *ObResolverUtils::find_col_by_base_col_id(ObDMLStmt &stmt, ColumnItem *c = NULL; const TableItem *t = stmt.get_table_item_by_id(table_id); if (OB_ISNULL(t)) { - LOG_WARN("get table item failed", K(table_id)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "get table item failed", K(table_id)); } else { c = find_col_by_base_col_id(stmt, *t, base_column_id, base_table_id); } @@ -7407,7 +7407,7 @@ const ColumnItem *ObResolverUtils::find_col_by_base_col_id(const ObDMLStmt &stmt const ColumnItem *c = NULL; const TableItem *t = stmt.get_table_item_by_id(table_id); if (OB_ISNULL(t)) { - LOG_WARN("get table item failed", K(table_id)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "get table item failed", K(table_id)); } else { c = find_col_by_base_col_id(stmt, *t, base_column_id, base_table_id, ignore_updatable_check); } diff --git a/src/sql/resolver/ob_stmt.cpp b/src/sql/resolver/ob_stmt.cpp index 2a4f62108..045831217 100644 --- a/src/sql/resolver/ob_stmt.cpp +++ b/src/sql/resolver/ob_stmt.cpp @@ -229,7 +229,7 @@ ObQueryCtx *ObStmtFactory::get_query_ctx() if ((ptr = allocator_.alloc(sizeof(ObQueryCtx))) != NULL) { query_ctx_ = new(ptr) ObQueryCtx(); } else { - LOG_WARN("create query ctx failed", "query_ctx size", sizeof(ObQueryCtx)); + LOG_WARN_RET(OB_ALLOCATE_MEMORY_FAILED, "create query ctx failed", "query_ctx size", sizeof(ObQueryCtx)); } } return query_ctx_; diff --git a/src/sql/resolver/ob_stmt_resolver.cpp b/src/sql/resolver/ob_stmt_resolver.cpp index ca3c8dfb6..a42332680 100644 --- a/src/sql/resolver/ob_stmt_resolver.cpp +++ b/src/sql/resolver/ob_stmt_resolver.cpp @@ -30,7 +30,7 @@ uint64_t ObStmtResolver::generate_table_id() if (NULL != params_.query_ctx_) { return params_.query_ctx_->available_tb_id_--; } else { - LOG_WARN("query ctx pointer is null"); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "query ctx pointer is null"); return OB_INVALID_ID; } } diff --git a/src/sql/rewrite/ob_equal_analysis.cpp b/src/sql/rewrite/ob_equal_analysis.cpp index ea7b7e8c6..e837d857d 100644 --- a/src/sql/rewrite/ob_equal_analysis.cpp +++ b/src/sql/rewrite/ob_equal_analysis.cpp @@ -215,7 +215,7 @@ ObExprEqualSet *ObEqualAnalysis::new_equal_set() if (NULL != (ptr = equal_set_alloc_.alloc(sizeof(ObExprEqualSet)))) { equal_set = new(ptr) ObExprEqualSet(); if (!equal_sets_.add_last(equal_set)) { - LOG_WARN("add equal set failed"); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "add equal set failed"); equal_set->~ObEqualSet(); equal_set_alloc_.free(equal_set); equal_set = NULL; diff --git a/src/sql/rewrite/ob_query_range.cpp b/src/sql/rewrite/ob_query_range.cpp index b569cc64a..7c317ecc6 100644 --- a/src/sql/rewrite/ob_query_range.cpp +++ b/src/sql/rewrite/ob_query_range.cpp @@ -7544,7 +7544,7 @@ ObKeyPart *ObQueryRange::create_new_key_part() if (OB_UNLIKELY(OB_SUCCESS != key_part_store_.store_obj(key_part))) { key_part->~ObKeyPart(); key_part = NULL; - LOG_WARN("Store ObKeyPart failed"); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "Store ObKeyPart failed"); } } return key_part; diff --git a/src/sql/rewrite/ob_query_range.h b/src/sql/rewrite/ob_query_range.h index 2a9f4febf..5f5c6d16b 100644 --- a/src/sql/rewrite/ob_query_range.h +++ b/src/sql/rewrite/ob_query_range.h @@ -182,7 +182,7 @@ public: { uint64_t uval = 0; if (NULL == range_) { - SQL_REWRITE_LOG(WARN, "range_ is not inited."); + SQL_REWRITE_LOG_RET(WARN, common::OB_NOT_INIT, "range_ is not inited."); } else { uval = range_->hash(); } diff --git a/src/sql/session/ob_basic_session_info.cpp b/src/sql/session/ob_basic_session_info.cpp index 1b94c0116..5a1e1738d 100644 --- a/src/sql/session/ob_basic_session_info.cpp +++ b/src/sql/session/ob_basic_session_info.cpp @@ -249,10 +249,10 @@ int ObBasicSessionInfo::init(uint32_t sessid, uint64_t proxy_sessid, void ObBasicSessionInfo::destroy() { if (magic_num_ != 0x13572468) { - LOG_ERROR("ObBasicSessionInfo may be double free!!!", K(magic_num_)); + LOG_ERROR_RET(OB_ERROR, "ObBasicSessionInfo may be double free!!!", K(magic_num_)); } if (OB_NOT_NULL(tx_desc_)) { - LOG_ERROR("tx_desc != NULL", KPC(this), KPC_(tx_desc)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "tx_desc != NULL", KPC(this), KPC_(tx_desc)); } tx_desc_ = NULL; tx_result_.reset(); @@ -5028,7 +5028,7 @@ bool ObBasicSessionInfo::is_isolation_serializable() const void ObBasicSessionInfo::set_tx_isolation(ObTxIsolationLevel isolation) { if (isolation == ObTxIsolationLevel::INVALID) { - LOG_ERROR("set invalid tx isolation", K(isolation), KPC(this)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "set invalid tx isolation", K(isolation), KPC(this)); } next_tx_isolation_ = isolation; trans_spec_status_ = TRANS_SPEC_SET; @@ -6062,20 +6062,20 @@ observer::ObSMConnection *ObBasicSessionInfo::get_sm_connection() if (rpc::ObRequest::TRANSPORT_PROTO_EASY == sock_desc.type_) { easy_connection_t* easy_conn = nullptr; if (OB_ISNULL((easy_conn = static_cast(sock_desc.sock_desc_)))) { - LOG_ERROR("easy sock_desc is null"); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "easy sock_desc is null"); } else { conn = static_cast(easy_conn->user_data); } } else if (rpc::ObRequest::TRANSPORT_PROTO_POC == sock_desc.type_) { obmysql::ObSqlSockSession *sess = nullptr; if (OB_ISNULL(sess = static_cast(sock_desc.sock_desc_))) { - LOG_ERROR("sql nio sock_desc is null"); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "sql nio sock_desc is null"); } else { conn = &sess->conn_; } } else { - LOG_ERROR("invalid sock_desc type", K(sock_desc.type_)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "invalid sock_desc type", K(sock_desc.type_)); } return conn; } diff --git a/src/sql/session/ob_sql_session_info.cpp b/src/sql/session/ob_sql_session_info.cpp index 92b2d87d3..6ae59c468 100644 --- a/src/sql/session/ob_sql_session_info.cpp +++ b/src/sql/session/ob_sql_session_info.cpp @@ -893,18 +893,18 @@ ObPlanCache *ObSQLSessionInfo::get_plan_cache() //release old plancache and get new ObPCMemPctConf pc_mem_conf; if (OB_SUCCESS != get_pc_mem_conf(pc_mem_conf)) { - LOG_ERROR("fail to get pc mem conf"); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "fail to get pc mem conf"); plan_cache_ = NULL; } else { plan_cache_ = MTL(ObPlanCache*); if (OB_ISNULL(plan_cache_)) { - LOG_WARN("failed to get plan cache"); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "failed to get plan cache"); } else if (MTL_ID() != get_effective_tenant_id()) { - LOG_ERROR("unmatched tenant_id", K(MTL_ID()), K(get_effective_tenant_id())); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "unmatched tenant_id", K(MTL_ID()), K(get_effective_tenant_id())); } else if (plan_cache_->is_inited()) { // skip update mem conf } else if (OB_SUCCESS != plan_cache_->set_mem_conf(pc_mem_conf)) { - LOG_ERROR("fail to set plan cache memory conf"); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "fail to set plan cache memory conf"); } } } @@ -1223,7 +1223,7 @@ ObPLCursorInfo *ObSQLSessionInfo::get_cursor(int64_t cursor_id) { ObPLCursorInfo *cursor = NULL; if (OB_SUCCESS != pl_cursor_cache_.pl_cursor_map_.get_refactored(cursor_id, cursor)) { - LOG_WARN("get cursor info failed", K(cursor_id), K(get_sessid())); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "get cursor info failed", K(cursor_id), K(get_sessid())); } return cursor; } @@ -1448,7 +1448,7 @@ ObTraceEventRecorder* ObSQLSessionInfo::get_trace_buf() if (NULL == trace_recorder_) { void *ptr = name_pool_.alloc(sizeof(ObTraceEventRecorder)); if (NULL == ptr) { - LOG_WARN("fail to alloc trace recorder"); + LOG_WARN_RET(OB_ALLOCATE_MEMORY_FAILED, "fail to alloc trace recorder"); } else { trace_recorder_ = new (ptr) ObTraceEventRecorder(false, ObLatchIds::SESSION_TRACE_RECORDER_LOCK); } @@ -1718,7 +1718,7 @@ void ObSQLSessionInfo::update_alive_time_stat() void ObSQLSessionInfo::set_session_type_with_flag() { if (OB_UNLIKELY(INVALID_TYPE == session_type_)) { - LOG_WARN("session type is not init, only happen when old server send rpc to new server"); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "session type is not init, only happen when old server send rpc to new server"); session_type_ = inner_flag_ ? INNER_SESSION : USER_SESSION; } } @@ -2353,7 +2353,7 @@ void ObSQLSessionInfo::ObCachedTenantConfigInfo::refresh() ATOMIC_STORE(&sort_area_size_, tenant_config->_sort_area_size); // 5.allow security audit if (OB_SUCCESS != (tmp_ret = ObSecurityAuditUtils::check_allow_audit(*session_, at_type_))) { - LOG_WARN("fail get tenant_config", "ret", tmp_ret, + LOG_WARN_RET(tmp_ret, "fail get tenant_config", "ret", tmp_ret, K(session_->get_priv_tenant_id()), K(effective_tenant_id), K(lbt())); @@ -2408,7 +2408,7 @@ void* ObSQLSessionInfo::get_piece_cache(bool need_init) { get_effective_tenant_id())) { get_session_allocator().free(piece_cache_); piece_cache_ = NULL; - LOG_WARN("init piece cache fail"); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "init piece cache fail"); } } } @@ -2966,9 +2966,9 @@ int64_t ObSQLSessionInfo::get_xa_end_timeout_seconds() const if (NULL != xa_timeout_value) { int64_t tmp_val = 0; if (OB_SUCCESS != (tmp_ret = xa_timeout_value->get_number().cast_to_int64(tmp_val))) { - LOG_WARN("failed to get xa timeout", K(tmp_ret), K(tmp_val)); + LOG_WARN_RET(tmp_ret, "failed to get xa timeout", K(tmp_ret), K(tmp_val)); } else if (0 >= tmp_val) { - LOG_WARN("invalid xa timeout", K(tmp_val)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "invalid xa timeout", K(tmp_val)); } else { ret_val = tmp_val; LOG_INFO("get xa timeout from user variable", K(ret_val), "session_id", get_sessid()); diff --git a/src/sql/session/ob_sql_session_mgr.cpp b/src/sql/session/ob_sql_session_mgr.cpp index 29d275978..844d8a5af 100644 --- a/src/sql/session/ob_sql_session_mgr.cpp +++ b/src/sql/session/ob_sql_session_mgr.cpp @@ -809,7 +809,7 @@ ObSessionGetterGuard::ObSessionGetterGuard(ObSQLSessionMgr &sess_mgr, uint32_t s { ret_ = mgr_.get_session(sessid, session_); if (OB_SUCCESS != ret_) { - LOG_WARN("get session fail", K(ret_), K(sessid)); + LOG_WARN_RET(ret_, "get session fail", K(ret_), K(sessid)); } else { NG_TRACE_EXT(session, OB_ID(sid), session_->get_sessid(), OB_ID(tenant_id), session_->get_priv_tenant_id()); diff --git a/src/sql/udr/ob_udr_item.cpp b/src/sql/udr/ob_udr_item.cpp index 3a8d6f2cb..a19d32f96 100644 --- a/src/sql/udr/ob_udr_item.cpp +++ b/src/sql/udr/ob_udr_item.cpp @@ -70,7 +70,7 @@ int64_t ObUDRItem::dec_ref_count() this->~ObUDRItem(); allocator_.free(this);// I'm sure this is the last line, so it's safe here } else { - LOG_ERROR("invalid ref count", K(ref_count)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "invalid ref count", K(ref_count)); } return ref_count; } @@ -161,4 +161,4 @@ int ObUDRItem::deserialize_question_mark_by_name_ctx(const common::ObString str) } } // namespace sql end -} // namespace oceanbase end \ No newline at end of file +} // namespace oceanbase end diff --git a/src/sql/udr/ob_udr_item_mgr.cpp b/src/sql/udr/ob_udr_item_mgr.cpp index ea7bb0b8b..81f3fafd4 100644 --- a/src/sql/udr/ob_udr_item_mgr.cpp +++ b/src/sql/udr/ob_udr_item_mgr.cpp @@ -105,7 +105,7 @@ int64_t ObUDRItemMgr::UDRKeyNodePair::dec_ref_count() this->~UDRKeyNodePair(); allocator_.free(this);// I'm sure this is the last line, so it's safe here } else { - LOG_ERROR("invalid ref count", K(ref_count)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "invalid ref count", K(ref_count)); } return ref_count; } diff --git a/src/storage/access/ob_block_sample_iterator.cpp b/src/storage/access/ob_block_sample_iterator.cpp index ab06110ec..2aa5469e2 100644 --- a/src/storage/access/ob_block_sample_iterator.cpp +++ b/src/storage/access/ob_block_sample_iterator.cpp @@ -577,12 +577,12 @@ bool ObBlockSampleRangeIterator::ObBlockSampleSSTableEndkeyComparor::operator()( if (OB_UNLIKELY(nullptr == datum_utils_)) { ret_ = OB_NOT_INIT; - STORAGE_LOG(WARN, "The ObBlockSampleSSTableEndkeyComparor is invalid", K(ret_)); + STORAGE_LOG_RET(WARN, ret_, "The ObBlockSampleSSTableEndkeyComparor is invalid", K(ret_)); } else if (OB_UNLIKELY(OB_SUCCESS != ret_)) { - STORAGE_LOG(WARN, "The ObBlockSampleSSTableEndkeyComparor is under error", K(ret_)); + STORAGE_LOG_RET(WARN, ret_, "The ObBlockSampleSSTableEndkeyComparor is under error", K(ret_)); } else if (OB_UNLIKELY(left == nullptr || right == nullptr)) { ret_ = OB_INVALID_ARGUMENT; - STORAGE_LOG(WARN, "Invalid argument", K(ret_), KP(left), KP(right)); + STORAGE_LOG_RET(WARN, ret_, "Invalid argument", K(ret_), KP(left), KP(right)); } else { ret_ = left->get_endkey().compare(right->get_endkey(), *datum_utils_, cmp_ret); } diff --git a/src/storage/access/ob_multiple_merge.cpp b/src/storage/access/ob_multiple_merge.cpp index a2f7e8388..0ff8c6b54 100644 --- a/src/storage/access/ob_multiple_merge.cpp +++ b/src/storage/access/ob_multiple_merge.cpp @@ -659,7 +659,7 @@ void ObMultipleMerge::report_tablet_stat() tablet_stat.scan_micro_block_cnt_ = access_ctx_->table_store_stat_.micro_access_cnt_; tablet_stat.pushdown_micro_block_cnt_ = access_ctx_->table_store_stat_.pushdown_micro_access_cnt_; if (OB_TMP_FAIL(MTL(storage::ObTenantTabletStatMgr *)->report_stat(tablet_stat))) { - STORAGE_LOG(WARN, "failed to report tablet stat", K(tmp_ret), K(tablet_stat)); + STORAGE_LOG_RET(WARN, tmp_ret, "failed to report tablet stat", K(tmp_ret), K(tablet_stat)); } } } @@ -1085,7 +1085,7 @@ const ObTableIterParam * ObMultipleMerge::get_actual_iter_param(const ObITable * { const ObTableIterParam *ptr = NULL; if (OB_ISNULL(table)) { - STORAGE_LOG(WARN, "input table is NULL", KP(table)); + STORAGE_LOG_RET(WARN, OB_INVALID_ARGUMENT, "input table is NULL", KP(table)); } else{ ptr = &access_param_->iter_param_; } diff --git a/src/storage/backup/ob_backup_factory.cpp b/src/storage/backup/ob_backup_factory.cpp index 5eb0fc317..72cf05686 100644 --- a/src/storage/backup/ob_backup_factory.cpp +++ b/src/storage/backup/ob_backup_factory.cpp @@ -23,7 +23,7 @@ ObILSTabletIdReader *ObLSBackupFactory::get_ls_tablet_id_reader(const ObLSTablet if (LS_TABLET_ID_READER == type) { reader = OB_NEW(ObLSTabletIdReader, ObModIds::BACKUP); } else { - LOG_ERROR("unknown tablet reader type", K(type)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "unknown tablet reader type", K(type)); } return reader; } @@ -34,7 +34,7 @@ ObITabletLogicMacroIdReader *ObLSBackupFactory::get_tablet_logic_macro_id_reader if (TABLET_LOGIC_ID_READER == type) { reader = OB_NEW(ObTabletLogicMacroIdReader, ObModIds::BACKUP); } else { - LOG_ERROR("unknown reader type", K(type)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "unknown reader type", K(type)); } return reader; } @@ -45,7 +45,7 @@ ObIMacroBlockBackupReader *ObLSBackupFactory::get_macro_block_backup_reader(cons if (LOCAL_MACRO_BLOCK_READER == type) { reader = OB_NEW(ObMacroBlockBackupReader, ObModIds::BACKUP); } else { - LOG_ERROR("unknown reader type", K(type)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "unknown reader type", K(type)); } return reader; } @@ -63,7 +63,7 @@ ObITabletMetaBackupReader *ObLSBackupFactory::get_tablet_meta_backup_reader(cons } else if (SSTABLE_META_READER == type) { reader = OB_NEW(ObSSTableMetaBackupReader, ObModIds::BACKUP); } else { - LOG_ERROR("unknown reader type", K(type)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "unknown reader type", K(type)); } return reader; } @@ -78,7 +78,7 @@ ObIBackupIndexIterator *ObLSBackupFactory::get_backup_index_iterator(const ObBac } else if (BACKUP_META_INDEX_ITERATOR == type) { iterator = OB_NEW(ObBackupMetaIndexIterator, ObModIds::BACKUP); } else { - LOG_ERROR("unknown iterator type", K(type)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "unknown iterator type", K(type)); } return iterator; } @@ -89,7 +89,7 @@ ObIBackupTabletProvider *ObLSBackupFactory::get_backup_tablet_provider(const ObB if (BACKUP_TABLET_PROVIDER == type) { provider = OB_NEW(ObBackupTabletProvider, ObModIds::BACKUP); } else { - LOG_ERROR("unknown provider type", K(type)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "unknown provider type", K(type)); } return provider; } @@ -102,7 +102,7 @@ ObIBackupMacroBlockIndexFuser *ObLSBackupFactory::get_backup_macro_index_fuser(c } else if (type == BACKUP_MACRO_INDEX_MAJOR_FUSER) { fuser = OB_NEW(ObBackupMacroIndexMajorFuser, ObModIds::BACKUP); } else { - LOG_ERROR("unknown fuser type", K(type)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "unknown fuser type", K(type)); } return fuser; } @@ -118,7 +118,7 @@ void ObLSBackupFactory::free(ObILSTabletIdReader *&reader) if (LS_TABLET_ID_READER == reader->get_type()) { OB_DELETE(ObILSTabletIdReader, ObModIds::BACKUP, reader); } else { - LOG_ERROR("unknown reader type", "type", reader->get_type()); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "unknown reader type", "type", reader->get_type()); } } } @@ -129,7 +129,7 @@ void ObLSBackupFactory::free(ObITabletLogicMacroIdReader *&reader) if (TABLET_LOGIC_ID_READER == reader->get_type()) { OB_DELETE(ObITabletLogicMacroIdReader, ObModIds::BACKUP, reader); } else { - LOG_ERROR("unknown reader type", "type", reader->get_type()); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "unknown reader type", "type", reader->get_type()); } } } @@ -140,7 +140,7 @@ void ObLSBackupFactory::free(ObIMacroBlockBackupReader *&reader) if (LOCAL_MACRO_BLOCK_READER == reader->get_type()) { OB_DELETE(ObIMacroBlockBackupReader, ObModIds::BACKUP, reader); } else { - LOG_ERROR("unknown reader type", "type", reader->get_type()); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "unknown reader type", "type", reader->get_type()); } } } @@ -158,7 +158,7 @@ void ObLSBackupFactory::free(ObITabletMetaBackupReader *&reader) } else if (SSTABLE_META_READER == reader->get_type()) { OB_DELETE(ObITabletMetaBackupReader, ObModIds::BACKUP, reader); } else { - LOG_ERROR("unknown reader type", "type", reader->get_type()); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "unknown reader type", "type", reader->get_type()); } } } @@ -176,7 +176,7 @@ void ObLSBackupFactory::free(ObIMacroBlockIndexIterator *&iterator) } else if (BACKUP_MACRO_RANGE_INDEX_ITERATOR == iterator->get_type()) { OB_DELETE(ObIMacroBlockIndexIterator, ObModIds::BACKUP, iterator); } else { - LOG_ERROR("unknown iterator type", "type", iterator->get_type()); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "unknown iterator type", "type", iterator->get_type()); } } } @@ -187,7 +187,7 @@ void ObLSBackupFactory::free(ObIBackupTabletProvider *&provider) if (BACKUP_TABLET_PROVIDER == provider->get_type()) { OB_DELETE(ObIBackupTabletProvider, ObModIds::BACKUP, provider); } else { - LOG_ERROR("unknown provider type", "type", provider->get_type()); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "unknown provider type", "type", provider->get_type()); } } } @@ -200,7 +200,7 @@ void ObLSBackupFactory::free(ObIBackupMacroBlockIndexFuser *&fuser) } else if (BACKUP_MACRO_INDEX_MAJOR_FUSER == fuser->get_type()) { OB_DELETE(ObIBackupMacroBlockIndexFuser, ObModIds::BACKUP, fuser); } else { - LOG_ERROR("unknown fuser type", "type", fuser->get_type()); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "unknown fuser type", "type", fuser->get_type()); } } } @@ -211,4 +211,4 @@ void ObLSBackupFactory::free(ObBackupTabletCtx *&ctx) } } // namespace backup -} // namespace oceanbase \ No newline at end of file +} // namespace oceanbase diff --git a/src/storage/backup/ob_backup_tmp_file.cpp b/src/storage/backup/ob_backup_tmp_file.cpp index 50129b59d..e15b9343b 100644 --- a/src/storage/backup/ob_backup_tmp_file.cpp +++ b/src/storage/backup/ob_backup_tmp_file.cpp @@ -153,7 +153,7 @@ void ObBackupIndexBufferNode::reset() if (!tmp_file_.is_opened()) { // do nothing } else if (OB_TMP_FAIL(tmp_file_.close())) { - LOG_ERROR("failed to close tmp file", K(tmp_ret)); + LOG_ERROR_RET(tmp_ret, "failed to close tmp file", K(tmp_ret)); } } diff --git a/src/storage/backup/ob_backup_utils.cpp b/src/storage/backup/ob_backup_utils.cpp index 628501fcf..f3da6889c 100644 --- a/src/storage/backup/ob_backup_utils.cpp +++ b/src/storage/backup/ob_backup_utils.cpp @@ -1313,7 +1313,7 @@ bool ObBackupProviderItemCompare::operator()(const ObBackupProviderItem *left, c bool bret = false; if (OB_ISNULL(left) || OB_ISNULL(right)) { result_code_ = OB_INVALID_DATA; - LOG_WARN("provider item should not be null", K_(result_code), KP(left), KP(right)); + LOG_WARN_RET(result_code_, "provider item should not be null", K_(result_code), KP(left), KP(right)); } else if (backup_data_type_.is_minor_backup()) { // minor sstable is sorted by log ts range end log ts if (left->get_tablet_id().id() < right->get_tablet_id().id()) { bret = true; diff --git a/src/storage/blocksstable/encoding/neon/ob_encoding_neon_util.h b/src/storage/blocksstable/encoding/neon/ob_encoding_neon_util.h index 16589147c..2e4b1970c 100644 --- a/src/storage/blocksstable/encoding/neon/ob_encoding_neon_util.h +++ b/src/storage/blocksstable/encoding/neon/ob_encoding_neon_util.h @@ -28,7 +28,7 @@ template static T_OUT neon_cmp_int(T_IN left, T_IN right) { UNUSEDx(left, right); - STORAGE_LOG(ERROR, "Unsupported neon compare", K(lbt())); + STORAGE_LOG_RET(ERROR, OB_NOT_SUPPORTED, "Unsupported neon compare", K(lbt())); return left; } diff --git a/src/storage/blocksstable/encoding/ob_const_encoder.cpp b/src/storage/blocksstable/encoding/ob_const_encoder.cpp index 224bdff01..84e902a0b 100644 --- a/src/storage/blocksstable/encoding/ob_const_encoder.cpp +++ b/src/storage/blocksstable/encoding/ob_const_encoder.cpp @@ -143,7 +143,7 @@ int64_t ObConstEncoder::calc_size() const tmp_ret = get_cell_len(*const_list_header_->datum_, size); } if (OB_UNLIKELY(OB_SUCCESS != tmp_ret)) { - LOG_WARN("failed to get cell len", K(tmp_ret)); + LOG_WARN_RET(tmp_ret, "failed to get cell len", K(tmp_ret)); } else { size += sizeof(ObConstMetaHeader); } diff --git a/src/storage/blocksstable/encoding/ob_dict_encoder.cpp b/src/storage/blocksstable/encoding/ob_dict_encoder.cpp index f7698fbe9..343e8da28 100644 --- a/src/storage/blocksstable/encoding/ob_dict_encoder.cpp +++ b/src/storage/blocksstable/encoding/ob_dict_encoder.cpp @@ -315,7 +315,7 @@ bool ObDictEncoder::DictCmp::operator()( if (OB_UNLIKELY(OB_SUCCESS != ret_)) { } else if (OB_UNLIKELY(nullptr == lhs.header_ || nullptr == rhs.header_)) { ret_ = OB_INVALID_ARGUMENT; - LOG_WARN("invalid argument", K_(ret), KP(lhs.header_), KP(rhs.header_)); + LOG_WARN_RET(ret_, "invalid argument", K_(ret), KP(lhs.header_), KP(rhs.header_)); } else { int cmp_ret = cmp_func_.cmp_func_(*lhs.header_->datum_, *rhs.header_->datum_); res = cmp_ret < 0; diff --git a/src/storage/blocksstable/encoding/ob_encoding_util.h b/src/storage/blocksstable/encoding/ob_encoding_util.h index da469cad8..9f25572db 100644 --- a/src/storage/blocksstable/encoding/ob_encoding_util.h +++ b/src/storage/blocksstable/encoding/ob_encoding_util.h @@ -485,7 +485,7 @@ OB_INLINE bool fp_int_cmp(const T left, const T right, const ObFPIntCmpOpType cm res = left != right; break; default: - STORAGE_LOG(ERROR, "Not Supported compare operation type", K(cmp_op)); + STORAGE_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "Not Supported compare operation type", K(cmp_op)); } return res; } diff --git a/src/storage/blocksstable/encoding/ob_micro_block_encoder.cpp b/src/storage/blocksstable/encoding/ob_micro_block_encoder.cpp index 9aaef8e48..4dd3ca32e 100644 --- a/src/storage/blocksstable/encoding/ob_micro_block_encoder.cpp +++ b/src/storage/blocksstable/encoding/ob_micro_block_encoder.cpp @@ -258,7 +258,7 @@ int ObMicroBlockEncoder::calc_and_validate_checksum(const ObDatumRow &row) } if (OB_UNLIKELY(buffered_rows_checksum_ != micro_block_checksum_)) { ret = OB_CHECKSUM_ERROR; - FLOG_ERROR("micro block checksum is not equal", K(ret), K_(micro_block_checksum), + LOG_DBA_ERROR(OB_CHECKSUM_ERROR, "msg", "micro block checksum is not equal", K(ret), K_(micro_block_checksum), K_(buffered_rows_checksum), K(row), K(buf_row)); } } @@ -341,7 +341,7 @@ void ObMicroBlockEncoder::update_estimate_size_limit(const ObMicroBlockEncodingC // We should make sure expand_pct_ never equal to 0 if (OB_UNLIKELY(0 == expand_pct_)) { - LOG_ERROR("expand_pct equal to zero", + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "expand_pct equal to zero", K_(expand_pct), K(ctx.estimate_block_size_), K(ctx.real_block_size_)); } diff --git a/src/storage/blocksstable/encoding/ob_raw_decoder.cpp b/src/storage/blocksstable/encoding/ob_raw_decoder.cpp index b396e3833..e342db221 100644 --- a/src/storage/blocksstable/encoding/ob_raw_decoder.cpp +++ b/src/storage/blocksstable/encoding/ob_raw_decoder.cpp @@ -112,7 +112,7 @@ struct RawVarBatchDecodeFunc_T break; } default: { - LOG_ERROR("Invalid column index byte", K(col_idx_byte)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "Invalid column index byte", K(col_idx_byte)); } } } diff --git a/src/storage/blocksstable/ob_block_sstable_struct.cpp b/src/storage/blocksstable/ob_block_sstable_struct.cpp index 1d9fbc64b..898ce8ee4 100644 --- a/src/storage/blocksstable/ob_block_sstable_struct.cpp +++ b/src/storage/blocksstable/ob_block_sstable_struct.cpp @@ -612,7 +612,7 @@ int ObRecordHeaderV3::check_header_checksum() const if (0 != checksum) { ret = OB_PHYSIC_CHECKSUM_ERROR; - LOG_ERROR("record check checksum failed", K(ret), K(*this)); + LOG_DBA_ERROR(OB_PHYSIC_CHECKSUM_ERROR, "msg", "record check checksum failed", K(ret), K(*this)); } return ret; } @@ -629,7 +629,7 @@ int ObRecordHeaderV3::check_payload_checksum(const char *buf, const int64_t len) const int64_t data_checksum = ob_crc64_sse42(buf, len); if (data_checksum != data_checksum_) { ret = OB_PHYSIC_CHECKSUM_ERROR; - LOG_ERROR("checksum error", K(ret), K(data_checksum_), K(data_checksum)); + LOG_DBA_ERROR(OB_PHYSIC_CHECKSUM_ERROR, "msg", "checksum error", K(ret), K(data_checksum_), K(data_checksum)); } } return ret; diff --git a/src/storage/blocksstable/ob_data_buffer.cpp b/src/storage/blocksstable/ob_data_buffer.cpp index 2b213ca5d..0c363d1d1 100644 --- a/src/storage/blocksstable/ob_data_buffer.cpp +++ b/src/storage/blocksstable/ob_data_buffer.cpp @@ -52,7 +52,7 @@ char *ObSelfBufferWriter::alloc(const int64_t size) if (size == macro_block_mem_ctx_.get_block_size()) { data = (char *)macro_block_mem_ctx_.alloc(); if (OB_ISNULL(data)) { - STORAGE_LOG(WARN, "fail to alloc buf from mem ctx", K(size)); + STORAGE_LOG_RET(WARN, OB_ALLOCATE_MEMORY_FAILED, "fail to alloc buf from mem ctx", K(size)); } } #endif diff --git a/src/storage/blocksstable/ob_data_buffer.h b/src/storage/blocksstable/ob_data_buffer.h index bf65f5130..88e0ab82f 100644 --- a/src/storage/blocksstable/ob_data_buffer.h +++ b/src/storage/blocksstable/ob_data_buffer.h @@ -271,14 +271,14 @@ public: va_copy(ap2, ap); int64_t n = vsnprintf(data_ + pos_, remain(), fmt, ap); if (n++ < 0) { // include '\0' at tail - _OB_LOG(WARN, "vsnprintf failed, errno %d", errno); + _OB_LOG_RET(WARN, common::OB_ERR_SYS, "vsnprintf failed, errno %d", errno); rc = common::OB_ERROR; } else if (n > remain()) { rc = expand(n + 1); if (common::OB_SUCCESS == rc) { n = vsnprintf(data_ + pos_, remain(), fmt, ap2); if (n < 0) { - _OB_LOG(WARN, "vsnprintf failed, errno %d", errno); + _OB_LOG_RET(WARN, common::OB_ERR_SYS, "vsnprintf failed, errno %d", errno); rc = common::OB_ERROR; } else { pos_ += n; diff --git a/src/storage/blocksstable/ob_datum_row.cpp b/src/storage/blocksstable/ob_datum_row.cpp index 2b3be84ce..069182aa1 100644 --- a/src/storage/blocksstable/ob_datum_row.cpp +++ b/src/storage/blocksstable/ob_datum_row.cpp @@ -515,12 +515,12 @@ bool ObDatumRow::operator==(const ObDatumRow &other) const bool is_equal = true; if (count_ != other.count_) { is_equal = false; - STORAGE_LOG(WARN, "datum row count no equal", K(other), K(*this)); + STORAGE_LOG_RET(WARN, OB_INVALID_ARGUMENT, "datum row count no equal", K(other), K(*this)); } else { for (int64_t i = 0; is_equal && i < count_; i++) { is_equal = storage_datums_[i] == other.storage_datums_[i]; if (!is_equal) { - STORAGE_LOG(WARN, "obj and datum no equal", K(i), K(other), K(*this)); + STORAGE_LOG_RET(WARN, OB_ERR_UNEXPECTED, "obj and datum no equal", K(i), K(other), K(*this)); } } } @@ -532,13 +532,13 @@ bool ObDatumRow::operator==(const ObNewRow &other) const bool is_equal = true; if (count_ != other.count_) { is_equal = false; - STORAGE_LOG(WARN, "datum row count no equal", K(other), K(*this)); + STORAGE_LOG_RET(WARN, OB_INVALID_ARGUMENT, "datum row count no equal", K(other), K(*this)); } else { int ret = OB_SUCCESS; for (int64_t i = 0; is_equal && i < count_; i++) { is_equal = storage_datums_[i] == other.cells_[i]; if (!is_equal) { - STORAGE_LOG(WARN, "obj and datum no equal", K(i), K(other), K(*this)); + STORAGE_LOG_RET(WARN, OB_ERR_UNEXPECTED, "obj and datum no equal", K(i), K(other), K(*this)); } } } diff --git a/src/storage/blocksstable/ob_datum_row.h b/src/storage/blocksstable/ob_datum_row.h index 676f591ad..6865f13a9 100644 --- a/src/storage/blocksstable/ob_datum_row.h +++ b/src/storage/blocksstable/ob_datum_row.h @@ -620,7 +620,7 @@ OB_INLINE bool ObStorageDatum::operator==(const ObStorageDatum &other) const bret = ObDatum::binary_equal(*this, other); } if (!bret) { - STORAGE_LOG(WARN, "obj and datum no equal", K(other), K(*this)); + STORAGE_LOG(DEBUG, "obj and datum no equal", K(other), K(*this)); } return bret; @@ -638,7 +638,7 @@ OB_INLINE bool ObStorageDatum::operator==(const common::ObObj &other) const bret = *this == datum; } if (!bret) { - STORAGE_LOG(WARN, "obj and datum no equal", K(other), K(datum), KPC(this)); + STORAGE_LOG(DEBUG, "obj and datum no equal", K(other), K(datum), KPC(this)); } return bret; } diff --git a/src/storage/blocksstable/ob_datum_rowkey.h b/src/storage/blocksstable/ob_datum_rowkey.h index ea1453ca2..a4ede7bc5 100644 --- a/src/storage/blocksstable/ob_datum_rowkey.h +++ b/src/storage/blocksstable/ob_datum_rowkey.h @@ -281,12 +281,12 @@ OB_INLINE bool ObDatumRowkey::operator==(const ObDatumRowkey &other) const } else if (datum_cnt_ != other.datum_cnt_) { is_equal = false; - STORAGE_LOG(WARN, "datum rowkey count no equal", K(other), K(*this)); + STORAGE_LOG(DEBUG, "datum rowkey count no equal", K(other), K(*this)); } else { for (int64_t i = 0; is_equal && i < datum_cnt_; i++) { is_equal = datums_[i] == other.datums_[i]; if (!is_equal) { - STORAGE_LOG(WARN, "datum not equal", K(i), K(other), K(*this)); + STORAGE_LOG(DEBUG, "datum not equal", K(i), K(other), K(*this)); } } } diff --git a/src/storage/blocksstable/ob_macro_block_checker.cpp b/src/storage/blocksstable/ob_macro_block_checker.cpp index 88908bb46..a847f54fa 100644 --- a/src/storage/blocksstable/ob_macro_block_checker.cpp +++ b/src/storage/blocksstable/ob_macro_block_checker.cpp @@ -142,7 +142,7 @@ int ObSSTableMacroBlockChecker::check_logical_checksum( for (int64_t i = 0; OB_SUCC(ret) && i < column_cnt; ++i) { if (column_checksum_in_header[i] != column_checksum[i]) { ret = OB_PHYSIC_CHECKSUM_ERROR; - STORAGE_LOG(ERROR, "Column checksum error", K(ret), K(i), + LOG_DBA_ERROR(OB_PHYSIC_CHECKSUM_ERROR, "msg","Column checksum error", K(ret), K(i), K(column_checksum_in_header[i]), K(column_checksum[i])); } } @@ -237,7 +237,7 @@ int ObSSTableMacroBlockChecker::check_physical_checksum( common_header.get_payload_size())); if (physical_checksum != common_header.get_payload_checksum()) { ret = OB_PHYSIC_CHECKSUM_ERROR; - STORAGE_LOG(ERROR, "Invalid physical checksum", K(ret), K(physical_checksum), + LOG_DBA_ERROR(OB_PHYSIC_CHECKSUM_ERROR, "msg", "Invalid physical checksum", K(ret), K(physical_checksum), K(common_header)); } } diff --git a/src/storage/blocksstable/ob_macro_block_common_header.cpp b/src/storage/blocksstable/ob_macro_block_common_header.cpp index 68103ea0c..86bccd7de 100644 --- a/src/storage/blocksstable/ob_macro_block_common_header.cpp +++ b/src/storage/blocksstable/ob_macro_block_common_header.cpp @@ -52,7 +52,7 @@ void ObMacroBlockCommonHeader::set_attr(const int64_t seq) break; default: attr_ = MacroBlockType::MaxMacroType; - LOG_WARN("invalid data seq", K(seq)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "invalid data seq", K(seq)); } } diff --git a/src/storage/blocksstable/ob_macro_block_handle.cpp b/src/storage/blocksstable/ob_macro_block_handle.cpp index 2703a7bcc..61db5a658 100644 --- a/src/storage/blocksstable/ob_macro_block_handle.cpp +++ b/src/storage/blocksstable/ob_macro_block_handle.cpp @@ -271,7 +271,7 @@ void ObMacroBlocksHandle::reset() for (int64_t i = 0; i < macro_id_list_.count(); ++i) { if (OB_SUCCESS != (tmp_ret = OB_SERVER_BLOCK_MGR.dec_ref(macro_id_list_.at(i)))) { - LOG_ERROR("failed to dec macro block ref cnt", K(tmp_ret), "macro_id", macro_id_list_.at(i)); + LOG_ERROR_RET(tmp_ret, "failed to dec macro block ref cnt", K(tmp_ret), "macro_id", macro_id_list_.at(i)); } } } diff --git a/src/storage/blocksstable/ob_macro_block_id.cpp b/src/storage/blocksstable/ob_macro_block_id.cpp index c460885e5..57b064a51 100644 --- a/src/storage/blocksstable/ob_macro_block_id.cpp +++ b/src/storage/blocksstable/ob_macro_block_id.cpp @@ -71,7 +71,7 @@ uint64_t MacroBlockId::hash() const hash_val = block_index_ * HASH_MAGIC_NUM; break; default: - LOG_ERROR("unexpected id mode!", K(*this)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "unexpected id mode!", K(*this)); break; } return hash_val; @@ -135,14 +135,14 @@ bool MacroBlockId::operator <(const MacroBlockId &other) const { bool bret = false; if (other.id_mode_ != id_mode_) { - LOG_ERROR("different id_mode_!", K(*this), K(other)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "different id_mode_!", K(*this), K(other)); } else { switch ((ObMacroBlockIdMode)id_mode_) { case ObMacroBlockIdMode::ID_MODE_LOCAL: bret = (block_index_ < other.block_index_); break; default: - LOG_ERROR("unexpected id mode!", K(*this)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "unexpected id mode!", K(*this)); break; } } diff --git a/src/storage/blocksstable/ob_macro_block_writer.cpp b/src/storage/blocksstable/ob_macro_block_writer.cpp index e040ec3ca..4f7cf5250 100755 --- a/src/storage/blocksstable/ob_macro_block_writer.cpp +++ b/src/storage/blocksstable/ob_macro_block_writer.cpp @@ -129,7 +129,7 @@ int ObMicroBlockBufferHelper::check_micro_block( STORAGE_LOG(WARN, "failed to decompress data", K(ret)); } else if (uncompressed_size != real_decomp_size) { ret = OB_CHECKSUM_ERROR; - STORAGE_LOG(ERROR, "decompressed size is not equal to original size", K(ret), + LOG_DBA_ERROR(OB_CHECKSUM_ERROR, "msg", "decompressed size is not equal to original size", K(ret), K(uncompressed_size), K(real_decomp_size)); } if (OB_SUCC(ret)) { @@ -178,7 +178,7 @@ int ObMicroBlockBufferHelper::check_micro_block_checksum( if (checksum != new_checksum) { print_micro_block_row(micro_reader); ret = OB_CHECKSUM_ERROR; // ignore print error code - FLOG_ERROR("micro block checksum is not equal", K(new_checksum), + LOG_DBA_ERROR(OB_CHECKSUM_ERROR, "msg", "micro block checksum is not equal", K(new_checksum), K(checksum), K(ret), KPC(data_store_desc_)); } } @@ -1597,7 +1597,7 @@ void ObMacroBlockWriter::dump_block_and_writer_buffer() // dump cur_macro_block and micro_writer_buffer dump_micro_block(*micro_writer_); dump_macro_block(macro_blocks_[current_index_]); - FLOG_WARN("dump block and writer buffer", K(this), + FLOG_WARN_RET(OB_SUCCESS, "dump block and writer buffer", K(this), K_(current_index), K_(current_macro_seq), KPC_(data_store_desc)); } diff --git a/src/storage/blocksstable/ob_micro_block_header.cpp b/src/storage/blocksstable/ob_micro_block_header.cpp index 010290732..7ff783f91 100644 --- a/src/storage/blocksstable/ob_micro_block_header.cpp +++ b/src/storage/blocksstable/ob_micro_block_header.cpp @@ -122,7 +122,7 @@ int ObMicroBlockHeader::check_header_checksum() const if (0 != checksum) { ret = OB_PHYSIC_CHECKSUM_ERROR; - LOG_ERROR("record check checksum failed", K(ret), K(*this)); + LOG_DBA_ERROR(OB_PHYSIC_CHECKSUM_ERROR, "msg","record check checksum failed", K(ret), K(*this)); } return ret; } @@ -139,7 +139,7 @@ int ObMicroBlockHeader::check_payload_checksum(const char *buf, const int64_t le const int64_t data_checksum = ob_crc64_sse42(buf, len); if (data_checksum != data_checksum_) { ret = OB_PHYSIC_CHECKSUM_ERROR; - LOG_ERROR("checksum error", K(ret), K(data_checksum_), K(data_checksum)); + LOG_DBA_ERROR(OB_PHYSIC_CHECKSUM_ERROR, "msg","checksum error", K(ret), K(data_checksum_), K(data_checksum)); } } return ret; diff --git a/src/storage/blocksstable/ob_row_queue.h b/src/storage/blocksstable/ob_row_queue.h index 3c5c70091..68f47dfed 100644 --- a/src/storage/blocksstable/ob_row_queue.h +++ b/src/storage/blocksstable/ob_row_queue.h @@ -65,7 +65,7 @@ public: void print_rows() { for (int64_t i = 0; i < rows_.count(); i++) { - STORAGE_LOG(WARN, "print rows of row queue", K(i), KPC(rows_.at(i))); + STORAGE_LOG_RET(WARN, common::OB_SUCCESS, "print rows of row queue", K(i), KPC(rows_.at(i))); } } TO_STRING_KV(K_(col_cnt), diff --git a/src/storage/blocksstable/ob_tmp_file.cpp b/src/storage/blocksstable/ob_tmp_file.cpp index 659b8a016..e969b8a84 100644 --- a/src/storage/blocksstable/ob_tmp_file.cpp +++ b/src/storage/blocksstable/ob_tmp_file.cpp @@ -1147,7 +1147,7 @@ void ObTmpFileHandle::reset() if (NULL != ptr_) { int tmp_ret = OB_SUCCESS; if (OB_SUCCESS != (tmp_ret = ObTmpFileManager::get_instance().dec_handle_ref(*this))) { - STORAGE_LOG(WARN, "fail to decrease handle reference count", K(tmp_ret)); + STORAGE_LOG_RET(WARN, tmp_ret, "fail to decrease handle reference count", K(tmp_ret)); } else { ptr_ = nullptr; } @@ -1250,7 +1250,7 @@ int ObTmpFileManager::get_next_fd(int64_t &next_fd) } } else { ret = OB_FILE_ALREADY_EXIST; - STORAGE_LOG(WARN, "too much file", K(ret)); + STORAGE_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "too much file", K(ret)); } return ret; } diff --git a/src/storage/blocksstable/ob_tmp_file_store.cpp b/src/storage/blocksstable/ob_tmp_file_store.cpp index f77c10cbf..1d51476bc 100644 --- a/src/storage/blocksstable/ob_tmp_file_store.cpp +++ b/src/storage/blocksstable/ob_tmp_file_store.cpp @@ -245,7 +245,7 @@ int64_t ObTmpFilePageBuddy::to_string(char* buf, const int64_t buf_len) const void ObTmpFilePageBuddy::free(const int32_t start_page_id, const int32_t page_nums) { if (OB_UNLIKELY(start_page_id + page_nums >= std::pow(2, MAX_ORDER))) { - STORAGE_LOG(ERROR, "page id more than max numbers in block", K(start_page_id), K(page_nums)); + STORAGE_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "page id more than max numbers in block", K(start_page_id), K(page_nums)); ob_abort(); } else { int32_t start_id = start_page_id; @@ -295,7 +295,7 @@ ObTmpFileArea *ObTmpFilePageBuddy::find_buddy(const int32_t page_nums, const int ObTmpFileArea *tmp = NULL; if (MAX_PAGE_NUMS < page_nums || page_nums <= 0 || start_page_id < 0 || start_page_id >= MAX_PAGE_NUMS) { - STORAGE_LOG(WARN, "invalid argument", K(page_nums), K(start_page_id)); + STORAGE_LOG_RET(WARN, OB_INVALID_ARGUMENT, "invalid argument", K(page_nums), K(start_page_id)); } else if (MAX_PAGE_NUMS == page_nums) { // no buddy, so, nothing to do. } else { diff --git a/src/storage/checkpoint/ob_data_checkpoint.cpp b/src/storage/checkpoint/ob_data_checkpoint.cpp index 44c91e013..b91e4639f 100644 --- a/src/storage/checkpoint/ob_data_checkpoint.cpp +++ b/src/storage/checkpoint/ob_data_checkpoint.cpp @@ -31,7 +31,7 @@ void ObCheckpointDList::reset() while (iterator.has_next()) { ob_freeze_checkpoint = iterator.get_next(); if (ob_freeze_checkpoint != checkpoint_list_.remove(ob_freeze_checkpoint)) { - STORAGE_LOG(ERROR, "remove ob_freeze_checkpoint failed", + STORAGE_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "remove ob_freeze_checkpoint failed", K(*ob_freeze_checkpoint)); } else { ob_freeze_checkpoint->location_ = OUT; @@ -196,7 +196,7 @@ int ObDataCheckpoint::safe_to_destroy(bool &is_safe_destroy) while(is_flushing()) { ob_usleep(1000 * 1000); if (REACH_TIME_INTERVAL(10 * 1000L * 1000L)) { - STORAGE_LOG(WARN, "ls freeze cost too much time", K(ls_->get_ls_id())); + STORAGE_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "ls freeze cost too much time", K(ls_->get_ls_id())); ret = OB_ERR_UNEXPECTED; break; } @@ -317,14 +317,14 @@ void ObDataCheckpoint::print_list_(ObCheckpointDList &list) list.get_iterator(iterator); while (iterator.has_next()) { auto ob_freeze_checkpoint = iterator.get_next(); - STORAGE_LOG(WARN, "the block obFreezecheckpoint is :", K(*ob_freeze_checkpoint)); + STORAGE_LOG_RET(WARN, OB_SUCCESS, "the block obFreezecheckpoint is :", K(*ob_freeze_checkpoint)); } } void ObDataCheckpoint::road_to_flush(SCN rec_scn) { if (OB_UNLIKELY(!is_inited_)) { - STORAGE_LOG(WARN, "ObDataCheckpoint not init", K(is_inited_)); + STORAGE_LOG_RET(WARN, OB_NOT_INIT, "ObDataCheckpoint not init", K(is_inited_)); } else { STORAGE_LOG(INFO, "[Freezer] road_to_flush begin", K(ls_->get_ls_id())); // used to print log when stay at a cycle for a long time @@ -423,7 +423,7 @@ void ObDataCheckpoint::ls_frozen_to_active_(int64_t &last_time) if (!ls_frozen_list_is_empty) { ob_usleep(LOOP_TRAVERSAL_INTERVAL_US); if (task_reach_time_interval(3 * 1000 * 1000, last_time)) { - STORAGE_LOG(WARN, "cost too much time in ls_frozen_list_", K(ret), K(ls_->get_ls_id())); + STORAGE_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "cost too much time in ls_frozen_list_", K(ret), K(ls_->get_ls_id())); ObSpinLockGuard ls_frozen_list_guard(ls_frozen_list_lock_); print_list_(ls_frozen_list_); } @@ -484,7 +484,7 @@ void ObDataCheckpoint::ls_frozen_to_prepare_(int64_t &last_time) if (!ls_frozen_list_is_empty) { ob_usleep(LOOP_TRAVERSAL_INTERVAL_US); if (task_reach_time_interval(3 * 1000 * 1000, last_time)) { - STORAGE_LOG(WARN, "cost too much time in ls_frozen_list_", K(ls_->get_ls_id())); + STORAGE_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "cost too much time in ls_frozen_list_", K(ls_->get_ls_id())); ObSpinLockGuard ls_frozen_list_guard(ls_frozen_list_lock_); print_list_(ls_frozen_list_); } diff --git a/src/storage/compaction/ob_medium_compaction_func.cpp b/src/storage/compaction/ob_medium_compaction_func.cpp index 137f5fa9f..bd1725041 100644 --- a/src/storage/compaction/ob_medium_compaction_func.cpp +++ b/src/storage/compaction/ob_medium_compaction_func.cpp @@ -739,7 +739,12 @@ int ObMediumCompactionScheduleFunc::check_medium_checksum_table( } else { for (int i = 1; OB_SUCC(ret) && i < checksum_items.count(); ++i) { if (OB_FAIL(checksum_items.at(0).verify_checksum(checksum_items.at(i)))) { - LOG_ERROR("checksum verify failed", K(ret), K(checksum_items.at(0)), K(i), K(checksum_items.at(i))); + if (ret == OB_CHECKSUM_ERROR) { + LOG_DBA_ERROR(OB_CHECKSUM_ERROR, "msg", "checksum verify failed", K(ret), K(checksum_items.at(0)), K(i), K(checksum_items.at(i))); + } else { + LOG_ERROR("checksum verify failed", K(ret), K(checksum_items.at(0)), K(i), K(checksum_items.at(i))); + + } } } #ifdef ERRSIM diff --git a/src/storage/compaction/ob_partition_merge_iter.cpp b/src/storage/compaction/ob_partition_merge_iter.cpp index 2bba2eb00..97cf50c57 100644 --- a/src/storage/compaction/ob_partition_merge_iter.cpp +++ b/src/storage/compaction/ob_partition_merge_iter.cpp @@ -260,10 +260,10 @@ bool ObPartitionRowMergeIter::inner_check(const ObMergeParameter &merge_param) if (!table_->is_sstable()) { bret = false; - LOG_WARN("Unexpected table type for major merge", KPC(table_)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "Unexpected table type for major merge", KPC(table_)); } else if (is_multi_version_merge(merge_param.merge_type_)) { bret = false; - LOG_WARN("Unexpected merge type for major merge", K(merge_param)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "Unexpected merge type for major merge", K(merge_param)); } return bret; @@ -348,19 +348,19 @@ bool ObPartitionMacroMergeIter::inner_check(const ObMergeParameter &merge_param) bool bret = true; if (OB_UNLIKELY(!is_major_merge_type(merge_param.merge_type_) && !is_meta_major_merge(merge_param.merge_type_))) { bret = false; - LOG_WARN("Unexpected merge type for major macro merge iter", K(bret), K(merge_param)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "Unexpected merge type for major macro merge iter", K(bret), K(merge_param)); } else if (merge_param.merge_level_ != MACRO_BLOCK_MERGE_LEVEL) { bret = false; - LOG_WARN("Unexpected merge level for major macro merge iter", K(bret), K(merge_param)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "Unexpected merge level for major macro merge iter", K(bret), K(merge_param)); } else if (merge_param.is_full_merge_) { bret = false; - LOG_WARN("Unexpected full merge for major macro merge iter", K(bret), K(merge_param)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "Unexpected full merge for major macro merge iter", K(bret), K(merge_param)); } else if (OB_UNLIKELY(!is_base_iter())) { bret = false; - LOG_WARN("Unexpected iter idx for major macro merge iter", K(bret), K(merge_param)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "Unexpected iter idx for major macro merge iter", K(bret), K(merge_param)); } else if (OB_UNLIKELY(!table_->is_major_sstable() && !table_->is_meta_major_sstable())) { bret = false; - LOG_WARN("Unexpected base table type for major macro merge iter", K(bret), KPC(table_)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "Unexpected base table type for major macro merge iter", K(bret), KPC(table_)); } return bret; } @@ -546,19 +546,19 @@ bool ObPartitionMicroMergeIter::inner_check(const ObMergeParameter &merge_param) if (OB_UNLIKELY(!is_major_merge_type(merge_param.merge_type_) && !is_meta_major_merge(merge_param.merge_type_))) { bret = false; - LOG_WARN("Unexpected merge type for major micro merge iter", K(bret), K(merge_param)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "Unexpected merge type for major micro merge iter", K(bret), K(merge_param)); } else if (OB_UNLIKELY(merge_param.merge_level_ != MICRO_BLOCK_MERGE_LEVEL)) { bret = false; - LOG_WARN("Unexpected merge level for major micro merge iter", K(bret), K(merge_param)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "Unexpected merge level for major micro merge iter", K(bret), K(merge_param)); } else if (OB_UNLIKELY(merge_param.is_full_merge_)) { bret = false; - LOG_WARN("Unexpected full merge for major micro merge iter", K(bret), K(merge_param)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "Unexpected full merge for major micro merge iter", K(bret), K(merge_param)); } else if (OB_UNLIKELY(!is_base_iter())) { bret = false; - LOG_WARN("Unexpected iter idx for major micro merge iter", K(bret), K(merge_param)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "Unexpected iter idx for major micro merge iter", K(bret), K(merge_param)); } else if (OB_UNLIKELY(!table_->is_major_sstable() && !table_->is_meta_major_sstable())) { bret = false; - LOG_WARN("Unexpected base table type for major macro merge iter", K(bret), KPC(table_)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "Unexpected base table type for major macro merge iter", K(bret), KPC(table_)); } return bret; @@ -857,13 +857,13 @@ bool ObPartitionMinorRowMergeIter::inner_check(const ObMergeParameter &merge_par if (!is_multi_version_merge(merge_param.merge_type_) && !storage::is_backfill_tx_merge(merge_param.merge_type_)) { bret = false; - LOG_WARN("Unexpected merge type for minor row merge iter", K(bret), K(merge_param)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "Unexpected merge type for minor row merge iter", K(bret), K(merge_param)); } else if (merge_param.merge_level_ != MACRO_BLOCK_MERGE_LEVEL) { bret = false; - LOG_WARN("Unexpected merge level for minor row merge iter", K(bret), K(merge_param)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "Unexpected merge level for minor row merge iter", K(bret), K(merge_param)); } else if (!table_->is_multi_version_table()) { bret = false; - LOG_WARN("Unexpected table type for minor row merge iter", K(bret), KPC(table_)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "Unexpected table type for minor row merge iter", K(bret), KPC(table_)); } return bret; @@ -1282,7 +1282,7 @@ bool ObPartitionMinorMacroMergeIter::inner_check(const ObMergeParameter &merge_p if (!table_->is_sstable()) { bret = false; - LOG_WARN("Unexpected table type for minor row merge iter", K(bret), KPC(table_)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "Unexpected table type for minor row merge iter", K(bret), KPC(table_)); } else { bret = ObPartitionMinorRowMergeIter::inner_check(merge_param); } diff --git a/src/storage/compaction/ob_partition_merger.cpp b/src/storage/compaction/ob_partition_merger.cpp index f7c7b29ec..30a0ad002 100644 --- a/src/storage/compaction/ob_partition_merger.cpp +++ b/src/storage/compaction/ob_partition_merger.cpp @@ -262,7 +262,8 @@ int ObPartitionMerger::process(const ObDatumRow &row) } else if (OB_UNLIKELY(!row.is_valid())) { ret = OB_INVALID_ARGUMENT; STORAGE_LOG(WARN, "Invalid argument to append row", K(ret), K(row)); - } else if (row.row_flag_.is_not_exist()) { + } else if (OB_UNLIKELY(row.row_flag_.is_not_exist())) { + ret = OB_ERR_UNEXPECTED; STORAGE_LOG(ERROR, "Unexpected not exist row to append", K(ret), K(row)); } else if (OB_FAIL(try_filter_row(row, filter_ret))) { STORAGE_LOG(WARN, "failed to filter row", K(ret), K(row)); diff --git a/src/storage/compaction/ob_tablet_merge_ctx.cpp b/src/storage/compaction/ob_tablet_merge_ctx.cpp index d96dc069a..360763e4b 100644 --- a/src/storage/compaction/ob_tablet_merge_ctx.cpp +++ b/src/storage/compaction/ob_tablet_merge_ctx.cpp @@ -468,7 +468,7 @@ void ObCompactionTimeGuard::add_time_guard(const ObCompactionTimeGuard &other) if (line_array_[i] == other.line_array_[i]) { click_poinsts_[i] += other.click_poinsts_[i]; } else { - LOG_WARN("failed to add_time_guard", KPC(this), K(other)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "failed to add_time_guard", KPC(this), K(other)); break; } } @@ -1349,7 +1349,7 @@ void ObTabletMergeCtx::collect_running_info() } if (OB_TMP_FAIL(MTL(storage::ObTenantSSTableMergeInfoMgr*)->add_sstable_merge_info(sstable_merge_info))) { - LOG_WARN("failed to add sstable merge info ", K(tmp_ret), K(sstable_merge_info)); + LOG_WARN_RET(tmp_ret, "failed to add sstable merge info ", K(tmp_ret), K(sstable_merge_info)); } } diff --git a/src/storage/compaction/ob_tenant_freeze_info_mgr.cpp b/src/storage/compaction/ob_tenant_freeze_info_mgr.cpp index a3cdd2a05..608f48e61 100644 --- a/src/storage/compaction/ob_tenant_freeze_info_mgr.cpp +++ b/src/storage/compaction/ob_tenant_freeze_info_mgr.cpp @@ -964,10 +964,10 @@ void ObTenantFreezeInfoMgr::ReloadTask::runTimerTask() { int tmp_ret = OB_SUCCESS; if (OB_TMP_FAIL(refresh_merge_info())) { - LOG_WARN("fail to refresh merge info", KR(tmp_ret)); + LOG_WARN_RET(tmp_ret, "fail to refresh merge info", KR(tmp_ret)); } if (OB_TMP_FAIL(try_update_info())) { - LOG_WARN("fail to try update info", KR(tmp_ret)); + LOG_WARN_RET(tmp_ret, "fail to try update info", KR(tmp_ret)); } } @@ -976,11 +976,11 @@ void ObTenantFreezeInfoMgr::UpdateLSResvSnapshotTask::runTimerTask() int tmp_ret = OB_SUCCESS; uint64_t compat_version = 0; if (OB_TMP_FAIL(GET_MIN_DATA_VERSION(MTL_ID(), compat_version))) { - LOG_WARN("fail to get data version", K(tmp_ret)); + LOG_WARN_RET(tmp_ret, "fail to get data version", K(tmp_ret)); } else if (compat_version < DATA_VERSION_4_1_0_0) { // do nothing, should not update reserved snapshot } else if (OB_TMP_FAIL(mgr_.try_update_reserved_snapshot())) { - LOG_WARN("fail to try reserved snapshot", KR(tmp_ret)); + LOG_WARN_RET(tmp_ret, "fail to try reserved snapshot", KR(tmp_ret)); } } diff --git a/src/storage/concurrency_control/ob_multi_version_garbage_collector.cpp b/src/storage/concurrency_control/ob_multi_version_garbage_collector.cpp index 66885cf11..64881378e 100644 --- a/src/storage/concurrency_control/ob_multi_version_garbage_collector.cpp +++ b/src/storage/concurrency_control/ob_multi_version_garbage_collector.cpp @@ -538,7 +538,7 @@ int ObMultiVersionGarbageCollector::refresh_() void ObMultiVersionGarbageCollector::decide_gc_status_(const ObMultiVersionGCStatus gc_status) { if (gc_status & ObMultiVersionGCStatus::DISABLED_GC_STATUS) { - MVCC_LOG(WARN, "gc status is disabled", KPC(this), + MVCC_LOG_RET(WARN, OB_ERR_UNEXPECTED, "gc status is disabled", KPC(this), K(global_reserved_snapshot_), K(gc_status)); gc_is_disabled_ = true; } else if (gc_is_disabled_) { @@ -593,12 +593,12 @@ share::SCN ObMultiVersionGarbageCollector::get_reserved_snapshot_for_active_txn( return share::SCN::max_scn(); } else if (refresh_error_too_long_) { if (REACH_TENANT_TIME_INTERVAL(1_s)) { - MVCC_LOG(WARN, "get reserved snapshot for active txn with long not updated", KPC(this)); + MVCC_LOG_RET(WARN, OB_ERR_UNEXPECTED, "get reserved snapshot for active txn with long not updated", KPC(this)); } return share::SCN::max_scn(); } else if (gc_is_disabled_) { if (REACH_TENANT_TIME_INTERVAL(1_s)) { - MVCC_LOG(WARN, "get reserved snapshot for active txn with gc is disabled", KPC(this)); + MVCC_LOG_RET(WARN, OB_ERR_UNEXPECTED, "get reserved snapshot for active txn with gc is disabled", KPC(this)); } return share::SCN::max_scn(); } else { diff --git a/src/storage/ddl/ob_build_index_task.cpp b/src/storage/ddl/ob_build_index_task.cpp index c6b89bdf1..22ee138f6 100644 --- a/src/storage/ddl/ob_build_index_task.cpp +++ b/src/storage/ddl/ob_build_index_task.cpp @@ -746,7 +746,7 @@ int64_t ObUniqueCheckingDag::hash() const int64_t hash_val = 0; if (NULL == index_schema_) { tmp_ret = OB_ERR_SYS; - STORAGE_LOG(ERROR, "index schema must not be NULL", K(tmp_ret)); + STORAGE_LOG_RET(ERROR, tmp_ret, "index schema must not be NULL", K(tmp_ret)); } else { hash_val = tablet_id_.hash() + index_schema_->get_table_id(); } @@ -798,7 +798,7 @@ bool ObUniqueCheckingDag::operator==(const ObIDag &other) const const ObUniqueCheckingDag &dag = static_cast(other); if (NULL == index_schema_ || NULL == dag.index_schema_) { tmp_ret = OB_ERR_SYS; - STORAGE_LOG(ERROR, "index schema must not be NULL", K(tmp_ret), KP(index_schema_), + STORAGE_LOG_RET(ERROR, tmp_ret, "index schema must not be NULL", K(tmp_ret), KP(index_schema_), KP(dag.index_schema_)); } else { is_equal = tablet_id_ == dag.tablet_id_ diff --git a/src/storage/high_availability/ob_ls_complete_migration.cpp b/src/storage/high_availability/ob_ls_complete_migration.cpp index fec85bdb1..5febba969 100644 --- a/src/storage/high_availability/ob_ls_complete_migration.cpp +++ b/src/storage/high_availability/ob_ls_complete_migration.cpp @@ -216,7 +216,7 @@ bool ObLSCompleteMigrationDagNet::operator == (const ObIDagNet &other) const } else { const ObLSCompleteMigrationDagNet &other_dag_net = static_cast(other); if (!is_valid() || !other_dag_net.is_valid()) { - LOG_ERROR("ls complete migration dag net is invalid", K(*this), K(other)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "ls complete migration dag net is invalid", K(*this), K(other)); is_same = false; } else if (ctx_.arg_.ls_id_ != other_dag_net.get_ls_id()) { is_same = false; @@ -231,7 +231,7 @@ int64_t ObLSCompleteMigrationDagNet::hash() const int tmp_ret = OB_SUCCESS; if (!is_inited_) { tmp_ret = OB_NOT_INIT; - LOG_ERROR("ls complete migration ctx is NULL", K(tmp_ret), K(ctx_)); + LOG_ERROR_RET(tmp_ret, "ls complete migration ctx is NULL", K(tmp_ret), K(ctx_)); } else { hash_value = common::murmurhash(&ctx_.arg_.ls_id_, sizeof(ctx_.arg_.ls_id_), hash_value); } @@ -416,7 +416,7 @@ bool ObCompleteMigrationDag::operator == (const ObIDag &other) const is_same = false; } else if (OB_ISNULL(ha_dag_net_ctx_) || OB_ISNULL(ha_dag.get_ha_dag_net_ctx())) { is_same = false; - LOG_ERROR("complete migration ctx should not be NULL", KP(ha_dag_net_ctx_), KP(ha_dag.get_ha_dag_net_ctx())); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "complete migration ctx should not be NULL", KP(ha_dag_net_ctx_), KP(ha_dag.get_ha_dag_net_ctx())); } else if (ha_dag_net_ctx_->get_dag_net_ctx_type() != ha_dag.get_ha_dag_net_ctx()->get_dag_net_ctx_type()) { is_same = false; } else { diff --git a/src/storage/high_availability/ob_ls_migration.cpp b/src/storage/high_availability/ob_ls_migration.cpp index 4c9e6491d..8c97185cb 100644 --- a/src/storage/high_availability/ob_ls_migration.cpp +++ b/src/storage/high_availability/ob_ls_migration.cpp @@ -332,7 +332,7 @@ bool ObMigrationDagNet::operator == (const ObIDagNet &other) const const ObMigrationDagNet &other_migration_dag = static_cast(other); if (OB_ISNULL(other_migration_dag.ctx_) || OB_ISNULL(ctx_)) { is_same = false; - LOG_ERROR("migration ctx is NULL", KPC(ctx_), KPC(other_migration_dag.ctx_)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "migration ctx is NULL", KPC(ctx_), KPC(other_migration_dag.ctx_)); } else if (ctx_->arg_.ls_id_ != other_migration_dag.ctx_->arg_.ls_id_) { is_same = false; } @@ -344,7 +344,7 @@ int64_t ObMigrationDagNet::hash() const { int64_t hash_value = 0; if (OB_ISNULL(ctx_)) { - LOG_ERROR("migration ctx is NULL", KPC(ctx_)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "migration ctx is NULL", KPC(ctx_)); } else { hash_value = common::murmurhash(&ctx_->arg_.ls_id_, sizeof(ctx_->arg_.ls_id_), hash_value); } @@ -466,7 +466,7 @@ bool ObInitialMigrationDag::operator == (const ObIDag &other) const is_same = false; } else if (OB_ISNULL(ctx) || OB_ISNULL(other_dag.get_migration_ctx())) { is_same = false; - LOG_ERROR("migration ctx should not be NULL", KP(ctx), KP(other_dag.get_migration_ctx())); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "migration ctx should not be NULL", KP(ctx), KP(other_dag.get_migration_ctx())); } else if (NULL != ctx && NULL != other_dag.get_migration_ctx()) { if (ctx->arg_.ls_id_ != other_dag.get_migration_ctx()->arg_.ls_id_) { is_same = false; @@ -482,7 +482,7 @@ int64_t ObInitialMigrationDag::hash() const ObMigrationCtx * ctx = get_migration_ctx(); if (OB_ISNULL(ctx)) { - LOG_ERROR("migration ctx should not be NULL", KP(ctx)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "migration ctx should not be NULL", KP(ctx)); } else { hash_value = common::murmurhash( &ctx->arg_.ls_id_, sizeof(ctx->arg_.ls_id_), hash_value); diff --git a/src/storage/high_availability/ob_ls_prepare_migration.cpp b/src/storage/high_availability/ob_ls_prepare_migration.cpp index 3e243e191..70670aa1a 100644 --- a/src/storage/high_availability/ob_ls_prepare_migration.cpp +++ b/src/storage/high_availability/ob_ls_prepare_migration.cpp @@ -199,7 +199,7 @@ bool ObLSPrepareMigrationDagNet::operator == (const ObIDagNet &other) const } else { const ObLSPrepareMigrationDagNet &other_dag_net = static_cast(other); if (!is_valid() || !other_dag_net.is_valid()) { - LOG_ERROR("ls prepare migration dag net is invalid", K(*this), K(other)); + LOG_ERROR_RET(OB_INVALID_ERROR, "ls prepare migration dag net is invalid", K(*this), K(other)); } else if (ctx_.arg_.ls_id_ != other_dag_net.get_ls_id()) { is_same = false; } @@ -213,7 +213,7 @@ int64_t ObLSPrepareMigrationDagNet::hash() const int tmp_ret = OB_SUCCESS; if (!is_inited_) { tmp_ret = OB_NOT_INIT; - LOG_ERROR("migration ctx is NULL", K(tmp_ret), K(ctx_)); + LOG_ERROR_RET(tmp_ret, "migration ctx is NULL", K(tmp_ret), K(ctx_)); } else { hash_value = common::murmurhash(&ctx_.arg_.ls_id_, sizeof(ctx_.arg_.ls_id_), hash_value); } @@ -325,7 +325,7 @@ bool ObPrepareMigrationDag::operator == (const ObIDag &other) const is_same = false; } else if (OB_ISNULL(ha_dag_net_ctx_) || OB_ISNULL(ha_dag.get_ha_dag_net_ctx())) { is_same = false; - LOG_ERROR("prepare migration ctx should not be NULL", KP(ha_dag_net_ctx_), KP(ha_dag.get_ha_dag_net_ctx())); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "prepare migration ctx should not be NULL", KP(ha_dag_net_ctx_), KP(ha_dag.get_ha_dag_net_ctx())); } else if (ha_dag_net_ctx_->get_dag_net_ctx_type() != ha_dag.get_ha_dag_net_ctx()->get_dag_net_ctx_type()) { is_same = false; } else { diff --git a/src/storage/high_availability/ob_ls_remove_member_dag.cpp b/src/storage/high_availability/ob_ls_remove_member_dag.cpp index 73151a48a..fb8bc44a6 100644 --- a/src/storage/high_availability/ob_ls_remove_member_dag.cpp +++ b/src/storage/high_availability/ob_ls_remove_member_dag.cpp @@ -97,7 +97,7 @@ bool ObLSRemoveMemberDag::operator == (const ObIDag &other) const { bool is_same = true; if (!is_inited_) { - LOG_ERROR("ls remove mmeber dag do not init"); + LOG_ERROR_RET(OB_NOT_INIT, "ls remove mmeber dag do not init"); is_same = false; } else if (this == &other) { // same @@ -116,7 +116,7 @@ int64_t ObLSRemoveMemberDag::hash() const { int64_t hash_value = 0; if (!is_inited_) { - LOG_ERROR("ls remove member dag do not init"); + LOG_ERROR_RET(OB_NOT_INIT, "ls remove member dag do not init"); } else { hash_value = common::murmurhash( &ctx_.arg_.ls_id_, sizeof(ctx_.arg_.ls_id_), hash_value); diff --git a/src/storage/high_availability/ob_ls_restore.cpp b/src/storage/high_availability/ob_ls_restore.cpp index 6077667c9..00826d08f 100644 --- a/src/storage/high_availability/ob_ls_restore.cpp +++ b/src/storage/high_availability/ob_ls_restore.cpp @@ -325,7 +325,7 @@ bool ObLSRestoreDagNet::operator == (const ObIDagNet &other) const const ObLSRestoreDagNet &other_ls_restore_dag = static_cast(other); if (OB_ISNULL(other_ls_restore_dag.ctx_) || OB_ISNULL(ctx_)) { is_same = false; - LOG_ERROR("ls restore ctx is NULL", KPC(ctx_), KPC(other_ls_restore_dag.ctx_)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "ls restore ctx is NULL", KPC(ctx_), KPC(other_ls_restore_dag.ctx_)); } else if (ctx_->arg_.ls_id_ != other_ls_restore_dag.ctx_->arg_.ls_id_) { is_same = false; } @@ -337,7 +337,7 @@ int64_t ObLSRestoreDagNet::hash() const { int64_t hash_value = 0; if (OB_ISNULL(ctx_)) { - LOG_ERROR("ls restore ctx is NULL", KPC(ctx_)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "ls restore ctx is NULL", KPC(ctx_)); } else { hash_value = common::murmurhash(&ctx_->arg_.ls_id_, sizeof(ctx_->arg_.ls_id_), hash_value); } @@ -464,7 +464,7 @@ bool ObLSRestoreDag::operator == (const ObIDag &other) const is_same = false; } else if (OB_ISNULL(ctx) || OB_ISNULL(other_dag.get_ctx())) { is_same = false; - LOG_ERROR("ls restore ctx should not be NULL", KP(ctx), KP(other_dag.get_ctx())); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "ls restore ctx should not be NULL", KP(ctx), KP(other_dag.get_ctx())); } else if (NULL != ctx && NULL != other_dag.get_ctx()) { if (ctx->arg_.ls_id_ != other_dag.get_ctx()->arg_.ls_id_) { is_same = false; @@ -480,7 +480,7 @@ int64_t ObLSRestoreDag::hash() const ObLSRestoreCtx *ctx = get_ctx(); if (OB_ISNULL(ctx)) { - LOG_ERROR("ls restore ctx should not be NULL", KP(ctx)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "ls restore ctx should not be NULL", KP(ctx)); } else { hash_value = common::murmurhash( &ctx->arg_.ls_id_, sizeof(ctx->arg_.ls_id_), hash_value); diff --git a/src/storage/high_availability/ob_storage_restore_struct.cpp b/src/storage/high_availability/ob_storage_restore_struct.cpp index 0a1970d3b..2e6a3cf1f 100644 --- a/src/storage/high_availability/ob_storage_restore_struct.cpp +++ b/src/storage/high_availability/ob_storage_restore_struct.cpp @@ -123,7 +123,7 @@ const char *ObTabletRestoreAction::get_action_str(const ACTION &action) }; STATIC_ASSERT(MAX == ARRAYSIZEOF(action_strs), "action count mismatch"); if (action < 0 || action >= MAX) { - LOG_ERROR("invalid action", K(action)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "invalid action", K(action)); } else { str = action_strs[action]; } @@ -140,7 +140,7 @@ bool ObTabletRestoreAction::is_restore_minor(const ACTION &action) bool bool_ret = false; if (!is_valid(action)) { bool_ret = false; - LOG_ERROR("restore action is unexpected", K(action)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "restore action is unexpected", K(action)); } else if (ACTION::RESTORE_MINOR != action) { bool_ret = false; } else { @@ -154,7 +154,7 @@ bool ObTabletRestoreAction::is_restore_major(const ACTION &action) bool bool_ret = false; if (!is_valid(action)) { bool_ret = false; - LOG_ERROR("restore action is unexpected", K(action)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "restore action is unexpected", K(action)); } else if (ACTION::RESTORE_MAJOR != action) { bool_ret = false; } else { @@ -168,7 +168,7 @@ bool ObTabletRestoreAction::is_restore_none(const ACTION &action) bool bool_ret = false; if (!is_valid(action)) { bool_ret = false; - LOG_ERROR("restore action is unexpected", K(action)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "restore action is unexpected", K(action)); } else if (ACTION::RESTORE_NONE != action) { bool_ret = false; } else { @@ -182,7 +182,7 @@ bool ObTabletRestoreAction::is_restore_all(const ACTION &action) bool bool_ret = false; if (!is_valid(action)) { bool_ret = false; - LOG_ERROR("restore action is unexpected", K(action)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "restore action is unexpected", K(action)); } else if (ACTION::RESTORE_ALL != action) { bool_ret = false; } else { @@ -196,7 +196,7 @@ bool ObTabletRestoreAction::is_restore_tablet_meta(const ACTION &action) bool bool_ret = false; if (!is_valid(action)) { bool_ret = false; - LOG_ERROR("restore action is unexpected", K(action)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "restore action is unexpected", K(action)); } else if (ACTION::RESTORE_TABLET_META != action) { bool_ret = false; } else { diff --git a/src/storage/high_availability/ob_tablet_group_restore.cpp b/src/storage/high_availability/ob_tablet_group_restore.cpp index 6188ce0d7..b99cf373c 100644 --- a/src/storage/high_availability/ob_tablet_group_restore.cpp +++ b/src/storage/high_availability/ob_tablet_group_restore.cpp @@ -401,7 +401,7 @@ int64_t ObTabletGroupRestoreDagNet::hash() const { int64_t hash_value = 0; if (OB_ISNULL(ctx_)) { - LOG_ERROR("restore ctx is NULL", KPC(ctx_)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "restore ctx is NULL", KPC(ctx_)); } else { hash_value = common::murmurhash(&ctx_->arg_.ls_id_, sizeof(ctx_->arg_.ls_id_), hash_value); for (int64_t i = 0; i < ctx_->arg_.tablet_id_array_.count(); ++i) { @@ -549,7 +549,7 @@ int64_t ObTabletGroupRestoreDag::hash() const ObTabletGroupRestoreCtx *ctx = get_ctx(); if (OB_ISNULL(ctx)) { - LOG_ERROR("tablet group restore ctx should not be NULL", KP(ctx)); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "tablet group restore ctx should not be NULL", KP(ctx)); } else { hash_value = common::murmurhash( &ctx->arg_.ls_id_, sizeof(ctx->arg_.ls_id_), hash_value); @@ -1726,7 +1726,7 @@ ObTabletRestoreDag::~ObTabletRestoreDag() if (OB_NOT_NULL(tablet_restore_ctx_.ha_table_info_mgr_)) { if (OB_SUCCESS != (tmp_ret = tablet_restore_ctx_.ha_table_info_mgr_->remove_tablet_table_info( tablet_restore_ctx_.tablet_id_))) { - LOG_WARN("failed to remove tablet table info", K(tmp_ret), K(tablet_restore_ctx_)); + LOG_WARN_RET(tmp_ret, "failed to remove tablet table info", K(tmp_ret), K(tablet_restore_ctx_)); } } } diff --git a/src/storage/lob/ob_lob_manager.cpp b/src/storage/lob/ob_lob_manager.cpp index 6294607ff..058ddab41 100644 --- a/src/storage/lob/ob_lob_manager.cpp +++ b/src/storage/lob/ob_lob_manager.cpp @@ -38,7 +38,7 @@ int ObLobManager::mtl_new(ObLobManager *&m) { void ObLobManager::mtl_destroy(ObLobManager *&m) { if (OB_UNLIKELY(nullptr == m)) { - LOG_WARN("meta mem mgr is nullptr", KP(m)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "meta mem mgr is nullptr", KP(m)); } else { OB_DELETE(ObLobManager, oceanbase::ObModIds::OMT_TENANT, m); m = nullptr; diff --git a/src/storage/ls/ob_freezer.cpp b/src/storage/ls/ob_freezer.cpp index 1eff76210..afcbf619b 100644 --- a/src/storage/ls/ob_freezer.cpp +++ b/src/storage/ls/ob_freezer.cpp @@ -535,7 +535,7 @@ int ObFreezer::ls_freeze_task() TRANS_LOG(INFO, "[Freezer] resubmit log for ls_freeze", K(ls_id), K(cost_time)); } } - TRANS_LOG(WARN, "[Freezer] finish ls_freeze costs too much time", + TRANS_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "[Freezer] finish ls_freeze costs too much time", K(ls_id), K(cost_time)); stat_.add_diagnose_info("finish ls_freeze costs too much time"); } @@ -811,7 +811,7 @@ int ObFreezer::wait_memtable_ready_for_flush_with_ls_lock(memtable::ObMemtable * submit_log_for_freeze(); TRANS_LOG(INFO, "[Freezer] resubmit log for tablet_freeze", K(ls_id), K(cost_time)); } - TRANS_LOG(WARN, "[Freezer] ready_for_flush costs too much time", + TRANS_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "[Freezer] ready_for_flush costs too much time", K(ls_id), K(cost_time), KPC(memtable)); stat_.add_diagnose_info("ready_for_flush costs too much time"); } @@ -1073,7 +1073,7 @@ void ObFreezer::wait_memtable_ready_for_flush(memtable::ObMemtable *memtable) submit_log_for_freeze(); TRANS_LOG(INFO, "[Freezer] resubmit log for tablet_freeze", K(ls_id), K(cost_time)); } - TRANS_LOG(WARN, "[Freezer] ready_for_flush costs too much time", + TRANS_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "[Freezer] ready_for_flush costs too much time", K(ls_id), K(cost_time), KPC(memtable)); stat_.add_diagnose_info("ready_for_flush costs too much time"); memtable->print_ready_for_flush(); @@ -1444,7 +1444,7 @@ void ObFreezer::set_tablet_freeze_begin_() retry_times++; ob_usleep(SLEEP_INTERVAL); if (retry_times % 100 == 0) { // 10 s - LOG_WARN("wait high priority freeze finish cost too much time", + LOG_WARN_RET(OB_ERR_TOO_MUCH_TIME, "wait high priority freeze finish cost too much time", K(ret), K(high_priority_freeze_cnt_), K(retry_times)); } } @@ -1464,7 +1464,7 @@ void ObFreezer::set_ls_freeze_begin_() retry_times++; ob_usleep(SLEEP_INTERVAL); if (retry_times % 100 == 0) { // 10 s - LOG_WARN("wait low priority freeze finish cost too much time", + LOG_WARN_RET(OB_ERR_UNEXPECTED, "wait low priority freeze finish cost too much time", K(low_priority_freeze_cnt_), K(retry_times)); } } diff --git a/src/storage/ls/ob_ls.cpp b/src/storage/ls/ob_ls.cpp index eae8644cb..686ffdbe0 100644 --- a/src/storage/ls/ob_ls.cpp +++ b/src/storage/ls/ob_ls.cpp @@ -496,7 +496,7 @@ void ObLS::wait() if (!wait_finished) { ob_usleep(100 * 1000); // 100 ms if (retry_times % 100 == 0) { // every 10 s - LOG_WARN("ls wait not finished.", K(ls_meta_), K(start_ts)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "ls wait not finished.", K(ls_meta_), K(start_ts)); } } } while (!wait_finished); @@ -514,7 +514,7 @@ void ObLS::wait_() if (!wait_finished) { ob_usleep(100 * 1000); // 100 ms if (retry_times % 100 == 0) { // every 10 s - LOG_WARN("ls wait not finished.", K(ls_meta_), K(start_ts)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "ls wait not finished.", K(ls_meta_), K(start_ts)); } } } while (!wait_finished); @@ -760,7 +760,7 @@ int ObLS::offline() if (OB_EAGAIN == ret) { ob_usleep(100 * 1000); // 100 ms if (retry_times % 100 == 0) { // every 10 s - LOG_WARN("ls offline use too much time.", K(ls_meta_), K(start_ts)); + LOG_WARN_RET(OB_ERR_TOO_MUCH_TIME, "ls offline use too much time.", K(ls_meta_), K(start_ts)); } } } while (OB_EAGAIN == ret); @@ -784,7 +784,7 @@ int ObLS::offline_without_lock() if (OB_EAGAIN == ret) { ob_usleep(100 * 1000); // 100 ms if (retry_times % 100 == 0) { // every 10 s - LOG_WARN("ls offline use too much time.", K(ls_meta_), K(start_ts)); + LOG_WARN_RET(OB_ERR_TOO_MUCH_TIME, "ls offline use too much time.", K(ls_meta_), K(start_ts)); } } } while (OB_EAGAIN == ret); diff --git a/src/storage/ls/ob_ls_tablet_service.cpp b/src/storage/ls/ob_ls_tablet_service.cpp index 2392cd5cb..0d5f2f4ec 100644 --- a/src/storage/ls/ob_ls_tablet_service.cpp +++ b/src/storage/ls/ob_ls_tablet_service.cpp @@ -2748,7 +2748,7 @@ int ObLSTabletService::update_rows( EVENT_ADD(STORAGE_UPDATE_ROW_COUNT, afct_num); } if (timeguard.get_diff() > 3 * 1000 * 1000) { - LOG_WARN("update rows use too much time", K(afct_num), K(got_row_count)); + LOG_WARN_RET(OB_ERR_TOO_MUCH_TIME, "update rows use too much time", K(afct_num), K(got_row_count)); } } NG_TRACE(S_update_rows_end); @@ -3576,7 +3576,7 @@ int ObLSTabletService::check_old_row_legitimacy( } else { ObString func_name = ObString::make_string("check_old_row_legitimacy"); LOG_USER_ERROR(OB_ERR_DEFENSIVE_CHECK, func_name.length(), func_name.ptr()); - LOG_ERROR("Fatal Error!!! Catch a defensive error!", K(ret), + LOG_DBA_ERROR(OB_ERR_DEFENSIVE_CHECK, "msg", "Fatal Error!!! Catch a defensive error!", K(ret), "column_id", column_ids, KPC(storage_old_row), "sql_old_row", old_row, @@ -4557,7 +4557,7 @@ int ObLSTabletService::check_new_row_nullable_value( ret = OB_ERR_DEFENSIVE_CHECK; ObString func_name = ObString::make_string("check_new_row_nullable_value"); LOG_USER_ERROR(OB_ERR_DEFENSIVE_CHECK, func_name.length(), func_name.ptr()); - LOG_ERROR("Fatal Error!!! Catch a defensive error!", K(ret), + LOG_DBA_ERROR(OB_ERR_DEFENSIVE_CHECK, "msg", "Fatal Error!!! Catch a defensive error!", K(ret), K(column_id), K(column_ids), K(new_row), K(data_table)); } } else if (new_row.get_cell(i).is_number()) { @@ -4571,7 +4571,7 @@ int ObLSTabletService::check_new_row_nullable_value( ret = OB_ERR_DEFENSIVE_CHECK; ObString func_name = ObString::make_string("check_new_row_nullable_value"); LOG_USER_ERROR(OB_ERR_DEFENSIVE_CHECK, func_name.length(), func_name.ptr()); - LOG_ERROR("Fatal Error!!! Catch a defensive error!", K(ret), + LOG_DBA_ERROR(OB_ERR_DEFENSIVE_CHECK, "msg", "Fatal Error!!! Catch a defensive error!", K(ret), K(column_id), K(column_ids), K(new_row), K(data_table)); } } @@ -4620,7 +4620,7 @@ int ObLSTabletService::check_new_row_nullable_value(const ObIArray &c ret = OB_ERR_DEFENSIVE_CHECK; ObString func_name = ObString::make_string("check_new_row_nullable_value"); LOG_USER_ERROR(OB_ERR_DEFENSIVE_CHECK, func_name.length(), func_name.ptr()); - LOG_ERROR("Fatal Error!!! Catch a defensive error!", K(ret), + LOG_DBA_ERROR(OB_ERR_DEFENSIVE_CHECK, "msg", "Fatal Error!!! Catch a defensive error!", K(ret), K(column_id), K(col_descs), K(new_row), K(relative_table)); } } else if (new_row.get_cell(i).is_number()) { @@ -4634,7 +4634,7 @@ int ObLSTabletService::check_new_row_nullable_value(const ObIArray &c ret = OB_ERR_DEFENSIVE_CHECK; ObString func_name = ObString::make_string("check_new_row_nullable_value"); LOG_USER_ERROR(OB_ERR_DEFENSIVE_CHECK, func_name.length(), func_name.ptr()); - LOG_ERROR("Fatal Error!!! Catch a defensive error!", K(ret), + LOG_DBA_ERROR(OB_ERR_DEFENSIVE_CHECK, "msg", "Fatal Error!!! Catch a defensive error!", K(ret), K(column_id), K(col_descs), K(new_row), K(relative_table)); } } @@ -4695,7 +4695,7 @@ int ObLSTabletService::check_new_row_shadow_pk( ret = OB_ERR_DEFENSIVE_CHECK; ObString func_name = ObString::make_string("check_new_row_shadow_pk"); LOG_USER_ERROR(OB_ERR_DEFENSIVE_CHECK, func_name.length(), func_name.ptr()); - LOG_ERROR("Fatal Error!!! Catch a defensive error!", K(ret), + LOG_DBA_ERROR(OB_ERR_DEFENSIVE_CHECK, "msg", "Fatal Error!!! Catch a defensive error!", K(ret), "column_id", column_ids, K(new_row), K(data_table), K(spk_value), "pk_value", new_row.get_cell(pk_idx), K(pk_idx), K(i), K(spk_column_id), K(real_pk_id)); diff --git a/src/storage/memtable/mvcc/ob_multi_version_iterator.cpp b/src/storage/memtable/mvcc/ob_multi_version_iterator.cpp index 37e359dbb..a96133d80 100644 --- a/src/storage/memtable/mvcc/ob_multi_version_iterator.cpp +++ b/src/storage/memtable/mvcc/ob_multi_version_iterator.cpp @@ -124,7 +124,7 @@ void ObMultiVersionValueIterator::print_cur_status() { ObMvccTransNode *node = value_->get_list_head(); while (OB_NOT_NULL(node)) { - TRANS_LOG(ERROR, "print_cur_status", KPC(node)); + TRANS_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "print_cur_status", KPC(node)); node = node->prev_; } } diff --git a/src/storage/memtable/mvcc/ob_mvcc_ctx.cpp b/src/storage/memtable/mvcc/ob_mvcc_ctx.cpp index c8f5329d1..0899b4daa 100644 --- a/src/storage/memtable/mvcc/ob_mvcc_ctx.cpp +++ b/src/storage/memtable/mvcc/ob_mvcc_ctx.cpp @@ -261,7 +261,7 @@ void ObIMvccCtx::check_row_callback_registration_between_stmt_() transaction::ObPartTransCtx *trans_ctx = (transaction::ObPartTransCtx *)(i_mem_ctx->get_trans_ctx()); if (NULL != trans_ctx && !trans_ctx->has_pending_write()) { - TRANS_LOG(ERROR, "register commit not match expection", K(*trans_ctx)); + TRANS_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "register commit not match expection", K(*trans_ctx)); } } } diff --git a/src/storage/memtable/mvcc/ob_mvcc_ctx.h b/src/storage/memtable/mvcc/ob_mvcc_ctx.h index eaacf3069..bc1ee4314 100644 --- a/src/storage/memtable/mvcc/ob_mvcc_ctx.h +++ b/src/storage/memtable/mvcc/ob_mvcc_ctx.h @@ -124,7 +124,7 @@ public: if (INT64_MAX == min_table_version_) { //第一次更新,需要防御入参为INT64_MAX if (INT64_MAX == table_version) { - TRANS_LOG(WARN, "unexpected table version", K(table_version), K(*this)); + TRANS_LOG_RET(WARN, common::OB_ERR_UNEXPECTED, "unexpected table version", K(table_version), K(*this)); } else { min_table_version_ = table_version; max_table_version_ = table_version; @@ -134,7 +134,7 @@ public: TRANS_LOG(DEBUG, "current table version lower the last one", K(table_version), K(*this)); //非第一次更新table version,预期不会是int64_max } else if (INT64_MAX == table_version) { - TRANS_LOG(ERROR, "unexpected table version", K(table_version), K(*this)); + TRANS_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "unexpected table version", K(table_version), K(*this)); } else { max_table_version_ = table_version; } diff --git a/src/storage/memtable/mvcc/ob_mvcc_row.cpp b/src/storage/memtable/mvcc/ob_mvcc_row.cpp index d65a66c91..dca222242 100644 --- a/src/storage/memtable/mvcc/ob_mvcc_row.cpp +++ b/src/storage/memtable/mvcc/ob_mvcc_row.cpp @@ -758,7 +758,7 @@ void ObMvccRow::mvcc_write_end(ObIMemtableCtx &ctx, int64_t ret) const EVENT_INC(MEMSTORE_WRITE_LOCK_SUCC_COUNT); } if (lock_use_time >= WARN_TIME_US && TC_REACH_TIME_INTERVAL(LOG_INTERVAL)) { - TRANS_LOG(WARN, "wait mvcc write use too much time", + TRANS_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "wait mvcc write use too much time", K(ctx), K(ret), K(lock_use_time)); } } @@ -1048,7 +1048,7 @@ void ObMvccRow::mvcc_undo() ObMvccTransNode *iter = ATOMIC_LOAD(&list_head_); if (OB_ISNULL(iter)) { - TRANS_LOG(ERROR, "mvcc undo with no mvcc data"); + TRANS_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "mvcc undo with no mvcc data"); } else { iter->set_aborted(); ATOMIC_STORE(&(list_head_), iter->prev_); diff --git a/src/storage/memtable/mvcc/ob_mvcc_trans_ctx.cpp b/src/storage/memtable/mvcc/ob_mvcc_trans_ctx.cpp index ee33de010..d9984e561 100644 --- a/src/storage/memtable/mvcc/ob_mvcc_trans_ctx.cpp +++ b/src/storage/memtable/mvcc/ob_mvcc_trans_ctx.cpp @@ -202,7 +202,7 @@ void ObTransCallbackMgr::reset() for (int i = 0; i < MAX_CALLBACK_LIST_COUNT; ++i) { if (!callback_lists_[i].empty()) { ob_abort(); - TRANS_LOG(ERROR, "txn callback list is broken", K(stat), K(i), K(this)); + TRANS_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "txn callback list is broken", K(stat), K(i), K(this)); } } } @@ -369,7 +369,7 @@ void ObTransCallbackMgr::reset_pdml_stat() WRLockGuard guard(rwlock_); int64_t stat = ATOMIC_LOAD(¶llel_stat_); if (!ATOMIC_BCAS(¶llel_stat_, stat, 0)) { - TRANS_LOG(ERROR, "reset parallel stat when leader revoke encounter parallel", + TRANS_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "reset parallel stat when leader revoke encounter parallel", K(stat), K(parallel_stat_)); } else { need_retry = false; @@ -449,11 +449,11 @@ int64_t ObTransCallbackMgr::inc_pending_log_size(const int64_t size) ObIMemtableCtx *mt_ctx = NULL; transaction::ObTransCtx *trans_ctx = NULL; if (NULL == (mt_ctx = static_cast(&host_))) { - TRANS_LOG(ERROR, "mt_ctx is null", K(size), K(old_size), K(new_size), K(host_)); + TRANS_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "mt_ctx is null", K(size), K(old_size), K(new_size), K(host_)); } else if (NULL == (trans_ctx = mt_ctx->get_trans_ctx())) { - TRANS_LOG(ERROR, "trans ctx get failed", K(size), K(old_size), K(new_size), K(*mt_ctx)); + TRANS_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "trans ctx get failed", K(size), K(old_size), K(new_size), K(*mt_ctx)); } else { - TRANS_LOG(ERROR, "increase remaining data size less than 0!", + TRANS_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "increase remaining data size less than 0!", K(size), K(old_size), K(new_size), K(*trans_ctx)); } } @@ -503,7 +503,7 @@ void ObTransCallbackMgr::acquire_callback_list() } } else if (tid == (stat >> 32)) { if (!ATOMIC_BCAS(¶llel_stat_, stat, stat + 1)) { - TRANS_LOG(ERROR, "Unexpected status", K(this), K(tid_), K(ref_cnt_), K(tid)); + TRANS_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "Unexpected status", K(this), K(tid_), K(ref_cnt_), K(tid)); } } else { // https://yuque.antfin.com/ob/transaction/xzwarh @@ -543,7 +543,7 @@ void ObTransCallbackMgr::revert_callback_list() void ObTransCallbackMgr::wakeup_waiting_txns_() { if (OB_ISNULL(MTL(ObLockWaitMgr*))) { - TRANS_LOG(WARN, "MTL(ObLockWaitMgr*) is null"); + TRANS_LOG_RET(WARN, OB_ERR_UNEXPECTED, "MTL(ObLockWaitMgr*) is null"); } else { ObMemtableCtx &mem_ctx = static_cast(host_); MTL(ObLockWaitMgr*)->wakeup(mem_ctx.get_trans_ctx()->get_trans_id()); @@ -876,7 +876,7 @@ int ObMvccRowCallback::calc_checksum(const SCN checksum_scn, if (not_calc_checksum_) { // verification if (blocksstable::ObDmlFlag::DF_LOCK != get_dml_flag()) { - TRANS_LOG(ERROR, "only LOCK node can not calc checksum", + TRANS_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "only LOCK node can not calc checksum", K(*this), K(get_dml_flag())); } } else if (checksum_scn <= scn_) { @@ -1049,7 +1049,7 @@ int ObMvccRowCallback::trans_abort() wakeup_row_waiter_if_need_(); unlink_trans_node(); } else if (tnode_->is_committed()) { - TRANS_LOG(ERROR, "abort on a committed node", K(*this)); + TRANS_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "abort on a committed node", K(*this)); } } return OB_SUCCESS; diff --git a/src/storage/memtable/mvcc/ob_tx_callback_functor.h b/src/storage/memtable/mvcc/ob_tx_callback_functor.h index afcd84fe7..040f9b437 100644 --- a/src/storage/memtable/mvcc/ob_tx_callback_functor.h +++ b/src/storage/memtable/mvcc/ob_tx_callback_functor.h @@ -203,7 +203,7 @@ public: if (need_checksum_ && true == is_reverse_) { is_valid = false; - TRANS_LOG(ERROR, "we cannot calc checksum when reverse remove", KPC(this)); + TRANS_LOG_RET(ERROR, common::OB_INVALID_ERROR, "we cannot calc checksum when reverse remove", KPC(this)); } return is_valid; @@ -222,7 +222,7 @@ public: if (need_checksum_) { return checksum_last_scn_; } else { - TRANS_LOG(ERROR, "we donot go here if we donot checksum", KPC(this)); + TRANS_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "we donot go here if we donot checksum", KPC(this)); return share::SCN::min_scn(); } } @@ -316,7 +316,7 @@ public: if (NULL != checksumer_) { return checksum_last_scn_; } else { - TRANS_LOG(ERROR, "we donot go here if we donot checksum", KPC(this)); + TRANS_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "we donot go here if we donot checksum", KPC(this)); return share::SCN::min_scn(); } } diff --git a/src/storage/memtable/ob_lock_wait_mgr.cpp b/src/storage/memtable/ob_lock_wait_mgr.cpp index f80bea04f..91c268ec2 100644 --- a/src/storage/memtable/ob_lock_wait_mgr.cpp +++ b/src/storage/memtable/ob_lock_wait_mgr.cpp @@ -227,7 +227,7 @@ bool ObLockWaitMgr::post_process(bool need_retry, bool& need_wait) if (OB_UNLIKELY(OB_SUCCESS != (tmp_ret = register_to_deadlock_detector_(self_tx_id, blocked_tx_id, node->sessid_)))) { - DETECT_LOG(WARN, "register to deadlock detector failed", K(tmp_ret), K(*node)); + DETECT_LOG_RET(WARN, tmp_ret, "register to deadlock detector failed", K(tmp_ret), K(*node)); } else { DETECT_LOG(TRACE, "register to deadlock detector success", K(tmp_ret), K(*node)); } @@ -242,7 +242,7 @@ bool ObLockWaitMgr::post_process(bool need_retry, bool& need_wait) wait_succ = wait(node); } if (OB_UNLIKELY(!wait_succ)) { - TRANS_LOG(WARN, "fail to wait node", KR(tmp_ret), KPC(node)); + TRANS_LOG_RET(WARN, tmp_ret, "fail to wait node", KR(tmp_ret), KPC(node)); } } } @@ -446,7 +446,7 @@ ObLink* ObLockWaitMgr::check_timeout() uint64_t last_lock_seq = iter->lock_seq_; uint64_t curr_lock_seq = ATOMIC_LOAD(&sequence_[(hash >> 1)% LOCK_BUCKET_COUNT]); if (iter->is_timeout() || has_set_stop()) { - TRANS_LOG(WARN, "LOCK_MGR: req wait lock timeout", K(curr_lock_seq), K(last_lock_seq), K(*iter)); + TRANS_LOG_RET(WARN, OB_TIMEOUT, "LOCK_MGR: req wait lock timeout", K(curr_lock_seq), K(last_lock_seq), K(*iter)); need_check_session = true; node2del = iter; EVENT_INC(MEMSTORE_WRITE_LOCK_WAIT_TIMEOUT_COUNT); @@ -493,7 +493,7 @@ ObLink* ObLockWaitMgr::check_timeout() // in order to prevent missing to wakeup request, so we force to wakeup every 5s node2del = iter; iter->on_retry_lock(hash); - TRANS_LOG(WARN, "LOCK_MGR: req wait lock cost too much time", K(curr_lock_seq), K(last_lock_seq), K(*iter)); + TRANS_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "LOCK_MGR: req wait lock cost too much time", K(curr_lock_seq), K(last_lock_seq), K(*iter)); } else { auto tx_desc = session_info->get_tx_desc(); bool ac = false, has_explicit_start_tx = session_info->has_explicit_start_trans(); @@ -754,7 +754,7 @@ void ObLockWaitMgr::fetch_deadlocked_sessions_(DeadlockedSessionArray* &sessions deadlocked_sessions_index_ = 1 - deadlocked_sessions_index_; if (0 != deadlocked_sessions_index_ && 1 != deadlocked_sessions_index_) { - TRANS_LOG(ERROR, "unexpected deadlocked session index", K(deadlocked_sessions_index_)); + TRANS_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "unexpected deadlocked session index", K(deadlocked_sessions_index_)); } deadlocked_sessions_[deadlocked_sessions_index_].reset(); sessions = deadlocked_sessions_ + (1 - deadlocked_sessions_index_); diff --git a/src/storage/memtable/ob_memtable.cpp b/src/storage/memtable/ob_memtable.cpp index 7ceeae044..78db89e85 100644 --- a/src/storage/memtable/ob_memtable.cpp +++ b/src/storage/memtable/ob_memtable.cpp @@ -2186,7 +2186,7 @@ int ObMemtable::dump2text(const char *fname) void ObMemtable::set_max_schema_version(const int64_t schema_version) { if (INT64_MAX == schema_version) { - TRANS_LOG(ERROR, "invalid schema version", K(schema_version), KPC(this)); + TRANS_LOG_RET(ERROR, OB_INVALID_ARGUMENT, "invalid schema version", K(schema_version), KPC(this)); } else { inc_update(&max_schema_version_, schema_version); } diff --git a/src/storage/memtable/ob_memtable_context.cpp b/src/storage/memtable/ob_memtable_context.cpp index 7191b44ad..2886cb28c 100644 --- a/src/storage/memtable/ob_memtable_context.cpp +++ b/src/storage/memtable/ob_memtable_context.cpp @@ -116,15 +116,15 @@ void ObMemtableCtx::reset() TRANS_LOG(INFO, "memtable callback used", K(*this)); } if (OB_UNLIKELY(callback_alloc_count_ != callback_free_count_)) { - TRANS_LOG(ERROR, "callback alloc and free count not match", K(*this)); + TRANS_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "callback alloc and free count not match", K(*this)); } if (OB_UNLIKELY(unsynced_cnt_ != 0)) { - TRANS_LOG(ERROR, "txn unsynced cnt not zero", K(*this), + TRANS_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "txn unsynced cnt not zero", K(*this), K(unsynced_cnt_), K(unsubmitted_cnt_)); ob_abort(); } if (OB_UNLIKELY(unsubmitted_cnt_ != 0)) { - TRANS_LOG(ERROR, "txn unsubmitted cnt not zero", K(*this), + TRANS_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "txn unsubmitted cnt not zero", K(*this), K(unsynced_cnt_), K(unsubmitted_cnt_)); ob_abort(); } @@ -313,7 +313,7 @@ void ObMemtableCtx::on_wlock_retry(const ObMemtableKey& key, const transaction:: { mtstat_.on_wlock_retry(); if (log_conflict_interval_.reach()) { - TRANS_LOG(WARN, "mvcc_write conflict", K(key), "tx_id", get_tx_id(), K(conflict_tx_id), KPC(this)); + TRANS_LOG_RET(WARN, OB_SUCCESS, "mvcc_write conflict", K(key), "tx_id", get_tx_id(), K(conflict_tx_id), KPC(this)); } } @@ -324,7 +324,7 @@ void ObMemtableCtx::on_tsc_retry(const ObMemtableKey& key, { mtstat_.on_tsc_retry(); if (log_conflict_interval_.reach()) { - TRANS_LOG(WARN, "transaction_set_consistency conflict", K(key), K(snapshot_version), K(max_trans_version), K(conflict_tx_id), KPC(this)); + TRANS_LOG_RET(WARN, OB_SUCCESS, "transaction_set_consistency conflict", K(key), K(snapshot_version), K(max_trans_version), K(conflict_tx_id), KPC(this)); } } @@ -332,7 +332,7 @@ void *ObMemtableCtx::old_row_alloc(const int64_t size) { void* ret = NULL; if (OB_ISNULL(ret = ctx_cb_allocator_.alloc(size))) { - TRANS_LOG(ERROR, "old row alloc error, no memory", K(size), K(*this)); + TRANS_LOG_RET(ERROR, OB_ALLOCATE_MEMORY_FAILED, "old row alloc error, no memory", K(size), K(*this)); } else { ATOMIC_FAA(&callback_mem_used_, size); TRANS_LOG(DEBUG, "old row alloc succ", K(*this), KP(ret), K(lbt())); @@ -343,7 +343,7 @@ void *ObMemtableCtx::old_row_alloc(const int64_t size) void ObMemtableCtx::old_row_free(void *row) { if (OB_ISNULL(row)) { - TRANS_LOG(ERROR, "row is null, unexpected error", KP(row), K(*this)); + TRANS_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "row is null, unexpected error", KP(row), K(*this)); } else { TRANS_LOG(DEBUG, "row release succ", KP(row), K(*this), K(lbt())); ctx_cb_allocator_.free(row); @@ -355,7 +355,7 @@ void *ObMemtableCtx::callback_alloc(const int64_t size) { void* ret = NULL; if (OB_ISNULL(ret = ctx_cb_allocator_.alloc(size))) { - TRANS_LOG(ERROR, "callback alloc error, no memory", K(size), K(*this)); + TRANS_LOG_RET(ERROR, OB_ALLOCATE_MEMORY_FAILED, "callback alloc error, no memory", K(size), K(*this)); } else { ATOMIC_FAA(&callback_mem_used_, size); ATOMIC_INC(&callback_alloc_count_); @@ -367,7 +367,7 @@ void *ObMemtableCtx::callback_alloc(const int64_t size) void ObMemtableCtx::callback_free(ObITransCallback *cb) { if (OB_ISNULL(cb)) { - TRANS_LOG(ERROR, "cb is null, unexpected error", KP(cb), K(*this)); + TRANS_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "cb is null, unexpected error", KP(cb), K(*this)); } else if (cb->is_table_lock_callback()) { free_table_lock_callback(cb); } else { @@ -400,7 +400,7 @@ ObOBJLockCallback *ObMemtableCtx::alloc_table_lock_callback(ObIMvccCtx &ctx, void ObMemtableCtx::free_table_lock_callback(ObITransCallback *cb) { if (OB_ISNULL(cb)) { - TRANS_LOG(ERROR, "cb is null, unexpected error", KP(cb), K(*this)); + TRANS_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "cb is null, unexpected error", KP(cb), K(*this)); } else { TRANS_LOG(DEBUG, "callback release succ", KP(cb), K(*this), K(lbt())); lock_mem_ctx_.free_lock_op_callback(cb); @@ -839,7 +839,7 @@ void ObMemtableCtx::inc_lock_for_read_retry_count() void ObMemtableCtx::add_trans_mem_total_size(const int64_t size) { if (size < 0) { - TRANS_LOG(ERROR, "unexpected size", K(size), K(*this)); + TRANS_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "unexpected size", K(size), K(*this)); } else { ATOMIC_FAA(&trans_mem_total_size_, size); } diff --git a/src/storage/memtable/ob_memtable_context.h b/src/storage/memtable/ob_memtable_context.h index c3865ca42..fd3407970 100644 --- a/src/storage/memtable/ob_memtable_context.h +++ b/src/storage/memtable/ob_memtable_context.h @@ -140,7 +140,7 @@ public: ~ObQueryAllocator() { if (OB_UNLIKELY(ATOMIC_LOAD(&free_count_) != ATOMIC_LOAD(&alloc_count_))) { - TRANS_LOG(ERROR, "query allocator leak found", K(alloc_count_), K(free_count_), K(alloc_size_)); + TRANS_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "query allocator leak found", K(alloc_count_), K(free_count_), K(alloc_size_)); } ATOMIC_STORE(&is_inited_, false); } @@ -171,7 +171,7 @@ public: void reset() { if (OB_UNLIKELY(ATOMIC_LOAD(&free_count_) != ATOMIC_LOAD(&alloc_count_))) { - TRANS_LOG(ERROR, "query allocator leak found", K(alloc_count_), K(free_count_), K(alloc_size_)); + TRANS_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "query allocator leak found", K(alloc_count_), K(free_count_), K(alloc_size_)); } allocator_.reset(); ATOMIC_STORE(&alloc_count_, 0); @@ -183,7 +183,7 @@ public: { void *ret = nullptr; if (OB_ISNULL(ret = allocator_.alloc(size))) { - TRANS_LOG(ERROR, "query alloc failed", + TRANS_LOG_RET(ERROR, common::OB_ALLOCATE_MEMORY_FAILED, "query alloc failed", K(alloc_count_), K(free_count_), K(alloc_size_), K(size)); } else { ATOMIC_INC(&alloc_count_); @@ -226,7 +226,7 @@ public: ~ObMemtableCtxCbAllocator() { if (OB_UNLIKELY(ATOMIC_LOAD(&free_count_) != ATOMIC_LOAD(&alloc_count_))) { - TRANS_LOG(ERROR, "callback memory leak found", K(alloc_count_), K(free_count_), K(alloc_size_)); + TRANS_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "callback memory leak found", K(alloc_count_), K(free_count_), K(alloc_size_)); } ATOMIC_STORE(&is_inited_, false); } @@ -258,7 +258,7 @@ public: void reset() { if (OB_UNLIKELY(free_count_ != alloc_count_)) { - TRANS_LOG(ERROR, "callback memory leak found", K(alloc_count_), K(free_count_), K(alloc_size_)); + TRANS_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "callback memory leak found", K(alloc_count_), K(free_count_), K(alloc_size_)); } allocator_.reset(); ATOMIC_STORE(&alloc_count_, 0); @@ -270,7 +270,7 @@ public: { void *ret = nullptr; if (OB_ISNULL(ret = allocator_.alloc(size))) { - TRANS_LOG(ERROR, "callback memory failed", + TRANS_LOG_RET(ERROR, OB_ALLOCATE_MEMORY_FAILED, "callback memory failed", K(alloc_count_), K(free_count_), K(alloc_size_), K(size)); } else { ATOMIC_INC(&alloc_count_); diff --git a/src/storage/memtable/ob_memtable_interface.cpp b/src/storage/memtable/ob_memtable_interface.cpp index afcbca47f..f0a395604 100644 --- a/src/storage/memtable/ob_memtable_interface.cpp +++ b/src/storage/memtable/ob_memtable_interface.cpp @@ -40,9 +40,9 @@ ObMemtable *ObMemtableFactory::alloc(const uint64_t tenant_id) ObMemtable *mt = NULL; void *mt_buffer = ob_malloc(sizeof(ObMemtable), memattr); if (NULL == mt_buffer) { - TRANS_LOG(WARN, "alloc memory for memtable fail"); + TRANS_LOG_RET(WARN, OB_ALLOCATE_MEMORY_FAILED, "alloc memory for memtable fail"); } else if (NULL == (mt = new(mt_buffer) ObMemtable())) { - TRANS_LOG(WARN, "construct object of memtable fail"); + TRANS_LOG_RET(WARN, OB_ERR_UNEXPECTED, "construct object of memtable fail"); ob_free(mt_buffer); mt_buffer = NULL; } else { diff --git a/src/storage/memtable/ob_mt_hash.h b/src/storage/memtable/ob_mt_hash.h index cd42a0964..57ff19fc6 100644 --- a/src/storage/memtable/ob_mt_hash.h +++ b/src/storage/memtable/ob_mt_hash.h @@ -321,7 +321,7 @@ private: { // depth_ is not more than 64 if (OB_UNLIKELY(depth_ >= GENEALOGY_LEN)) { - TRANS_LOG(ERROR, "unexpect, genealogy is too deep", K(depth_)); + TRANS_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "unexpect, genealogy is too deep", K(depth_)); } else { list_[depth_].bucket_node_ = node; list_[depth_].bucket_idx_ = idx; diff --git a/src/storage/memtable/ob_row_compactor.cpp b/src/storage/memtable/ob_row_compactor.cpp index cd0a2001d..753f72252 100644 --- a/src/storage/memtable/ob_row_compactor.cpp +++ b/src/storage/memtable/ob_row_compactor.cpp @@ -150,7 +150,7 @@ void ObMemtableRowCompactor::find_start_pos_(const SCN snapshot_version, if (search_cnt >= 100 && 0 == search_cnt % 100 && NULL != row_->latest_compact_node_) { - TRANS_LOG(WARN, "too much trans node scaned when row compact", + TRANS_LOG_RET(WARN, OB_ERROR, "too much trans node scaned when row compact", K(search_cnt), K(snapshot_version), KPC(start), K(*row_), K(*(row_->list_head_)), K(*(row_->latest_compact_node_))); } diff --git a/src/storage/meta_mem/ob_meta_obj_struct.h b/src/storage/meta_mem/ob_meta_obj_struct.h index 16a37ea3a..7826c97c9 100644 --- a/src/storage/meta_mem/ob_meta_obj_struct.h +++ b/src/storage/meta_mem/ob_meta_obj_struct.h @@ -192,7 +192,7 @@ void ObMetaObjGuard::set_obj(ObMetaObj &obj) obj_pool_ = obj.pool_; if (nullptr != obj.ptr_) { if (nullptr == obj.pool_) { - STORAGE_LOG(ERROR, "object pool is nullptr", K(obj)); + STORAGE_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "object pool is nullptr", K(obj)); ob_abort(); } else { obj_ = obj.ptr_; @@ -208,7 +208,7 @@ void ObMetaObjGuard::set_obj(T *obj, common::ObIAllocator *allocator) allocator_ = allocator; if (nullptr != obj) { if (nullptr == allocator) { - STORAGE_LOG(ERROR, "allocator is nullptr", KP(obj), KP(allocator)); + STORAGE_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "allocator is nullptr", KP(obj), KP(allocator)); ob_abort(); } else { obj_ = obj; @@ -241,13 +241,13 @@ ObMetaObjGuard &ObMetaObjGuard::operator = (const ObMetaObjGuard &other allocator_ = other.allocator_; if (nullptr != other.obj_) { if (OB_UNLIKELY(!other.is_valid())) { - STORAGE_LOG(ERROR, "object pool and allocator is nullptr", K(other), KPC(this)); + STORAGE_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "object pool and allocator is nullptr", K(other), KPC(this)); ob_abort(); } else { obj_ = other.obj_; other.obj_->inc_ref(); if (OB_UNLIKELY(other.obj_->get_ref() < 2)) { - STORAGE_LOG(ERROR, "obj guard may be accessed by multiple threads or ref cnt leak", KP(obj_), KP(obj_pool_)); + STORAGE_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "obj guard may be accessed by multiple threads or ref cnt leak", KP(obj_), KP(obj_pool_)); } } } @@ -279,7 +279,7 @@ void ObMetaObjGuard::reset_obj() { if (nullptr != obj_) { if (OB_UNLIKELY(!is_valid())) { - STORAGE_LOG(ERROR, "object pool and allocator is nullptr", K_(obj), K_(obj_pool), K_(allocator)); + STORAGE_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "object pool and allocator is nullptr", K_(obj), K_(obj_pool), K_(allocator)); ob_abort(); } else { const int64_t ref_cnt = obj_->dec_ref(); @@ -293,7 +293,7 @@ void ObMetaObjGuard::reset_obj() allocator_->free(obj_); } } else if (OB_UNLIKELY(ref_cnt < 0)) { - STORAGE_LOG(ERROR, "obj ref cnt may be leaked", K(ref_cnt), KPC(this)); + STORAGE_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "obj ref cnt may be leaked", K(ref_cnt), KPC(this)); } obj_ = nullptr; } diff --git a/src/storage/meta_mem/ob_meta_pointer.h b/src/storage/meta_mem/ob_meta_pointer.h index 676350632..01ef86bb6 100644 --- a/src/storage/meta_mem/ob_meta_pointer.h +++ b/src/storage/meta_mem/ob_meta_pointer.h @@ -102,7 +102,7 @@ ObMetaPointer::ObMetaPointer(const ObMetaDiskAddr &addr, ObMetaObjGuard &g guard.get_obj(obj_); if (nullptr != obj_.ptr_) { if (nullptr == obj_.pool_) { - STORAGE_LOG(ERROR, "object pool is nullptr", K_(obj)); + STORAGE_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "object pool is nullptr", K_(obj)); ob_abort(); } else { obj_.ptr_->inc_ref(); @@ -346,7 +346,7 @@ void ObMetaPointer::set_obj(ObMetaObjGuard &guard) set_attr_for_obj(obj_.ptr_); if (nullptr != obj_.ptr_) { if (nullptr == obj_.pool_) { - STORAGE_LOG(ERROR, "object pool is nullptr", K_(obj)); + STORAGE_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "object pool is nullptr", K_(obj)); ob_abort(); } else { obj_.ptr_->inc_ref(); @@ -426,14 +426,14 @@ void ObMetaPointer::reset_obj() { if (nullptr != obj_.ptr_) { if (nullptr == obj_.pool_) { - STORAGE_LOG(ERROR, "object pool is nullptr", K_(obj)); + STORAGE_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "object pool is nullptr", K_(obj)); ob_abort(); } else { const int64_t ref_cnt = obj_.ptr_->dec_ref(); if (0 == ref_cnt) { obj_.pool_->release(obj_.ptr_); } else if (OB_UNLIKELY(ref_cnt < 0)) { - STORAGE_LOG(ERROR, "obj ref cnt may be leaked", K(ref_cnt), KPC(this)); + STORAGE_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "obj ref cnt may be leaked", K(ref_cnt), KPC(this)); } obj_.ptr_ = nullptr; } @@ -457,7 +457,7 @@ ObMetaPointer &ObMetaPointer::operator = (const ObMetaPointer &other) obj_.pool_ = other.obj_.pool_; if (nullptr != other.obj_.ptr_) { if (nullptr == other.obj_.pool_) { - STORAGE_LOG(ERROR, "object pool is nullptr", K(other)); + STORAGE_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "object pool is nullptr", K(other)); ob_abort(); } else { obj_.ptr_ = other.obj_.ptr_; 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 e49db70fa..b65b70ea9 100644 --- a/src/storage/meta_mem/ob_tenant_meta_mem_mgr.cpp +++ b/src/storage/meta_mem/ob_tenant_meta_mem_mgr.cpp @@ -226,7 +226,7 @@ void ObTenantMetaMemMgr::destroy() void ObTenantMetaMemMgr::mtl_destroy(ObTenantMetaMemMgr *&meta_mem_mgr) { if (OB_UNLIKELY(nullptr == meta_mem_mgr)) { - LOG_WARN("meta mem mgr is nullptr", KP(meta_mem_mgr)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "meta mem mgr is nullptr", KP(meta_mem_mgr)); } else { OB_DELETE(ObTenantMetaMemMgr, oceanbase::ObModIds::OMT_TENANT, meta_mem_mgr); meta_mem_mgr = nullptr; @@ -362,7 +362,7 @@ int ObTenantMetaMemMgr::gc_tables_in_queue(bool &all_table_cleaned) void ObTenantMetaMemMgr::gc_sstable(ObSSTable *sstable) { if (OB_UNLIKELY(nullptr == sstable)) { - LOG_WARN("invalid argument"); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "invalid argument"); } else { const int64_t block_cnt = sstable->get_meta().get_macro_info().get_total_block_cnt(); const int64_t start_time = ObTimeUtility::current_time(); @@ -373,7 +373,7 @@ void ObTenantMetaMemMgr::gc_sstable(ObSSTable *sstable) } const int64_t end_time = ObTimeUtility::current_time(); if (end_time - start_time > SSTABLE_GC_MAX_TIME) { - LOG_WARN("sstable gc costs too much time", K(start_time), K(end_time), K(block_cnt)); + LOG_WARN_RET(OB_ERR_TOO_MUCH_TIME, "sstable gc costs too much time", K(start_time), K(end_time), K(block_cnt)); } } } @@ -530,7 +530,7 @@ void ObTenantMetaMemMgr::release_sstable(ObSSTable *sstable) { if (OB_NOT_NULL(sstable)) { if (0 != sstable->get_ref()) { - LOG_ERROR("ObSSTable reference count may be leak", KPC(sstable)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "ObSSTable reference count may be leak", KPC(sstable)); } else { sstable_pool_.release(sstable); } @@ -566,7 +566,7 @@ void ObTenantMetaMemMgr::release_ddl_kv(ObDDLKV *ddl_kv) { if (OB_NOT_NULL(ddl_kv)) { if (0 != ddl_kv->get_ref()) { - LOG_ERROR("ddl kv reference count may be leak", KPC(ddl_kv)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "ddl kv reference count may be leak", KPC(ddl_kv)); } else { ddl_kv_pool_.release(ddl_kv); } @@ -672,7 +672,7 @@ void ObTenantMetaMemMgr::release_memtable(ObMemtable *memtable) { if (OB_NOT_NULL(memtable)) { if (0 != memtable->get_ref()) { - LOG_ERROR("ObSSTable reference count may be leak", KPC(memtable)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "ObSSTable reference count may be leak", KPC(memtable)); } else { memtable_pool_.release(memtable); } @@ -683,7 +683,7 @@ void ObTenantMetaMemMgr::release_tx_data_memtable_(ObTxDataMemtable *memtable) { if (OB_NOT_NULL(memtable)) { if (0 != memtable->get_ref()) { - LOG_ERROR("ObTxDataMemtable reference count may be leak", KPC(memtable)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "ObTxDataMemtable reference count may be leak", KPC(memtable)); } else { tx_data_memtable_pool_.release(memtable); } @@ -723,7 +723,7 @@ void ObTenantMetaMemMgr::release_tablet_ddl_kv_mgr(ObTabletDDLKvMgr *ddl_kv_mgr) { if (OB_NOT_NULL(ddl_kv_mgr)) { if (0 != ddl_kv_mgr->get_ref()) { - LOG_ERROR("ObTabletDDLKvMgr reference count may be leak", KPC(ddl_kv_mgr)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "ObTabletDDLKvMgr reference count may be leak", KPC(ddl_kv_mgr)); } else { tablet_ddl_kv_mgr_pool_.release(ddl_kv_mgr); } @@ -762,7 +762,7 @@ void ObTenantMetaMemMgr::release_tablet_memtable_mgr(ObTabletMemtableMgr *memtab { if (OB_NOT_NULL(memtable_mgr)) { if (0 != memtable_mgr->get_ref()) { - LOG_ERROR("ObTabletMemtableMgr reference count may be leak", KPC(memtable_mgr)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "ObTabletMemtableMgr reference count may be leak", KPC(memtable_mgr)); } else { tablet_memtable_mgr_pool_.release(memtable_mgr); } @@ -773,7 +773,7 @@ void ObTenantMetaMemMgr::release_tx_ctx_memtable_(ObTxCtxMemtable *memtable) { if (OB_NOT_NULL(memtable)) { if (0 != memtable->get_ref()) { - LOG_ERROR("ObTxCtxMemtable reference count may be leak", KPC(memtable)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "ObTxCtxMemtable reference count may be leak", KPC(memtable)); } else { tx_ctx_memtable_pool_.release(memtable); } @@ -784,7 +784,7 @@ void ObTenantMetaMemMgr::release_lock_memtable_(ObLockMemtable *memtable) { if (OB_NOT_NULL(memtable)) { if (0 != memtable->get_ref()) { - LOG_ERROR("ObLockMemtable reference count may be leak", KPC(memtable)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "ObLockMemtable reference count may be leak", KPC(memtable)); } else { lock_memtable_pool_.release(memtable); } @@ -1225,7 +1225,7 @@ void ObTenantMetaMemMgr::release_tablet(ObTablet *tablet) { if (OB_NOT_NULL(tablet)) { if (0 != tablet->get_ref()) { - LOG_ERROR("ObTablet reference count may be leak", KPC(tablet)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "ObTablet reference count may be leak", KPC(tablet)); } else { tablet_pool_.release(tablet); } diff --git a/src/storage/meta_mem/ob_tenant_meta_obj_pool.h b/src/storage/meta_mem/ob_tenant_meta_obj_pool.h index 2251ac442..63192891f 100644 --- a/src/storage/meta_mem/ob_tenant_meta_obj_pool.h +++ b/src/storage/meta_mem/ob_tenant_meta_obj_pool.h @@ -141,14 +141,14 @@ void ObTenantMetaObjPool::free_node_(typename BasePool::Node *ptr) ptr->next = NULL; if (BasePool::ALLOC_BY_INNER_ALLOCATOR == ptr->flag) { if (common::OB_SUCCESS != BasePool::free_list_.push(ptr)) { - _COMMON_LOG(ERROR, "free node to list fail, size=%ld ptr=%p", BasePool::free_list_.get_total(), ptr); + _COMMON_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "free node to list fail, size=%ld ptr=%p", BasePool::free_list_.get_total(), ptr); } (void)ATOMIC_AAF(&(BasePool::inner_used_num_), -1); } else if (BasePool::ALLOC_BY_OBMALLOC == ptr->flag) { ptr->~Node(); common::ob_free(ptr); } else { - _COMMON_LOG(ERROR, "invalid flag=%lu ptr=%p", ptr->flag, ptr); + _COMMON_LOG_RET(ERROR, OB_INVALID_ARGUMENT, "invalid flag=%lu ptr=%p", ptr->flag, ptr); } } } diff --git a/src/storage/ob_i_memtable_mgr.cpp b/src/storage/ob_i_memtable_mgr.cpp index 936ecd089..642ffa805 100644 --- a/src/storage/ob_i_memtable_mgr.cpp +++ b/src/storage/ob_i_memtable_mgr.cpp @@ -261,7 +261,7 @@ void ObIMemtableMgr::reset_tables() void ObIMemtableMgr::release_head_memtable() { if (OB_ISNULL(t3m_)) { - STORAGE_LOG(ERROR, "t3m is nullptr", KP_(t3m)); + STORAGE_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "t3m is nullptr", KP_(t3m)); } else { memtable::ObIMemtable *memtable = tables_[get_memtable_idx(memtable_head_)]; tables_[get_memtable_idx(memtable_head_)] = nullptr; @@ -277,7 +277,7 @@ void ObIMemtableMgr::release_tail_memtable() { if (memtable_tail_ > memtable_head_) { if (OB_ISNULL(t3m_)) { - STORAGE_LOG(ERROR, "t3m is nullptr", KP_(t3m)); + STORAGE_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "t3m is nullptr", KP_(t3m)); } else { memtable::ObIMemtable *memtable = tables_[get_memtable_idx(memtable_tail_ - 1)]; tables_[get_memtable_idx(memtable_tail_ - 1)] = nullptr; diff --git a/src/storage/ob_i_memtable_mgr.h b/src/storage/ob_i_memtable_mgr.h index 3d3247cbd..3755c67cd 100644 --- a/src/storage/ob_i_memtable_mgr.h +++ b/src/storage/ob_i_memtable_mgr.h @@ -87,7 +87,7 @@ public: } else if (lock_type_ == LockType::OB_SPIN_RWLOCK) { static_cast(lock_)->unlock(); } else { - STORAGE_LOG(ERROR, "unexpected lock_type", K_(lock_type)); + STORAGE_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "unexpected lock_type", K_(lock_type)); } } @@ -132,7 +132,7 @@ public: } else if (lock_type_ == LockType::OB_SPIN_RWLOCK) { static_cast(lock_)->unlock(); } else { - STORAGE_LOG(ERROR, "unexpected lock_type", K_(lock_type)); + STORAGE_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "unexpected lock_type", K_(lock_type)); } } @@ -148,7 +148,7 @@ public: : lock_(const_cast(lock)), ret_(OB_SUCCESS) { if (OB_UNLIKELY(OB_SUCCESS != (ret_ = lock_.rdlock()))) { - COMMON_LOG(WARN, "Fail to read lock, ", K_(ret)); + COMMON_LOG_RET(WARN, ret_, "Fail to read lock, ", K_(ret)); } } ~MemMgrRLockGuard() @@ -172,7 +172,7 @@ public: : lock_(const_cast(lock)), ret_(OB_SUCCESS) { if (OB_UNLIKELY(OB_SUCCESS != (ret_ = lock_.wrlock()))) { - COMMON_LOG(WARN, "Fail to write lock, ", K_(ret)); + COMMON_LOG_RET(WARN, ret_, "Fail to write lock, ", K_(ret)); } } ~MemMgrWLockGuard() diff --git a/src/storage/ob_i_table.cpp b/src/storage/ob_i_table.cpp index c2a7242ea..5cb4feb1e 100644 --- a/src/storage/ob_i_table.cpp +++ b/src/storage/ob_i_table.cpp @@ -188,7 +188,7 @@ void ObTableHandleV2::reset() { if (nullptr != table_) { if (OB_UNLIKELY(!is_valid())) { - STORAGE_LOG(ERROR, "t3m or allocator is nullptr", KP_(table), KP_(t3m), KP_(allocator)); + STORAGE_LOG_RET(ERROR, OB_INVALID_ERROR, "t3m or allocator is nullptr", KP_(table), KP_(t3m), KP_(allocator)); ob_abort(); } else { const int64_t ref_cnt = table_->dec_ref(); @@ -200,7 +200,7 @@ void ObTableHandleV2::reset() allocator_->free(table_); } } else if (OB_UNLIKELY(ref_cnt < 0)) { - LOG_ERROR("table ref cnt may be leaked", K(ref_cnt), KP(table_), K(table_type_)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "table ref cnt may be leaked", K(ref_cnt), KP(table_), K(table_type_)); } table_ = nullptr; t3m_ = nullptr; @@ -426,7 +426,7 @@ ObTableHandleV2 &ObTableHandleV2::operator= (const ObTableHandleV2 &other) reset(); if (nullptr != other.table_) { if (OB_UNLIKELY(!other.is_valid())) { - STORAGE_LOG(ERROR, "t3m_ is nullptr", K(other)); + STORAGE_LOG_RET(ERROR, OB_INVALID_ERROR, "t3m_ is nullptr", K(other)); ob_abort(); } else { table_ = other.table_; @@ -435,7 +435,7 @@ ObTableHandleV2 &ObTableHandleV2::operator= (const ObTableHandleV2 &other) allocator_ = other.allocator_; table_type_ = other.table_type_; if (OB_UNLIKELY(other.table_->get_ref() < 2)) { - STORAGE_LOG(ERROR, "The reference count of the table is unexpectedly decreased," + STORAGE_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "The reference count of the table is unexpectedly decreased," " the possible reason is that the table handle has concurrency", K(other)); } } @@ -507,7 +507,7 @@ void ObTablesHandleArray::reset() const int64_t ref_cnt = table->dec_ref(); if (0 == ref_cnt) { if (OB_ISNULL(meta_mem_mgr_) && OB_ISNULL(allocator_)) { - STORAGE_LOG(ERROR, "[MEMORY LEAK] meta_mem_mgr is unexpected null!!!", KPC(table), K(tablet_id_), KP(meta_mem_mgr_), KP(allocator_)); + STORAGE_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "[MEMORY LEAK] meta_mem_mgr is unexpected null!!!", KPC(table), K(tablet_id_), KP(meta_mem_mgr_), KP(allocator_)); } else if (nullptr != meta_mem_mgr_) { meta_mem_mgr_->push_table_into_gc_queue(table, table->get_key().table_type_); } else { @@ -515,7 +515,7 @@ void ObTablesHandleArray::reset() allocator_->free(table); } } else if (OB_UNLIKELY(ref_cnt < 0)) { - LOG_ERROR("table ref cnt may be leaked", K(ref_cnt), KP(table), "table type", table->get_key().table_type_); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "table ref cnt may be leaked", K(ref_cnt), KP(table), "table type", table->get_key().table_type_); } } tables_.at(i) = nullptr; diff --git a/src/storage/ob_locality_manager.cpp b/src/storage/ob_locality_manager.cpp index 609a5e7c2..f2d321a5f 100644 --- a/src/storage/ob_locality_manager.cpp +++ b/src/storage/ob_locality_manager.cpp @@ -671,7 +671,7 @@ IObDedupTask *ObLocalityManager::ObRefreshLocalityTask::deep_copy( ObRefreshLocalityTask *task = NULL; if (OB_UNLIKELY(OB_ISNULL(buffer)) || OB_UNLIKELY(buf_size < get_deep_copy_size())) { - STORAGE_LOG(WARN, "invalid argument", KP(buffer), K(buf_size)); + STORAGE_LOG_RET(WARN, OB_INVALID_ARGUMENT, "invalid argument", KP(buffer), K(buf_size)); } else { task = new(buffer) ObRefreshLocalityTask(locality_mgr_); } diff --git a/src/storage/ob_long_ops_monitor.cpp b/src/storage/ob_long_ops_monitor.cpp index 28d50d141..3932ef1f8 100644 --- a/src/storage/ob_long_ops_monitor.cpp +++ b/src/storage/ob_long_ops_monitor.cpp @@ -386,7 +386,7 @@ void ObILongOpsStatHandle::reset() if (NULL != ptr_) { int tmp_ret = OB_SUCCESS; if (OB_SUCCESS != (tmp_ret = ObLongOpsMonitor::get_instance().dec_handle_ref(*this))) { - LOG_WARN("fail to dec handle ref", K(tmp_ret)); + LOG_WARN_RET(tmp_ret, "fail to dec handle ref", K(tmp_ret)); } } } diff --git a/src/storage/ob_parallel_external_sort.h b/src/storage/ob_parallel_external_sort.h index 7e9f221a3..d91738532 100644 --- a/src/storage/ob_parallel_external_sort.h +++ b/src/storage/ob_parallel_external_sort.h @@ -1882,7 +1882,7 @@ void ObExternalSort::clean_up() for (int64_t i = 0; i < EXTERNAL_SORT_ROUND_CNT; ++i) { // ignore ret if (sort_rounds_[i].is_inited() && common::OB_SUCCESS != (tmp_ret = sort_rounds_[i].clean_up())) { - STORAGE_LOG(WARN, "fail to clean up sort rounds", K(tmp_ret), K(i)); + STORAGE_LOG_RET(WARN, tmp_ret, "fail to clean up sort rounds", K(tmp_ret), K(i)); } } } diff --git a/src/storage/ob_partition_range_spliter.h b/src/storage/ob_partition_range_spliter.h index 8f5d23b1c..cd1ecefa6 100644 --- a/src/storage/ob_partition_range_spliter.h +++ b/src/storage/ob_partition_range_spliter.h @@ -71,7 +71,7 @@ struct ObMacroEndkeyComparor } else if (OB_ISNULL(left.rowkey_) || OB_ISNULL(right.rowkey_) || OB_UNLIKELY(!left.rowkey_->is_valid() || !right.rowkey_->is_valid())) { ret_ = OB_INVALID_ARGUMENT; - STORAGE_LOG(WARN, "Invalid argument to compare macro endkey", K_(ret), K(left), K(right)); + STORAGE_LOG_RET(WARN, ret_, "Invalid argument to compare macro endkey", K_(ret), K(left), K(right)); } else { ret_ = left.rowkey_->compare(*right.rowkey_, cmp); } diff --git a/src/storage/ob_query_iterator_factory.cpp b/src/storage/ob_query_iterator_factory.cpp index c58c92253..3aa650133 100644 --- a/src/storage/ob_query_iterator_factory.cpp +++ b/src/storage/ob_query_iterator_factory.cpp @@ -137,7 +137,7 @@ void ObQueryIteratorFactory::free_merge_iter(ObQueryRowIterator *iter) (void)ATOMIC_FAA(&multi_get_merge_release_count_, 1); break; default: - STORAGE_LOG(ERROR, "invalid iterator type", K(iter->get_type())); + STORAGE_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "invalid iterator type", K(iter->get_type())); break; } } diff --git a/src/storage/ob_resource_map.h b/src/storage/ob_resource_map.h index 7bcf53afd..467b32fde 100644 --- a/src/storage/ob_resource_map.h +++ b/src/storage/ob_resource_map.h @@ -392,7 +392,7 @@ void ObResourceMap::destroy() for (iter = map_.begin(); iter != map_.end(); iter++) { ValueStore *value_store = iter->second; if (OB_NOT_NULL(value_store)) { - STORAGE_LOG(WARN, "exception: this value should be erased before.", + STORAGE_LOG_RET(WARN, common::OB_ERR_UNEXPECTED, "exception: this value should be erased before.", K(*value_store->get_value_ptr())); free_resource(value_store); } diff --git a/src/storage/ob_storage_schema.cpp b/src/storage/ob_storage_schema.cpp index 2953c08b0..d86f237dc 100644 --- a/src/storage/ob_storage_schema.cpp +++ b/src/storage/ob_storage_schema.cpp @@ -347,11 +347,11 @@ bool ObStorageSchema::is_valid() const || !check_column_array_valid(rowkey_array_) || !check_column_array_valid(column_array_)) { valid_ret = false; - STORAGE_LOG(WARN, "invalid", K_(is_inited), KP_(allocator), K_(schema_version), K_(column_cnt), + STORAGE_LOG_RET(WARN, OB_INVALID_ERROR, "invalid", K_(is_inited), KP_(allocator), K_(schema_version), K_(column_cnt), K_(tablet_size), K_(pctfree), K_(table_type), K_(table_mode), K_(index_type)); } else if (!column_info_simplified_ && column_cnt_ != column_array_.count()) { valid_ret = false; - STORAGE_LOG(WARN, "invalid column count", K(valid_ret), K_(column_info_simplified), K_(column_cnt), K_(column_array)); + STORAGE_LOG_RET(WARN, OB_INVALID_ERROR, "invalid column count", K(valid_ret), K_(column_info_simplified), K_(column_cnt), K_(column_array)); } else if (is_view_table()) { // no need checking other options for view } diff --git a/src/storage/ob_storage_schema.h b/src/storage/ob_storage_schema.h index e35dca92d..4aa7d7a60 100644 --- a/src/storage/ob_storage_schema.h +++ b/src/storage/ob_storage_schema.h @@ -301,7 +301,7 @@ bool ObStorageSchema::check_column_array_valid(const common::ObIArray &array) for (int64_t i = 0; valid_ret && i < array.count(); ++i) { if (!array.at(i).is_valid()) { valid_ret = false; - STORAGE_LOG(WARN, "column is invalid", K(i), K(array.at(i))); + STORAGE_LOG_RET(WARN, OB_INVALID_ERROR, "column is invalid", K(i), K(array.at(i))); } } return valid_ret; diff --git a/src/storage/ob_storage_struct.cpp b/src/storage/ob_storage_struct.cpp index 65c993aa7..fa1c3be4b 100644 --- a/src/storage/ob_storage_struct.cpp +++ b/src/storage/ob_storage_struct.cpp @@ -637,7 +637,7 @@ ObRebuildListener::ObRebuildListener(transaction::ObLSTxCtxMgr &mgr) { int tmp_ret = OB_SUCCESS; while (OB_SUCCESS != (tmp_ret = ls_tx_ctx_mgr_.lock_minor_merge_lock())) { - STORAGE_LOG(ERROR, "lock minor merge lock failed, we need retry forever", K(tmp_ret)); + STORAGE_LOG_RET(ERROR, tmp_ret, "lock minor merge lock failed, we need retry forever", K(tmp_ret)); } } @@ -645,7 +645,7 @@ ObRebuildListener::~ObRebuildListener() { int tmp_ret = OB_SUCCESS; while (OB_SUCCESS != (tmp_ret = ls_tx_ctx_mgr_.unlock_minor_merge_lock())) { - STORAGE_LOG(ERROR, "unlock minor merge lock failed, we need retry forever", K(tmp_ret)); + STORAGE_LOG_RET(ERROR, tmp_ret, "unlock minor merge lock failed, we need retry forever", K(tmp_ret)); } } diff --git a/src/storage/ob_storage_table_guard.cpp b/src/storage/ob_storage_table_guard.cpp index e185106d4..e6855a97d 100644 --- a/src/storage/ob_storage_table_guard.cpp +++ b/src/storage/ob_storage_table_guard.cpp @@ -74,7 +74,7 @@ ObStorageTableGuard::~ObStorageTableGuard() if (OB_SUCCESS != (tmp_ret = ObMemstoreAllocatorMgr::get_instance().get_tenant_memstore_allocator( MTL_ID(), memstore_allocator))) { } else if (OB_ISNULL(memstore_allocator)) { - LOG_WARN("get_tenant_mutil_allocator failed", K(store_ctx_.tablet_id_), K(tmp_ret)); + LOG_WARN_RET(OB_ALLOCATE_MEMORY_FAILED, "get_tenant_mutil_allocator failed", K(store_ctx_.tablet_id_), K(tmp_ret)); } else { while (need_sleep && !memstore_allocator->check_clock_over_seq(seq) && @@ -208,7 +208,7 @@ int ObStorageTableGuard::refresh_and_protect_memtable() const int64_t cost_time = ObTimeUtility::current_time() - start; if (cost_time > 10 * 1000) { if (TC_REACH_TIME_INTERVAL(10 * 1000)) { - TRANS_LOG(WARN, "refresh replay table too much times", K(ret), + TRANS_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "refresh replay table too much times", K(ret), K(ls_id), K(tablet_id), K(cost_time)); } } @@ -233,7 +233,7 @@ void ObStorageTableGuard::double_check_inc_write_ref( bool &bool_ret) { if (OB_ISNULL(memtable)) { - LOG_WARN("memtable is null when inc write ref"); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "memtable is null when inc write ref"); } else { memtable->inc_write_ref(); const uint32 new_freeze_flag = memtable->get_freeze_flag(); @@ -394,7 +394,7 @@ bool ObStorageTableGuard::need_to_refresh_table(ObTableStoreIterator &iter) if (bool_ret && check_if_need_log()) { const share::ObLSID &ls_id = tablet_->get_tablet_meta().ls_id_; const common::ObTabletID &tablet_id = tablet_->get_tablet_meta().tablet_id_; - LOG_WARN("refresh table too much times", K(ret), K(exit_flag), K(ls_id), K(tablet_id), KP(table)); + LOG_WARN_RET(OB_ERR_TOO_MUCH_TIME, "refresh table too much times", K(ret), K(exit_flag), K(ls_id), K(tablet_id), KP(table)); if (0 == exit_flag) { LOG_WARN("table is null or not memtable", K(ret), K(ls_id), K(tablet_id), KP(table)); } else if (1 == exit_flag) { @@ -402,7 +402,7 @@ bool ObStorageTableGuard::need_to_refresh_table(ObTableStoreIterator &iter) } else if (2 == exit_flag) { LOG_WARN("failed to check_freeze_to_inc_write_ref", K(ret), K(ls_id), K(tablet_id), KPC(table)); } else if (3 == exit_flag) { - LOG_WARN("check_freeze_to_inc_write_ref costs too much time", K(ret), K(ls_id), K(tablet_id), KPC(table)); + LOG_WARN_RET(OB_ERR_TOO_MUCH_TIME, "check_freeze_to_inc_write_ref costs too much time", K(ret), K(ls_id), K(tablet_id), KPC(table)); } else { LOG_WARN("unexpect exit_flag", K(exit_flag), K(ret), K(ls_id), K(tablet_id)); } diff --git a/src/storage/ob_store_row_comparer.h b/src/storage/ob_store_row_comparer.h index 60744cc6e..4f573daa1 100644 --- a/src/storage/ob_store_row_comparer.h +++ b/src/storage/ob_store_row_comparer.h @@ -55,7 +55,7 @@ OB_INLINE bool ObStoreRowComparer::operator()(const ObStoreRow *left, const ObSt || OB_UNLIKELY(NULL == right) || OB_UNLIKELY(0 == sort_column_index_.count())) { result_code_ = common::OB_INVALID_ARGUMENT; - STORAGE_LOG(WARN, "Invaid argument, ", KP(left), KP(right), + STORAGE_LOG_RET(WARN, common::OB_INVALID_ARGUMENT, "Invaid argument, ", KP(left), KP(right), K(sort_column_index_.count()), K_(result_code)); } else { for (int64_t i = 0; OB_LIKELY(common::OB_SUCCESS == result_code_) && i < sort_column_index_.count(); ++i) { @@ -71,7 +71,7 @@ OB_INLINE bool ObStoreRowComparer::operator()(const ObStoreRow *left, const ObSt } } else { result_code_ = common::OB_INVALID_ARGUMENT; - STORAGE_LOG(WARN, "index is out of bound", + STORAGE_LOG_RET(WARN, result_code_, "index is out of bound", K_(result_code), K(index), K(left->row_val_.count_), diff --git a/src/storage/ob_super_block_struct.cpp b/src/storage/ob_super_block_struct.cpp index a3d7d4404..db55da3f3 100644 --- a/src/storage/ob_super_block_struct.cpp +++ b/src/storage/ob_super_block_struct.cpp @@ -165,8 +165,8 @@ int ObServerSuperBlock::deserialize(const char *buf, const int64_t buf_size, int LOG_WARN("failed to decode header", K(ret), KP(buf), K(buf_size), K(pos)); } else if (OB_UNLIKELY(header_.body_crc_ != (calc_crc = static_cast(ob_crc64(buf + pos, header_.body_size_))))) { - ret = OB_CHECKSUM_ERROR; - LOG_WARN("failed to check crc", K(ret), KP(buf), K(buf_size), K(pos), K_(header), K(calc_crc)); + ret = OB_PHYSIC_CHECKSUM_ERROR; + LOG_DBA_ERROR(OB_PHYSIC_CHECKSUM_ERROR, "msg", "failed to check crc", K(ret), KP(buf), K(buf_size), K(pos), K_(header), K(calc_crc)); } else if (OB_FAIL(body_.deserialize(buf, buf_size, pos))) { LOG_WARN("failed to decode body", K(ret), KP(buf), K(buf_size), K(pos)); } else if (OB_UNLIKELY(!is_valid())) { diff --git a/src/storage/ob_table_store_stat_mgr.cpp b/src/storage/ob_table_store_stat_mgr.cpp index 49365d7dd..c7d1e5e7d 100644 --- a/src/storage/ob_table_store_stat_mgr.cpp +++ b/src/storage/ob_table_store_stat_mgr.cpp @@ -234,7 +234,7 @@ int ObTableStoreStatMgr::ReportTask::init(ObTableStoreStatMgr *stat_mgr) void ObTableStoreStatMgr::ReportTask::runTimerTask() { if (OB_ISNULL(stat_mgr_)) { - LOG_WARN("ReportTask is not inited"); + LOG_WARN_RET(OB_NOT_INIT, "ReportTask is not inited"); } else { stat_mgr_->run_report_task(); } diff --git a/src/storage/ob_tenant_tablet_stat_mgr.cpp b/src/storage/ob_tenant_tablet_stat_mgr.cpp index c9d43f68d..5006927dc 100644 --- a/src/storage/ob_tenant_tablet_stat_mgr.cpp +++ b/src/storage/ob_tenant_tablet_stat_mgr.cpp @@ -413,7 +413,7 @@ void ObTabletStreamPool::free(ObTabletStreamNode *node) int tmp_ret = OB_SUCCESS; if (IS_NOT_INIT) { tmp_ret = OB_NOT_INIT; - LOG_ERROR("[MEMORY LEAK] ObTabletStreamPool is not inited, cannot free this node!!!", + LOG_ERROR_RET(tmp_ret, "[MEMORY LEAK] ObTabletStreamPool is not inited, cannot free this node!!!", K(tmp_ret), KPC(node)); } else if (DYNAMIC_ALLOC == node->flag_) { node->~ObTabletStreamNode(); @@ -703,7 +703,7 @@ void ObTenantTabletStatMgr::process_stats() if (!cur_stat.is_valid()) { // allow dirty read } else if (OB_TMP_FAIL(update_tablet_stream(cur_stat))) { - LOG_WARN("failed to update tablet stat", K(tmp_ret), K(cur_stat)); + LOG_WARN_RET(tmp_ret, "failed to update tablet stat", K(tmp_ret), K(cur_stat)); } } report_cursor_ = pending_cur; // only TabletStatUpdater update this value. @@ -728,7 +728,7 @@ void ObTenantTabletStatMgr::TabletStatUpdater::runTimerTask() int64_t interval_step = 0; if (CHECK_SCHEDULE_TIME_INTERVAL(CHECK_INTERVAL, interval_step)) { if (OB_UNLIKELY(interval_step > 1)) { - LOG_WARN("tablet streams not refresh too long", K(interval_step)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "tablet streams not refresh too long", K(interval_step)); } mgr_.refresh_all(interval_step); FLOG_INFO("TenantTabletStatMgr refresh all tablet stream", K(MTL_ID()), K(interval_step)); diff --git a/src/storage/restore/ob_ls_restore_task_mgr.cpp b/src/storage/restore/ob_ls_restore_task_mgr.cpp index 29f35cf47..87b2270f1 100644 --- a/src/storage/restore/ob_ls_restore_task_mgr.cpp +++ b/src/storage/restore/ob_ls_restore_task_mgr.cpp @@ -242,7 +242,7 @@ int ObLSRestoreTaskMgr::cancel_task() if (OB_FAIL(check_task_exist_(iter->first, is_exist))) { LOG_WARN("fail to check task exist", K(ret), "taks_id", iter->first); } else if (is_exist && REACH_TIME_INTERVAL(60 * 1000 * 1000)) { - LOG_WARN("cancel dag next task cost too much time", K(ret), "task_id", iter->first, + LOG_WARN_RET(OB_ERR_TOO_MUCH_TIME, "cancel dag next task cost too much time", K(ret), "task_id", iter->first, "cost_time", ObTimeUtil::current_time() - start_ts); } } while (is_exist && OB_SUCC(ret)); diff --git a/src/storage/slog/ob_storage_log_item.cpp b/src/storage/slog/ob_storage_log_item.cpp index e48dfa912..5f75db855 100644 --- a/src/storage/slog/ob_storage_log_item.cpp +++ b/src/storage/slog/ob_storage_log_item.cpp @@ -165,7 +165,7 @@ void ObStorageLogItem::finish_flush(const int flush_ret) { if (IS_NOT_INIT) { flush_ret_ = OB_NOT_INIT; - STORAGE_REDO_LOG(WARN, "Not init", K_(flush_ret)); + STORAGE_REDO_LOG_RET(WARN, flush_ret_, "Not init", K_(flush_ret)); } else { ObThreadCondGuard guard(flush_cond_); flush_ret_ = flush_ret; diff --git a/src/storage/tablelock/ob_arena_object_pool.h b/src/storage/tablelock/ob_arena_object_pool.h index 5c09624a7..4cbfee48b 100644 --- a/src/storage/tablelock/ob_arena_object_pool.h +++ b/src/storage/tablelock/ob_arena_object_pool.h @@ -57,7 +57,7 @@ void *ObArenaObjPool::alloc() ptr = allocator_.alloc(size); } if (OB_ISNULL(ptr)) { - TABLELOCK_LOG(ERROR, "obj alloc error, no memory", K(*this), K(lbt())); + TABLELOCK_LOG_RET(ERROR, common::OB_ALLOCATE_MEMORY_FAILED, "obj alloc error, no memory", K(*this), K(lbt())); } else { ATOMIC_INC(&alloc_count_); TABLELOCK_LOG(DEBUG, "obj alloc succ", K(*this), KP(ptr), K(lbt())); @@ -70,7 +70,7 @@ void ObArenaObjPool::free(void *obj) { bool need_free = true; if (OB_ISNULL(obj)) { - TABLELOCK_LOG(ERROR, "obj is null, unexpected error", KP(obj), K(*this), K(lbt())); + TABLELOCK_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "obj is null, unexpected error", KP(obj), K(*this), K(lbt())); } else { TABLELOCK_LOG(DEBUG, "object free succ", KP(obj), K(*this), K(lbt())); ATOMIC_INC(&free_count_); @@ -90,7 +90,7 @@ template void ObArenaObjPool::reset() { if (OB_UNLIKELY(alloc_count_ != free_count_)) { - TABLELOCK_LOG(ERROR, "object alloc and free count not match", K(*this)); + TABLELOCK_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "object alloc and free count not match", K(*this)); } pos_ = 0; alloc_count_ = 0; diff --git a/src/storage/tablelock/ob_mem_ctx_table_lock.cpp b/src/storage/tablelock/ob_mem_ctx_table_lock.cpp index 9b6bb31dc..5d22225a2 100644 --- a/src/storage/tablelock/ob_mem_ctx_table_lock.cpp +++ b/src/storage/tablelock/ob_mem_ctx_table_lock.cpp @@ -251,7 +251,7 @@ void ObLockMemCtx::remove_lock_record( ObMemCtxLockOpLinkNode *lock_op) { if (OB_ISNULL(lock_op)) { - LOG_WARN("invalid argument.", K(lock_op)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "invalid argument.", K(lock_op)); } else { { WRLockGuard guard(list_rwlock_); @@ -267,7 +267,7 @@ void ObLockMemCtx::remove_lock_record( const ObTableLockOp &lock_op) { if (OB_UNLIKELY(!lock_op.is_valid())) { - LOG_WARN("invalid argument.", K(lock_op)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "invalid argument.", K(lock_op)); } else { WRLockGuard guard(list_rwlock_); DLIST_FOREACH_REMOVESAFE_NORET(curr, lock_list_) { @@ -288,7 +288,7 @@ void ObLockMemCtx::set_log_synced( const SCN &scn) { if (OB_ISNULL(lock_op)) { - LOG_WARN("invalid argument.", K(lock_op)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "invalid argument.", K(lock_op)); } else { max_durable_scn_.inc_update(scn); lock_op->logged_ = true; diff --git a/src/storage/tablelock/ob_obj_lock.cpp b/src/storage/tablelock/ob_obj_lock.cpp index 28927877f..290b6fa8d 100644 --- a/src/storage/tablelock/ob_obj_lock.cpp +++ b/src/storage/tablelock/ob_obj_lock.cpp @@ -689,7 +689,7 @@ void ObOBJLock::wakeup_waiters_(const ObTableLockOp &lock_op) if (OB_LIKELY(!lock_op.need_wakeup_waiter())) { // do nothing } else if (OB_ISNULL(MTL(ObLockWaitMgr*))) { - LOG_WARN("MTL(ObLockWaitMgr*) is null"); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "MTL(ObLockWaitMgr*) is null"); } else { MTL(ObLockWaitMgr*)->wakeup(lock_op.lock_id_); LOG_DEBUG("ObOBJLock::wakeup_waiters_ ", K(lock_op)); @@ -1082,14 +1082,14 @@ void ObOBJLock::get_exist_lock_mode_without_cur_trans( if (row_exclusive_nums > 1 || share_nums > 1 || share_row_exclusive_nums > 1) { - LOG_ERROR("unexpected error", + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "unexpected error", K(row_exclusive_nums), K(share_nums), K(share_row_exclusive_nums)); } } else if (lock_mode_in_same_trans & ROW_EXCLUSIVE) { // other trans in the obj should not have S or SRX if (share_nums > 1 || share_row_exclusive_nums > 1) { - LOG_ERROR("unexpected error", + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "unexpected error", K(row_exclusive_nums), K(share_nums), K(share_row_exclusive_nums)); } curr_mode |= (row_exclusive_nums > 1 ? ROW_EXCLUSIVE : 0); @@ -1097,7 +1097,7 @@ void ObOBJLock::get_exist_lock_mode_without_cur_trans( // other trans in the obj should not have RX or SRX if (row_exclusive_nums > 1 || share_row_exclusive_nums > 1) { - LOG_ERROR("unexpected error", + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "unexpected error", K(row_exclusive_nums), K(share_nums), K(share_row_exclusive_nums)); } curr_mode |= (share_nums > 1 ? SHARE : 0); @@ -1116,7 +1116,7 @@ void ObOBJLock::get_exist_lock_mode_without_cur_trans( share_nums > 1 || share_row_exclusive_nums > 1 || exclusive_nums > 1) { - LOG_ERROR("unexpected error", K(row_share_nums), K(row_exclusive_nums), + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "unexpected error", K(row_share_nums), K(row_exclusive_nums), K(share_nums), K(share_row_exclusive_nums), K(exclusive_nums)); } } else { diff --git a/src/storage/tablet/ob_table_store_util.cpp b/src/storage/tablet/ob_table_store_util.cpp index 4c8a8d40c..df86191b3 100644 --- a/src/storage/tablet/ob_table_store_util.cpp +++ b/src/storage/tablet/ob_table_store_util.cpp @@ -71,7 +71,7 @@ void ObITableArray::reset_table(const int64_t pos) // maybe called by thread without tenant, such as iocallback, comment until remove tablet_handle from iocallback // } else if (OB_UNLIKELY(meta_mem_mgr_ != MTL(ObTenantMetaMemMgr *) || nullptr == meta_mem_mgr_)) { } else if (OB_ISNULL(meta_mem_mgr_) || OB_ISNULL(allocator_)) { - LOG_ERROR("[MEMORY LEAK] TenantMetaMemMgr is unexpected not equal!!!", K(meta_mem_mgr_), KP(allocator_), KPC(array_[pos])); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "[MEMORY LEAK] TenantMetaMemMgr is unexpected not equal!!!", K(meta_mem_mgr_), KP(allocator_), KPC(array_[pos])); } else if (0 == array_[pos]->dec_ref()) { if (meta_mem_mgr_->is_used_obj_pool(allocator_)) { if (OB_UNLIKELY(OB_INVALID_TENANT_ID == MTL_ID() @@ -731,7 +731,7 @@ void ObMemtableArray::reset_table(const int64_t pos) if (pos < 0 || pos >= count()) { // do nothing } else if (OB_ISNULL(table = get_table(pos))) { } else if (OB_ISNULL(meta_mem_mgr_)) { - LOG_ERROR("[MEMORY LEAK] TenantMetaMemMgr is unexpected not equal!!!", K(meta_mem_mgr_), KPC(table)); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "[MEMORY LEAK] TenantMetaMemMgr is unexpected not equal!!!", K(meta_mem_mgr_), KPC(table)); } else if (0 == table->dec_ref()) { meta_mem_mgr_->push_table_into_gc_queue(table, table->get_key().table_type_); } @@ -982,7 +982,7 @@ bool ObTableStoreUtil::ObITableLogTsRangeCompare::operator()( bool bret = false; if (OB_SUCCESS != result_code_) { } else if (OB_SUCCESS != (result_code_ = compare_table_by_scn_range(ltable, rtable, bret))) { - LOG_WARN("failed to compare table with LogTsRange", K(result_code_), KPC(ltable), KPC(rtable)); + LOG_WARN_RET(result_code_, "failed to compare table with LogTsRange", K(result_code_), KPC(ltable), KPC(rtable)); } return bret; } @@ -993,7 +993,7 @@ bool ObTableStoreUtil::ObITableSnapshotVersionCompare::operator()( bool bret = false; if (OB_SUCCESS != result_code_) { } else if (OB_SUCCESS != (result_code_ = compare_table_by_snapshot_version(ltable, rtable, bret))) { - LOG_WARN("failed to compare table with SnapshotVersion", K(result_code_), KPC(ltable), KPC(rtable)); + LOG_WARN_RET(result_code_, "failed to compare table with SnapshotVersion", K(result_code_), KPC(ltable), KPC(rtable)); } return bret; } @@ -1007,7 +1007,7 @@ bool ObTableStoreUtil::ObTableHandleV2LogTsRangeCompare::operator()( const ObITable *ltable = lhandle.get_table(); const ObITable *rtable = rhandle.get_table(); if (OB_SUCCESS != (result_code_ = compare_table_by_scn_range(ltable, rtable, bret))) { - LOG_WARN("failed to compare table with LogTsRange", K(result_code_), KPC(ltable), KPC(rtable)); + LOG_WARN_RET(result_code_, "failed to compare table with LogTsRange", K(result_code_), KPC(ltable), KPC(rtable)); } } return bret; @@ -1024,7 +1024,7 @@ bool ObTableStoreUtil::ObTableHandleV2SnapshotVersionCompare::operator()( const ObITable *ltable = lhandle.get_table(); const ObITable *rtable = rhandle.get_table(); if (OB_SUCCESS != (result_code_ = compare_table_by_snapshot_version(ltable, rtable, bret))) { - LOG_WARN("failed to compare table with SnapshotVersion", K(result_code_), KPC(ltable), KPC(rtable)); + LOG_WARN_RET(result_code_, "failed to compare table with SnapshotVersion", K(result_code_), KPC(ltable), KPC(rtable)); } } return bret; diff --git a/src/storage/tablet/ob_tablet.cpp b/src/storage/tablet/ob_tablet.cpp index a41708c67..d55791fc4 100644 --- a/src/storage/tablet/ob_tablet.cpp +++ b/src/storage/tablet/ob_tablet.cpp @@ -2582,7 +2582,7 @@ int ObTablet::write_sync_tablet_seq_log(ObTabletAutoincSeq &autoinc_seq, if (ObTimeUtility::fast_current_time() - start_time > SYNC_TABLET_SEQ_LOG_TIMEOUT) { wait_timeout = true; } - LOG_WARN("submit sync tablet seq log wait too much time", K(retry_cnt), K(wait_timeout)); + LOG_WARN_RET(OB_ERR_TOO_MUCH_TIME, "submit sync tablet seq log wait too much time", K(retry_cnt), K(wait_timeout)); } } if (wait_timeout) { @@ -2801,7 +2801,7 @@ int ObTablet::write_tablet_schema_version_change_clog( if (ObTimeUtility::fast_current_time() - start_time > CHECK_SCHEMA_VERSION_CHANGE_LOG_TIMEOUT) { wait_timeout = true; } - LOG_WARN("submit schema version change log wait too much time", K(retry_cnt), K(wait_timeout)); + LOG_WARN_RET(OB_ERR_TOO_MUCH_TIME, "submit schema version change log wait too much time", K(retry_cnt), K(wait_timeout)); } } if (wait_timeout) { diff --git a/src/storage/tablet/ob_tablet.h b/src/storage/tablet/ob_tablet.h index ba09a83f4..c51246822 100644 --- a/src/storage/tablet/ob_tablet.h +++ b/src/storage/tablet/ob_tablet.h @@ -857,7 +857,7 @@ int ObTablet::save_multi_source_data_unit( share::SCN::max_scn() == memtable_scn) { if (ObTimeUtility::current_time() - start > 100 * 1000) { ret = OB_BLOCK_FROZEN; - TRANS_LOG(WARN, "logging_block costs too much time", K(ret), K(ls_id), K(tablet_id), K(memtable_scn), K(ref_op), K(for_replay)); + TRANS_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "logging_block costs too much time", K(ret), K(ls_id), K(tablet_id), K(memtable_scn), K(ref_op), K(for_replay)); } ob_usleep(100); } diff --git a/src/storage/tablet/ob_tablet_binding_helper.cpp b/src/storage/tablet/ob_tablet_binding_helper.cpp index 44028b39e..5033dc889 100644 --- a/src/storage/tablet/ob_tablet_binding_helper.cpp +++ b/src/storage/tablet/ob_tablet_binding_helper.cpp @@ -197,11 +197,11 @@ void ObTabletBindingHelper::rollback_lock_tablet_binding_for_create( // do nothing } else if (ObTabletCreateDeleteHelper::is_pure_hidden_tablets(info)) { if (OB_TMP_FAIL(helper.unlock_tablet_binding(info.data_tablet_id_))) { - LOG_ERROR("failed to lock orig tablet binding", K(tmp_ret)); + LOG_ERROR_RET(tmp_ret, "failed to lock orig tablet binding", K(tmp_ret)); } } else if (ObTabletCreateDeleteHelper::is_pure_aux_tablets(info)) { if (has_lob_tablets(arg, info) && OB_TMP_FAIL(helper.unlock_tablet_binding(info.data_tablet_id_))) { - LOG_ERROR("failed to lock tablet binding", K(tmp_ret)); + LOG_ERROR_RET(tmp_ret, "failed to lock tablet binding", K(tmp_ret)); } } } diff --git a/src/storage/tablet/ob_tablet_memtable_mgr.cpp b/src/storage/tablet/ob_tablet_memtable_mgr.cpp index aab76211e..4ec96d1de 100644 --- a/src/storage/tablet/ob_tablet_memtable_mgr.cpp +++ b/src/storage/tablet/ob_tablet_memtable_mgr.cpp @@ -697,7 +697,7 @@ int64_t ObTabletMemtableMgr::get_unmerged_memtable_count_() const for (int64_t i = memtable_head_; i < memtable_tail_; i++) { ObMemtable *memtable = get_memtable_(i); if (NULL == memtable) { - LOG_ERROR("memtable must not null"); + LOG_ERROR_RET(OB_ERR_UNEXPECTED, "memtable must not null"); } else if (0 == memtable->get_minor_merged_time()) { cnt++; } diff --git a/src/storage/tablet/ob_tablet_table_store.cpp b/src/storage/tablet/ob_tablet_table_store.cpp index 55f703e04..d2b46097a 100644 --- a/src/storage/tablet/ob_tablet_table_store.cpp +++ b/src/storage/tablet/ob_tablet_table_store.cpp @@ -567,9 +567,9 @@ bool ObTabletTableStore::check_read_tables( { bool contain_snapshot_version = false; if (!iterator.is_valid()) { - LOG_WARN("iterator invalid, must not contain snapshot_version", K(iterator)); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "iterator invalid, must not contain snapshot_version", K(iterator)); } else if (OB_ISNULL(tablet_ptr_)) { - LOG_WARN("Unexpected null tablet ptr, must not contain snapshot version"); + LOG_WARN_RET(OB_INVALID_ARGUMENT, "Unexpected null tablet ptr, must not contain snapshot version"); } else { if (iterator.get_boundary_table(false)->is_major_sstable()) { contain_snapshot_version = iterator.get_boundary_table(false)->get_snapshot_version() == snapshot_version; @@ -580,7 +580,7 @@ bool ObTabletTableStore::check_read_tables( } } if (!contain_snapshot_version) { - LOG_WARN("table store has no contain snapshot version", K(snapshot_version), KPC_(tablet_ptr), K(iterator), K(*this)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "table store has no contain snapshot version", K(snapshot_version), KPC_(tablet_ptr), K(iterator), K(*this)); } return contain_snapshot_version; } diff --git a/src/storage/tx/ob_dup_table_rpc.cpp b/src/storage/tx/ob_dup_table_rpc.cpp index 018cfe238..6d433504e 100644 --- a/src/storage/tx/ob_dup_table_rpc.cpp +++ b/src/storage/tx/ob_dup_table_rpc.cpp @@ -441,9 +441,9 @@ void ObDupTableRpc::destroy() if (is_inited_) { if (is_running_) { if (OB_SUCCESS != (tmp_ret = stop())) { - TRANS_LOG(WARN, "dup table rpc stop error", K(tmp_ret)); + TRANS_LOG_RET(WARN, tmp_ret, "dup table rpc stop error", K(tmp_ret)); } else if (OB_SUCCESS != (tmp_ret = wait())) { - TRANS_LOG(WARN, "dup table rpc wait error", K(tmp_ret)); + TRANS_LOG_RET(WARN, tmp_ret, "dup table rpc wait error", K(tmp_ret)); } else { // do nothing } diff --git a/src/storage/tx/ob_gti_rpc.cpp b/src/storage/tx/ob_gti_rpc.cpp index a814571e6..194a3cb43 100644 --- a/src/storage/tx/ob_gti_rpc.cpp +++ b/src/storage/tx/ob_gti_rpc.cpp @@ -113,9 +113,9 @@ void ObGtiRequestRpc::destroy() if (is_inited_) { if (is_running_) { if (OB_SUCCESS != (tmp_ret = stop())) { - TRANS_LOG(WARN, "gti request rpc stop error", K(tmp_ret)); + TRANS_LOG_RET(WARN, tmp_ret, "gti request rpc stop error", K(tmp_ret)); } else if (OB_SUCCESS != (tmp_ret = wait())) { - TRANS_LOG(WARN, "gti request rpc wait error", K(tmp_ret)); + TRANS_LOG_RET(WARN, tmp_ret, "gti request rpc wait error", K(tmp_ret)); } else { // do nothing } diff --git a/src/storage/tx/ob_gts_rpc.cpp b/src/storage/tx/ob_gts_rpc.cpp index e56dc6a2f..d4d13a8be 100644 --- a/src/storage/tx/ob_gts_rpc.cpp +++ b/src/storage/tx/ob_gts_rpc.cpp @@ -190,9 +190,9 @@ void ObGtsRequestRpc::destroy() if (is_inited_) { if (is_running_) { if (OB_SUCCESS != (tmp_ret = stop())) { - TRANS_LOG(WARN, "gts request rpc stop error", K(tmp_ret)); + TRANS_LOG_RET(WARN, tmp_ret, "gts request rpc stop error", K(tmp_ret)); } else if (OB_SUCCESS != (tmp_ret = wait())) { - TRANS_LOG(WARN, "gts request rpc wait error", K(tmp_ret)); + TRANS_LOG_RET(WARN, tmp_ret, "gts request rpc wait error", K(tmp_ret)); } else { // do nothing } @@ -321,9 +321,9 @@ void ObGtsResponseRpc::destroy() if (is_inited_) { if (is_running_) { if (OB_SUCCESS != (tmp_ret = stop())) { - TRANS_LOG(WARN, "gts response rpc stop error", K(tmp_ret)); + TRANS_LOG_RET(WARN, tmp_ret, "gts response rpc stop error", K(tmp_ret)); } else if (OB_SUCCESS != (tmp_ret = wait())) { - TRANS_LOG(WARN, "gts response rpc wait error", K(tmp_ret)); + TRANS_LOG_RET(WARN, tmp_ret, "gts response rpc wait error", K(tmp_ret)); } else { // do nothing } diff --git a/src/storage/tx/ob_multi_data_source.cpp b/src/storage/tx/ob_multi_data_source.cpp index 96cc620cb..8accebd98 100644 --- a/src/storage/tx/ob_multi_data_source.cpp +++ b/src/storage/tx/ob_multi_data_source.cpp @@ -209,7 +209,7 @@ void ObMulSourceTxDataNotifier::ob_abort_log_cb_notify_(const NotifyType type, } if (need_core) { - TRANS_LOG(ERROR, "data source can not return error in log_cb on_success", K(type), K(err_code), K(for_replay)); + TRANS_LOG_RET(ERROR, OB_ERROR, "data source can not return error in log_cb on_success", K(type), K(err_code), K(for_replay)); ob_usleep(1000 * 1000); ob_abort(); diff --git a/src/storage/tx/ob_time_wheel.cpp b/src/storage/tx/ob_time_wheel.cpp index 27c3388ba..73f2fd1ac 100644 --- a/src/storage/tx/ob_time_wheel.cpp +++ b/src/storage/tx/ob_time_wheel.cpp @@ -283,7 +283,7 @@ int TimeWheelBase::scan() const int64_t end = ObTimeUtility::current_time(); //task执行完之后,ctx内存可能已经释放,此时不能再打印task对象信息; if (end - start >= WARN_RUNTIME_US) { - TRANS_LOG(WARN, "timer task use too much time", K(end), K(start), "delta", end - start); + TRANS_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "timer task use too much time", K(end), K(start), "delta", end - start); } } } @@ -314,9 +314,9 @@ TimeWheelBase *TimeWheelBase::alloc(const char *name) TimeWheelBase *base = NULL; void *ptr = share::mtl_malloc(sizeof(TimeWheelBase), name); if (OB_ISNULL(ptr)) { - TRANS_LOG(ERROR, "alloc TimeWheelBase failed"); + TRANS_LOG_RET(ERROR, OB_ALLOCATE_MEMORY_FAILED, "alloc TimeWheelBase failed"); } else if (OB_ISNULL(base = new(ptr) TimeWheelBase())) { - TRANS_LOG(ERROR, "construct TimeWheelBase failed"); + TRANS_LOG_RET(ERROR, OB_ALLOCATE_MEMORY_FAILED, "construct TimeWheelBase failed"); share::mtl_free(ptr); ptr = NULL; } @@ -473,9 +473,9 @@ void ObTimeWheel::destroy() if (is_inited_) { if (is_running_) { if (OB_SUCCESS != (tmp_ret = stop())) { - TRANS_LOG(WARN, "ObTimeWheel stop error", K(tmp_ret)); + TRANS_LOG_RET(WARN, tmp_ret, "ObTimeWheel stop error", K(tmp_ret)); } else if (OB_SUCCESS != (tmp_ret = wait())) { - TRANS_LOG(WARN, "ObTimeWheel wait error", K(tmp_ret)); + TRANS_LOG_RET(WARN, tmp_ret, "ObTimeWheel wait error", K(tmp_ret)); } else { // do nothing } diff --git a/src/storage/tx/ob_timestamp_service.cpp b/src/storage/tx/ob_timestamp_service.cpp index 67c195889..05754bb69 100644 --- a/src/storage/tx/ob_timestamp_service.cpp +++ b/src/storage/tx/ob_timestamp_service.cpp @@ -99,7 +99,7 @@ int ObTimestampService::handle_request(const ObGtsRequest &request, ObGtsRpcResu const int64_t cost_us = request.get_srr().mts_ - end.mts_; //Print the gts request that takes a long time for network transmission if (cost_us > 500 * 1000) { - TRANS_LOG(WARN, "gts request fly too much time", K(request), K(result), K(cost_us)); + TRANS_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "gts request fly too much time", K(request), K(result), K(cost_us)); } ATOMIC_INC(&total_cnt); ObTransStatistic::get_instance().add_gts_request_total_count(request.get_tenant_id(), 1); diff --git a/src/storage/tx/ob_trans_ctx.cpp b/src/storage/tx/ob_trans_ctx.cpp index 66ed2a08a..53733c2e9 100644 --- a/src/storage/tx/ob_trans_ctx.cpp +++ b/src/storage/tx/ob_trans_ctx.cpp @@ -127,7 +127,7 @@ void ObTransCtx::print_trace_log_if_necessary_() { // freectx if (!is_exiting_) { - TRANS_LOG(WARN, "ObPartTransCtx not exiting", "context", *this, K(lbt())); + TRANS_LOG_RET(WARN, OB_ERROR, "ObPartTransCtx not exiting", "context", *this, K(lbt())); FORCE_PRINT_TRACE(tlog_, "[trans debug] "); } @@ -152,7 +152,7 @@ void ObTransCtx::set_exiting_() const int64_t ctx_ref = get_ref(); if (NULL == ls_tx_ctx_mgr_) { - TRANS_LOG(ERROR, "ls_tx_ctx_mgr_ is null, unexpected error", KP(ls_tx_ctx_mgr_), "context", *this); + TRANS_LOG_RET(ERROR, tmp_ret, "ls_tx_ctx_mgr_ is null, unexpected error", KP(ls_tx_ctx_mgr_), "context", *this); } else { ls_tx_ctx_mgr_->del_tx_ctx(this); TRANS_LOG(DEBUG, "transaction exiting", "context", *this, K(lbt())); diff --git a/src/storage/tx/ob_trans_ctx_lock.cpp b/src/storage/tx/ob_trans_ctx_lock.cpp index e426cd0ae..46b3f19c5 100644 --- a/src/storage/tx/ob_trans_ctx_lock.cpp +++ b/src/storage/tx/ob_trans_ctx_lock.cpp @@ -87,7 +87,7 @@ void CtxLock::unlock() const int64_t lock_ts = ObClockGenerator::getClock() - lock_start_ts_; if (lock_start_ts_ > 0 && lock_ts > WARN_LOCK_TS) { lock_start_ts_ = 0; - TRANS_LOG(WARN, "ctx lock too much time", K(arg.trans_id_), K(lock_ts), K(lbt())); + TRANS_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "ctx lock too much time", K(arg.trans_id_), K(lock_ts), K(lbt())); } after_unlock(arg); } diff --git a/src/storage/tx/ob_trans_ctx_lock.h b/src/storage/tx/ob_trans_ctx_lock.h index c6b1004e7..22d2b4605 100644 --- a/src/storage/tx/ob_trans_ctx_lock.h +++ b/src/storage/tx/ob_trans_ctx_lock.h @@ -62,7 +62,7 @@ public: static void release(const LocalTask *task) { if (NULL == task) { - TRANS_LOG(ERROR, "task is null", KP(task)); + TRANS_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "task is null", KP(task)); } else { op_reclaim_free(const_cast(task)); task = NULL; diff --git a/src/storage/tx/ob_trans_ctx_mgr_v4.cpp b/src/storage/tx/ob_trans_ctx_mgr_v4.cpp index 8123a5787..c798c2909 100644 --- a/src/storage/tx/ob_trans_ctx_mgr_v4.cpp +++ b/src/storage/tx/ob_trans_ctx_mgr_v4.cpp @@ -701,7 +701,7 @@ int ObLSTxCtxMgr::switch_to_follower_forcedly() // run callback out of lock, ignore ret (void)process_callback_(cb_array); if (timeguard.get_diff() > 3 * 1000000) { - TRANS_LOG(WARN, "switch_to_follower_forcedly use too much time", K(timeguard), "manager", *this); + TRANS_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "switch_to_follower_forcedly use too much time", K(timeguard), "manager", *this); } TRANS_LOG(INFO, "[LsTxCtxMgr Role Change] switch_to_follower_forcedly", K(ret), KPC(this)); return ret; @@ -918,7 +918,7 @@ int ObLSTxCtxMgr::stop(const bool graceful) } } if (timeguard.get_diff() > 3 * 1000000) { - TRANS_LOG(WARN, "stop trans use too much time", K(timeguard), "manager", *this); + TRANS_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "stop trans use too much time", K(timeguard), "manager", *this); } process_callback_(cb_array); TRANS_LOG(INFO, "[LsTxCtxMgr] stop done", K(timeguard), "manager", *this); @@ -942,7 +942,7 @@ int ObLSTxCtxMgr::kill_all_tx(const bool graceful, bool &is_all_tx_cleaned_up) is_all_tx_cleaned_up = (get_tx_ctx_count_() == 0); } if (timeguard.get_diff() > 3 * 1000000) { - TRANS_LOG(WARN, "kill_all_tx use too much time", K(timeguard), "manager", *this); + TRANS_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "kill_all_tx use too much time", K(timeguard), "manager", *this); } (void)process_callback_(cb_array); TRANS_LOG(INFO, "[LsTxCtxMgr] kill_all_tx done", K(timeguard), "manager", *this); @@ -1052,7 +1052,7 @@ int ObLSTxCtxMgr::check_modify_schema_elapsed(const ObTabletID &tablet_id, block_tx_id = fn.get_tx_id(); } if (timeguard.get_diff() > 3 * 1000000) { - TRANS_LOG(WARN, "ObLSTxCtxMgr::check_modify_schema_elapsed use too much time", + TRANS_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "ObLSTxCtxMgr::check_modify_schema_elapsed use too much time", K(timeguard), "manager", *this); } @@ -1081,7 +1081,7 @@ int ObLSTxCtxMgr::check_modify_time_elapsed(const ObTabletID &tablet_id, block_tx_id = fn.get_tx_id(); } if (timeguard.get_diff() > 3 * 1000000) { - TRANS_LOG(WARN, "ObLSTxCtxMgr::check_modify_time_elapsed use too much time", + TRANS_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "ObLSTxCtxMgr::check_modify_time_elapsed use too much time", K(timeguard), "manager", *this); } @@ -1619,7 +1619,7 @@ void ObTxCtxMgr::destroy() if (is_inited_) { if (OB_TMP_FAIL(remove_all_ls_())) { - TRANS_LOG(WARN, "remove all ls error", K(tmp_ret)); + TRANS_LOG_RET(WARN, tmp_ret, "remove all ls error", K(tmp_ret)); } else { tenant_id_ = OB_INVALID_TENANT_ID; ls_tx_ctx_mgr_map_.destroy(); diff --git a/src/storage/tx/ob_trans_deadlock_adapter.cpp b/src/storage/tx/ob_trans_deadlock_adapter.cpp index b60bf173c..35d374192 100644 --- a/src/storage/tx/ob_trans_deadlock_adapter.cpp +++ b/src/storage/tx/ob_trans_deadlock_adapter.cpp @@ -64,7 +64,7 @@ void SessionGuard::revert_session_() { if (nullptr != sess_ptr_) { if (OB_ISNULL(GCTX.session_mgr_)) { - DETECT_LOG(ERROR, "GCTX.session_mgr is NULL, session will leak", K_(sess_ptr)); + DETECT_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "GCTX.session_mgr is NULL, session will leak", K_(sess_ptr)); } else { GCTX.session_mgr_->revert_session(sess_ptr_); } @@ -747,7 +747,7 @@ int ObTransDeadlockDetectorAdapter::autonomous_register_to_deadlock(const ObTran 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 &, - const int64_t) { DETECT_LOG(ERROR, "should not kill inner node"); + const int64_t) { DETECT_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "should not kill inner node"); return common::OB_ERR_UNEXPECTED; }, [last_trans_id](ObDetectorUserReportInfo& report_info) { ObSharedGuard ptr; @@ -759,7 +759,7 @@ int ObTransDeadlockDetectorAdapter::autonomous_register_to_deadlock(const ObTran buffer[63] = '\0'; ptr.assign((char*)buffer, [](char* p){ ob_free(p); }); } else { - DETECT_LOG(WARN, "alloc memory failed"); + DETECT_LOG_RET(WARN, OB_ALLOCATE_MEMORY_FAILED, "alloc memory failed"); ptr.assign((char*)"inner visitor", [](char*){}); } report_info.set_visitor(ptr); diff --git a/src/storage/tx/ob_trans_define_v4.cpp b/src/storage/tx/ob_trans_define_v4.cpp index 27804c814..f84ed7c80 100644 --- a/src/storage/tx/ob_trans_define_v4.cpp +++ b/src/storage/tx/ob_trans_define_v4.cpp @@ -672,7 +672,7 @@ inline bool ObTxDesc::acq_commit_cb_lock_if_need_() if (ret == OB_EAGAIN) { if (OB_NOT_NULL(commit_cb_)) { if (REACH_TIME_INTERVAL(2 * 1000 * 1000)) { - TRANS_LOG(WARN, "use too much time wait lock", K_(tx_id)); + TRANS_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "use too much time wait lock", K_(tx_id)); } if (++cnt < 200) { PAUSE(); } else { ob_usleep(5000); } diff --git a/src/storage/tx/ob_trans_event.cpp b/src/storage/tx/ob_trans_event.cpp index 641341a03..2461176e2 100644 --- a/src/storage/tx/ob_trans_event.cpp +++ b/src/storage/tx/ob_trans_event.cpp @@ -30,7 +30,7 @@ void ObTransStatItem::add(const int64_t value) const int64_t now = ObClockGenerator::getClock(); if (value <= 0) { - TRANS_LOG(WARN, "invalid argument", K(value)) ; + TRANS_LOG_RET(WARN, OB_INVALID_ARGUMENT, "invalid argument", K(value)) ; } else { while (bool_ret) { bool need_print = false; diff --git a/src/storage/tx/ob_trans_factory.cpp b/src/storage/tx/ob_trans_factory.cpp index 66531d1c5..4d4dcf67d 100644 --- a/src/storage/tx/ob_trans_factory.cpp +++ b/src/storage/tx/ob_trans_factory.cpp @@ -82,7 +82,7 @@ const char *ObLSTxCtxMgrFactory::mod_type_ = "OB_PARTITION_TRANS_CTX_MGR"; void object_name##Factory::release(object_name *object) \ {\ if (OB_ISNULL(object)) {\ - TRANS_LOG(WARN, "object is null", KP(object));\ + TRANS_LOG_RET(WARN, OB_ERR_UNEXPECTED, "object is null", KP(object));\ } else {\ object->destroy(); \ allocator_type##_FREE(object, LABEL); \ @@ -116,7 +116,7 @@ ObTransCtx *ObTransCtxFactory::alloc(const int64_t ctx_type) // During restart, the number of transaction contexts is relatively large // and cannot be limited, otherwise there will be circular dependencies if (ATOMIC_LOAD(&active_part_ctx_count_) > MAX_PART_CTX_COUNT && GCTX.status_ == observer::SS_SERVING) { - TRANS_LOG(ERROR, "participant context memory alloc failed", K_(active_part_ctx_count)); + TRANS_LOG_RET(ERROR, tmp_ret, "participant context memory alloc failed", K_(active_part_ctx_count)); tmp_ret = OB_TRANS_CTX_COUNT_REACH_LIMIT; } else if (NULL != (ctx = mtl_sop_borrow(ObPartTransCtx))) { (void)ATOMIC_FAA(&active_part_ctx_count_, 1); @@ -129,8 +129,8 @@ ObTransCtx *ObTransCtxFactory::alloc(const int64_t ctx_type) // do nothing } } else { - TRANS_LOG(ERROR, "unexpected error when context alloc", K(ctx_type)); tmp_ret = OB_ERR_UNEXPECTED; + TRANS_LOG_RET(ERROR, tmp_ret, "unexpected error when context alloc", K(ctx_type)); } } if (REACH_TIME_INTERVAL(TRANS_MEM_STAT_INTERVAL)) { @@ -148,7 +148,7 @@ ObTransCtx *ObTransCtxFactory::alloc(const int64_t ctx_type) void ObTransCtxFactory::release(ObTransCtx *ctx) { if (OB_ISNULL(ctx)) { - TRANS_LOG(ERROR, "context pointer is null when released", KP(ctx)); + TRANS_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "context pointer is null when released", KP(ctx)); } else { ObPartTransCtx *part_ctx = static_cast(ctx); part_ctx->destroy(); @@ -175,7 +175,7 @@ ObLSTxCtxMgr *ObLSTxCtxMgrFactory::alloc(const uint64_t tenant_id) K_(alloc_count), K_(release_count), "used", alloc_count_ - release_count_); } if (!is_valid_tenant_id(tenant_id)) { - TRANS_LOG(WARN, "invalid tenant_id", K(tenant_id)); + TRANS_LOG_RET(WARN, OB_INVALID_ARGUMENT, "invalid tenant_id", K(tenant_id)); } else if (NULL != (ptr = ob_malloc(sizeof(ObLSTxCtxMgr), memattr))) { partition_trans_ctx_mgr = new(ptr) ObLSTxCtxMgr; (void)ATOMIC_FAA(&alloc_count_, 1); @@ -186,7 +186,7 @@ ObLSTxCtxMgr *ObLSTxCtxMgrFactory::alloc(const uint64_t tenant_id) void ObLSTxCtxMgrFactory::release(ObLSTxCtxMgr *partition_trans_ctx_mgr) { if (OB_ISNULL(partition_trans_ctx_mgr)) { - TRANS_LOG(ERROR, "ObLSTxCtxMgr pointer is null when released", + TRANS_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "ObLSTxCtxMgr pointer is null when released", KP(partition_trans_ctx_mgr)); } else { partition_trans_ctx_mgr->~ObLSTxCtxMgr(); diff --git a/src/storage/tx/ob_trans_factory.h b/src/storage/tx/ob_trans_factory.h index e615efee8..be98681b9 100644 --- a/src/storage/tx/ob_trans_factory.h +++ b/src/storage/tx/ob_trans_factory.h @@ -97,7 +97,7 @@ T *TransObjFactory::alloc() } if (NULL == (task = op_reclaim_alloc(T))) { - TRANS_LOG(WARN, "obj alloc fail", KP(task)); + TRANS_LOG_RET(WARN, common::OB_ALLOCATE_MEMORY_FAILED, "obj alloc fail", KP(task)); } else { (void)ATOMIC_FAA(&alloc_count_, 1); } @@ -109,7 +109,7 @@ template void TransObjFactory::release(T *obj) { if (NULL == obj) { - TRANS_LOG(ERROR, "task which should be released is null"); + TRANS_LOG_RET(ERROR, common::OB_INVALID_ARGUMENT, "task which should be released is null"); } else { op_reclaim_free(obj); obj = NULL; diff --git a/src/storage/tx/ob_trans_functor.h b/src/storage/tx/ob_trans_functor.h index 46be39641..6e93e498b 100644 --- a/src/storage/tx/ob_trans_functor.h +++ b/src/storage/tx/ob_trans_functor.h @@ -168,10 +168,10 @@ public: int tmp_ret = common::OB_SUCCESS; if (!tx_id.is_valid() || OB_ISNULL(tx_ctx)) { - TRANS_LOG(WARN, "invalid argument", K(tx_id), "ctx", OB_P(tx_ctx)); tmp_ret = common::OB_INVALID_ARGUMENT; + TRANS_LOG_RET(WARN, tmp_ret, "invalid argument", K(tx_id), "ctx", OB_P(tx_ctx)); } else if (common::OB_SUCCESS != (tmp_ret = tx_ctx->switch_to_follower_forcedly(cb_array_))) { - TRANS_LOG(ERROR, "leader revoke failed", K(tx_id), K(*tx_ctx)); + TRANS_LOG_RET(ERROR, tmp_ret, "leader revoke failed", K(tx_id), K(*tx_ctx)); } return true; @@ -197,9 +197,9 @@ public: int tmp_ret = common::OB_SUCCESS; if (!tx_id.is_valid() || OB_ISNULL(tx_ctx)) { - TRANS_LOG(WARN, "invalid argument", K(tx_id), "ctx", OB_P(tx_ctx)); + TRANS_LOG_RET(WARN, common::OB_INVALID_ARGUMENT, "invalid argument", K(tx_id), "ctx", OB_P(tx_ctx)); } else if (OB_TMP_FAIL(tx_ctx->switch_to_leader(start_working_ts_))) { - TRANS_LOG(WARN, "switch_to_leader error", "ret", tmp_ret, K(*tx_ctx)); + TRANS_LOG_RET(WARN, tmp_ret, "switch_to_leader error", "ret", tmp_ret, K(*tx_ctx)); ret_ = tmp_ret; } else { bool_ret = true; @@ -368,16 +368,16 @@ public: const bool graceful = false; if (OB_ISNULL(ls_tx_ctx_mgr)) { - TRANS_LOG(WARN, "invalid argument", KP(ls_tx_ctx_mgr)); tmp_ret = OB_INVALID_ARGUMENT; + TRANS_LOG_RET(WARN, tmp_ret, "invalid argument", KP(ls_tx_ctx_mgr)); } else { const share::ObLSID &ls_id = ls_tx_ctx_mgr->get_ls_id(); if (!ls_id.is_valid()) { - TRANS_LOG(WARN, "invalid ls id", K(ls_id), KP(ls_tx_ctx_mgr)); tmp_ret = OB_INVALID_ARGUMENT; + TRANS_LOG_RET(WARN, tmp_ret, "invalid ls id", K(ls_id), KP(ls_tx_ctx_mgr)); } else if (OB_TMP_FAIL(ls_tx_ctx_mgr->stop(graceful))) { - TRANS_LOG(WARN, "ObLSTxCtxMgr stop error", K(tmp_ret), K(ls_id)); + TRANS_LOG_RET(WARN, tmp_ret, "ObLSTxCtxMgr stop error", K(tmp_ret), K(ls_id)); } else { bool_ret = true; } @@ -398,17 +398,17 @@ public: bool bool_ret = true; if (OB_ISNULL(ls_tx_ctx_mgr)) { - TRANS_LOG(WARN, "invalid argument", KP(ls_tx_ctx_mgr)); tmp_ret = OB_INVALID_ARGUMENT; + TRANS_LOG_RET(WARN, tmp_ret, "invalid argument", KP(ls_tx_ctx_mgr)); } else { const share::ObLSID &ls_id = ls_tx_ctx_mgr->get_ls_id(); if (!ls_id.is_valid()) { - TRANS_LOG(WARN, "invalid ls id", K(ls_id), KP(ls_tx_ctx_mgr)); tmp_ret = OB_INVALID_ARGUMENT; + TRANS_LOG_RET(WARN, tmp_ret, "invalid ls id", K(ls_id), KP(ls_tx_ctx_mgr)); } else if (!ls_tx_ctx_mgr->is_stopped()) { - TRANS_LOG(WARN, "ls_id has not been stopped", K(ls_id)); tmp_ret = OB_PARTITION_IS_NOT_STOPPED; + TRANS_LOG_RET(WARN, tmp_ret, "ls_id has not been stopped", K(ls_id)); } else if (ls_tx_ctx_mgr->get_tx_ctx_count() > 0) { // if there are unfinished transactions at the ls_id, // increase retry_count by 1 @@ -439,17 +439,17 @@ public: bool bool_ret = false; if (OB_ISNULL(ls_tx_ctx_mgr)) { - TRANS_LOG(WARN, "invalid argument", KP(ls_tx_ctx_mgr)); tmp_ret = OB_INVALID_ARGUMENT; + TRANS_LOG_RET(WARN, tmp_ret, "invalid argument", KP(ls_tx_ctx_mgr)); } else { const share::ObLSID &ls_id = ls_tx_ctx_mgr->get_ls_id(); if (!ls_id.is_valid()) { - TRANS_LOG(WARN, "invalid ls id", K(ls_id), KP(ls_tx_ctx_mgr)); tmp_ret = OB_INVALID_ARGUMENT; + TRANS_LOG_RET(WARN, tmp_ret, "invalid ls id", K(ls_id), KP(ls_tx_ctx_mgr)); } else if (!ls_tx_ctx_mgr->is_stopped()) { - TRANS_LOG(WARN, "ls_tx_ctx_mgr has not been stopped", K(ls_id)); tmp_ret = OB_PARTITION_IS_NOT_STOPPED; + TRANS_LOG_RET(WARN, tmp_ret, "ls_tx_ctx_mgr has not been stopped", K(ls_id)); } else { // Release all ctx memory on the ls_id ls_tx_ctx_mgr->destroy(); @@ -472,16 +472,16 @@ public: bool bool_ret = false; if (OB_ISNULL(ls_tx_ctx_mgr)) { - TRANS_LOG(WARN, "invalid argument", KP(ls_tx_ctx_mgr)); tmp_ret = OB_INVALID_ARGUMENT; + TRANS_LOG_RET(WARN, tmp_ret, "invalid argument", KP(ls_tx_ctx_mgr)); } else { const share::ObLSID &ls_id = ls_tx_ctx_mgr->get_ls_id(); if (!ls_id.is_valid()) { - TRANS_LOG(WARN, "invalid ls id", K(ls_id), KP(ls_tx_ctx_mgr)); tmp_ret = OB_INVALID_ARGUMENT; + TRANS_LOG_RET(WARN, tmp_ret, "invalid ls id", K(ls_id), KP(ls_tx_ctx_mgr)); } else if (OB_TMP_FAIL(ls_id_iter_.push(ls_id))) { - TRANS_LOG(WARN, "ObLSIDIterator push ls_id error", K(tmp_ret), K(ls_id)); + TRANS_LOG_RET(WARN, tmp_ret, "ObLSIDIterator push ls_id error", K(tmp_ret), K(ls_id)); } else { bool_ret = true; } @@ -504,14 +504,14 @@ public: ObLSTxCtxMgrStat ls_tx_ctx_mgr_stat; if (OB_ISNULL(ls_tx_ctx_mgr)) { - TRANS_LOG(WARN, "invalid argument", KP(ls_tx_ctx_mgr)); tmp_ret = OB_INVALID_ARGUMENT; + TRANS_LOG_RET(WARN, tmp_ret, "invalid argument", KP(ls_tx_ctx_mgr)); } else { const share::ObLSID &ls_id = ls_tx_ctx_mgr->get_ls_id(); if (!ls_id.is_valid()) { - TRANS_LOG(WARN, "invalid ls id", K(ls_id), KP(ls_tx_ctx_mgr)); tmp_ret = OB_INVALID_ARGUMENT; + TRANS_LOG_RET(WARN, tmp_ret, "invalid ls id", K(ls_id), KP(ls_tx_ctx_mgr)); } else { uint64_t mgr_state = ls_tx_ctx_mgr->get_state_(); tmp_ret = ls_tx_ctx_mgr_stat.init(addr_, @@ -523,9 +523,9 @@ public: ls_tx_ctx_mgr->total_tx_ctx_count_, (int64_t)(&(*ls_tx_ctx_mgr))); if (OB_SUCCESS != tmp_ret) { - TRANS_LOG(WARN, "ObLSTxCtxMgrStat init error", K_(addr), "ls_tx_ctx_mgr", *ls_tx_ctx_mgr); + TRANS_LOG_RET(WARN, tmp_ret, "ObLSTxCtxMgrStat init error", K_(addr), "ls_tx_ctx_mgr", *ls_tx_ctx_mgr); } else if (OB_TMP_FAIL(tx_ctx_mgr_stat_iter_.push(ls_tx_ctx_mgr_stat))) { - TRANS_LOG(WARN, "ObTxCtxMgrStatIterator push error", + TRANS_LOG_RET(WARN, tmp_ret, "ObTxCtxMgrStatIterator push error", K(tmp_ret), K(ls_id), "ls_tx_ctx_mgr", *ls_tx_ctx_mgr); } else { bool_ret = true; @@ -555,8 +555,8 @@ public: bool bool_ret = false; if (!tx_id.is_valid() || OB_ISNULL(tx_ctx)) { - TRANS_LOG(WARN, "invalid argument", K(tx_id), "ctx", OB_P(tx_ctx)); ret = OB_INVALID_ARGUMENT; + TRANS_LOG(WARN, "invalid argument", K(tx_id), "ctx", OB_P(tx_ctx)); } else { if (OB_FAIL(tx_ctx->check_modify_schema_elapsed(tablet_id_, schema_version_))) { @@ -643,12 +643,12 @@ public: if (!tx_id.is_valid() || OB_ISNULL(tx_ctx)) { tmp_ret = OB_INVALID_ARGUMENT; - TRANS_LOG(WARN, "invalid argument", K(tmp_ret), K(tx_id), "ctx", OB_P(tx_ctx)); + TRANS_LOG_RET(WARN, tmp_ret, "invalid argument", K(tmp_ret), K(tx_id), "ctx", OB_P(tx_ctx)); } else { bool is_prepared = false; share::SCN prepare_version; if (OB_TMP_FAIL(tx_ctx->get_prepare_version_if_prepared(is_prepared, prepare_version))) { - TRANS_LOG(WARN, "get prepare version if prepared failed", K(tmp_ret), K(*tx_ctx)); + TRANS_LOG_RET(WARN, tmp_ret, "get prepare version if prepared failed", K(tmp_ret), K(*tx_ctx)); } else if (!is_prepared || prepare_version >= min_prepare_version_) { // do nothing } else { @@ -698,16 +698,16 @@ public: bool bool_ret = false; if (OB_ISNULL(ls_tx_ctx_mgr)) { - TRANS_LOG(WARN, "invalid argument", KP(ls_tx_ctx_mgr)); tmp_ret = OB_INVALID_ARGUMENT; + TRANS_LOG_RET(WARN, tmp_ret, "invalid argument", KP(ls_tx_ctx_mgr)); } else { const share::ObLSID &ls_id = ls_tx_ctx_mgr->get_ls_id(); if (!ls_id.is_valid()) { - TRANS_LOG(WARN, "invalid ls id", K(ls_id), KP(ls_tx_ctx_mgr)); tmp_ret = OB_INVALID_ARGUMENT; + TRANS_LOG_RET(WARN, tmp_ret, "invalid ls id", K(ls_id), KP(ls_tx_ctx_mgr)); } else if (OB_TMP_FAIL(ls_tx_ctx_mgr->iterate_tx_ctx_stat(tx_stat_iter_))) { - TRANS_LOG(WARN, "iterate_tx_ctx_stat error", K(tmp_ret), K(ls_id)); + TRANS_LOG_RET(WARN, tmp_ret, "iterate_tx_ctx_stat error", K(tmp_ret), K(ls_id)); } else { bool_ret = true; } @@ -728,8 +728,8 @@ public: bool bool_ret = false; if (!tx_id.is_valid() || OB_ISNULL(tx_ctx)) { - TRANS_LOG(WARN, "invalid argument", K(tx_id), "ctx", OB_P(tx_ctx)); tmp_ret = OB_INVALID_ARGUMENT; + TRANS_LOG_RET(WARN, tmp_ret, "invalid argument", K(tx_id), "ctx", OB_P(tx_ctx)); // If you encounter a situation where tx_ctx has not been init yet, // skip it directly, there will be a background thread retry } else if (!tx_ctx->is_inited()) { @@ -756,8 +756,8 @@ public: bool bool_ret = false; if (!tx_id.is_valid() || OB_ISNULL(tx_ctx)) { - TRANS_LOG(WARN, "invalid argument", K(tx_id), "ctx", OB_P(tx_ctx)); tmp_ret = OB_INVALID_ARGUMENT; + TRANS_LOG_RET(WARN, tmp_ret, "invalid argument", K(tx_id), "ctx", OB_P(tx_ctx)); // If you encounter a situation where tx_ctx has not been init yet, // skip it directly, there will be a background thread retry } else if (!tx_ctx->is_inited()) { @@ -776,7 +776,7 @@ public: if (OB_SUCCESS == tmp_ret) { share::ObLSArray participants_arr; if (OB_TMP_FAIL(tx_ctx->get_2pc_participants_copy(participants_arr))) { - TRANS_LOG(WARN, "ObTxStat get participants copy error", K(tmp_ret)); + TRANS_LOG_RET(WARN, tmp_ret, "ObTxStat get participants copy error", K(tmp_ret)); } else if (OB_TMP_FAIL(tx_stat.init(tx_ctx->addr_, tx_id, tx_ctx->tenant_id_, @@ -801,9 +801,9 @@ public: tx_ctx->exec_info_.xid_, tx_ctx->exec_info_.upstream_, tx_ctx->last_request_ts_))) { - TRANS_LOG(WARN, "ObTxStat init error", K(tmp_ret), KPC(tx_ctx)); + TRANS_LOG_RET(WARN, tmp_ret, "ObTxStat init error", K(tmp_ret), KPC(tx_ctx)); } else if (OB_TMP_FAIL(tx_stat_iter_.push(tx_stat))) { - TRANS_LOG(WARN, "ObTxStatIterator push trans stat error", K(tmp_ret)); + TRANS_LOG_RET(WARN, tmp_ret, "ObTxStatIterator push trans stat error", K(tmp_ret)); } else { // do nothing } @@ -978,7 +978,7 @@ public: { bool bool_ret = false; if (!tx_id.is_valid() || OB_ISNULL(tx_ctx)) { - TRANS_LOG(WARN, "invalid argument", K(tx_id), KP(tx_ctx)); + TRANS_LOG_RET(WARN, common::OB_INVALID_ARGUMENT, "invalid argument", K(tx_id), KP(tx_ctx)); } else if (print_count_++ < max_print_count_) { TRANS_LOG(INFO, "hashmap item", K(tx_id), "context", *tx_ctx); bool_ret = true; @@ -1008,14 +1008,14 @@ public: const bool verbose = true; if (OB_ISNULL(ls_tx_ctx_mgr)) { - TRANS_LOG(WARN, "invalid argument", KP(ls_tx_ctx_mgr)); tmp_ret = OB_INVALID_ARGUMENT; + TRANS_LOG_RET(WARN, tmp_ret, "invalid argument", KP(ls_tx_ctx_mgr)); } else { const share::ObLSID &ls_id = ls_tx_ctx_mgr->get_ls_id(); if (!ls_id.is_valid()) { - TRANS_LOG(WARN, "invalid ls id", K(ls_id), KP(ls_tx_ctx_mgr)); tmp_ret = OB_INVALID_ARGUMENT; + TRANS_LOG_RET(WARN, tmp_ret, "invalid ls id", K(ls_id), KP(ls_tx_ctx_mgr)); } else { ls_tx_ctx_mgr->print_all_tx_ctx(ObLSTxCtxMgr::MAX_HASH_ITEM_PRINT, verbose); bool_ret = true; @@ -1035,7 +1035,7 @@ public: { bool bool_ret = false; if (!tx_id.is_valid() || OB_ISNULL(tx_ctx)) { - TRANS_LOG(WARN, "invalid argument", K(tx_id), KP(tx_ctx)); + TRANS_LOG_RET(WARN, common::OB_INVALID_ARGUMENT, "invalid argument", K(tx_id), KP(tx_ctx)); } else { bool_ret = true; } @@ -1055,9 +1055,9 @@ public: if (!tx_id.is_valid() || OB_ISNULL(tx_ctx) || OB_ISNULL(mt_)) { tmp_ret = OB_ERR_UNEXPECTED; - TRANS_LOG(WARN, "invalid argument", K(tx_id)); + TRANS_LOG_RET(WARN, tmp_ret, "invalid argument", K(tx_id)); } else if (OB_TMP_FAIL(tx_ctx->remove_callback_for_uncommited_txn(mt_))) { - TRANS_LOG(WARN, "remove callback for unncommitted tx failed", + TRANS_LOG_RET(WARN, tmp_ret, "remove callback for unncommitted tx failed", K(tmp_ret), K(tx_id), KP(tx_ctx)); } @@ -1136,7 +1136,7 @@ public: { bool bool_ret = false; if (!tx_id.is_valid() || OB_ISNULL(tx_ctx)) { - TRANS_LOG(WARN, "invalid argument", K(tx_id), KP(tx_ctx)); + TRANS_LOG_RET(WARN, common::OB_INVALID_ARGUMENT, "invalid argument", K(tx_id), KP(tx_ctx)); } else { share::SCN start_scn = tx_ctx->get_start_log_ts(); if (start_scn < min_start_scn_) { @@ -1223,12 +1223,12 @@ public: if (OB_ISNULL(tx_desc)) { tmp_ret = OB_INVALID_ARGUMENT; - TRANS_LOG(WARN, "invalid argument tx_desc", KP(tx_desc)); + TRANS_LOG_RET(WARN, tmp_ret, "invalid argument tx_desc", KP(tx_desc)); } else { tx_id = tx_desc->tx_id_; if (!tx_id.is_valid()) { tmp_ret = OB_INVALID_ARGUMENT; - TRANS_LOG(WARN, "invalid argument tx_id", K(tx_id), KP(tx_desc)); + TRANS_LOG_RET(WARN, tmp_ret, "invalid argument tx_id", K(tx_id), KP(tx_desc)); } } @@ -1237,9 +1237,9 @@ public: ObTxPartList copy_parts; ObTxSavePointList copy_savepoints; if (OB_TMP_FAIL(tx_desc->get_parts_copy(copy_parts))) { - TRANS_LOG(WARN, "ObTxSchedulerStat get participants copy error", K(tmp_ret)); + TRANS_LOG_RET(WARN, tmp_ret, "ObTxSchedulerStat get participants copy error", K(tmp_ret)); } else if (OB_TMP_FAIL(tx_desc->get_savepoints_copy(copy_savepoints))) { - TRANS_LOG(WARN, "ObTxSchedulerStat get savepoints copy error", K(tmp_ret)); + TRANS_LOG_RET(WARN, tmp_ret, "ObTxSchedulerStat get savepoints copy error", K(tmp_ret)); } else if (OB_TMP_FAIL(tx_scheduler_stat.init(tx_desc->tenant_id_, tx_desc->addr_, tx_desc->sess_id_, @@ -1260,9 +1260,9 @@ public: copy_savepoints, tx_desc->abort_cause_, tx_desc->can_elr_))) { - TRANS_LOG(WARN, "ObTxSchedulerStat init error", K(tmp_ret), KPC(tx_desc)); + TRANS_LOG_RET(WARN, tmp_ret, "ObTxSchedulerStat init error", K(tmp_ret), KPC(tx_desc)); } else if (OB_TMP_FAIL(tx_scheduler_stat_iter_.push(tx_scheduler_stat))) { - TRANS_LOG(WARN, "ObTxSchedulerStatIterator push trans scheduler error", K(tmp_ret)); + TRANS_LOG_RET(WARN, tmp_ret, "ObTxSchedulerStatIterator push trans scheduler error", K(tmp_ret)); } else { // do nothing } diff --git a/src/storage/tx/ob_trans_hashmap.h b/src/storage/tx/ob_trans_hashmap.h index eca3b2c85..172eeb1ea 100644 --- a/src/storage/tx/ob_trans_hashmap.h +++ b/src/storage/tx/ob_trans_hashmap.h @@ -82,7 +82,7 @@ public: inline int inc_ref(int32_t x) { if (ref_ < 0) { - TRANS_LOG(ERROR, "unexpected ref when inc ref", K(ref_)); + TRANS_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "unexpected ref when inc ref", K(ref_)); } return ATOMIC_FAA(&ref_, x); } @@ -90,7 +90,7 @@ public: { int32_t ref = ATOMIC_SAF(&ref_, x); if (ref < 0) { - TRANS_LOG(ERROR, "unexpected error", K(ref_)); + TRANS_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "unexpected error", K(ref_)); } return ref; } @@ -457,7 +457,7 @@ private: : lock_(const_cast(lock)), ret_(OB_SUCCESS) { if (OB_UNLIKELY(OB_SUCCESS != (ret_ = lock_.rdlock()))) { - COMMON_LOG(WARN, "Fail to read lock, ", K_(ret)); + COMMON_LOG_RET(WARN, ret_, "Fail to read lock, ", K_(ret)); } else { ObTransHashMap::get_thread_node().set_thread_id(thread_id); } @@ -486,10 +486,10 @@ private: // no need to lock if (get_itid() == get_thread_node().get_thread_id()) { locked_ = false; - TRANS_LOG(ERROR, "unexpected thread status", K(thread_id)); + TRANS_LOG_RET(ERROR, common::OB_ERR_UNEXPECTED, "unexpected thread status", K(thread_id)); } else { if (OB_UNLIKELY(OB_SUCCESS != (ret_ = lock_.wrlock()))) { - COMMON_LOG(WARN, "Fail to write lock, ", K_(ret)); + COMMON_LOG_RET(WARN, ret_, "Fail to write lock, ", K_(ret)); } else { locked_ = true; ObTransHashMap::get_thread_node().set_thread_id(thread_id); diff --git a/src/storage/tx/ob_trans_part_ctx.cpp b/src/storage/tx/ob_trans_part_ctx.cpp index 85105a465..7dc2a4004 100644 --- a/src/storage/tx/ob_trans_part_ctx.cpp +++ b/src/storage/tx/ob_trans_part_ctx.cpp @@ -457,10 +457,25 @@ int ObPartTransCtx::handle_timeout(const int64_t delay) (void)unregister_timeout_task_(); update_trans_2pc_timeout_(); timeout_task_.set_running(true); - if (ObTxState::INIT == exec_info_.state_ && - trans_expired_time_ > 0 && trans_expired_time_ < INT64_MAX && - now >= (trans_expired_time_ + OB_TRANS_WARN_USE_TIME)) { - TRANS_LOG(ERROR, "transaction use too much time", KPC(this)); + + if (trans_expired_time_ > 0 && trans_expired_time_ < INT64_MAX) { + if (part_trans_action_ == ObPartTransAction::COMMIT || part_trans_action_ == ObPartTransAction::ABORT) { + if (now >= trans_expired_time_ + OB_TRANS_WARN_USE_TIME) { + tmp_ret = OB_TRANS_COMMIT_TOO_MUCH_TIME; + LOG_DBA_ERROR(OB_TRANS_COMMIT_TOO_MUCH_TIME, + "msg", "transaction commit cost too much time", + "ret", tmp_ret, + K(*this)); + } + } else { + if (now >= ctx_create_time_ + OB_TRANS_WARN_USE_TIME) { + tmp_ret = OB_TRANS_LIVE_TOO_MUCH_TIME; + LOG_DBA_WARN(OB_TRANS_LIVE_TOO_MUCH_TIME, + "msg", "transaction live cost too much time without commit or abort", + "ret", tmp_ret, + K(*this)); + } + } } if (exec_info_.is_dup_tx_) { if (ObTxState::REDO_COMPLETE == exec_info_.state_) { @@ -2038,7 +2053,7 @@ void ObPartTransCtx::check_and_register_timeout_task_() const int64_t timeout_left = is_committing_() ? trans_2pc_timeout_ : MIN(MAX_TRANS_2PC_TIMEOUT_US, MAX(trans_expired_time_ - ObClockGenerator::getClock(), 1000 * 1000)); if (OB_SUCCESS != (tmp_ret = register_timeout_task_(timeout_left))) { - TRANS_LOG(WARN, "register timeout task failed", KR(tmp_ret), KPC(this)); + TRANS_LOG_RET(WARN, tmp_ret, "register timeout task failed", KR(tmp_ret), KPC(this)); } } } @@ -4832,7 +4847,7 @@ const SCN ObPartTransCtx::get_min_undecided_log_ts() const if (!busy_cbs_.is_empty()) { const ObTxLogCb *log_cb = busy_cbs_.get_first(); if (OB_ISNULL(log_cb)) { - TRANS_LOG(ERROR, "unexpected null ptr", K(*this)); + TRANS_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "unexpected null ptr", K(*this)); } else { log_ts = log_cb->get_log_ts(); } @@ -5370,7 +5385,7 @@ int ObPartTransCtx::set_scheduler_(const common::ObAddr &scheduler) const common::ObAddr &ObPartTransCtx::get_scheduler() const { if (exec_info_.data_complete_ && !exec_info_.scheduler_.is_valid()) { - TRANS_LOG(ERROR, "invalid scheduler addr", K(trans_id_)); + TRANS_LOG_RET(ERROR, OB_INVALID_ARGUMENT, "invalid scheduler addr", K(trans_id_)); } return exec_info_.scheduler_; } diff --git a/src/storage/tx/ob_trans_rpc.cpp b/src/storage/tx/ob_trans_rpc.cpp index f55b00f30..86c044a6c 100644 --- a/src/storage/tx/ob_trans_rpc.cpp +++ b/src/storage/tx/ob_trans_rpc.cpp @@ -227,9 +227,9 @@ int ObTransRpc::start() void ObTransRpc::stop() { if (!is_inited_) { - TRANS_LOG(WARN, "ObTransRpc is not inited"); + TRANS_LOG_RET(WARN, OB_NOT_INIT, "ObTransRpc is not inited"); } else if (!is_running_) { - TRANS_LOG(WARN, "ObTransRpc already has been stopped"); + TRANS_LOG_RET(WARN, OB_IN_STOP_STATE, "ObTransRpc already has been stopped"); } else { is_running_ = false; TRANS_LOG(INFO, "ObTransRpc stop success"); @@ -239,9 +239,9 @@ void ObTransRpc::stop() void ObTransRpc::wait() { if (!is_inited_) { - TRANS_LOG(WARN, "ObTransRpc is not inited"); + TRANS_LOG_RET(WARN, OB_NOT_INIT, "ObTransRpc is not inited"); } else if (is_running_) { - TRANS_LOG(WARN, "ObTransRpc is already running"); + TRANS_LOG_RET(WARN, OB_IN_STOP_STATE, "ObTransRpc is already running"); } else { TRANS_LOG(INFO, "ObTransRpc wait success"); } diff --git a/src/storage/tx/ob_trans_submit_log_cb.cpp b/src/storage/tx/ob_trans_submit_log_cb.cpp index e75ed09cf..ae9e5e715 100644 --- a/src/storage/tx/ob_trans_submit_log_cb.cpp +++ b/src/storage/tx/ob_trans_submit_log_cb.cpp @@ -136,7 +136,7 @@ void ObTxLogCb::check_warn_() const { const int64_t used_time = ObClockGenerator::getRealClock() - get_submit_ts(); if (used_time >= ObServerConfig::get_instance().clog_sync_time_warn_threshold) { - TRANS_LOG(WARN, "transaction log sync use too much time", K(*this), K(used_time)); + TRANS_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "transaction log sync use too much time", K(*this), K(used_time)); } } diff --git a/src/storage/tx/ob_trans_submit_log_cb.h b/src/storage/tx/ob_trans_submit_log_cb.h index 26a005209..cf2c9a280 100644 --- a/src/storage/tx/ob_trans_submit_log_cb.h +++ b/src/storage/tx/ob_trans_submit_log_cb.h @@ -157,7 +157,7 @@ struct ObTxLogBigSegmentInfo submit_log_cb_template_ = nullptr; if (!unsynced_segment_part_cbs_.is_empty()) { - TRANS_LOG(WARN, "all log cbs need return before reset", + TRANS_LOG_RET(WARN, OB_ERR_UNEXPECTED, "all log cbs need return before reset", K(unsynced_segment_part_cbs_.get_size()), K(unsynced_segment_part_cbs_.get_first()), K(unsynced_segment_part_cbs_.get_last())); } diff --git a/src/storage/tx/ob_trans_timer.cpp b/src/storage/tx/ob_trans_timer.cpp index f834ddf0d..ccfb58e79 100644 --- a/src/storage/tx/ob_trans_timer.cpp +++ b/src/storage/tx/ob_trans_timer.cpp @@ -66,11 +66,11 @@ uint64_t ObTransTimeoutTask::hash() const { uint64_t hv = 0; if (NULL == ctx_) { - TRANS_LOG(ERROR, "ctx is null, unexpected error", KP_(ctx)); + TRANS_LOG_RET(ERROR, OB_INVALID_ARGUMENT, "ctx is null, unexpected error", KP_(ctx)); } else { const ObTransID &trans_id = ctx_->get_trans_id(); if (!trans_id.is_valid()) { - TRANS_LOG(WARN, "ObTransID is invalid", K(trans_id)); + TRANS_LOG_RET(WARN, OB_INVALID_ARGUMENT, "ObTransID is invalid", K(trans_id)); } else { hv = trans_id.hash(); } @@ -84,16 +84,16 @@ void ObTransTimeoutTask::runTimerTask() ObLSTxCtxMgr *ls_tx_ctx_mgr = NULL; if (!is_inited_) { - TRANS_LOG(WARN, "ObTransTimeoutTask not inited"); + TRANS_LOG_RET(WARN, OB_NOT_INIT, "ObTransTimeoutTask not inited"); } else if (NULL == ctx_) { - TRANS_LOG(ERROR, "ctx is null, unexpected error", KP_(ctx)); + TRANS_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "ctx is null, unexpected error", KP_(ctx)); tmp_ret = OB_ERR_UNEXPECTED; } else { if (OB_SUCCESS != (tmp_ret = ctx_->handle_timeout(delay_))) { - TRANS_LOG(WARN, "handle timeout error", "ret", tmp_ret, "context", *ctx_); + TRANS_LOG_RET(WARN, tmp_ret, "handle timeout error", "ret", tmp_ret, "context", *ctx_); } if (NULL == (ls_tx_ctx_mgr = ctx_->get_ls_tx_ctx_mgr())) { - TRANS_LOG(WARN, "get partition mgr error", "context", *ctx_); + TRANS_LOG_RET(WARN, OB_ERR_UNEXPECTED, "get partition mgr error", "context", *ctx_); } else { (void)ls_tx_ctx_mgr->revert_tx_ctx(ctx_); } @@ -132,11 +132,11 @@ uint64_t ObTxTimeoutTask::hash() const { uint64_t hv = 0; if (NULL == tx_desc_) { - TRANS_LOG(ERROR, "tx_desc is null, unexpected error", KP_(tx_desc)); + TRANS_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "tx_desc is null, unexpected error", KP_(tx_desc)); } else { const ObTransID &trans_id = tx_desc_->tid(); if (!trans_id.is_valid()) { - TRANS_LOG(WARN, "ObTransID is invalid", K(trans_id)); + TRANS_LOG_RET(WARN, OB_INVALID_ARGUMENT, "ObTransID is invalid", K(trans_id)); } else { hv = trans_id.hash(); } @@ -257,9 +257,9 @@ void ObTransTimer::destroy() if (is_inited_) { if (is_running_) { if (OB_SUCCESS != (tmp_ret = stop())) { - TRANS_LOG(WARN, "ObTransTimer stop error", K(tmp_ret)); + TRANS_LOG_RET(WARN, tmp_ret, "ObTransTimer stop error", K(tmp_ret)); } else if (OB_SUCCESS != (tmp_ret = wait())) { - TRANS_LOG(WARN, "ObTransTimer wait error", K(tmp_ret)); + TRANS_LOG_RET(WARN, tmp_ret, "ObTransTimer wait error", K(tmp_ret)); } else { // do nothing } diff --git a/src/storage/tx/ob_two_phase_upstream_committer.cpp b/src/storage/tx/ob_two_phase_upstream_committer.cpp index bc71ea4a5..04df0d77a 100644 --- a/src/storage/tx/ob_two_phase_upstream_committer.cpp +++ b/src/storage/tx/ob_two_phase_upstream_committer.cpp @@ -264,7 +264,7 @@ int ObTxCycleTwoPhaseCommitter::post_downstream_msg(const ObTwoPhaseCommitMsgTyp for (int64_t downstream_id = 0; downstream_id < get_downstream_size(); downstream_id++) { if (downstream_id != get_self_id()) { if (OB_TMP_FAIL(post_msg(msg_type, downstream_id))) { - TRANS_LOG(WARN, "post downstream msg failed, will retry later", K(tmp_ret), + TRANS_LOG_RET(WARN, tmp_ret, "post downstream msg failed, will retry later", K(tmp_ret), K(downstream_id), K(msg_type), KPC(this)); } } diff --git a/src/storage/tx/ob_tx_2pc_msg_handler.cpp b/src/storage/tx/ob_tx_2pc_msg_handler.cpp index ba0a1385f..b3142e321 100644 --- a/src/storage/tx/ob_tx_2pc_msg_handler.cpp +++ b/src/storage/tx/ob_tx_2pc_msg_handler.cpp @@ -959,7 +959,7 @@ ObTwoPhaseCommitMsgType ObPartTransCtx::switch_msg_type_(const int16_t msg_type) ret_type = ObTwoPhaseCommitMsgType::OB_MSG_TX_CLEAR_RESP; break; default: - TRANS_LOG(ERROR, "invalid msg type", K(msg_type)); + TRANS_LOG_RET(ERROR, OB_INVALID_ARGUMENT, "invalid msg type", K(msg_type)); } return ret_type; diff --git a/src/storage/tx/ob_tx_api.cpp b/src/storage/tx/ob_tx_api.cpp index ff03f7fff..06715701d 100644 --- a/src/storage/tx/ob_tx_api.cpp +++ b/src/storage/tx/ob_tx_api.cpp @@ -174,7 +174,7 @@ int ObTransService::reuse_tx(ObTxDesc &tx) PAUSE(); if (++cnt > 100) { ob_usleep(500); } if (cnt > 2000 && TC_REACH_TIME_INTERVAL(2 * 1000 * 1000)) { - TRANS_LOG(WARN, "blocking to wait tx referent quiescent cost too much time", + TRANS_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "blocking to wait tx referent quiescent cost too much time", "tx_id", orig_tx_id, KP(&tx), K(final_ref_cnt), K(tx.get_ref())); tx.print_trace(); } @@ -1637,7 +1637,7 @@ void ObTransService::tx_post_terminate_(ObTxDesc &tx) } if (tx.active_ts_ > 0) { // skip txn has not active if (tx.finish_ts_ <= 0) { - TRANS_LOG(WARN, "tx finish ts is unset", K(tx)); + TRANS_LOG_RET(WARN, OB_ERR_UNEXPECTED, "tx finish ts is unset", K(tx)); } else if (tx.finish_ts_ > tx.active_ts_) { TX_STAT_TIME_USED(tx.finish_ts_ - tx.active_ts_); } diff --git a/src/storage/tx/ob_tx_data_define.cpp b/src/storage/tx/ob_tx_data_define.cpp index 7257a7bda..ee1714df6 100644 --- a/src/storage/tx/ob_tx_data_define.cpp +++ b/src/storage/tx/ob_tx_data_define.cpp @@ -400,28 +400,28 @@ bool ObTxData::is_valid_in_tx_data_table() const if (ObTxData::RUNNING == state_) { if (!end_scn_.is_valid()) { bool_ret = false; - STORAGE_LOG(ERROR, "tx data end log ts is invalid", KPC(this)); + STORAGE_LOG_RET(ERROR, OB_INVALID_ERROR, "tx data end log ts is invalid", KPC(this)); } else if (OB_ISNULL(undo_status_list_.head_)) { bool_ret = false; - STORAGE_LOG(ERROR, "tx data undo status list is invalid", KPC(this)); + STORAGE_LOG_RET(ERROR, OB_INVALID_ERROR, "tx data undo status list is invalid", KPC(this)); } else { bool_ret = true; } } else if (state_ < 0 || state_ >= MAX_STATE_CNT) { bool_ret = false; - STORAGE_LOG(ERROR, "tx data state is invalid", KPC(this)); + STORAGE_LOG_RET(ERROR, OB_INVALID_ERROR, "tx data state is invalid", KPC(this)); } else if (!start_scn_.is_valid()) { bool_ret = false; - STORAGE_LOG(ERROR, "tx data start_scn is invalid", KPC(this)); + STORAGE_LOG_RET(ERROR, OB_INVALID_ERROR, "tx data start_scn is invalid", KPC(this)); } else if (!end_scn_.is_valid()) { bool_ret = false; - STORAGE_LOG(ERROR, "tx data end_scn is invalid", KPC(this)); + STORAGE_LOG_RET(ERROR, OB_INVALID_ERROR, "tx data end_scn is invalid", KPC(this)); } else if (end_scn_ < start_scn_) { bool_ret = false; - STORAGE_LOG(ERROR, "tx data end_scn is less than start_scn", KPC(this)); + STORAGE_LOG_RET(ERROR, OB_INVALID_ERROR, "tx data end_scn is less than start_scn", KPC(this)); } else if (!commit_version_.is_valid() && state_ != RUNNING && state_ != ABORT) { bool_ret = false; - STORAGE_LOG(ERROR, "tx data commit_version is invalid but state is not running or abort", + STORAGE_LOG_RET(ERROR, OB_INVALID_ERROR, "tx data commit_version is invalid but state is not running or abort", KPC(this)); } diff --git a/src/storage/tx/ob_tx_data_define.h b/src/storage/tx/ob_tx_data_define.h index 0b40008bf..b34db63d8 100644 --- a/src/storage/tx/ob_tx_data_define.h +++ b/src/storage/tx/ob_tx_data_define.h @@ -243,7 +243,7 @@ public: return; #endif if (nullptr == slice_allocator_) { - STORAGE_LOG(ERROR, "invalid slice allocator", KPC(this)); + STORAGE_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "invalid slice allocator", KPC(this)); ob_abort(); } else if (0 == ATOMIC_SAF(&ref_cnt_, 1)) { if (OB_UNLIKELY(nullptr != undo_status_list_.head_)) { diff --git a/src/storage/tx/ob_tx_free_route_rpc.cpp b/src/storage/tx/ob_tx_free_route_rpc.cpp index 622174074..3f9976d0c 100644 --- a/src/storage/tx/ob_tx_free_route_rpc.cpp +++ b/src/storage/tx/ob_tx_free_route_rpc.cpp @@ -112,7 +112,7 @@ int ObTxFreeRouteRPCCB::process() template void ObTxFreeRouteRPCCB::on_timeout() { - TRANS_LOG(WARN, "txn free route rpc timeout"); + TRANS_LOG_RET(WARN, OB_TIMEOUT, "txn free route rpc timeout"); } template int ObTxFreeRouteRPCCB::process(); diff --git a/src/storage/tx/ob_tx_log.cpp b/src/storage/tx/ob_tx_log.cpp index 651502573..736552fed 100644 --- a/src/storage/tx/ob_tx_log.cpp +++ b/src/storage/tx/ob_tx_log.cpp @@ -160,7 +160,7 @@ OB_DEF_SERIALIZE_SIZE(ObTxRedoLog) int64_t len = 0; if (mutator_size_ < 0) { len = mutator_size_; - TRANS_LOG(WARN, "mutator_buf_ has not set"); + TRANS_LOG_RET(WARN, OB_ERR_UNEXPECTED, "mutator_buf_ has not set"); } else { len = len + ctx_redo_info_.get_serialize_size(); len = len + MUTATOR_SIZE_NEED_BYTES; diff --git a/src/storage/tx/ob_tx_replay_executor.cpp b/src/storage/tx/ob_tx_replay_executor.cpp index 284050f5d..634e652bd 100644 --- a/src/storage/tx/ob_tx_replay_executor.cpp +++ b/src/storage/tx/ob_tx_replay_executor.cpp @@ -287,7 +287,7 @@ void ObTxReplayExecutor::finish_replay_(const int retcode) if (OB_SUCCESS != retcode) { mt_ctx_->replay_end(false, /*is_replay_succ*/ log_ts_ns_); - TRANS_LOG(WARN, "[Replay Tx]Tx Redo replay error, rollback to start", K(*this)); + TRANS_LOG_RET(WARN, OB_ERR_UNEXPECTED, "[Replay Tx]Tx Redo replay error, rollback to start", K(*this)); } else { mt_ctx_->replay_end(true, /*is_replay_succ*/ log_ts_ns_); diff --git a/src/storage/tx/ob_tx_retain_ctx_mgr.cpp b/src/storage/tx/ob_tx_retain_ctx_mgr.cpp index 6d0359ae7..5c1754d7b 100644 --- a/src/storage/tx/ob_tx_retain_ctx_mgr.cpp +++ b/src/storage/tx/ob_tx_retain_ctx_mgr.cpp @@ -362,7 +362,7 @@ int ObTxRetainCtxMgr::for_each_remove_(RetainFuncHandler remove_handler, } const int64_t use_ts = ObTimeUtility::current_time() - start_ts; if (use_ts > max_run_us) { - TRANS_LOG(WARN, "remove retain ctx use too much time", K(use_ts), K(remove_count)); + TRANS_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "remove retain ctx use too much time", K(use_ts), K(remove_count)); break; } diff --git a/src/storage/tx/ob_tx_serialization.cpp b/src/storage/tx/ob_tx_serialization.cpp index e9ce13806..e5a9cf237 100644 --- a/src/storage/tx/ob_tx_serialization.cpp +++ b/src/storage/tx/ob_tx_serialization.cpp @@ -137,7 +137,7 @@ void ObTxSerCompatByte::set_object_flag_(int64_t byte_index, uint8_t bit_index, uint8_t bit_flag = BASE_VALID_BIT << bit_index; if (byte_index > total_byte_cnt_) { - TRANS_LOG(ERROR, "invalid byte index", K(byte_index), K(bit_index), K(is_valid), KPC(this)); + TRANS_LOG_RET(ERROR, OB_INVALID_ARGUMENT, "invalid byte index", K(byte_index), K(bit_index), K(is_valid), KPC(this)); } else if (is_valid) { compat_bytes_[byte_index] |= bit_flag; } else { @@ -152,7 +152,7 @@ void ObTxSerCompatByte::is_object_valid_(int64_t byte_index, uint8_t bit_check_flag = BASE_VALID_BIT << bit_index; if (byte_index > total_byte_cnt_) { - TRANS_LOG(ERROR, "invalid byte index", K(byte_index), K(bit_index), K(is_valid), KPC(this)); + TRANS_LOG_RET(ERROR, OB_INVALID_ARGUMENT, "invalid byte index", K(byte_index), K(bit_index), K(is_valid), KPC(this)); } else { is_valid = (compat_bytes_[byte_index] & bit_check_flag) != 0; } diff --git a/src/storage/tx/ob_xa_ctx_mgr.h b/src/storage/tx/ob_xa_ctx_mgr.h index 3b3f92287..a0105134b 100644 --- a/src/storage/tx/ob_xa_ctx_mgr.h +++ b/src/storage/tx/ob_xa_ctx_mgr.h @@ -129,12 +129,12 @@ public: // always return true so as to traverse all ctx int tmp_ret = common::OB_SUCCESS; if (!trans_id.is_valid() || OB_ISNULL(xa_ctx)) { - TRANS_LOG(WARN, "invalid argument", K(trans_id), KP(xa_ctx)); + TRANS_LOG_RET(WARN, common::OB_INVALID_ARGUMENT, "invalid argument", K(trans_id), KP(xa_ctx)); } else { bool is_original = (GCTX.self_addr() == xa_ctx->get_original_sche_addr()); if (is_original) { if (OB_SUCCESS != (tmp_ret = xa_ctx->try_heartbeat())) { - TRANS_LOG(WARN, "xa scheduler hb failed", K(tmp_ret), K(*xa_ctx)); + TRANS_LOG_RET(WARN, tmp_ret, "xa scheduler hb failed", K(tmp_ret), K(*xa_ctx)); } } } diff --git a/src/storage/tx/ob_xa_define.cpp b/src/storage/tx/ob_xa_define.cpp index 407cc7831..ad81eb08e 100644 --- a/src/storage/tx/ob_xa_define.cpp +++ b/src/storage/tx/ob_xa_define.cpp @@ -142,14 +142,14 @@ int32_t ObXATransID::to_full_xid_string(char *buffer, { int64_t count = 0; if (NULL == buffer || 0 >= capacity) { - TRANS_LOG(WARN, "invalid augumnets", KP(buffer), K(capacity)); + TRANS_LOG_RET(WARN, OB_INVALID_ARGUMENT, "invalid augumnets", KP(buffer), K(capacity)); } else if (gtrid_str_.empty()) { - TRANS_LOG(WARN, "xid is empty"); + TRANS_LOG_RET(WARN, OB_INVALID_ARGUMENT, "xid is empty"); } else if ((count = snprintf(buffer, capacity, "%.*s%.*s", gtrid_str_.length(), gtrid_str_.ptr(), bqual_str_.length(), bqual_str_.ptr())) <= 0 || count >= capacity ) { - TRANS_LOG(WARN, "buffer is not enough", K(count), K(capacity), K(gtrid_str_.length()), + TRANS_LOG_RET(WARN, OB_BUF_NOT_ENOUGH, "buffer is not enough", K(count), K(capacity), K(gtrid_str_.length()), K(bqual_str_.length())); } else { TRANS_LOG(DEBUG, "generate buffer success", K(count), K(capacity), K(gtrid_str_.length()), @@ -277,7 +277,7 @@ bool ObXAFlag::is_valid(const int64_t flag, const int64_t xa_req_type) } default: { ret_bool = false; - TRANS_LOG(WARN, "invalid xa request type", K(xa_req_type), K(flag)); + TRANS_LOG_RET(WARN, OB_INVALID_ARGUMENT, "invalid xa request type", K(xa_req_type), K(flag)); } } TRANS_LOG(INFO, "check xa flag", K(ret_bool), K(xa_req_type), KPHEX(&flag, sizeof(int64_t))); @@ -386,11 +386,11 @@ uint64_t ObXATimeoutTask::hash() const { uint64_t hv = 0; if (NULL == ctx_) { - TRANS_LOG(ERROR, "ctx is null, unexpected error", KP_(ctx)); + TRANS_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "ctx is null, unexpected error", KP_(ctx)); } else { const ObTransID &trans_id = ctx_->get_trans_id(); if (!trans_id.is_valid()) { - TRANS_LOG(WARN, "ObTransID is invalid", K(trans_id)); + TRANS_LOG_RET(WARN, OB_INVALID_ARGUMENT, "ObTransID is invalid", K(trans_id)); } else { hv = trans_id.hash(); } @@ -404,17 +404,17 @@ void ObXATimeoutTask::runTimerTask() ObXACtxMgr *xa_ctx_mgr = NULL; if (!is_inited_) { - TRANS_LOG(WARN, "ObTransTimeoutTask not inited"); + TRANS_LOG_RET(WARN, OB_NOT_INIT, "ObTransTimeoutTask not inited"); } else if (NULL == ctx_) { - TRANS_LOG(ERROR, "ctx is null, unexpected error", KP_(ctx)); + TRANS_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "ctx is null, unexpected error", KP_(ctx)); tmp_ret = OB_ERR_UNEXPECTED; } else { if (OB_SUCCESS != (tmp_ret = ctx_->handle_timeout(delay_))) { - TRANS_LOG(WARN, "handle timeout error", "ret", tmp_ret, "context", *ctx_); + TRANS_LOG_RET(WARN, tmp_ret, "handle timeout error", "ret", tmp_ret, "context", *ctx_); } //dec the ctx ref if (NULL == (xa_ctx_mgr = ctx_->get_xa_ctx_mgr())) { - TRANS_LOG(WARN, "get partition mgr error", "context", *ctx_); + TRANS_LOG_RET(WARN, OB_ERR_UNEXPECTED, "get partition mgr error", "context", *ctx_); } else { (void)xa_ctx_mgr->revert_xa_ctx(ctx_); } diff --git a/src/storage/tx/ob_xa_rpc.cpp b/src/storage/tx/ob_xa_rpc.cpp index bd668229a..7b9dd69dc 100644 --- a/src/storage/tx/ob_xa_rpc.cpp +++ b/src/storage/tx/ob_xa_rpc.cpp @@ -755,9 +755,9 @@ void ObXARpc::destroy() if (is_inited_) { if (is_running_) { if (OB_SUCCESS != (tmp_ret = stop())) { - TRANS_LOG(WARN, "gts request rpc stop error", K(tmp_ret)); + TRANS_LOG_RET(WARN, tmp_ret, "gts request rpc stop error", K(tmp_ret)); } else if (OB_SUCCESS != (tmp_ret = wait())) { - TRANS_LOG(WARN, "gts request rpc wait error", K(tmp_ret)); + TRANS_LOG_RET(WARN, tmp_ret, "gts request rpc wait error", K(tmp_ret)); } else { // do nothing } diff --git a/src/storage/tx/ob_xa_rpc.h b/src/storage/tx/ob_xa_rpc.h index 5713caf8b..993e91c43 100644 --- a/src/storage/tx/ob_xa_rpc.h +++ b/src/storage/tx/ob_xa_rpc.h @@ -498,7 +498,7 @@ public: const Int64 result = ObXARpcProxy::AsyncCB::result_; if (OB_SUCCESS != rcode.rcode_) { - TRANS_LOG(WARN, "xa rpc returns error code", K(rcode), K(dst)); + TRANS_LOG_RET(WARN, rcode.rcode_, "xa rpc returns error code", K(rcode), K(dst)); // TODO, check ret code if (OB_NOT_NULL(cond_)) { cond_->notify(rcode.rcode_); @@ -576,7 +576,7 @@ public: *has_tx_level_temp_table_ = result.has_tx_level_temp_table_; } if (OB_SUCCESS != rcode.rcode_) { - TRANS_LOG(WARN, "xa rpc returns error code", K(rcode), K(dst)); + TRANS_LOG_RET(WARN, rcode.rcode_, "xa rpc returns error code", K(rcode), K(dst)); // TODO, check ret code if (OB_NOT_NULL(cond_)) { cond_->notify(rcode.rcode_); diff --git a/src/storage/tx/ob_xa_service.cpp b/src/storage/tx/ob_xa_service.cpp index bf0182455..9a682c501 100644 --- a/src/storage/tx/ob_xa_service.cpp +++ b/src/storage/tx/ob_xa_service.cpp @@ -2817,11 +2817,11 @@ void ObXAService::clear_xa_branch(const ObXATransID &xid, ObTxDesc *&tx_desc) { const ObTransID &tx_id = tx_desc->tid(); if (OB_UNLIKELY(!is_inited_)) { - TRANS_LOG(WARN, "xa service not inited"); + TRANS_LOG_RET(WARN, OB_NOT_INIT, "xa service not inited"); } else { ObXACtx *xa_ctx = tx_desc->get_xa_ctx(); if (NULL == xa_ctx) { - TRANS_LOG(WARN, "xa ctx is null", K(tx_id), K(xid)); + TRANS_LOG_RET(WARN, OB_ERR_UNEXPECTED, "xa ctx is null", K(tx_id), K(xid)); } else { xa_ctx->dec_xa_ref_count(); if (0 == xa_ctx->get_xa_ref_count()) { diff --git a/src/storage/tx/wrs/ob_black_list.cpp b/src/storage/tx/wrs/ob_black_list.cpp index 8b6ec8984..5f46cb1f8 100644 --- a/src/storage/tx/wrs/ob_black_list.cpp +++ b/src/storage/tx/wrs/ob_black_list.cpp @@ -119,7 +119,7 @@ int ObBLService::add(const ObBLKey &bl_key) void ObBLService::remove(const ObBLKey &bl_key) { if (OB_UNLIKELY(!is_inited_)) { - TRANS_LOG(ERROR, "BLService not inited"); + TRANS_LOG_RET(ERROR, OB_NOT_INIT, "BLService not inited"); } else { switch(bl_key.get_type()) { case BLTYPE_LS: { @@ -127,7 +127,7 @@ void ObBLService::remove(const ObBLKey &bl_key) break; } default: { - TRANS_LOG(ERROR, "unknown key type", K(bl_key)); + TRANS_LOG_RET(ERROR, OB_UNKNOWN_OBJ, "unknown key type", K(bl_key)); } } } @@ -166,7 +166,7 @@ void ObBLService::run1() TRANS_LOG(INFO, "blacklist refresh thread start", K(thread_index)); if (OB_UNLIKELY(!is_inited_)) { - TRANS_LOG(ERROR, "BLService not inited"); + TRANS_LOG_RET(ERROR, OB_NOT_INIT, "BLService not inited"); } else { while (!has_set_stop()) { int64_t begin_tstamp = ObTimeUtility::current_time(); diff --git a/src/storage/tx/wrs/ob_tenant_weak_read_cluster_service.cpp b/src/storage/tx/wrs/ob_tenant_weak_read_cluster_service.cpp index c5756993c..9121768d6 100644 --- a/src/storage/tx/wrs/ob_tenant_weak_read_cluster_service.cpp +++ b/src/storage/tx/wrs/ob_tenant_weak_read_cluster_service.cpp @@ -25,8 +25,10 @@ #include "ob_tenant_weak_read_cluster_service.h" #define STAT(level, fmt, args...) TRANS_LOG(level, "[WRS] [TENANT_WEAK_READ_SERVICE] [CLUSTER_SERVICE] " fmt, ##args); +#define STAT_RET(level, errcode, fmt, args...) TRANS_LOG_RET(level, errcode, "[WRS] [TENANT_WEAK_READ_SERVICE] [CLUSTER_SERVICE] " fmt, ##args); #define ISTAT(fmt, args...) STAT(INFO, fmt, ##args) #define WSTAT(fmt, args...) STAT(WARN, fmt, ##args) +#define WSTAT_RET(errcode, fmt, args...) STAT_RET(WARN, errcode, fmt, ##args) #define DSTAT(fmt, args...) STAT(DEBUG, fmt, ##args) namespace oceanbase @@ -581,7 +583,7 @@ bool ObTenantWeakReadClusterService::check_can_update_version_() // print log in first update version if (! old_can_update_version) { - WSTAT("force to update version while not all valid servers registered", + WSTAT_RET(OB_ERR_UNDEFINED, "force to update version while not all valid servers registered", "tenant_id", MTL_ID(), K(registered_server_count), K_(all_valid_server_count), @@ -828,7 +830,7 @@ bool ObTenantWeakReadClusterService::need_force_change_leader_() && leader_alive_tstamp > LEADER_ALIVE_THRESHOLD_FOR_CHANGE_LEADER && last_error_interval < LAST_ERROR_TSTAMP_INTERVAL_FOR_CHANGE_LEADER) { bool_ret = true; - LOG_WARN("too many errors occur, need change weak read service partition leader", + LOG_WARN_RET(OB_ERR_UNEXPECTED, "too many errors occur, need change weak read service partition leader", K(cluster_service_tablet_id_), K(error_static), K(start_service_tstamp), K(leader_alive_tstamp), K(tenant_id), K(bool_ret)); } diff --git a/src/storage/tx/wrs/ob_tenant_weak_read_service.cpp b/src/storage/tx/wrs/ob_tenant_weak_read_service.cpp index 240c9bf0f..7841ab9fb 100644 --- a/src/storage/tx/wrs/ob_tenant_weak_read_service.cpp +++ b/src/storage/tx/wrs/ob_tenant_weak_read_service.cpp @@ -427,14 +427,14 @@ void ObTenantWeakReadService::process_cluster_heartbeat_rpc_cb( int64_t cur_tstamp = ObTimeUtility::current_time(); int64_t delta = cur_tstamp - last_succ_cluster_heartbeat_tstamp_; if (delta > 500 * 1000L) { - LOG_WARN("tenant weak read service cluster heartbeat cost too much time", + LOG_WARN_RET(OB_ERR_UNEXPECTED, "tenant weak read service cluster heartbeat cost too much time", K(tenant_id_), K(delta), K(last_succ_cluster_heartbeat_tstamp_)); } ATOMIC_INC(&succ_cluster_heartbeat_count_); ATOMIC_SET(&last_succ_cluster_heartbeat_tstamp_, cur_tstamp); } else { - LOG_WARN("tenant weak read service cluster heartbeat RPC fail", K(rcode), K(tenant_id_), + LOG_WARN_RET(OB_ERR_UNEXPECTED, "tenant weak read service cluster heartbeat RPC fail", K(rcode), K(tenant_id_), K(dst), "cluster_service_tablet_id", cluster_service_.get_cluster_service_tablet_id()); // force refresh cluster service master refresh_cluster_service_master_(); diff --git a/src/storage/tx/wrs/ob_weak_read_service_rpc.cpp b/src/storage/tx/wrs/ob_weak_read_service_rpc.cpp index b4ec6ded9..0c4e5b6ca 100644 --- a/src/storage/tx/wrs/ob_weak_read_service_rpc.cpp +++ b/src/storage/tx/wrs/ob_weak_read_service_rpc.cpp @@ -90,9 +90,9 @@ rpc::frame::ObReqTransport::AsyncCB *ObWrsRpc::ClusterHeartbeatCB::clone(const r void *buf = NULL; ClusterHeartbeatCB *cb = NULL; if (OB_ISNULL(buf = alloc(sizeof(*this)))) { - LOG_ERROR("allocate memory for AsyncCB fail", K(buf)); + LOG_ERROR_RET(OB_ALLOCATE_MEMORY_FAILED, "allocate memory for AsyncCB fail", K(buf)); } else if (OB_ISNULL(cb = new(buf) ClusterHeartbeatCB())) { - LOG_ERROR("construct ClusterHeartbeatCB fail", K(cb), K(buf)); + LOG_ERROR_RET(OB_ALLOCATE_MEMORY_FAILED, "construct ClusterHeartbeatCB fail", K(cb), K(buf)); } else { *cb = *this; } diff --git a/src/storage/tx/wrs/ob_weak_read_util.cpp b/src/storage/tx/wrs/ob_weak_read_util.cpp index be1128088..aa4d7b718 100644 --- a/src/storage/tx/wrs/ob_weak_read_util.cpp +++ b/src/storage/tx/wrs/ob_weak_read_util.cpp @@ -73,7 +73,7 @@ SCN ObWeakReadUtil::generate_min_weak_read_version(const uint64_t tenant_id) base_version_when_no_valid_partition.convert_from_ts(ObTimeUtility::current_time() - max_stale_time); if ((!tenant_config_exist) && REACH_TIME_INTERVAL(1 * 1000 * 1000L)) { - TRANS_LOG(WARN, "tenant not exist when generate min weak read version, use default max stale time instead", + TRANS_LOG_RET(WARN, OB_ERR_UNEXPECTED, "tenant not exist when generate min weak read version, use default max stale time instead", K(tenant_id), K(base_version_when_no_valid_partition), K(lbt())); } @@ -93,7 +93,7 @@ bool ObWeakReadUtil::enable_monotonic_weak_read(const uint64_t tenant_id) /* failure */ [tenant_id, &is_monotonic]() mutable { is_monotonic = true; if (REACH_TIME_INTERVAL(1 * 1000 * 1000L)) { - TRANS_LOG(WARN, "tenant not exist when check enable monotonic weak read, use true as default instead", + TRANS_LOG_RET(WARN, OB_ERR_UNEXPECTED, "tenant not exist when check enable monotonic weak read, use true as default instead", K(tenant_id), K(is_monotonic), K(lbt())); } } @@ -115,7 +115,7 @@ int64_t ObWeakReadUtil::max_stale_time_for_weak_consistency(const uint64_t tenan /* failure */ [tenant_id, ignore_warn, &max_stale_time]() mutable { max_stale_time = DEFAULT_MAX_STALE_TIME_FOR_WEAK_CONSISTENCY; if (IGNORE_TENANT_EXIST_WARN != ignore_warn && REACH_TIME_INTERVAL(1 * 1000 * 1000L)) { - TRANS_LOG(WARN, "tenant not exist when get max stale time for weak consistency," + TRANS_LOG_RET(WARN, OB_ERR_UNEXPECTED, "tenant not exist when get max stale time for weak consistency," " use default max stale time instead", K(tenant_id), K(max_stale_time), K(lbt())); } diff --git a/src/storage/tx_storage/ob_access_service.cpp b/src/storage/tx_storage/ob_access_service.cpp index 8d43d561f..4354bfc40 100644 --- a/src/storage/tx_storage/ob_access_service.cpp +++ b/src/storage/tx_storage/ob_access_service.cpp @@ -1138,7 +1138,7 @@ void ObAccessService::ObStoreCtxGuard::reset() } const int64_t guard_used_us = ObClockGenerator::getClock() - init_ts_; if (guard_used_us >= WARN_TIME_US) { - LOG_WARN("guard used too much time", K(guard_used_us), K_(ls_id), K(lbt())); + LOG_WARN_RET(OB_ERR_TOO_MUCH_TIME, "guard used too much time", K(guard_used_us), K_(ls_id), K(lbt())); } ls_id_.reset(); is_inited_ = false; diff --git a/src/storage/tx_storage/ob_ls_freeze_thread.cpp b/src/storage/tx_storage/ob_ls_freeze_thread.cpp index 0bcc43de3..ff44a06ee 100644 --- a/src/storage/tx_storage/ob_ls_freeze_thread.cpp +++ b/src/storage/tx_storage/ob_ls_freeze_thread.cpp @@ -136,7 +136,7 @@ int ObLSFreezeThread::add_task(ObDataCheckpoint *data_checkpoint, void ObLSFreezeThread::handle(void *task) { if (NULL == task) { - STORAGE_LOG(WARN, "task is null", KP(task)); + STORAGE_LOG_RET(WARN, OB_ERR_UNEXPECTED, "task is null", KP(task)); } else { ObLSFreezeTask *freeze_task = static_cast(task); freeze_task->handle(); diff --git a/src/storage/tx_storage/ob_ls_service.cpp b/src/storage/tx_storage/ob_ls_service.cpp index 8cd0530df..96b09e877 100644 --- a/src/storage/tx_storage/ob_ls_service.cpp +++ b/src/storage/tx_storage/ob_ls_service.cpp @@ -1084,12 +1084,12 @@ void ObLSService::del_ls_after_create_ls_failed_(ObLSCreateState& ls_create_stat if (ls_create_state >= ObLSCreateState::CREATE_STATE_ADDED_TO_MAP) { if (OB_SUCCESS != (tmp_ret = remove_ls_from_map_(ls->get_ls_id()))) { need_retry = true; - LOG_ERROR("remove ls from map failed", K(tmp_ret)); + LOG_ERROR_RET(tmp_ret, "remove ls from map failed", K(tmp_ret)); } } else if (ls_create_state >= ObLSCreateState::CREATE_STATE_INNER_CREATED) { if (OB_SUCCESS != (tmp_ret = inner_del_ls_(ls))) { need_retry = true; - LOG_ERROR("inner del ls failed.", K(tmp_ret)); + LOG_ERROR_RET(tmp_ret, "inner del ls failed.", K(tmp_ret)); } } } while (need_retry); diff --git a/src/storage/tx_storage/ob_tenant_freezer.cpp b/src/storage/tx_storage/ob_tenant_freezer.cpp index e4ff10b11..beb303d8b 100755 --- a/src/storage/tx_storage/ob_tenant_freezer.cpp +++ b/src/storage/tx_storage/ob_tenant_freezer.cpp @@ -203,7 +203,7 @@ int ObTenantFreezer::ls_freeze_(ObLS *ls) ob_usleep(SLEEP_TS); } if (retry_times % 10 == 0) { - LOG_WARN("wait ls freeze finished cost too much time", K(retry_times)); + LOG_WARN_RET(OB_ERR_TOO_MUCH_TIME, "wait ls freeze finished cost too much time", K(retry_times)); } } while (ret == OB_ENTRY_EXIST); if (OB_NOT_RUNNING == ret) { @@ -426,7 +426,7 @@ int ObTenantFreezer::check_and_freeze_tx_data_() // skip freeze when there is another self freeze task is running if (++skip_count > 10) { int64_t cost_time = (FREEZE_TRIGGER_INTERVAL * skip_count); - LOG_WARN("A tx data tenant self freeze task cost too much time", + LOG_WARN_RET(OB_ERR_TOO_MUCH_TIME, "A tx data tenant self freeze task cost too much time", K(tenant_info_.tenant_id_), K(skip_count), K(cost_time)); } } else if (OB_FAIL(get_tenant_tx_data_mem_used_(tenant_tx_data_mem_used))) { @@ -479,7 +479,7 @@ int ObTenantFreezer::check_and_do_freeze() int64_t check_and_freeze_end_ts = ObTimeUtil::current_time(); int64_t spend_time = check_and_freeze_end_ts - check_and_freeze_start_ts; if (spend_time > 2_s) { - STORAGE_LOG(WARN, "check and do freeze spend too much time", K(spend_time)); + STORAGE_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "check and do freeze spend too much time", K(spend_time)); } return ret; } diff --git a/src/storage/tx_table/ob_tx_data_memtable_mgr.cpp b/src/storage/tx_table/ob_tx_data_memtable_mgr.cpp index 4ec35b27d..b21e76a6c 100755 --- a/src/storage/tx_table/ob_tx_data_memtable_mgr.cpp +++ b/src/storage/tx_table/ob_tx_data_memtable_mgr.cpp @@ -251,7 +251,7 @@ int ObTxDataMemtableMgr::freeze_() // waiting for all write operation done. if (TC_REACH_TIME_INTERVAL(TX_DATA_MEMTABLE_MAX_FREEZE_WAIT_TIME)) { int64_t freeze_wait_time_ms = (ObTimeUtil::fast_current_time() - start_ts) / 1000; - STORAGE_LOG(WARN, "freeze tx data memtable cost too much time. has wait for(ms) : ", + STORAGE_LOG_RET(WARN, OB_ERR_TOO_MUCH_TIME, "freeze tx data memtable cost too much time. has wait for(ms) : ", K(freeze_wait_time_ms), KPC(freeze_memtable)); } PAUSE(); diff --git a/src/storage/tx_table/ob_tx_table_define.cpp b/src/storage/tx_table/ob_tx_table_define.cpp index a0b127184..8ac42629d 100644 --- a/src/storage/tx_table/ob_tx_table_define.cpp +++ b/src/storage/tx_table/ob_tx_table_define.cpp @@ -395,7 +395,7 @@ bool ObCommitVersionsArray::is_valid() array_.at(i).start_scn_ > array_.at(i + 1).start_scn_ || array_.at(i).start_scn_ > array_.at(i).commit_version_) { bool_ret = false; - STORAGE_LOG(ERROR, "this commit version array is invalid", K(array_.at(i)), + STORAGE_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "this commit version array is invalid", K(array_.at(i)), K(array_.at(i + 1))); } } diff --git a/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/all_virtual_sys_parameter_stat.result b/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/all_virtual_sys_parameter_stat.result index 0cbc2c54c..5c56150b1 100644 --- a/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/all_virtual_sys_parameter_stat.result +++ b/tools/deploy/mysql_test/test_suite/inner_table/r/mysql/all_virtual_sys_parameter_stat.result @@ -63,6 +63,7 @@ default_enable_extended_rowid default_progressive_merge_num default_row_format devname +diag_syslog_per_error_limit disk_io_thread_count dtl_buffer_size dump_data_dictionary_to_log_interval diff --git a/tools/upgrade/tenant_upgrade_action.py b/tools/upgrade/tenant_upgrade_action.py index 33234cf22..fac3d7d28 100755 --- a/tools/upgrade/tenant_upgrade_action.py +++ b/tools/upgrade/tenant_upgrade_action.py @@ -33,7 +33,24 @@ def do_upgrade(conn, cur, timeout, user, pwd): logging.info(sql) cur.execute(sql) ####========******####======== actions begin ========####******========#### + upgrade_syslog_level(conn, cur) return + +def upgrade_syslog_level(conn, cur): + try: + cur.execute("""select svr_ip, svr_port, value from oceanbase.__all_virtual_sys_parameter_stat where name = 'syslog_level'""") + result = cur.fetchall() + for r in result: + logging.info("syslog level before upgrade: ip: {0}, port: {1}, value: {2}".format(r[0], r[1], r[2])) + cur.execute("""select count(*) cnt from oceanbase.__all_virtual_sys_parameter_stat where name = 'syslog_level' and value = 'INFO'""") + result = cur.fetchall() + info_cnt = result[0][0] + if info_cnt > 0: + actions.set_parameter(cur, "syslog_level", "WDIAG") + + except Exception, e: + logging.warn("upgrade syslog level failed!") + raise e ####========******####========= actions end =========####******========#### def query(cur, sql): diff --git a/tools/upgrade/upgrade_post.py b/tools/upgrade/upgrade_post.py index 696592078..e02339c7d 100755 --- a/tools/upgrade/upgrade_post.py +++ b/tools/upgrade/upgrade_post.py @@ -1271,7 +1271,24 @@ # logging.info(sql) # cur.execute(sql) #####========******####======== actions begin ========####******========#### +# upgrade_syslog_level(conn, cur) # return +# +#def upgrade_syslog_level(conn, cur): +# try: +# cur.execute("""select svr_ip, svr_port, value from oceanbase.__all_virtual_sys_parameter_stat where name = 'syslog_level'""") +# result = cur.fetchall() +# for r in result: +# logging.info("syslog level before upgrade: ip: {0}, port: {1}, value: {2}".format(r[0], r[1], r[2])) +# cur.execute("""select count(*) cnt from oceanbase.__all_virtual_sys_parameter_stat where name = 'syslog_level' and value = 'INFO'""") +# result = cur.fetchall() +# info_cnt = result[0][0] +# if info_cnt > 0: +# actions.set_parameter(cur, "syslog_level", "WDIAG") +# +# except Exception, e: +# logging.warn("upgrade syslog level failed!") +# raise e #####========******####========= actions end =========####******========#### # #def query(cur, sql): diff --git a/tools/upgrade/upgrade_pre.py b/tools/upgrade/upgrade_pre.py index aa9bbe874..202cbe5de 100755 --- a/tools/upgrade/upgrade_pre.py +++ b/tools/upgrade/upgrade_pre.py @@ -1271,7 +1271,24 @@ # logging.info(sql) # cur.execute(sql) #####========******####======== actions begin ========####******========#### +# upgrade_syslog_level(conn, cur) # return +# +#def upgrade_syslog_level(conn, cur): +# try: +# cur.execute("""select svr_ip, svr_port, value from oceanbase.__all_virtual_sys_parameter_stat where name = 'syslog_level'""") +# result = cur.fetchall() +# for r in result: +# logging.info("syslog level before upgrade: ip: {0}, port: {1}, value: {2}".format(r[0], r[1], r[2])) +# cur.execute("""select count(*) cnt from oceanbase.__all_virtual_sys_parameter_stat where name = 'syslog_level' and value = 'INFO'""") +# result = cur.fetchall() +# info_cnt = result[0][0] +# if info_cnt > 0: +# actions.set_parameter(cur, "syslog_level", "WDIAG") +# +# except Exception, e: +# logging.warn("upgrade syslog level failed!") +# raise e #####========******####========= actions end =========####******========#### # #def query(cur, sql): diff --git a/unittest/libobcdc/test_ob_log_dlist.cpp b/unittest/libobcdc/test_ob_log_dlist.cpp index 24a91219a..82bab4716 100644 --- a/unittest/libobcdc/test_ob_log_dlist.cpp +++ b/unittest/libobcdc/test_ob_log_dlist.cpp @@ -82,7 +82,7 @@ bool TestObLogDlist::is_dlist_correct(const int64_t start_value, DeriveDlistNode int64_t expect_val = start_value; if (OB_ISNULL(head) || OB_NOT_NULL(head->get_prev())) { - LOG_ERROR("invalid argument"); + LOG_ERROR_RET(OB_INVALID_ARGUMENT, "invalid argument"); bool_ret = false; } else if (OB_ISNULL(head->get_next())) { // single node if (expect_val != head->value_) { diff --git a/unittest/logservice/mock_logservice_container/mock_election_user.h b/unittest/logservice/mock_logservice_container/mock_election_user.h index c2f26401c..34cdc5b89 100644 --- a/unittest/logservice/mock_logservice_container/mock_election_user.h +++ b/unittest/logservice/mock_logservice_container/mock_election_user.h @@ -216,7 +216,7 @@ private: auto buffer = TH_BUFFER; int ret = common::OB_SUCCESS; if (MSG_DELAY == 0) { - ret = THREAD_POOL.commit_task_ignore_ret([buffer, election, this]() mutable { + ret = THREAD_POOL.commit_task_ignore_ret([buffer, election, ret, this]() mutable { int64_t begin = ObClockGenerator::getRealClock(); this->decode_and_process_buffer(buffer, election); int64_t end = ObClockGenerator::getRealClock(); @@ -225,7 +225,7 @@ private: } }); } else { - ret = TIMER.schedule_task_ignore_handle_after(MSG_DELAY, [buffer, election, this]() mutable { + ret = TIMER.schedule_task_ignore_handle_after(MSG_DELAY, [buffer, election, ret, this]() mutable { int64_t begin = ObClockGenerator::getRealClock(); this->decode_and_process_buffer(buffer, election); int64_t end = ObClockGenerator::getRealClock(); @@ -238,7 +238,7 @@ private: assert(ret == OB_SUCCESS); // ELECT_LOG(INFO, "send message success", K(msg)); } else { - ELECT_LOG(WARN, "send message failed", K(msg)); + ELECT_LOG_RET(WARN, OB_ERR_UNEXPECTED, "send message failed", K(msg)); } } unordered_map, Election*> map_; diff --git a/unittest/logservice/test_fixed_sliding_window.cpp b/unittest/logservice/test_fixed_sliding_window.cpp index 4e2241c31..df84201c9 100644 --- a/unittest/logservice/test_fixed_sliding_window.cpp +++ b/unittest/logservice/test_fixed_sliding_window.cpp @@ -83,7 +83,7 @@ public: void run() { if (0 != pthread_create(&thread_, NULL, pthread_routine_, this)){ - PALF_LOG(ERROR, "create thread fail", K(thread_)); + PALF_LOG_RET(ERROR, OB_ERR_SYS, "create thread fail", K(thread_)); } else { PALF_LOG(INFO, "create thread success", K(thread_)); } diff --git a/unittest/logservice/test_log_sliding_window.cpp b/unittest/logservice/test_log_sliding_window.cpp index 0bdc45686..8a42f9e6a 100644 --- a/unittest/logservice/test_log_sliding_window.cpp +++ b/unittest/logservice/test_log_sliding_window.cpp @@ -98,7 +98,7 @@ void TestLogSlidingWindow::SetUp() ObMemAttr attr(tenant_id, ObModIds::OB_TENANT_MUTIL_ALLOCATOR); void *buf = ob_malloc(sizeof(common::ObTenantMutilAllocator), attr); if (NULL == buf) { - CLOG_LOG(WARN, "alloc memory failed"); + CLOG_LOG_RET(WARN, OB_ALLOCATE_MEMORY_FAILED, "alloc memory failed"); OB_ASSERT(FALSE); } alloc_mgr_ = new (buf) common::ObTenantMutilAllocator(tenant_id); diff --git a/unittest/logservice/test_lsn_allocator.cpp b/unittest/logservice/test_lsn_allocator.cpp index b2e872e1a..d236e7966 100644 --- a/unittest/logservice/test_lsn_allocator.cpp +++ b/unittest/logservice/test_lsn_allocator.cpp @@ -314,7 +314,7 @@ public: log_size_ = log_size_array[th_idx % LOG_LOG_CNT]; th_idx_ = th_idx; if (0 != pthread_create(&thread_, NULL, routine, this)){ - PALF_LOG(ERROR, "create thread fail", K(thread_)); + PALF_LOG_RET(ERROR, OB_ERR_SYS, "create thread fail", K(thread_)); } else { PALF_LOG(INFO, "create thread success", K(thread_), K(th_idx_), K(log_size_)); } diff --git a/unittest/logservice/test_ob_election.cpp b/unittest/logservice/test_ob_election.cpp index 1ae007eb4..6f4fa32d8 100644 --- a/unittest/logservice/test_ob_election.cpp +++ b/unittest/logservice/test_ob_election.cpp @@ -137,7 +137,7 @@ vector create_election_group(const int election_num, const vecto allowed_be_leader[index], 1, [](const int64_t, const ObAddr &){ return OB_SUCCESS; }, - [op](Election *election, ObRole before, ObRole after, RoleChangeReason reason) { + [op, ret](Election *election, ObRole before, ObRole after, RoleChangeReason reason) { if (before == ObRole::FOLLOWER && after == ObRole::LEADER) { ELECT_LOG(INFO, "i become LEADER", K(obj_to_string(reason)), KPC(election)); op(); diff --git a/unittest/logservice/test_ob_election_with_priority.cpp b/unittest/logservice/test_ob_election_with_priority.cpp index 8377f8a9f..613320c9e 100644 --- a/unittest/logservice/test_ob_election_with_priority.cpp +++ b/unittest/logservice/test_ob_election_with_priority.cpp @@ -153,7 +153,7 @@ vector create_election_group(vector &v_pri THREAD_POOL.commit_task_ignore_ret([election, dest_addr]() { election->change_leader_to(dest_addr); }); return OB_SUCCESS; }, - [op](Election *election, ObRole before, ObRole after, RoleChangeReason reason) { + [op, ret](Election *election, ObRole before, ObRole after, RoleChangeReason reason) { if (before == ObRole::FOLLOWER && after == ObRole::LEADER) { ELECT_LOG(INFO, "i become LEADER", K(obj_to_string(reason)), KPC(election)); op(); diff --git a/unittest/observer/table/test_hfilter_parser.cpp b/unittest/observer/table/test_hfilter_parser.cpp index 0f324ce20..6bbcddaa7 100644 --- a/unittest/observer/table/test_hfilter_parser.cpp +++ b/unittest/observer/table/test_hfilter_parser.cpp @@ -68,7 +68,7 @@ bool TestHFilterParser::is_prefix_equal(const char* tmp_file, const char* result void TestHFilterParser::is_equal_content(const char* tmp_file, const char* result_file) { bool is_equal = is_prefix_equal(tmp_file, result_file) & is_prefix_equal(result_file, tmp_file); - _OB_LOG(WARN, "result file is %s, expect file is %s, is_equal:%d", tmp_file, result_file, is_equal); + _OB_LOG_RET(WARN, OB_SUCCESS, "result file is %s, expect file is %s, is_equal:%d", tmp_file, result_file, is_equal); if (is_equal) { std::remove(tmp_file); } else { diff --git a/unittest/share/scheduler/test_dag_scheduler.cpp b/unittest/share/scheduler/test_dag_scheduler.cpp index d64f527b0..bbf6c6384 100644 --- a/unittest/share/scheduler/test_dag_scheduler.cpp +++ b/unittest/share/scheduler/test_dag_scheduler.cpp @@ -391,7 +391,7 @@ public: if (NULL != tester_) { tester_->stop(); } - COMMON_LOG(ERROR, "FATAL ERROR!!!", K_(expect), K(op_.value()), K_(expect_ret), + COMMON_LOG_RET(ERROR, OB_ERROR, "FATAL ERROR!!!", K_(expect), K(op_.value()), K_(expect_ret), K(get_dag_ret()), K_(id)); common::right_to_die_or_duty_to_live(); } @@ -407,7 +407,7 @@ public: tester_ = tester; ObAddr addr(1683068975,9999); if (OB_SUCCESS != (ObSysTaskStatMgr::get_instance().set_self_addr(addr))) { - COMMON_LOG(WARN, "failed to add sys task", K(addr)); + COMMON_LOG_RET(WARN, OB_ERROR, "failed to add sys task", K(addr)); } return OB_SUCCESS; } diff --git a/unittest/sql/engine/aggregate/test_hash_distinct.cpp b/unittest/sql/engine/aggregate/test_hash_distinct.cpp index 113c5fb27..311146d8c 100644 --- a/unittest/sql/engine/aggregate/test_hash_distinct.cpp +++ b/unittest/sql/engine/aggregate/test_hash_distinct.cpp @@ -112,7 +112,7 @@ public: ASSERT_EQ(0, item.hold_); lib::get_tenant_label_memory(tenant_id_, ObNewModIds::TEST3, item); ASSERT_EQ(0, item.hold_); - SQL_ENG_LOG(WARN,"TearDown finished"); + SQL_ENG_LOG(INFO,"TearDown finished"); } @@ -194,7 +194,7 @@ public: hit_val[v] = '1'; } if (n != i) { - SQL_ENG_LOG(WARN, "already hitted", K(i), K(v)); + SQL_ENG_LOG_RET(WARN, OB_ERROR, "already hitted", K(i), K(v)); } ASSERT_EQ(n, i); ASSERT_EQ(0, MEMCMP(hit_val, hit_val_base, sizeof(char) * n)); diff --git a/unittest/sql/engine/basic/test_chunk_datum_store.cpp b/unittest/sql/engine/basic/test_chunk_datum_store.cpp index b9d20ece5..c79bc7170 100644 --- a/unittest/sql/engine/basic/test_chunk_datum_store.cpp +++ b/unittest/sql/engine/basic/test_chunk_datum_store.cpp @@ -202,7 +202,7 @@ public: blocksstable::ObTmpFileManager::get_instance().destroy(); blocksstable::TestDataFilePrepare::TearDown(); - LOG_WARN("TearDown finished", K_(rs)); + LOG_INFO("TearDown finished", K_(rs)); } void gen_row(int64_t row_id, int64_t idx = 0) @@ -245,13 +245,13 @@ public: if (verify_all) { expr_datum_1->is_null(); if (0 != strncmp(str_buf_, expr_datum_2->ptr_, expr_datum_2->len_)) { - LOG_WARN("verify failed", K(v), K(n)); + LOG_WARN_RET(OB_ERROR, "verify failed", K(v), K(n)); } ASSERT_EQ(0, strncmp(str_buf_, expr_datum_2->ptr_, expr_datum_2->len_)); } if (n >= 0) { if (n != v) { - LOG_WARN("verify failed", K(n), K(v)); + LOG_WARN_RET(OB_ERROR, "verify failed", K(n), K(v)); } ASSERT_EQ(n, v); } @@ -737,7 +737,7 @@ TEST_F(TestChunkDatumStore, disk) int64_t write_time = 0; int64_t round = 500; int64_t rows = round * 10000; - LOG_WARN("starting write disk test: append rows", K(rows)); + LOG_INFO("starting write disk test: append rows", K(rows)); ObChunkDatumStore rs; ObChunkDatumStore::Iterator it; ASSERT_EQ(OB_SUCCESS, rs.init(0, tenant_id_, ctx_id_, label_)); @@ -757,13 +757,13 @@ TEST_F(TestChunkDatumStore, disk) LOG_INFO("disk write:", K(rows), K(write_time)); ASSERT_EQ(OB_SUCCESS, rs.finish_add_row()); - LOG_WARN("mem and disk after finish", K(rows), K(rs.get_mem_hold()), + LOG_INFO("mem and disk after finish", K(rows), K(rs.get_mem_hold()), K(rs.get_mem_used()), K(rs.get_file_size())); it.reset(); begin = ObTimeUtil::current_time(); CALL(verify_n_rows, rs, it, rs.get_row_cnt(), true); - LOG_WARN("disk scan time:", K(rows), K(ObTimeUtil::current_time() - begin)); + LOG_INFO("disk scan time:", K(rows), K(ObTimeUtil::current_time() - begin)); it.reset(); rs.reset(); } @@ -775,7 +775,7 @@ TEST_F(TestChunkDatumStore, disk_with_chunk) int64_t round = 2; int64_t cnt = 10000; int64_t rows = round * cnt; - LOG_WARN("starting write disk test: append rows", K(rows)); + LOG_INFO("starting write disk test: append rows", K(rows)); ObChunkDatumStore rs; ObChunkDatumStore::Iterator it; ASSERT_EQ(OB_SUCCESS, rs.init(0, tenant_id_, ctx_id_, label_)); @@ -949,7 +949,7 @@ TEST_F(TestChunkDatumStore, test_only_disk_data) int64_t round = 2; int64_t cnt = 10000; int64_t rows = round * cnt; - LOG_WARN("starting write disk test: append rows", K(rows)); + LOG_INFO("starting write disk test: append rows", K(rows)); ObChunkDatumStore rs; ASSERT_EQ(OB_SUCCESS, rs.alloc_dir_id()); ObChunkDatumStore::Iterator it; @@ -976,7 +976,7 @@ TEST_F(TestChunkDatumStore, test_only_disk_data1) int64_t round = 2; int64_t cnt = 10000; int64_t rows = round * cnt; - LOG_WARN("starting write disk test: append rows", K(rows)); + LOG_INFO("starting write disk test: append rows", K(rows)); ObChunkDatumStore rs; ASSERT_EQ(OB_SUCCESS, rs.alloc_dir_id()); ObChunkDatumStore::Iterator it; diff --git a/unittest/sql/engine/basic/test_chunk_row_store.cpp b/unittest/sql/engine/basic/test_chunk_row_store.cpp index 537e9ddf8..709e36ac8 100644 --- a/unittest/sql/engine/basic/test_chunk_row_store.cpp +++ b/unittest/sql/engine/basic/test_chunk_row_store.cpp @@ -103,7 +103,7 @@ public: blocksstable::ObTmpFileManager::get_instance().destroy(); blocksstable::TestDataFilePrepare::TearDown(); - LOG_WARN("TearDown finished", K_(rs)); + LOG_INFO("TearDown finished", K_(rs)); } ObNewRow &gen_row(int64_t row_id) @@ -273,18 +273,18 @@ TEST_F(TestChunkRowStore, basic) { int ret = OB_SUCCESS; - LOG_WARN("starting basic test: append 3000 rows"); + LOG_INFO("starting basic test: append 3000 rows"); CALL(append_rows, 3000); // approximate 1MB, no need to dump CALL(verify_n_rows, rs_.get_row_cnt(), true); LOG_WARN("basic test: varified rows", K(rs_.get_row_cnt())); it_.reset(); - LOG_WARN("starting basic test: append 10000 rows"); + LOG_INFO("starting basic test: append 10000 rows"); CALL(append_rows, 10000); //need to dump rs_.finish_add_row(); LOG_WARN("mem", K(rs_.get_mem_hold()), K(rs_.get_mem_used())); ASSERT_EQ(13000, rs_.get_row_cnt()); - LOG_WARN("starting basic test: verify rows"); + LOG_INFO("starting basic test: verify rows"); CALL(verify_n_rows, rs_.get_row_cnt() - 1, true); ret = it_.get_next_row(row_verify_); @@ -300,7 +300,7 @@ TEST_F(TestChunkRowStore, basic) rs_.reset(); - LOG_WARN("starting basic test: big row 20000 rows"); + LOG_INFO("starting basic test: big row 20000 rows"); enable_big_row_ = true; ret = rs_.init(1L << 20, tenant_id_, ctx_id_, label_); ASSERT_EQ(OB_SUCCESS, ret); @@ -327,7 +327,7 @@ TEST_F(TestChunkRowStore, multi_iter) ret = rs.init(1 << 20, tenant_id_, ctx_id_, label_); ASSERT_EQ(OB_SUCCESS, ret); - LOG_WARN("starting basic test: append 3000 rows"); + LOG_INFO("starting basic test: append 3000 rows"); CALL(append_rows, rs, total); // approximate 1MB, no need to dump rs.finish_add_row(); LOG_WARN("Multi_iter", K_(rs.mem_hold), K_(rs.mem_used)); @@ -624,7 +624,7 @@ TEST_F(TestChunkRowStore, test_copy_row) ASSERT_EQ(OB_SUCCESS, rs.alloc_dir_id()); ObChunkRowStore::Iterator it; const ObChunkRowStore::StoredRow *sr; - LOG_WARN("starting mem_perf test: append rows", K(rows)); + LOG_INFO("starting mem_perf test: append rows", K(rows)); int64_t begin = ObTimeUtil::current_time(); ret = rs.init(0, tenant_id_, ctx_id_, label_); ASSERT_EQ(OB_SUCCESS, ret); @@ -640,7 +640,7 @@ TEST_F(TestChunkRowStore, mem_perf) ObChunkRowStore rs; ASSERT_EQ(OB_SUCCESS, rs.alloc_dir_id()); ObChunkRowStore::Iterator it; - LOG_WARN("starting mem_perf test: append rows", K(rows)); + LOG_INFO("starting mem_perf test: append rows", K(rows)); int64_t begin = ObTimeUtil::current_time(); ret = rs.init(0, tenant_id_, ctx_id_, label_); ASSERT_EQ(OB_SUCCESS, ret); @@ -795,7 +795,7 @@ TEST_F(TestChunkRowStore, disk) int64_t write_time = 0; int64_t round = 500; int64_t rows = round * 10000; - LOG_WARN("starting write disk test: append rows", K(rows)); + LOG_INFO("starting write disk test: append rows", K(rows)); ObChunkRowStore rs; ASSERT_EQ(OB_SUCCESS, rs.alloc_dir_id()); ObChunkRowStore::Iterator it; @@ -810,16 +810,16 @@ TEST_F(TestChunkRowStore, disk) write_time += common::ObTimeUtil::current_time() - begin; } - LOG_WARN("mem and disk", K(rows), K(rs.get_mem_hold()), K(rs.get_mem_used()), K(rs.get_file_size())); - LOG_WARN("disk write:", K(rows), K(write_time)); + LOG_INFO("mem and disk", K(rows), K(rs.get_mem_hold()), K(rs.get_mem_used()), K(rs.get_file_size())); + LOG_INFO("disk write:", K(rows), K(write_time)); ASSERT_EQ(OB_SUCCESS, rs.finish_add_row()); - LOG_WARN("mem and disk after finish", K(rows), K(rs.get_mem_hold()), K(rs.get_mem_used()), K(rs.get_file_size())); + LOG_INFO("mem and disk after finish", K(rows), K(rs.get_mem_hold()), K(rs.get_mem_used()), K(rs.get_file_size())); it.reset(); begin = ObTimeUtil::current_time(); CALL(verify_n_rows, rs, it, rs.get_row_cnt(), true); - LOG_WARN("disk scan time:", K(rows), K(ObTimeUtil::current_time() - begin)); + LOG_INFO("disk scan time:", K(rows), K(ObTimeUtil::current_time() - begin)); it.reset(); rs.reset(); } @@ -832,7 +832,7 @@ TEST_F(TestChunkRowStore, disk_with_chunk) int64_t round = 2; int64_t cnt = 10000; int64_t rows = round * cnt; - LOG_WARN("starting write disk test: append rows", K(rows)); + LOG_INFO("starting write disk test: append rows", K(rows)); ObChunkRowStore rs; ASSERT_EQ(OB_SUCCESS, rs.alloc_dir_id()); ObChunkRowStore::Iterator it; @@ -847,51 +847,51 @@ TEST_F(TestChunkRowStore, disk_with_chunk) write_time += common::ObTimeUtil::current_time() - begin; } - LOG_WARN("mem and disk", K(rows), K(rs.get_mem_hold()), K(rs.get_mem_used()), K(rs.get_file_size())); - LOG_WARN("disk write:", K(rows), K(write_time)); + LOG_INFO("mem and disk", K(rows), K(rs.get_mem_hold()), K(rs.get_mem_used()), K(rs.get_file_size())); + LOG_INFO("disk write:", K(rows), K(write_time)); ASSERT_EQ(OB_SUCCESS, rs.finish_add_row()); - LOG_WARN("mem and disk after finish", K(rows), K(rs.get_mem_hold()), K(rs.get_mem_used()), K(rs.get_file_size()), K(rs.max_blk_size_), K(rs.min_blk_size_), K(rs.n_block_in_file_)); + LOG_INFO("mem and disk after finish", K(rows), K(rs.get_mem_hold()), K(rs.get_mem_used()), K(rs.get_file_size()), K(rs.max_blk_size_), K(rs.min_blk_size_), K(rs.n_block_in_file_)); it.reset(); begin = ObTimeUtil::current_time(); CALL(verify_n_rows, rs, it, rs.get_row_cnt(), true); - LOG_WARN("disk without chunk scan time:", K(rows), K(ObTimeUtil::current_time() - begin)); + LOG_INFO("disk without chunk scan time:", K(rows), K(ObTimeUtil::current_time() - begin)); it.reset(); begin = ObTimeUtil::current_time(); CALL(verify_n_rows, rs, it, rs.get_row_cnt(), true); - LOG_WARN("disk without chunk scan time2:", K(rows), K(ObTimeUtil::current_time() - begin)); + LOG_INFO("disk without chunk scan time2:", K(rows), K(ObTimeUtil::current_time() - begin)); it.reset(); begin = ObTimeUtil::current_time(); CALL(verify_n_rows, rs, it, rs.get_row_cnt(), true, 1L << 20); - LOG_WARN("disk with chunk scan time:", K(rows), K(ObTimeUtil::current_time() - begin)); + LOG_INFO("disk with chunk scan time:", K(rows), K(ObTimeUtil::current_time() - begin)); it.reset(); begin = ObTimeUtil::current_time(); CALL(verify_n_rows, rs, it, rs.get_row_cnt(), true, 2L << 20); - LOG_WARN("disk with chunk scan time:", K(rows), K(ObTimeUtil::current_time() - begin)); + LOG_INFO("disk with chunk scan time:", K(rows), K(ObTimeUtil::current_time() - begin)); it.reset(); begin = ObTimeUtil::current_time(); CALL(verify_n_rows, rs, it, rs.get_row_cnt(), true, 8L << 20); - LOG_WARN("disk with chunk scan time:", K(rows), K(ObTimeUtil::current_time() - begin)); + LOG_INFO("disk with chunk scan time:", K(rows), K(ObTimeUtil::current_time() - begin)); it.reset(); begin = ObTimeUtil::current_time(); CALL(verify_n_rows, rs, it, rs.get_row_cnt(), true, 10L << 20); - LOG_WARN("disk with chunk scan time:", K(rows), K(ObTimeUtil::current_time() - begin)); + LOG_INFO("disk with chunk scan time:", K(rows), K(ObTimeUtil::current_time() - begin)); it.reset(); begin = ObTimeUtil::current_time(); CALL(verify_n_rows, rs, it, rs.get_row_cnt(), true, 16L << 20); - LOG_WARN("disk with chunk scan time:", K(rows), K(ObTimeUtil::current_time() - begin)); + LOG_INFO("disk with chunk scan time:", K(rows), K(ObTimeUtil::current_time() - begin)); it.reset(); begin = ObTimeUtil::current_time(); CALL(verify_n_rows, rs, it, rs.get_row_cnt(), true, 20L << 20); - LOG_WARN("disk with chunk scan time:", K(rows), K(ObTimeUtil::current_time() - begin)); + LOG_INFO("disk with chunk scan time:", K(rows), K(ObTimeUtil::current_time() - begin)); it.reset(); rs.reset(); @@ -902,7 +902,7 @@ TEST_F(TestChunkRowStore, disk_with_chunk) //case from oarowstore // TEST_F(TestChunkRowStore, start_dump_by_total_mem_used) // { -// LOG_WARN("starting dump mem test: append rows", K(500000)); +// LOG_INFO("starting dump mem test: append rows", K(500000)); // int ret = OB_SUCCESS; // ObChunkRowStore rs; // ASSERT_EQ(OB_SUCCESS, rs.alloc_dir_id()); @@ -1047,13 +1047,13 @@ TEST_F(TestChunkRowStore, row_extend_row) int64_t write_time = 0; int64_t round = 500; int64_t rows = round * 10000; - LOG_WARN("starting write disk test: append rows", K(rows)); + LOG_INFO("starting write disk test: append rows", K(rows)); ObChunkRowStore rs; ASSERT_EQ(OB_SUCCESS, rs.alloc_dir_id()); ObChunkRowStore::Iterator it; ASSERT_EQ(OB_SUCCESS, rs.init(0, tenant_id_, ctx_id_, label_, true, ObChunkRowStore::WITHOUT_PROJECTOR, 8)); - LOG_WARN("starting basic test: append 3000 rows"); + LOG_INFO("starting basic test: append 3000 rows"); int64_t ret = OB_SUCCESS; int64_t base = rs.get_row_cnt(); ObChunkRowStore::StoredRow* sr = NULL; @@ -1096,7 +1096,7 @@ TEST_F(TestChunkRowStore, test_both_disk_and_memory) int64_t round = 2; int64_t cnt = 100; int64_t rows = round * cnt; - LOG_WARN("starting write disk test: append rows", K(rows)); + LOG_INFO("starting write disk test: append rows", K(rows)); ObChunkRowStore rs; ASSERT_EQ(OB_SUCCESS, rs.alloc_dir_id()); ObChunkRowStore::Iterator it; @@ -1123,7 +1123,7 @@ TEST_F(TestChunkRowStore, test_only_disk_data) int64_t round = 2; int64_t cnt = 100; int64_t rows = round * cnt; - LOG_WARN("starting write disk test: append rows", K(rows)); + LOG_INFO("starting write disk test: append rows", K(rows)); ObChunkRowStore rs; ASSERT_EQ(OB_SUCCESS, rs.alloc_dir_id()); ObChunkRowStore::Iterator it; diff --git a/unittest/sql/engine/monitoring_dump/test_monitoring_dump.cpp b/unittest/sql/engine/monitoring_dump/test_monitoring_dump.cpp index 910eb70a2..f70918ba9 100644 --- a/unittest/sql/engine/monitoring_dump/test_monitoring_dump.cpp +++ b/unittest/sql/engine/monitoring_dump/test_monitoring_dump.cpp @@ -244,7 +244,7 @@ void ObMonitoringDumpTest::is_equal_content(const char* tmp_file, const char* re EXPECT_EQ(true, if_expected.is_open()); std::istream_iterator it_expected(if_expected); bool is_equal = std::equal(it_test, std::istream_iterator(), it_expected); - _OB_LOG(WARN, "result file is %s, expect file is %s, is_equal:%d", tmp_file, result_file, is_equal); + _OB_LOG(INFO, "result file is %s, expect file is %s, is_equal:%d", tmp_file, result_file, is_equal); if (is_equal) { std::remove(tmp_file); } else if (test::clp.record_test_result) { diff --git a/unittest/sql/optimizer/test_optimizer_utils.cpp b/unittest/sql/optimizer/test_optimizer_utils.cpp index 5f5096ffe..6c4ebbf1f 100644 --- a/unittest/sql/optimizer/test_optimizer_utils.cpp +++ b/unittest/sql/optimizer/test_optimizer_utils.cpp @@ -483,7 +483,7 @@ void TestOptimizerUtils::formalize_tmp_file(const char *tmp_file) std::string cmd_string = "./remove_pointer.py "; cmd_string += tmp_file; if (0 != system(cmd_string.c_str())) { - LOG_ERROR("fail formalize tmp file", K(cmd_string.c_str())); + LOG_ERROR_RET(OB_ERR_SYS, "fail formalize tmp file", K(cmd_string.c_str())); } } diff --git a/unittest/sql/parser/test_fast_parser.cpp b/unittest/sql/parser/test_fast_parser.cpp index 763811dfa..7cc9d0751 100644 --- a/unittest/sql/parser/test_fast_parser.cpp +++ b/unittest/sql/parser/test_fast_parser.cpp @@ -86,6 +86,7 @@ bool TestFastParser::compare_parser_result( ParamList *p_list, const int64_t param_num) { + int ret = OB_SUCCESS; int64_t cmp_param_num = parse_result.param_node_num_; char *cmp_no_param_sql_ptr = parse_result.no_param_sql_; int64_t cmp_no_param_sql_len = parse_result.no_param_sql_len_; @@ -209,7 +210,7 @@ int TestFastParser::parse(const ObString &sql) int ret2 = ObFastParser::parse(sql, fp_ctx, allocator_, no_param_sql_ptr, no_param_sql_len, p_list, param_num); if ((OB_SUCCESS == ret1) != (OB_SUCCESS == ret2)) { - SQL_PC_LOG(ERROR, "parser results are not equal", K(ret1), K(ret2), K(sql)); + SQL_PC_LOG_RET(ERROR, OB_ERROR, "parser results are not equal", K(ret1), K(ret2), K(sql)); return OB_ERROR; } if (OB_SUCCESS == ret1) { diff --git a/unittest/sql/resolver/ddl_resolver.cpp b/unittest/sql/resolver/ddl_resolver.cpp index 1d889a010..67e17edb9 100644 --- a/unittest/sql/resolver/ddl_resolver.cpp +++ b/unittest/sql/resolver/ddl_resolver.cpp @@ -104,7 +104,7 @@ TEST_F(TestResolver, basic_test) std::ifstream if_sql(file_name[0]); if (!if_sql.is_open()){ - _OB_LOG(ERROR,"file %s not exist!", file_name[0]); + _OB_LOG_RET(ERROR,OB_ERR_SYS, "file %s not exist!", file_name[0]); continue; } ASSERT_TRUE(if_sql.is_open()); diff --git a/unittest/sql/rewrite/test_query_range.cpp b/unittest/sql/rewrite/test_query_range.cpp index 41bbcd7a2..30952eae4 100644 --- a/unittest/sql/rewrite/test_query_range.cpp +++ b/unittest/sql/rewrite/test_query_range.cpp @@ -508,7 +508,7 @@ void ObQueryRangeTest::get_query_range(const char *sql_expr, const char *&json_e resolve_expr(final_sql, expr, range_columns, params, CS_TYPE_UTF8MB4_GENERAL_CI, CS_TYPE_UTF8MB4_GENERAL_CI); OB_ASSERT(expr); //_OB_LOG(INFO,"-----%s\n", final_sql); - _OB_LOG(WARN, "expr: %s", CSJ(expr)); + _OB_LOG(INFO, "expr: %s", CSJ(expr)); query_range.reset(); OB_LOG(INFO, "get query range sql", K(final_sql)); OK(pre_query_range.preliminary_extract_query_range(range_columns, expr, dtc_params, &exec_ctx_)); diff --git a/unittest/sql/test_sql_utils.cpp b/unittest/sql/test_sql_utils.cpp index 77acfc84c..2c9bfa7a1 100644 --- a/unittest/sql/test_sql_utils.cpp +++ b/unittest/sql/test_sql_utils.cpp @@ -56,7 +56,7 @@ void load_all_sql_files(const char* directory_name) { DIR *dp = NULL; if((dp = opendir(directory_name)) == NULL) { - _OB_LOG(ERROR, "error open file, %s", directory_name); + _OB_LOG_RET(ERROR, OB_ERR_SYS, "error open file, %s", directory_name); return; } struct dirent *dirp = NULL; @@ -333,7 +333,7 @@ void TestSqlUtils::do_load_sql( //ASSERT_FALSE(HasFatalFailure()) << "query_str: " << query_str << std::endl; if (!stmt) { // expect error case - _OB_LOG(WARN, "fail to resolve query_str: %s", query_str); + _OB_LOG_RET(WARN, OB_ERROR, "fail to resolve query_str: %s", query_str); } else if (OB_SUCCESS != expect_error) { } else { if (stmt->get_stmt_type() == stmt::T_CREATE_TABLE) { @@ -877,7 +877,7 @@ void TestSqlUtils::generate_index_schema(ObCreateIndexStmt &stmt) OK(add_table_schema(table_schema)); OK(schema_service_->get_schema_guard(schema_guard_, schema_version_)); }else{ - _OB_LOG(ERROR, "no data table found for tid=%lu", data_table_schema->get_table_id()); + _OB_LOG_RET(ERROR, OB_ERROR, "no data table found for tid=%lu", data_table_schema->get_table_id()); } _OB_LOG(DEBUG, "index_schema: %s", to_cstring(index_schema)); } @@ -915,7 +915,7 @@ void TestSqlUtils::is_equal_content(const char* tmp_file, const char* result_fil EXPECT_EQ(true, if_expected.is_open()); std::istream_iterator it_expected(if_expected); bool is_equal = std::equal(it_test, std::istream_iterator(), it_expected); - _OB_LOG(WARN, "result file is %s, expect file is %s, is_equal:%d", tmp_file, result_file, is_equal); + _OB_LOG(INFO, "result file is %s, expect file is %s, is_equal:%d", tmp_file, result_file, is_equal); if (is_equal) { std::remove(tmp_file); } else if (clp.record_test_result) { diff --git a/unittest/storage/backup/test_backup.h b/unittest/storage/backup/test_backup.h index 16d8809b9..ae31ef65f 100644 --- a/unittest/storage/backup/test_backup.h +++ b/unittest/storage/backup/test_backup.h @@ -160,7 +160,7 @@ static bool cmp(const common::ObIArray &lhs_list, const common::ObIArray & LOG_INFO("compare summary", "lhs_count", lhs_list.count(), "rhs_count", rhs_list.count()); if (lhs_list.count() != rhs_list.count()) { bret = false; - LOG_WARN("count not match", K(lhs_list.count()), K(rhs_list.count())); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "count not match", K(lhs_list.count()), K(rhs_list.count())); } else { for (int64_t i = 0; i < lhs_list.count(); ++i) { const T &lhs = lhs_list.at(i); @@ -169,7 +169,7 @@ static bool cmp(const common::ObIArray &lhs_list, const common::ObIArray & bret = true; } else { bret = false; - LOG_WARN("value not match", K(lhs), K(rhs)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "value not match", K(lhs), K(rhs)); break; } } diff --git a/unittest/storage/backup/test_backup_index_cache.cpp b/unittest/storage/backup/test_backup_index_cache.cpp index 6d2fc82e0..a1c0758cb 100644 --- a/unittest/storage/backup/test_backup_index_cache.cpp +++ b/unittest/storage/backup/test_backup_index_cache.cpp @@ -84,10 +84,10 @@ static bool cmp_backup_index_cache_value(const ObBackupIndexCacheValue *lhs, con bool bret = true; if (OB_ISNULL(lhs) || OB_ISNULL(rhs)) { bret = false; - LOG_WARN("lhs or rhs is null", KP(lhs), KP(rhs)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "lhs or rhs is null", KP(lhs), KP(rhs)); } else if (lhs->len() != rhs->len()) { bret = false; - LOG_WARN("lhs and rhs not equal", K(lhs), K(rhs)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "lhs and rhs not equal", K(lhs), K(rhs)); } else { const int64_t len = lhs->len(); const char *lhs_buf = lhs->buf(); @@ -95,7 +95,7 @@ static bool cmp_backup_index_cache_value(const ObBackupIndexCacheValue *lhs, con for (int64_t i = 0; i < len; ++i) { if (lhs_buf[i] != rhs_buf[i]) { bret = false; - LOG_WARN("buf content is not same", K(lhs_buf[i]), K(rhs_buf[i]), K(i)); + LOG_WARN_RET(OB_ERR_UNEXPECTED, "buf content is not same", K(lhs_buf[i]), K(rhs_buf[i]), K(i)); break; } } diff --git a/unittest/storage/blocksstable/ob_data_file_prepare.h b/unittest/storage/blocksstable/ob_data_file_prepare.h index b70c9383f..4bdb2faa7 100644 --- a/unittest/storage/blocksstable/ob_data_file_prepare.h +++ b/unittest/storage/blocksstable/ob_data_file_prepare.h @@ -322,9 +322,9 @@ void TestDataFilePrepareUtil::destory() if (is_inited_) { char cmd[OB_MAX_FILE_NAME_LENGTH]; if (OB_SUCCESS != databuff_printf(cmd, OB_MAX_FILE_NAME_LENGTH, "rm -rf %s", data_dir_)) { - STORAGE_LOG(ERROR, "failed to gen cmd", K(data_dir_)); + STORAGE_LOG_RET(ERROR, OB_ERROR, "failed to gen cmd", K(data_dir_)); } else if (0 != system(cmd)) { - STORAGE_LOG(ERROR, "failed to rm data dir", K(cmd), K(errno), KERRMSG); + STORAGE_LOG_RET(ERROR, OB_ERR_SYS, "failed to rm data dir", K(cmd), K(errno), KERRMSG); } } getter_ = nullptr; diff --git a/unittest/storage/memtable/mvcc/test_mvcc_callback.cpp b/unittest/storage/memtable/mvcc/test_mvcc_callback.cpp index c0851747d..313ae6f23 100644 --- a/unittest/storage/memtable/mvcc/test_mvcc_callback.cpp +++ b/unittest/storage/memtable/mvcc/test_mvcc_callback.cpp @@ -63,7 +63,7 @@ public: if (bit >= 100000) { ob_abort(); } else if (1 == set_[bit]) { - TRANS_LOG(ERROR, "set in unexpected", K(bit)); + TRANS_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "set in unexpected", K(bit)); ob_abort(); } else { set_[bit] = 1; @@ -77,11 +77,11 @@ public: for (int i = 0; i < 100000; i++) { if (set_[i] != other.set_[i]) { if (set_[i] == 1) { - TRANS_LOG(ERROR, "different bit set", K(i), + TRANS_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "different bit set", K(i), "set_[i]", "1", "other.set_[i]", "0"); } else { - TRANS_LOG(ERROR, "different bit set", K(i), + TRANS_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "different bit set", K(i), "set_[i]", "0", "other.set_[i]", "1"); } diff --git a/unittest/storage/mockcontainer/mock_ob_iterator.cpp b/unittest/storage/mockcontainer/mock_ob_iterator.cpp index f2c8459cc..ad56d9009 100644 --- a/unittest/storage/mockcontainer/mock_ob_iterator.cpp +++ b/unittest/storage/mockcontainer/mock_ob_iterator.cpp @@ -262,6 +262,7 @@ bool ObMockIterator::equals(uint16_t *col_id1, uint16_t *col_id2, const int64_t bool ObMockIterator::equals(const ObStoreRow &r1, const ObStoreRow &r2, const bool cmp_multi_version_row_flag, const bool cmp_is_get_and_scan_index) { + int ret = OB_SUCCESS; bool bool_ret = false; STORAGE_LOG(INFO, "compare two rows", K(r1), K(r2)); if (r1.flag_ != r2.flag_) { @@ -294,7 +295,7 @@ bool ObMockIterator::equals(int64_t idx, ObNewRow &other_row) const bool bool_ret = false; const ObStoreRow *this_row = NULL; if (OB_SUCCESS != get_row(idx, this_row)) { - STORAGE_LOG(WARN, "invalid idx"); + STORAGE_LOG_RET(WARN, OB_INVALID_ARGUMENT, "invalid idx"); bool_ret = false; } else { bool_ret = equals(this_row->row_val_, other_row); @@ -309,6 +310,7 @@ bool ObMockIterator::equals(int64_t idx, ObNewRow &other_row) const bool ObMockIterator::equals(int64_t idx, ObStoreRow &other_row) const { bool bool_ret = false; + int ret = OB_SUCCESS; const ObStoreRow *this_row = NULL; if (OB_SUCCESS != get_row(idx, this_row)) { STORAGE_LOG(WARN, "invalid idx"); diff --git a/unittest/storage/mockcontainer/mock_ob_iterator.h b/unittest/storage/mockcontainer/mock_ob_iterator.h index 67909f1d0..5081b7f19 100644 --- a/unittest/storage/mockcontainer/mock_ob_iterator.h +++ b/unittest/storage/mockcontainer/mock_ob_iterator.h @@ -118,7 +118,7 @@ public: cmp_multi_version_row_flag, cmp_is_get_and_scan_index); STORAGE_LOG(DEBUG, "compare row", K(bool_ret), K(ret1), K(*this_row), K(ret2), K(*other_row)); if (this_row->trans_id_ != other_row->trans_id_) { - STORAGE_LOG(ERROR, "not equal trans_id", K(*this_row), K(this_row->trans_id_), + STORAGE_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "not equal trans_id", K(*this_row), K(this_row->trans_id_), K(*other_row), K(other_row->trans_id_)); bool_ret = false; } @@ -134,7 +134,7 @@ public: } if (!bool_ret) { - STORAGE_LOG(WARN, "iter is not equal", + STORAGE_LOG_RET(WARN, OB_ERR_UNEXPECTED, "iter is not equal", K(idx), K(ret1), K(ret2), "this_row", this_row ? to_cstring(*this_row): "null", "other_row", other_row ? to_cstring(*other_row) : "null"); @@ -208,7 +208,7 @@ public: } if (!bool_ret) { - STORAGE_LOG(WARN, "iter is not equal", + STORAGE_LOG_RET(WARN, OB_ERR_UNEXPECTED, "iter is not equal", K(idx), "this_row", to_cstring(*this_row), "other_row", to_cstring(*other_row)); diff --git a/unittest/storage/mockcontainer/mock_ob_server.cpp b/unittest/storage/mockcontainer/mock_ob_server.cpp index 01318307c..efcdda5d4 100644 --- a/unittest/storage/mockcontainer/mock_ob_server.cpp +++ b/unittest/storage/mockcontainer/mock_ob_server.cpp @@ -367,7 +367,7 @@ MockSchemaService *MockObServer::get_schema_service() MockSchemaService *ss = NULL; if (!is_inited_) { - STORAGE_LOG(WARN, "ob server not inited"); + STORAGE_LOG_RET(WARN, OB_NOT_INIT, "ob server not inited"); } else { ss = schema_service_; } diff --git a/unittest/storage/test_io_manager.cpp b/unittest/storage/test_io_manager.cpp index 9008d26fc..678eca001 100644 --- a/unittest/storage/test_io_manager.cpp +++ b/unittest/storage/test_io_manager.cpp @@ -1307,7 +1307,7 @@ void write_group_perf_config() int fd = -1; const char *file_name = GROUP_PERF_CONFIG_FILE; if (0 > (fd = ::open(file_name, O_RDWR | O_CREAT | O_TRUNC, 0644))) { - LOG_WARN("open perf config file failed", K(fd), K(file_name)); + LOG_WARN_RET(OB_ERR_SYS, "open perf config file failed", K(fd), K(file_name)); } else { const char *file_buf = "sender_count schedule_media_id io_greed\n" @@ -1329,7 +1329,7 @@ void write_group_perf_config() const int64_t file_len = strlen(file_buf); int write_ret = ::write(fd, file_buf, file_len); if (write_ret < file_len) { - LOG_WARN("write file content failed", K(write_ret), K(file_len)); + LOG_WARN_RET(OB_ERR_SYS, "write file content failed", K(write_ret), K(file_len)); } close(fd); } diff --git a/unittest/storage/test_row_fuse.cpp b/unittest/storage/test_row_fuse.cpp index c30e744a9..1ebb90e84 100644 --- a/unittest/storage/test_row_fuse.cpp +++ b/unittest/storage/test_row_fuse.cpp @@ -315,7 +315,7 @@ void check_fuse_row_flag( row.flag_ = old_flag; row.flag_.fuse_flag(ObDmlRowFlag(input_flag)); if (expect_flag != row.flag_.whole_flag_) { - STORAGE_LOG(WARN, "not equal", K(old_flag), K(input_flag), + STORAGE_LOG_RET(WARN, OB_ERR_UNEXPECTED, "not equal", K(old_flag), K(input_flag), K(expect_flag), "fused_flag", row.flag_); } } diff --git a/unittest/storage/transaction/test_ob_trans_factory.cpp b/unittest/storage/transaction/test_ob_trans_factory.cpp index 86d9010cc..868ee494f 100644 --- a/unittest/storage/transaction/test_ob_trans_factory.cpp +++ b/unittest/storage/transaction/test_ob_trans_factory.cpp @@ -107,7 +107,7 @@ TEST_F(TestObTransFactory, init_reset) uint64_t tenant_id = 1001; ls_tx_ctx_mgr = ObLSTxCtxMgrFactory::alloc(tenant_id); if (NULL == ls_tx_ctx_mgr) { - TRANS_LOG(WARN, "ObLSTxCtxMgr memory alloc error"); + TRANS_LOG_RET(WARN, OB_ALLOCATE_MEMORY_FAILED, "ObLSTxCtxMgr memory alloc error"); } else { EXPECT_EQ(1, ObLSTxCtxMgrFactory::get_alloc_count()); } @@ -120,7 +120,7 @@ TEST_F(TestObTransFactory, init_reset) // alloc for ClogBuf object clog_buf = ClogBufFactory::alloc(); if (NULL == clog_buf) { - TRANS_LOG(WARN, "ClogBuf memory alloc error"); + TRANS_LOG_RET(WARN, OB_ALLOCATE_MEMORY_FAILED, "ClogBuf memory alloc error"); } else { EXPECT_EQ(1, ClogBufFactory::get_alloc_count()); } @@ -134,7 +134,7 @@ TEST_F(TestObTransFactory, init_reset) // alloc for TransRpcTask object trans_rpc_task = TransRpcTaskFactory::alloc(); if (NULL == trans_rpc_task) { - TRANS_LOG(WARN, "TransRpcTaskFactory memory alloc error"); + TRANS_LOG_RET(WARN, OB_ALLOCATE_MEMORY_FAILED, "TransRpcTaskFactory memory alloc error"); } else { EXPECT_EQ(1, TransRpcTaskFactory::get_alloc_count()); } @@ -148,7 +148,7 @@ TEST_F(TestObTransFactory, init_reset) // alloc for MutatorBuf object mutator_buf = MutatorBufFactory::alloc(); if (NULL == mutator_buf) { - TRANS_LOG(WARN, "MutatorBufFactory memory alloc error"); + TRANS_LOG_RET(WARN, OB_ALLOCATE_MEMORY_FAILED, "MutatorBufFactory memory alloc error"); } else { EXPECT_EQ(1, MutatorBufFactory::get_alloc_count()); } diff --git a/unittest/storage/tx/it/test_tx.cpp b/unittest/storage/tx/it/test_tx.cpp index 17f081946..fe4181c63 100644 --- a/unittest/storage/tx/it/test_tx.cpp +++ b/unittest/storage/tx/it/test_tx.cpp @@ -767,7 +767,7 @@ TEST_F(ObTestTx, replay_basic) int64_t retry_count = 0; while(ls_tx_ctx_mgr->get_tx_ctx_count() > 0) { - TRANS_LOG(ERROR, "unexpected tx ctx counts", K(ls_tx_ctx_mgr->get_ls_id()), K(ls_tx_ctx_mgr->get_tx_ctx_count())); + TRANS_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "unexpected tx ctx counts", K(ls_tx_ctx_mgr->get_ls_id()), K(ls_tx_ctx_mgr->get_tx_ctx_count())); ls_tx_ctx_mgr->print_all_tx_ctx(ObLSTxCtxMgr::MAX_HASH_ITEM_PRINT, true); ls_tx_ctx_mgr->get_retain_ctx_mgr().print_retain_ctx_info(ls_tx_ctx_mgr->get_ls_id()); retry_count++; diff --git a/unittest/storage/tx/ob_mock_2pc_ctx.cpp b/unittest/storage/tx/ob_mock_2pc_ctx.cpp index a17a4d8df..8be2873c6 100644 --- a/unittest/storage/tx/ob_mock_2pc_ctx.cpp +++ b/unittest/storage/tx/ob_mock_2pc_ctx.cpp @@ -283,14 +283,14 @@ int MockOb2pcCtx::set_downstream_state(const ObTxState new_state) { switch (new_state) { case ObTxState::INIT: { - TRANS_LOG(ERROR, "tx switch to init failed", K(*this), K(new_state)); + TRANS_LOG_RET(ERROR, OB_ERROR, "tx switch to init failed", K(*this), K(new_state)); ob_abort(); break; } case ObTxState::PREPARE: { if (ObTxState::INIT != downstream_state_ && ObTxState::PREPARE != downstream_state_) { - TRANS_LOG(ERROR, "tx switch to prepare failed", K(*this), K(new_state)); + TRANS_LOG_RET(ERROR, OB_ERROR, "tx switch to prepare failed", K(*this), K(new_state)); ob_abort(); } break; @@ -298,7 +298,7 @@ int MockOb2pcCtx::set_downstream_state(const ObTxState new_state) case ObTxState::PRE_COMMIT: { if (ObTxState::PREPARE != downstream_state_ && ObTxState::PRE_COMMIT != downstream_state_) { - TRANS_LOG(ERROR, "tx switch to pre commit failed", KPC(this), K(new_state)); + TRANS_LOG_RET(ERROR, OB_ERROR, "tx switch to pre commit failed", KPC(this), K(new_state)); ob_abort(); } break; @@ -306,7 +306,7 @@ int MockOb2pcCtx::set_downstream_state(const ObTxState new_state) case ObTxState::COMMIT: { if (ObTxState::PRE_COMMIT != downstream_state_ && ObTxState::COMMIT != downstream_state_) { - TRANS_LOG(ERROR, "tx switch to commit failed", K(*this), K(new_state)); + TRANS_LOG_RET(ERROR, OB_ERROR, "tx switch to commit failed", K(*this), K(new_state)); ob_abort(); } else { tx_state_ = new_state; @@ -317,7 +317,7 @@ int MockOb2pcCtx::set_downstream_state(const ObTxState new_state) if (ObTxState::INIT != downstream_state_ && ObTxState::PREPARE != downstream_state_ && ObTxState::ABORT != downstream_state_) { - TRANS_LOG(ERROR, "tx switch to abort failed", K(*this), K(new_state)); + TRANS_LOG_RET(ERROR, OB_ERROR, "tx switch to abort failed", K(*this), K(new_state)); ob_abort(); } else { tx_state_ = new_state; @@ -327,13 +327,13 @@ int MockOb2pcCtx::set_downstream_state(const ObTxState new_state) case ObTxState::CLEAR: { if (ObTxState::COMMIT != downstream_state_ && ObTxState::ABORT != downstream_state_) { - TRANS_LOG(ERROR, "tx switch to clear failed", K(*this), K(new_state)); + TRANS_LOG_RET(ERROR, OB_ERROR, "tx switch to clear failed", K(*this), K(new_state)); ob_abort(); } break; } default: { - TRANS_LOG(WARN, "invalid 2pc state", KPC(this)); + TRANS_LOG_RET(WARN, OB_ERR_UNEXPECTED, "invalid 2pc state", KPC(this)); ob_abort(); break; } @@ -399,7 +399,7 @@ bool MockOb2pcCtx::check_status_valid(const bool should_commit) } if (!bret) { - TRANS_LOG(ERROR, "state is not match", K(*this), K(should_commit)); + TRANS_LOG_RET(ERROR, OB_ERR_UNEXPECTED, "state is not match", K(*this), K(should_commit)); } return bret;