Skip to content

Commit 012620c

Browse files
[Fix](ms) Fix ci-uncaught ut coredump due to dynamic rate limit setting (#44362)
UT failed with coredump in PR #42413 but was not detected by CI. Fix the problem.
1 parent 8c3f3ff commit 012620c

File tree

3 files changed

+10
-7
lines changed

3 files changed

+10
-7
lines changed

cloud/script/run_all_tests.sh

+2
Original file line numberDiff line numberDiff line change
@@ -143,11 +143,13 @@ for i in *_test; do
143143
patchelf --set-rpath "$(pwd)" "${i}"
144144
fi
145145

146+
set -euo pipefail
146147
if [[ "${filter}" == "" ]]; then
147148
LLVM_PROFILE_FILE="./report/${i}.profraw" "./${i}" --gtest_print_time=true --gtest_output="xml:${i}.xml"
148149
else
149150
LLVM_PROFILE_FILE="./report/${i}.profraw" "./${i}" --gtest_print_time=true --gtest_output="xml:${i}.xml" --gtest_filter="${filter}"
150151
fi
152+
set +euo pipefail
151153
unittest_files[${#unittest_files[*]}]="${i}"
152154
echo "--------------------------"
153155
fi

cloud/src/meta-service/meta_service_http.cpp

+7-7
Original file line numberDiff line numberDiff line change
@@ -411,8 +411,8 @@ static HttpResponse process_adjust_rate_limit(MetaServiceImpl* service, brpc::Co
411411
processors[0b101] = std::move(set_instance_qps_limit);
412412
processors[0b111] = std::move(set_instance_rpc_qps_limit);
413413

414-
uint8_t level = (0x01 & qps_limit_str.empty()) | ((0x01 & rpc_name.empty()) << 1) |
415-
((0x01 & instance_id.empty()) << 2);
414+
uint8_t level = (0x01 & !qps_limit_str.empty()) | ((0x01 & !rpc_name.empty()) << 1) |
415+
((0x01 & !instance_id.empty()) << 2);
416416

417417
DCHECK_LT(level, 8);
418418

@@ -422,21 +422,21 @@ static HttpResponse process_adjust_rate_limit(MetaServiceImpl* service, brpc::Co
422422
static HttpResponse process_query_rate_limit(MetaServiceImpl* service, brpc::Controller* cntl) {
423423
auto rate_limiter = service->rate_limiter();
424424
rapidjson::Document d;
425+
d.SetObject();
425426
auto get_qps_limit = [&d](std::string_view rpc_name,
426427
std::shared_ptr<RpcRateLimiter> rpc_limiter) {
427428
rapidjson::Document node;
429+
node.SetObject();
428430
rapidjson::Document sub;
431+
sub.SetObject();
429432
auto get_qps_token_limit = [&](std::string_view instance_id,
430433
std::shared_ptr<RpcRateLimiter::QpsToken> qps_token) {
431434
sub.AddMember(rapidjson::StringRef(instance_id.data(), instance_id.size()),
432435
qps_token->max_qps_limit(), d.GetAllocator());
433436
};
434437
rpc_limiter->for_each_qps_token(std::move(get_qps_token_limit));
435438

436-
auto max_qps_limit = std::to_string(rpc_limiter->max_qps_limit());
437-
node.AddMember("RPC qps limit",
438-
rapidjson::StringRef(max_qps_limit.data(), max_qps_limit.size()),
439-
d.GetAllocator());
439+
node.AddMember("RPC qps limit", rpc_limiter->max_qps_limit(), d.GetAllocator());
440440
node.AddMember("instance specific qps limit", sub, d.GetAllocator());
441441
d.AddMember(rapidjson::StringRef(rpc_name.data(), rpc_name.size()), node, d.GetAllocator());
442442
};
@@ -445,7 +445,7 @@ static HttpResponse process_query_rate_limit(MetaServiceImpl* service, brpc::Con
445445
rapidjson::StringBuffer sb;
446446
rapidjson::PrettyWriter<rapidjson::StringBuffer> writer(sb);
447447
d.Accept(writer);
448-
return http_json_reply(MetaServiceCode::OK, sb.GetString());
448+
return http_json_reply(MetaServiceCode::OK, "", sb.GetString());
449449
}
450450

451451
static HttpResponse process_decode_key(MetaServiceImpl*, brpc::Controller* ctrl) {

run-cloud-ut.sh

+1
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,7 @@ cd test
228228
# FILTER: binary_name:gtest_filter
229229
# FILTER: meta_service_test:DetachSchemaKVTest.*
230230
# ./run_all_tests.sh --test "\"$(echo "${FILTER}" | awk -F: '{print $1}')\"" --filter "\"$(echo "${FILTER}" | awk -F: '{print $2}')\"" --fdb "\"${FDB}\""
231+
set -euo pipefail
231232
if [[ "_${ENABLE_CLANG_COVERAGE}" == "_ON" ]]; then
232233
bash -x ./run_all_tests.sh --coverage --test "$(echo "${FILTER}" | awk -F: '{print $1}')" --filter "$(echo "${FILTER}" | awk -F: '{print $2}')" --fdb "${FDB}"
233234
else

0 commit comments

Comments
 (0)