Merge pull request #1437 from etschannen/release-6.1
getReplyUnlessFailedFor must still report endpoint failures
This commit is contained in:
commit
6a78501d44
|
@ -169,7 +169,11 @@ ACTOR Future<Void> failureMonitorClientLoop(
|
|||
ACTOR Future<Void> failureMonitorClient( Reference<AsyncVar<Optional<struct ClusterInterface>>> ci, bool trackMyStatus ) {
|
||||
state SimpleFailureMonitor* monitor = static_cast<SimpleFailureMonitor*>( &IFailureMonitor::failureMonitor() );
|
||||
state Reference<FailureMonitorClientState> fmState = Reference<FailureMonitorClientState>(new FailureMonitorClientState());
|
||||
|
||||
auto localAddr = g_network->getLocalAddresses();
|
||||
monitor->setStatus(localAddr.address, FailureStatus(false));
|
||||
if(localAddr.secondaryAddress.present()) {
|
||||
monitor->setStatus(localAddr.secondaryAddress.get(), FailureStatus(false));
|
||||
}
|
||||
loop {
|
||||
state Future<Void> client = ci->get().present() ? failureMonitorClientLoop(monitor, ci->get().get(), fmState, trackMyStatus) : Void();
|
||||
wait( ci->onChange() );
|
||||
|
|
|
@ -312,7 +312,7 @@ public:
|
|||
Future<ErrorOr<REPLY_TYPE(X)>> getReplyUnlessFailedFor(const X& value, double sustainedFailureDuration, double sustainedFailureSlope, int taskID) const {
|
||||
// If it is local endpoint, no need for failure monitoring
|
||||
return waitValueOrSignal(getReply(value, taskID),
|
||||
getEndpoint(taskID).isLocal() ? Never() : makeDependent<T>(IFailureMonitor::failureMonitor()).onFailedFor(getEndpoint(taskID), sustainedFailureDuration, sustainedFailureSlope),
|
||||
makeDependent<T>(IFailureMonitor::failureMonitor()).onFailedFor(getEndpoint(taskID), sustainedFailureDuration, sustainedFailureSlope),
|
||||
getEndpoint(taskID));
|
||||
}
|
||||
|
||||
|
@ -320,7 +320,7 @@ public:
|
|||
Future<ErrorOr<REPLY_TYPE(X)>> getReplyUnlessFailedFor(const X& value, double sustainedFailureDuration, double sustainedFailureSlope) const {
|
||||
// If it is local endpoint, no need for failure monitoring
|
||||
return waitValueOrSignal(getReply(value),
|
||||
getEndpoint().isLocal() ? Never() : makeDependent<T>(IFailureMonitor::failureMonitor()).onFailedFor(getEndpoint(), sustainedFailureDuration, sustainedFailureSlope),
|
||||
makeDependent<T>(IFailureMonitor::failureMonitor()).onFailedFor(getEndpoint(), sustainedFailureDuration, sustainedFailureSlope),
|
||||
getEndpoint());
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue