diff --git a/src/share/scheduler/ob_dag_warning_history_mgr.cpp b/src/share/scheduler/ob_dag_warning_history_mgr.cpp index 1fe819045e..ed86bef44c 100644 --- a/src/share/scheduler/ob_dag_warning_history_mgr.cpp +++ b/src/share/scheduler/ob_dag_warning_history_mgr.cpp @@ -147,6 +147,9 @@ int ObDagWarningHistoryManager::add_dag_warning_info(ObDagWarningInfo &input_inf if (IS_NOT_INIT) { ret = OB_NOT_INIT; COMMON_LOG(WARN, "ObDagWarningHistoryManager is not init", K(ret)); + } else if (OB_ISNULL(input_info.info_param_)) { + ret = OB_INVALID_ARGUMENT; + COMMON_LOG(WARN, "invalid argument. info param is null", K(ret), K(input_info)); } else if (OB_FAIL(alloc_and_add(input_info.get_hash(), &input_info))) { COMMON_LOG(WARN, "failed to add dag warning info", K(ret)); } diff --git a/src/share/scheduler/ob_tenant_dag_scheduler.cpp b/src/share/scheduler/ob_tenant_dag_scheduler.cpp index ee85e6c9e6..4db7053bee 100644 --- a/src/share/scheduler/ob_tenant_dag_scheduler.cpp +++ b/src/share/scheduler/ob_tenant_dag_scheduler.cpp @@ -1266,7 +1266,9 @@ int ObIDagNet::add_dag_warning_info() dag_net = static_cast(this); } if (OB_NOT_NULL(first_fail_dag_info_) && is_cancel()) { // is_cancel means co dag net failed in the end - if (OB_FAIL(MTL(ObDagWarningHistoryManager*)->add_dag_warning_info(*first_fail_dag_info_))) { + if (OB_ISNULL(first_fail_dag_info_->info_param_)) { // maybe caused by 4013 + COMMON_LOG(INFO, "info param is null", K_(first_fail_dag_info)); + } else if (OB_FAIL(MTL(ObDagWarningHistoryManager*)->add_dag_warning_info(*first_fail_dag_info_))) { COMMON_LOG(WARN, "failed to add dag warning info", K(ret), KPC(this), KPC_(first_fail_dag_info)); } else if (OB_NOT_NULL(dag_net)) { if (OB_TMP_FAIL(MTL(compaction::ObDiagnoseTabletMgr *)->add_diagnose_tablet( diff --git a/src/storage/compaction/ob_compaction_diagnose.cpp b/src/storage/compaction/ob_compaction_diagnose.cpp index bd97060893..d03d5da3e1 100644 --- a/src/storage/compaction/ob_compaction_diagnose.cpp +++ b/src/storage/compaction/ob_compaction_diagnose.cpp @@ -300,6 +300,9 @@ int ObIDiagnoseInfoMgr::get_with_param(const int64_t key, ObIDiagnoseInfo *out_i if (OB_HASH_NOT_EXIST != ret) { STORAGE_LOG(WARN, "failed to get info from map", K(ret), K(key)); } + } else if (OB_ISNULL(info->info_param_)) { + ret = OB_ERR_UNEXPECTED; + STORAGE_LOG(WARN, "info_param is null", K(ret), K(info)); } else { out_info->shallow_copy(info); if (OB_FAIL(info->info_param_->deep_copy(allocator, out_info->info_param_))) {