better statusq failure recording
This commit is contained in:
parent
532bcf2e2a
commit
88466db03f
@ -603,7 +603,7 @@ impl BucketEntryInner {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
pub(super) fn check_dead(&self, cur_ts: Timestamp) -> bool {
|
pub(super) fn check_dead(&self, cur_ts: Timestamp) -> bool {
|
||||||
// If we have failured to send NEVER_REACHED_PING_COUNT times in a row, the node is dead
|
// If we have failed to send NEVER_REACHED_PING_COUNT times in a row, the node is dead
|
||||||
if self.peer_stats.rpc_stats.failed_to_send >= NEVER_REACHED_PING_COUNT {
|
if self.peer_stats.rpc_stats.failed_to_send >= NEVER_REACHED_PING_COUNT {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -30,9 +30,19 @@ impl RPCProcessor {
|
|||||||
let routing_domain = match target.best_routing_domain() {
|
let routing_domain = match target.best_routing_domain() {
|
||||||
Some(rd) => rd,
|
Some(rd) => rd,
|
||||||
None => {
|
None => {
|
||||||
|
// Because this exits before calling 'question()',
|
||||||
|
// a failure to find a routing domain constitutes a send failure
|
||||||
|
let send_ts = get_aligned_timestamp();
|
||||||
|
self.record_send_failure(
|
||||||
|
RPCKind::Question,
|
||||||
|
send_ts,
|
||||||
|
target.clone(),
|
||||||
|
None,
|
||||||
|
None,
|
||||||
|
);
|
||||||
return Ok(NetworkResult::no_connection_other(
|
return Ok(NetworkResult::no_connection_other(
|
||||||
"no routing domain for target",
|
"no routing domain for target",
|
||||||
))
|
));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
(Some(target.clone()), routing_domain)
|
(Some(target.clone()), routing_domain)
|
||||||
@ -45,9 +55,26 @@ impl RPCProcessor {
|
|||||||
let routing_domain = match relay.best_routing_domain() {
|
let routing_domain = match relay.best_routing_domain() {
|
||||||
Some(rd) => rd,
|
Some(rd) => rd,
|
||||||
None => {
|
None => {
|
||||||
|
// Because this exits before calling 'question()',
|
||||||
|
// a failure to find a routing domain constitutes a send failure for both the target and its relay
|
||||||
|
let send_ts = get_aligned_timestamp();
|
||||||
|
self.record_send_failure(
|
||||||
|
RPCKind::Question,
|
||||||
|
send_ts,
|
||||||
|
relay.clone(),
|
||||||
|
None,
|
||||||
|
None,
|
||||||
|
);
|
||||||
|
self.record_send_failure(
|
||||||
|
RPCKind::Question,
|
||||||
|
send_ts,
|
||||||
|
target.clone(),
|
||||||
|
None,
|
||||||
|
None,
|
||||||
|
);
|
||||||
return Ok(NetworkResult::no_connection_other(
|
return Ok(NetworkResult::no_connection_other(
|
||||||
"no routing domain for peer",
|
"no routing domain for peer",
|
||||||
))
|
));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
(Some(target.clone()), routing_domain)
|
(Some(target.clone()), routing_domain)
|
||||||
|
Loading…
Reference in New Issue
Block a user