[CP] fix show trace check error

This commit is contained in:
obdev
2023-11-16 14:12:13 +00:00
committed by ob-robot
parent a9fd180863
commit 8a5f223af8

View File

@ -639,6 +639,7 @@ int ObVirtualShowTrace::find_child_span_info(sql::ObFLTShowTraceRec::trace_forma
} }
// invalid span check
for (int64_t i = 0; OB_SUCC(ret) && i < tmp_arr.count(); ++i) { for (int64_t i = 0; OB_SUCC(ret) && i < tmp_arr.count(); ++i) {
if (arr.count() > 0) { if (arr.count() > 0) {
if (OB_ISNULL(arr.at(arr.count() - 1))) { if (OB_ISNULL(arr.at(arr.count() - 1))) {
@ -646,9 +647,11 @@ int ObVirtualShowTrace::find_child_span_info(sql::ObFLTShowTraceRec::trace_forma
} else if (OB_ISNULL(tmp_arr.at(i))) { } else if (OB_ISNULL(tmp_arr.at(i))) {
// do nothing // do nothing
} else { } else {
if (arr.at(arr.count() - 1)->data_.start_ts_ > tmp_arr.at(i)->data_.start_ts_) { // There is a 2s clock error between machines
ret = OB_ERR_UNEXPECTED; if (arr.at(arr.count() - 1)->data_.start_ts_ - tmp_arr.at(i)->data_.start_ts_ > 10000000 &&
arr.at(arr.count() - 1)->data_.span_id_ == tmp_arr.at(i)->data_.parent_span_id_) {
LOG_WARN("invalid trace span", K(arr.at(arr.count() - 1)->data_), K(tmp_arr.at(i)->data_)); LOG_WARN("invalid trace span", K(arr.at(arr.count() - 1)->data_), K(tmp_arr.at(i)->data_));
LOG_USER_ERROR(OB_ERR_UNEXPECTED, "invalid trace span");
} }
} }
} }