Disable machine attrition in DiskFailure workload.

The machine attrition logic doesn't take into account the possibility
that a disk corruption could an unrecoverable failure in the cluster.

Before disabling attrition during the DiskFailure workload, the failure
rate was >10/100,000 in the DiskFailureCycle test. Afterwards, there
were no failures in 100,000 runs.
This commit is contained in:
Dan Adkins 2023-02-13 08:53:58 -08:00
parent 844890bf93
commit 5ede2d439c
1 changed files with 3 additions and 0 deletions

View File

@ -65,6 +65,9 @@ struct DiskFailureInjectionWorkload : FailureInjectionWorkload {
periodicBroadcastInterval = getOption(options, "periodicBroadcastInterval"_sr, periodicBroadcastInterval);
}
// TODO: Currently this workload doesn't play well with MachineAttrition.
void disableFailureInjectionWorkloads(std::set<std::string>& out) const override { out.insert("Attrition"); }
void initFailureInjectionMode(DeterministicRandom& random) override { enabled = clientId == 0; }
Future<Void> setup(Database const& cx) override { return Void(); }