fixup! Let invalid knob in toml not raising ASSERT but a TraceEvent

This commit is contained in:
Xiaoge Su 2022-03-15 15:13:51 -07:00
parent bd19845ef6
commit e643327017
2 changed files with 7 additions and 5 deletions

View File

@ -56,7 +56,7 @@ void KnobProtectiveGroup::snapshotOriginalKnobs() {
ASSERT(false);
}
originalKnobs.set(name, value);
TraceEvent("SnapshotKnobValue")
TraceEvent(SevInfo, "SnapshotKnobValue")
.detail("KnobName", name)
.detail("KnobValue", KnobValueRef::create(value).toString());
}
@ -68,6 +68,6 @@ void KnobProtectiveGroup::assignKnobs(const KnobKeyValuePairs& overrideKnobs) {
for (const auto& [name, value] : overrideKnobs.getKnobs()) {
Standalone<KnobValueRef> valueRef = KnobValueRef::create(value);
ASSERT(mutableServerKnobs.trySetKnob(name, valueRef));
TraceEvent("AssignKnobValue").detail("KnobName", name).detail("KnobValue", valueRef.toString());
TraceEvent(SevInfo, "AssignKnobValue").detail("KnobName", name).detail("KnobValue", valueRef.toString());
}
}

View File

@ -1349,15 +1349,17 @@ std::vector<TestSpec> readTOMLTests_(std::string fileName) {
try {
const toml::array& overrideKnobs = toml::find(test, "knobs").as_array();
for (const toml::value& knob : overrideKnobs) {
for (const auto& [key_, value_] : knob.as_table()) {
const std::string key = key_;
for (const auto& [key, value_] : knob.as_table()) {
const std::string& value = toml_to_string(value_);
ParsedKnobValue parsedValue = CLIENT_KNOBS->parseKnobValue(key, value);
if (std::get_if<NoKnobFound>(&parsedValue)) {
parsedValue = SERVER_KNOBS->parseKnobValue(key, value);
}
if (std::get_if<NoKnobFound>(&parsedValue)) {
ASSERT(false);
TraceEvent(SevErrro, "TestSpecUnrecognizedKnob")
.detail("KnobName", key)
.detail("OverrideValue", value);
continue;
}
spec.overrideKnobs.set(key, parsedValue);
}