found bug in detecting first test in restart
This commit is contained in:
parent
b3e4f182ef
commit
aca3941519
|
@ -1275,8 +1275,7 @@ ACTOR Future<Void> reply(CommitBatchContext* self) {
|
|||
// self->committedVersion by reporting commit version first before updating self->committedVersion. Otherwise, a
|
||||
// client may get a commit version that the master is not aware of, and next GRV request may get a version less than
|
||||
// self->committedVersion.
|
||||
TEST(pProxyCommitData->committedVersion.get() >
|
||||
self->commitVersion); // A later version was reported committed first
|
||||
TEST(pProxyCommitData->committedVersion.get() > self->commitVersion); // A later version was reported committed first
|
||||
if (self->commitVersion >= pProxyCommitData->committedVersion.get()) {
|
||||
wait(pProxyCommitData->master.reportLiveCommittedVersion.getReply(
|
||||
ReportRawCommittedVersionRequest(self->commitVersion,
|
||||
|
|
|
@ -170,7 +170,7 @@ class TestConfig {
|
|||
if (attrib == "maxTLogVersion") {
|
||||
sscanf(value.c_str(), "%d", &maxTLogVersion);
|
||||
}
|
||||
if (attrib == "restartInfoLocation") {
|
||||
if (attrib == "restartInfoLocation") {
|
||||
isFirstTestInRestart = true;
|
||||
}
|
||||
}
|
||||
|
@ -203,6 +203,23 @@ public:
|
|||
stderrSeverity, machineCount, processesPerMachine, coordinators;
|
||||
Optional<std::string> config;
|
||||
|
||||
bool tomlKeyPresent(const toml::value& data, std::string key) {
|
||||
if (data.is_table()) {
|
||||
for (const auto& [k, v] : data.as_table()) {
|
||||
if (k == key || tomlKeyPresent(v, key)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
} else if (data.is_array()) {
|
||||
for (const auto& v : data.as_array()) {
|
||||
if (tomlKeyPresent(v, key)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void readFromConfig(const char* testFile) {
|
||||
if (isIniFile(testFile)) {
|
||||
loadIniFile(testFile);
|
||||
|
@ -248,6 +265,10 @@ public:
|
|||
TraceEvent("StderrSeverity").detail("NewSeverity", stderrSeverity.get());
|
||||
}
|
||||
}
|
||||
// look for restartInfoLocation to mark isFirstTestInRestart
|
||||
if (!isFirstTestInRestart) {
|
||||
isFirstTestInRestart = tomlKeyPresent(file, "restartInfoLocation");
|
||||
}
|
||||
} catch (std::exception& e) {
|
||||
std::cerr << e.what() << std::endl;
|
||||
TraceEvent("TOMLParseError").detail("Error", printable(e.what()));
|
||||
|
@ -1188,7 +1209,11 @@ void SimulationConfig::generateNormalConfig(const TestConfig& testConfig) {
|
|||
db.grvProxyCount = 1;
|
||||
db.resolverCount = 1;
|
||||
}
|
||||
int replication_type = testConfig.simpleConfig ? 1 : (std::max(testConfig.minimumReplication, datacenters > 4 ? deterministicRandom()->randomInt(1, 3) : std::min(deterministicRandom()->randomInt(0, 6), 3)));
|
||||
int replication_type = testConfig.simpleConfig
|
||||
? 1
|
||||
: (std::max(testConfig.minimumReplication,
|
||||
datacenters > 4 ? deterministicRandom()->randomInt(1, 3)
|
||||
: std::min(deterministicRandom()->randomInt(0, 6), 3)));
|
||||
if (testConfig.config.present()) {
|
||||
set_config(testConfig.config.get());
|
||||
} else {
|
||||
|
|
Loading…
Reference in New Issue