Reduce responder error prints (#10664)
This commit is contained in:
parent
b297d0b423
commit
0a0f17b9d2
|
@ -4,7 +4,7 @@
|
||||||
use crate::packet::{self, send_to, Packets, PacketsRecycler, PACKETS_PER_BATCH};
|
use crate::packet::{self, send_to, Packets, PacketsRecycler, PACKETS_PER_BATCH};
|
||||||
use crate::recvmmsg::NUM_RCVMMSGS;
|
use crate::recvmmsg::NUM_RCVMMSGS;
|
||||||
use solana_measure::thread_mem_usage;
|
use solana_measure::thread_mem_usage;
|
||||||
use solana_sdk::timing::duration_as_ms;
|
use solana_sdk::timing::{duration_as_ms, timestamp};
|
||||||
use std::net::UdpSocket;
|
use std::net::UdpSocket;
|
||||||
use std::sync::atomic::{AtomicBool, Ordering};
|
use std::sync::atomic::{AtomicBool, Ordering};
|
||||||
use std::sync::mpsc::{Receiver, RecvTimeoutError, SendError, Sender};
|
use std::sync::mpsc::{Receiver, RecvTimeoutError, SendError, Sender};
|
||||||
|
@ -127,13 +127,28 @@ pub fn recv_batch(recvr: &PacketReceiver, max_batch: usize) -> Result<(Vec<Packe
|
||||||
pub fn responder(name: &'static str, sock: Arc<UdpSocket>, r: PacketReceiver) -> JoinHandle<()> {
|
pub fn responder(name: &'static str, sock: Arc<UdpSocket>, r: PacketReceiver) -> JoinHandle<()> {
|
||||||
Builder::new()
|
Builder::new()
|
||||||
.name(format!("solana-responder-{}", name))
|
.name(format!("solana-responder-{}", name))
|
||||||
.spawn(move || loop {
|
.spawn(move || {
|
||||||
thread_mem_usage::datapoint(name);
|
let mut errors = 0;
|
||||||
if let Err(e) = recv_send(&sock, &r) {
|
let mut last_error = None;
|
||||||
match e {
|
let mut last_print = 0;
|
||||||
StreamerError::RecvTimeoutError(RecvTimeoutError::Disconnected) => break,
|
loop {
|
||||||
StreamerError::RecvTimeoutError(RecvTimeoutError::Timeout) => (),
|
thread_mem_usage::datapoint(name);
|
||||||
_ => info!("{} responder error: {:?}", name, e),
|
if let Err(e) = recv_send(&sock, &r) {
|
||||||
|
match e {
|
||||||
|
StreamerError::RecvTimeoutError(RecvTimeoutError::Disconnected) => break,
|
||||||
|
StreamerError::RecvTimeoutError(RecvTimeoutError::Timeout) => (),
|
||||||
|
_ => {
|
||||||
|
errors += 1;
|
||||||
|
last_error = Some(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let now = timestamp();
|
||||||
|
if now - last_print > 1000 && errors != 0 {
|
||||||
|
datapoint_info!(name, ("errors", errors, i64),);
|
||||||
|
info!("{} last-error: {:?} count: {}", name, last_error, errors);
|
||||||
|
last_print = now;
|
||||||
|
errors = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in New Issue