diff --git a/src/pool.rs b/src/pool.rs index 27ff861..4664193 100644 --- a/src/pool.rs +++ b/src/pool.rs @@ -641,7 +641,10 @@ impl ConnectionPool { { Ok(conn) => conn, Err(err) => { - error!("Banning instance {:?}, error: {:?}", address, err); + error!( + "Connection checkout error for instance {:?}, error: {:?}", + address, err + ); self.ban(address, BanReason::FailedCheckout, Some(client_stats)); address.stats.error(); client_stats.idle(); @@ -717,7 +720,7 @@ impl ConnectionPool { // Health check failed. Err(err) => { error!( - "Banning instance {:?} because of failed health check, {:?}", + "Failed health check on instance {:?}, error: {:?}", address, err ); } @@ -726,7 +729,7 @@ impl ConnectionPool { // Health check timed out. Err(err) => { error!( - "Banning instance {:?} because of health check timeout, {:?}", + "Health check timeout on instance {:?}, error: {:?}", address, err ); } @@ -748,13 +751,16 @@ impl ConnectionPool { return; } + error!("Banning instance {:?}, reason: {:?}", address, reason); + let now = chrono::offset::Utc::now().naive_utc(); let mut guard = self.banlist.write(); - error!("Banning {:?}", address); + if let Some(client_info) = client_info { client_info.ban_error(); address.stats.error(); } + guard[address.shard].insert(address.clone(), (reason, now)); } diff --git a/src/server.rs b/src/server.rs index ff5ab20..152f052 100644 --- a/src/server.rs +++ b/src/server.rs @@ -705,7 +705,10 @@ impl Server { Ok(()) } Err(err) => { - error!("Terminating server because of: {:?}", err); + error!( + "Terminating server {:?} because of: {:?}", + self.address, err + ); self.bad = true; Err(err) } @@ -720,7 +723,10 @@ impl Server { let mut message = match read_message(&mut self.stream).await { Ok(message) => message, Err(err) => { - error!("Terminating server because of: {:?}", err); + error!( + "Terminating server {:?} because of: {:?}", + self.address, err + ); self.bad = true; return Err(err); } @@ -1135,14 +1141,18 @@ impl Drop for Server { _ => debug!("Dirty shutdown"), }; - // Should not matter. - self.bad = true; - let now = chrono::offset::Utc::now().naive_utc(); let duration = now - self.connected_at; + let message = if self.bad { + "Server connection terminated" + } else { + "Server connection closed" + }; + info!( - "Server connection closed {:?}, session duration: {}", + "{} {:?}, session duration: {}", + message, self.address, crate::format_duration(&duration) );