feat: Update servers-in-backoff command to annotate stale info

This commit is contained in:
timedout authored and Ellis Git committed 2026-08-20 00:57:11 +00:00
1 parent ef5bf7c977
commit 9ed8c230fa
2 files changed
+21 -14

No files matched your search

+12 -10
View File
@@ -1243,16 +1243,14 @@ impl crate::Context<'_> {
room_id: Option<OwnedRoomId>,
name: Option<OwnedServerName>,
) -> Result {
let backoff_map = {
// We can't send the backoff map to another thread, so we clone it here.
let map = self.services.federation.remote_health.read();
map.clone()
};
let backoff_map = self.services.federation.remote_health();
if backoff_map.is_empty() {
return Err!("No servers in backoff.");
}
let stale_map = self.services.federation.stale_destinations();
if let Some(specific_server_name) = name {
let entry = backoff_map.get(&specific_server_name);
return match entry {
@@ -1267,9 +1265,9 @@ impl crate::Context<'_> {
};
}
self.write_str("| Server Name | Retries | Next connection attempt |\n")
self.write_str("| Server Name | Retries | Next connection attempt | Is stale |\n")
.await?;
self.write_str("| ----------- | ------- | ----------------------- |\n")
self.write_str("| ----------- | ------- | ----------------------- | -------- |\n")
.await?;
if let Some(specific_room) = room_id {
@@ -1277,15 +1275,19 @@ impl crate::Context<'_> {
self.services.rooms.state_cache.room_servers(&specific_room);
while let Some(server_name) = servers_in_room.next().await {
let Some((retries, retry_at)) = backoff_map.get(&server_name) else { continue };
self.write_str(&format!("| {server_name} | {retries} | {retry_at} |\n"))
.await?;
let is_stale = if stale_map.contains(&server_name) { "Yes" } else { "No" };
self.write_str(&format!(
"| {server_name} | {retries} | {retry_at} | {is_stale} |\n"
))
.await?;
}
return Ok(());
}
for (server_name, (retries, retry_at)) in &backoff_map {
self.write_str(&format!("| {server_name} | {retries} | {retry_at} |\n"))
let is_stale = if stale_map.contains(server_name) { "Yes" } else { "No" };
self.write_str(&format!("| {server_name} | {retries} | {retry_at} | {is_stale} |\n"))
.await?;
}