mirror of
https://github.com/apple/foundationdb.git
synced 2025-06-01 02:37:02 +08:00
Merge remote-tracking branch 'sfc/bugfixes/machines-attrition-debugging' into bugfixes/machines-attrition-debugging
This commit is contained in:
commit
2310584a05
@ -1350,7 +1350,8 @@ public:
|
|||||||
bool isAvailable() const override {
|
bool isAvailable() const override {
|
||||||
std::vector<ProcessInfo*> processesLeft, processesDead;
|
std::vector<ProcessInfo*> processesLeft, processesDead;
|
||||||
for (auto processInfo : getAllProcesses()) {
|
for (auto processInfo : getAllProcesses()) {
|
||||||
if (processInfo->isAvailableClass()) {
|
if (processInfo->isAvailableClass() &&
|
||||||
|
!processInfo->drProcess) { // Only checks availability of main cluster
|
||||||
if (processInfo->isExcluded() || processInfo->isCleared() || !processInfo->isAvailable()) {
|
if (processInfo->isExcluded() || processInfo->isCleared() || !processInfo->isAvailable()) {
|
||||||
processesDead.push_back(processInfo);
|
processesDead.push_back(processInfo);
|
||||||
} else {
|
} else {
|
||||||
@ -1866,7 +1867,7 @@ public:
|
|||||||
int protectedWorker = 0, unavailable = 0, excluded = 0, cleared = 0;
|
int protectedWorker = 0, unavailable = 0, excluded = 0, cleared = 0;
|
||||||
|
|
||||||
for (auto processInfo : getAllProcesses()) {
|
for (auto processInfo : getAllProcesses()) {
|
||||||
if (processInfo->isAvailableClass()) {
|
if (processInfo->isAvailableClass() && processInfo->drProcess != isMainCluster) {
|
||||||
if (processInfo->isExcluded()) {
|
if (processInfo->isExcluded()) {
|
||||||
processesDead.push_back(processInfo);
|
processesDead.push_back(processInfo);
|
||||||
excluded++;
|
excluded++;
|
||||||
@ -2083,7 +2084,7 @@ public:
|
|||||||
(kt == RebootAndDelete) || (kt == RebootProcessAndDelete))) {
|
(kt == RebootAndDelete) || (kt == RebootProcessAndDelete))) {
|
||||||
std::vector<ProcessInfo*> processesLeft, processesDead;
|
std::vector<ProcessInfo*> processesLeft, processesDead;
|
||||||
for (auto processInfo : getAllProcesses()) {
|
for (auto processInfo : getAllProcesses()) {
|
||||||
if (processInfo->isAvailableClass()) {
|
if (processInfo->isAvailableClass() && !processInfo->drProcess) { // TODO: Reboot DR processes as well
|
||||||
if (processInfo->isExcluded() || processInfo->isCleared() || !processInfo->isAvailable()) {
|
if (processInfo->isExcluded() || processInfo->isCleared() || !processInfo->isAvailable()) {
|
||||||
processesDead.push_back(processInfo);
|
processesDead.push_back(processInfo);
|
||||||
} else if (protectedAddresses.count(processInfo->address) ||
|
} else if (protectedAddresses.count(processInfo->address) ||
|
||||||
|
@ -2172,6 +2172,19 @@ void setupSimulatedSystem(std::vector<Future<Void>>* systemActors,
|
|||||||
}
|
}
|
||||||
deterministicRandom()->randomShuffle(coordinatorAddresses);
|
deterministicRandom()->randomShuffle(coordinatorAddresses);
|
||||||
|
|
||||||
|
for (const auto& coordinators : extraCoordinatorAddresses) {
|
||||||
|
for (int i = 0; i < (coordinators.size() / 2) + 1; i++) {
|
||||||
|
TraceEvent("ProtectCoordinator")
|
||||||
|
.detail("Address", coordinators[i])
|
||||||
|
.detail("Coordinators", describe(coordinators));
|
||||||
|
g_simulator->protectedAddresses.insert(
|
||||||
|
NetworkAddress(coordinators[i].ip, coordinators[i].port, true, coordinators[i].isTLS()));
|
||||||
|
if (coordinators[i].port == 2) {
|
||||||
|
g_simulator->protectedAddresses.insert(NetworkAddress(coordinators[i].ip, 1, true, true));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
ASSERT_EQ(coordinatorAddresses.size(), coordinatorCount);
|
ASSERT_EQ(coordinatorAddresses.size(), coordinatorCount);
|
||||||
ClusterConnectionString conn(coordinatorAddresses, "TestCluster:0"_sr);
|
ClusterConnectionString conn(coordinatorAddresses, "TestCluster:0"_sr);
|
||||||
if (useHostname) {
|
if (useHostname) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user