better statusq failure recording
This commit is contained in:
		@@ -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)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user