Skip to content

Commit d23383f

Browse files
committed
Merge pull request #4 from OneSignal/marked-bad-reason
Require a reason for `marked_bad` server fn
2 parents b2f1357 + 2f24f95 commit d23383f

File tree

4 files changed

+19
-13
lines changed

4 files changed

+19
-13
lines changed

src/client.rs

+8-6
Original file line numberDiff line numberDiff line change
@@ -1448,7 +1448,7 @@ where
14481448
match write_all_flush(&mut self.write, &response).await {
14491449
Ok(_) => (),
14501450
Err(err) => {
1451-
server.mark_bad();
1451+
server.mark_bad(err.clone().to_string().as_str());
14521452
return Err(err);
14531453
}
14541454
};
@@ -1650,7 +1650,7 @@ where
16501650
match write_all_flush(&mut self.write, &response).await {
16511651
Ok(_) => (),
16521652
Err(err) => {
1653-
server.mark_bad();
1653+
server.mark_bad(err.clone().to_string().as_str());
16541654
return Err(err);
16551655
}
16561656
};
@@ -1713,11 +1713,13 @@ where
17131713
}
17141714
},
17151715
Err(_) => {
1716-
error!(
1717-
"Statement timeout while talking to {:?} with user {}",
1718-
address, pool.settings.user.username
1716+
server.mark_bad(
1717+
format!(
1718+
"Statement timeout while talking to {:?} with user {}",
1719+
address, pool.settings.user.username
1720+
)
1721+
.as_str(),
17191722
);
1720-
server.mark_bad();
17211723
pool.ban(address, BanReason::StatementTimeout, Some(client_stats));
17221724
error_response_terminal(&mut self.write, "pool statement timeout").await?;
17231725
Err(Error::StatementTimeout)

src/mirrors.rs

+8-4
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,10 @@ impl MirroredClient {
8282
match recv_result {
8383
Ok(message) => trace!("Received from mirror: {} {:?}", String::from_utf8_lossy(&message[..]), address.clone()),
8484
Err(err) => {
85-
server.mark_bad();
86-
error!("Failed to receive from mirror {:?} {:?}", err, address.clone());
85+
server.mark_bad(
86+
format!("Failed to receive from mirror {:?} {:?}", err, address.clone()).as_str()
87+
);
88+
8789
}
8890
}
8991
}
@@ -95,8 +97,10 @@ impl MirroredClient {
9597
match server.send(&BytesMut::from(&bytes[..])).await {
9698
Ok(_) => trace!("Sent to mirror: {} {:?}", String::from_utf8_lossy(&bytes[..]), address.clone()),
9799
Err(err) => {
98-
server.mark_bad();
99-
error!("Failed to send to mirror, Discarding message {:?}, {:?}", err, address.clone())
100+
server.mark_bad(
101+
format!("Failed to send to mirror, Discarding message {:?}, {:?}", err, address.clone()).as_str()
102+
);
103+
100104
}
101105
}
102106
}

src/pool.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -746,7 +746,7 @@ impl ConnectionPool {
746746
}
747747

748748
// Don't leave a bad connection in the pool.
749-
server.mark_bad();
749+
server.mark_bad("failed health check");
750750

751751
self.ban(&address, BanReason::FailedHealthCheck, Some(client_info));
752752
return false;

src/server.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1092,8 +1092,8 @@ impl Server {
10921092
}
10931093

10941094
/// Indicate that this server connection cannot be re-used and must be discarded.
1095-
pub fn mark_bad(&mut self) {
1096-
error!("Server {:?} marked bad", self.address);
1095+
pub fn mark_bad(&mut self, reason: &str) {
1096+
error!("Server {:?} marked bad, reason: {}", self.address, reason);
10971097
self.bad = true;
10981098
}
10991099

0 commit comments

Comments
 (0)