diff --git a/src/logservice/libobcdc/src/ob_cdc_lob_data_merger.cpp b/src/logservice/libobcdc/src/ob_cdc_lob_data_merger.cpp index 7edd2c51a2..aa0d131e90 100644 --- a/src/logservice/libobcdc/src/ob_cdc_lob_data_merger.cpp +++ b/src/logservice/libobcdc/src/ob_cdc_lob_data_merger.cpp @@ -178,11 +178,12 @@ int ObCDCLobDataMerger::push_task_( ObLobDataGetCtxList &lob_data_get_ctx_list = task.get_lob_data_get_ctx_list(); ObLobDataGetCtx *cur_lob_data_get_ctx = lob_data_get_ctx_list.head_; - while (OB_SUCC(ret) && ! is_in_stop_status(stop_flag) && cur_lob_data_get_ctx) { + while (OB_SUCC(ret) && ! is_in_stop_status(stop_flag) && OB_NOT_NULL(cur_lob_data_get_ctx)) { + ObLobDataGetCtx *next_lob_data_get_ctx = cur_lob_data_get_ctx->get_next(); if (OB_FAIL(push_lob_column_(allocator, task, *cur_lob_data_get_ctx, stop_flag))) { LOG_ERROR("push_lob_column_ failed", KR(ret)); } else { - cur_lob_data_get_ctx = cur_lob_data_get_ctx->get_next(); + cur_lob_data_get_ctx = next_lob_data_get_ctx; } } @@ -372,9 +373,10 @@ int ObCDCLobDataMerger::push_lob_col_fra_ctx_list_( if (lob_col_fra_ctx_list.num_ <= 0) { // do nothing } else { - while (OB_SUCC(ret) && ! is_in_stop_status(stop_flag) && cur_lob_col_fragment_ctx) { + while (OB_SUCC(ret) && ! is_in_stop_status(stop_flag) && OB_NOT_NULL(cur_lob_col_fragment_ctx)) { uint64_t hash_value = ATOMIC_FAA(&round_value_, 1); void *push_task = static_cast(cur_lob_col_fragment_ctx); + LobColumnFragmentCtx *next_lob_col_fragment_ct = cur_lob_col_fragment_ctx->get_next(); ret = OB_TIMEOUT; while (OB_TIMEOUT == ret && ! is_in_stop_status(stop_flag)) { @@ -386,9 +388,13 @@ int ObCDCLobDataMerger::push_lob_col_fra_ctx_list_( } if (OB_SUCC(ret)) { - cur_lob_col_fragment_ctx = cur_lob_col_fragment_ctx->get_next(); + cur_lob_col_fragment_ctx = next_lob_col_fragment_ct; } } + + if (is_in_stop_status(stop_flag)) { + ret = OB_IN_STOP_STATE; + } } return ret; diff --git a/src/logservice/libobcdc/src/ob_log_instance.cpp b/src/logservice/libobcdc/src/ob_log_instance.cpp index 5793a79af2..ad4d9989e8 100644 --- a/src/logservice/libobcdc/src/ob_log_instance.cpp +++ b/src/logservice/libobcdc/src/ob_log_instance.cpp @@ -453,7 +453,8 @@ int ObLogInstance::init_logger_() _LOG_INFO("BUILD_VERSION: %s", build_version()); _LOG_INFO("BUILD_TIME: %s %s", build_date(), build_time()); _LOG_INFO("BUILD_FLAGS: %s%s", build_flags(), extra_flags); - _LOG_INFO("Copyright (c) 2022 Ant Group Co., Ltd."); + _LOG_INFO("BUILD_INFO: %s", build_info()); + _LOG_INFO("Copyright (c) 2024 Ant Group Co., Ltd."); _LOG_INFO("======================================================"); _LOG_INFO("\n"); } @@ -474,7 +475,8 @@ void ObLogInstance::print_version() MPRINT("REVISION: %s", build_version()); MPRINT("BUILD_TIME: %s %s", build_date(), build_time()); MPRINT("BUILD_FLAGS: %s%s\n", build_flags(), extra_flags); - MPRINT("Copyright (c) 2022 Ant Group Co., Ltd."); + MPRINT("BUILD_INFO: %s\n", build_info()); + MPRINT("Copyright (c) 2024 Ant Group Co., Ltd."); MPRINT(); } diff --git a/src/logservice/libobcdc/src/ob_log_main.c b/src/logservice/libobcdc/src/ob_log_main.c index aebb643a34..3f51cadc16 100644 --- a/src/logservice/libobcdc/src/ob_log_main.c +++ b/src/logservice/libobcdc/src/ob_log_main.c @@ -22,6 +22,7 @@ const char* build_version(); const char* build_date(); const char* build_time(); const char* build_flags(); +const char* build_info(); int so_main() { @@ -38,6 +39,7 @@ int so_main() fprintf(stdout, "BUILD_VERSION: %s\n", build_version()); fprintf(stdout, "BUILD_TIME: %s %s\n", build_date(), build_time()); fprintf(stdout, "BUILD_FLAGS: %s%s\n", build_flags(), extra_flags); + fprintf(stdout, "BUILD_INFO: %s\n", build_info()); exit(0); }