From 66c001dc4c02b7477fa96d7c1325dd66699f35c9 Mon Sep 17 00:00:00 2001 From: James Barford-Evans Date: Tue, 18 Nov 2025 09:32:13 +0000 Subject: [PATCH 1/5] Post more precise message if a Try is queued multiple times --- database/src/lib.rs | 6 ++++ database/src/pool.rs | 48 ++++++++++++++++----------- database/src/pool/postgres.rs | 27 ++++++++++----- database/src/pool/sqlite.rs | 9 ++--- site/src/job_queue/mod.rs | 31 +++++++++++++----- site/src/request_handlers/github.rs | 51 +++++++++++++++++++++-------- 6 files changed, 118 insertions(+), 54 deletions(-) diff --git a/database/src/lib.rs b/database/src/lib.rs index 9c0d74030..d1d1409c0 100644 --- a/database/src/lib.rs +++ b/database/src/lib.rs @@ -1039,6 +1039,12 @@ impl BenchmarkRequest { } } +#[derive(Debug, Clone, PartialEq)] +pub enum BenchmarkRequestInsertResult { + Queued, + AlreadyQueued, +} + pub fn parse_backends(backends: &str) -> Result, String> { backends .split(',') diff --git a/database/src/pool.rs b/database/src/pool.rs index a366f72c8..7424b289b 100644 --- a/database/src/pool.rs +++ b/database/src/pool.rs @@ -1,9 +1,9 @@ use crate::selector::CompileTestCase; use crate::{ ArtifactCollection, ArtifactId, ArtifactIdNumber, BenchmarkJob, BenchmarkJobConclusion, - BenchmarkJobKind, BenchmarkRequest, BenchmarkRequestIndex, BenchmarkRequestStatus, - BenchmarkRequestWithErrors, BenchmarkSet, CodegenBackend, CollectorConfig, CompileBenchmark, - PendingBenchmarkRequests, Target, + BenchmarkJobKind, BenchmarkRequest, BenchmarkRequestIndex, BenchmarkRequestInsertResult, + BenchmarkRequestStatus, BenchmarkRequestWithErrors, BenchmarkSet, CodegenBackend, + CollectorConfig, CompileBenchmark, PendingBenchmarkRequests, Target, }; use crate::{CollectionId, Index, Profile, QueuedCommit, Scenario, Step}; use chrono::{DateTime, Utc}; @@ -207,7 +207,7 @@ pub trait Connection: Send + Sync { async fn insert_benchmark_request( &self, benchmark_request: &BenchmarkRequest, - ) -> anyhow::Result<()>; + ) -> anyhow::Result; /// Load all known benchmark request SHAs and all completed benchmark requests. async fn load_benchmark_request_index(&self) -> anyhow::Result; @@ -538,9 +538,12 @@ mod tests { .await .unwrap(); - db.insert_benchmark_request(&BenchmarkRequest::create_release("a-sha-1", Utc::now())) - .await - .expect_err("it was possible to insert a second commit with the same SHA"); + let result = db + .insert_benchmark_request(&BenchmarkRequest::create_release("a-sha-1", Utc::now())) + .await; + + assert!(result.is_ok()); + assert_eq!(result.unwrap(), BenchmarkRequestInsertResult::AlreadyQueued); Ok(ctx) }) @@ -566,12 +569,14 @@ mod tests { // This should be fine, because the previous request was already completed ctx.insert_try_request(42).await; // But this should fail, as we can't have two queued requests at once - db.insert_benchmark_request(&BenchmarkRequest::create_try_without_artifacts( - 42, "", "", - )) - .await - .expect_err("It was possible to record two try benchmark requests without artifacts"); + let result = db + .insert_benchmark_request(&BenchmarkRequest::create_try_without_artifacts( + 42, "", "", + )) + .await + .unwrap(); + assert_eq!(result, BenchmarkRequestInsertResult::AlreadyQueued); Ok(ctx) }) .await; @@ -592,14 +597,17 @@ mod tests { .await .unwrap(); - db.insert_benchmark_request(&BenchmarkRequest::create_master( - "a-sha-2", - "parent-sha-2", - 42, - Utc::now(), - )) - .await - .expect_err("it was possible to insert a second master commit on the same PR"); + let result = db + .insert_benchmark_request(&BenchmarkRequest::create_master( + "a-sha-2", + "parent-sha-2", + 42, + Utc::now(), + )) + .await + .unwrap(); + + assert_eq!(result, BenchmarkRequestInsertResult::AlreadyQueued); Ok(ctx) }) diff --git a/database/src/pool/postgres.rs b/database/src/pool/postgres.rs index 499a10e21..e605b7967 100644 --- a/database/src/pool/postgres.rs +++ b/database/src/pool/postgres.rs @@ -5,10 +5,10 @@ use crate::selector::CompileTestCase; use crate::{ ArtifactCollection, ArtifactId, ArtifactIdNumber, Benchmark, BenchmarkJob, BenchmarkJobConclusion, BenchmarkJobKind, BenchmarkJobStatus, BenchmarkRequest, - BenchmarkRequestIndex, BenchmarkRequestStatus, BenchmarkRequestType, - BenchmarkRequestWithErrors, BenchmarkSet, CodegenBackend, CollectionId, CollectorConfig, - Commit, CommitType, CompileBenchmark, Date, Index, PendingBenchmarkRequests, Profile, - QueuedCommit, Scenario, Target, BENCHMARK_JOB_STATUS_FAILURE_STR, + BenchmarkRequestIndex, BenchmarkRequestInsertResult, BenchmarkRequestStatus, + BenchmarkRequestType, BenchmarkRequestWithErrors, BenchmarkSet, CodegenBackend, CollectionId, + CollectorConfig, Commit, CommitType, CompileBenchmark, Date, Index, PendingBenchmarkRequests, + Profile, QueuedCommit, Scenario, Target, BENCHMARK_JOB_STATUS_FAILURE_STR, BENCHMARK_JOB_STATUS_IN_PROGRESS_STR, BENCHMARK_JOB_STATUS_QUEUED_STR, BENCHMARK_JOB_STATUS_SUCCESS_STR, BENCHMARK_REQUEST_MASTER_STR, BENCHMARK_REQUEST_RELEASE_STR, BENCHMARK_REQUEST_STATUS_ARTIFACTS_READY_STR, BENCHMARK_REQUEST_STATUS_COMPLETED_STR, @@ -1633,9 +1633,10 @@ where async fn insert_benchmark_request( &self, benchmark_request: &BenchmarkRequest, - ) -> anyhow::Result<()> { - self.conn() - .execute( + ) -> anyhow::Result { + let rows = self + .conn() + .query( r#" INSERT INTO benchmark_request( tag, @@ -1648,7 +1649,9 @@ where profiles, commit_date ) - VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9); + VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9) + ON CONFLICT DO NOTHING + RETURNING id; "#, &[ &benchmark_request.tag(), @@ -1664,7 +1667,13 @@ where ) .await .context("Failed to insert benchmark request")?; - Ok(()) + if rows.is_empty() { + // Allows us to handle duplicated cases without the database auto + // erroring + Ok(BenchmarkRequestInsertResult::AlreadyQueued) + } else { + Ok(BenchmarkRequestInsertResult::Queued) + } } async fn load_benchmark_request_index(&self) -> anyhow::Result { diff --git a/database/src/pool/sqlite.rs b/database/src/pool/sqlite.rs index 803eb02c9..f61079da2 100644 --- a/database/src/pool/sqlite.rs +++ b/database/src/pool/sqlite.rs @@ -4,9 +4,10 @@ use crate::pool::{ use crate::selector::CompileTestCase; use crate::{ ArtifactCollection, ArtifactId, Benchmark, BenchmarkJob, BenchmarkJobConclusion, - BenchmarkJobKind, BenchmarkRequest, BenchmarkRequestIndex, BenchmarkRequestStatus, - BenchmarkRequestWithErrors, BenchmarkSet, CodegenBackend, CollectionId, CollectorConfig, - Commit, CommitType, CompileBenchmark, Date, PendingBenchmarkRequests, Profile, Target, + BenchmarkJobKind, BenchmarkRequest, BenchmarkRequestIndex, BenchmarkRequestInsertResult, + BenchmarkRequestStatus, BenchmarkRequestWithErrors, BenchmarkSet, CodegenBackend, CollectionId, + CollectorConfig, Commit, CommitType, CompileBenchmark, Date, PendingBenchmarkRequests, Profile, + Target, }; use crate::{ArtifactIdNumber, Index, QueuedCommit}; use chrono::{DateTime, TimeZone, Utc}; @@ -1318,7 +1319,7 @@ impl Connection for SqliteConnection { async fn insert_benchmark_request( &self, _benchmark_request: &BenchmarkRequest, - ) -> anyhow::Result<()> { + ) -> anyhow::Result { no_queue_implementation_abort!() } diff --git a/site/src/job_queue/mod.rs b/site/src/job_queue/mod.rs index 1849b7e3d..7343c9659 100644 --- a/site/src/job_queue/mod.rs +++ b/site/src/job_queue/mod.rs @@ -8,9 +8,9 @@ use chrono::Utc; use collector::benchmark_set::benchmark_set_count; use database::pool::{JobEnqueueResult, Transaction}; use database::{ - BenchmarkJobKind, BenchmarkRequest, BenchmarkRequestIndex, BenchmarkRequestStatus, - BenchmarkRequestType, CodegenBackend, Connection, Date, PendingBenchmarkRequests, Profile, - QueuedCommit, Target, + BenchmarkJobKind, BenchmarkRequest, BenchmarkRequestIndex, BenchmarkRequestInsertResult, + BenchmarkRequestStatus, BenchmarkRequestType, CodegenBackend, Connection, Date, + PendingBenchmarkRequests, Profile, QueuedCommit, Target, }; use parking_lot::RwLock; use std::sync::Arc; @@ -29,7 +29,6 @@ pub fn should_use_job_queue(_pr: u32) -> bool { /// Store the latest master commits or do nothing if all of them are /// already in the database. -/// Returns `true` if at least one benchmark request was inserted. async fn create_benchmark_request_master_commits( ctxt: &SiteCtxt, conn: &dyn database::pool::Connection, @@ -56,8 +55,16 @@ async fn create_benchmark_request_master_commits( ); log::info!("Inserting master benchmark request {benchmark:?}"); - if let Err(error) = conn.insert_benchmark_request(&benchmark).await { - log::error!("Failed to insert master benchmark request: {error:?}"); + match conn.insert_benchmark_request(&benchmark).await { + Ok(BenchmarkRequestInsertResult::AlreadyQueued) => { + log::error!( + "Failed to insert master benchmark request, request for PR`#{pr}` already exists", + ); + } + Ok(BenchmarkRequestInsertResult::Queued) => {} + Err(e) => { + log::error!("Failed to insert master benchmark request: {e:?}"); + } } } } @@ -87,8 +94,16 @@ async fn create_benchmark_request_releases( let release_request = BenchmarkRequest::create_release(&name, commit_date); log::info!("Inserting release benchmark request {release_request:?}"); - if let Err(error) = conn.insert_benchmark_request(&release_request).await { - log::error!("Failed to insert release benchmark request: {error}"); + match conn.insert_benchmark_request(&release_request).await { + Ok(BenchmarkRequestInsertResult::AlreadyQueued) => { + log::error!( + "Failed to insert release benchmark request, release with tag `{name}` already exists" + ); + } + Ok(BenchmarkRequestInsertResult::Queued) => {} + Err(e) => { + log::error!("Failed to insert release benchmark request: {e}"); + } } } } diff --git a/site/src/request_handlers/github.rs b/site/src/request_handlers/github.rs index 905e90b77..25e81d357 100644 --- a/site/src/request_handlers/github.rs +++ b/site/src/request_handlers/github.rs @@ -6,7 +6,7 @@ use crate::github::{ use crate::job_queue::should_use_job_queue; use crate::load::SiteCtxt; -use database::{parse_backends, BenchmarkRequest, CodegenBackend}; +use database::{parse_backends, BenchmarkRequest, BenchmarkRequestInsertResult, CodegenBackend}; use hashbrown::HashMap; use std::sync::Arc; @@ -76,19 +76,48 @@ async fn handle_issue( Ok(github::Response) } +fn get_awaiting_on_bors_message() -> String { + format!( + "Awaiting bors try build completion. + +@rustbot label: +S-waiting-on-perf + +{COMMENT_MARK_TEMPORARY}" + ) +} + /// The try request does not have a `sha` or a `parent_sha` but we need to keep a record /// of this commit existing. The DB ensures that there is only one non-completed /// try benchmark request per `pr`. async fn record_try_benchmark_request_without_artifacts( + client: &client::Client, conn: &dyn database::pool::Connection, pr: u32, backends: &str, -) { +) -> ServerResult { let try_request = BenchmarkRequest::create_try_without_artifacts(pr, backends, ""); log::info!("Inserting try benchmark request {try_request:?}"); - if let Err(e) = conn.insert_benchmark_request(&try_request).await { - log::error!("Failed to insert try benchmark request: {}", e); + + match conn.insert_benchmark_request(&try_request).await { + Ok(BenchmarkRequestInsertResult::AlreadyQueued) => { + log::error!( + "Failed to insert try benchmark request, a request for PR`#{pr}` already exists" + ); + client.post_comment(pr, format!("Failed to insert try benchmark request, a request for PR`#{pr}` already exists")).await; + } + Ok(BenchmarkRequestInsertResult::Queued) => { + client + .post_comment(pr, get_awaiting_on_bors_message()) + .await; + } + Err(e) => { + log::error!("Failed to insert release benchmark request: {e}"); + client + .post_comment(pr, "Something went wrong! This is most likely an internal failure, please message on Zulip".to_string()) + .await; + } } + Ok(github::Response) } async fn handle_rust_timer( @@ -123,7 +152,8 @@ async fn handle_rust_timer( let conn = ctxt.conn().await; if should_use_job_queue(issue.number) { - record_try_benchmark_request_without_artifacts( + return record_try_benchmark_request_without_artifacts( + main_client, &*conn, issue.number, cmd.params.backends.unwrap_or(""), @@ -139,13 +169,7 @@ async fn handle_rust_timer( ) .await; } - format!( - "Awaiting bors try build completion. - -@rustbot label: +S-waiting-on-perf - -{COMMENT_MARK_TEMPORARY}" - ) + get_awaiting_on_bors_message() } Err(error) => { format!("Error occurred while parsing comment: {error}") @@ -177,7 +201,8 @@ async fn handle_rust_timer( let conn = ctxt.conn().await; for command in &valid_build_cmds { if should_use_job_queue(issue.number) { - record_try_benchmark_request_without_artifacts( + return record_try_benchmark_request_without_artifacts( + main_client, &*conn, issue.number, command.params.backends.unwrap_or(""), From 497cde52456704decde13878d38071e5c01d4b03 Mon Sep 17 00:00:00 2001 From: James Barford-Evans Date: Tue, 18 Nov 2025 10:02:43 +0000 Subject: [PATCH 2/5] PR Feedback: rename enum variants and update messages --- database/src/lib.rs | 4 ++-- database/src/pool.rs | 9 ++++++--- database/src/pool/postgres.rs | 4 ++-- site/src/job_queue/mod.rs | 8 ++++---- site/src/request_handlers/github.rs | 30 ++++++++++------------------- 5 files changed, 24 insertions(+), 31 deletions(-) diff --git a/database/src/lib.rs b/database/src/lib.rs index d1d1409c0..02cc4bef4 100644 --- a/database/src/lib.rs +++ b/database/src/lib.rs @@ -1041,8 +1041,8 @@ impl BenchmarkRequest { #[derive(Debug, Clone, PartialEq)] pub enum BenchmarkRequestInsertResult { - Queued, - AlreadyQueued, + Inserted, + NothingInserted, } pub fn parse_backends(backends: &str) -> Result, String> { diff --git a/database/src/pool.rs b/database/src/pool.rs index 7424b289b..a3b2d7b7e 100644 --- a/database/src/pool.rs +++ b/database/src/pool.rs @@ -543,7 +543,10 @@ mod tests { .await; assert!(result.is_ok()); - assert_eq!(result.unwrap(), BenchmarkRequestInsertResult::AlreadyQueued); + assert_eq!( + result.unwrap(), + BenchmarkRequestInsertResult::NothingInserted + ); Ok(ctx) }) @@ -576,7 +579,7 @@ mod tests { .await .unwrap(); - assert_eq!(result, BenchmarkRequestInsertResult::AlreadyQueued); + assert_eq!(result, BenchmarkRequestInsertResult::NothingInserted); Ok(ctx) }) .await; @@ -607,7 +610,7 @@ mod tests { .await .unwrap(); - assert_eq!(result, BenchmarkRequestInsertResult::AlreadyQueued); + assert_eq!(result, BenchmarkRequestInsertResult::NothingInserted); Ok(ctx) }) diff --git a/database/src/pool/postgres.rs b/database/src/pool/postgres.rs index e605b7967..c54030f29 100644 --- a/database/src/pool/postgres.rs +++ b/database/src/pool/postgres.rs @@ -1670,9 +1670,9 @@ where if rows.is_empty() { // Allows us to handle duplicated cases without the database auto // erroring - Ok(BenchmarkRequestInsertResult::AlreadyQueued) + Ok(BenchmarkRequestInsertResult::NothingInserted) } else { - Ok(BenchmarkRequestInsertResult::Queued) + Ok(BenchmarkRequestInsertResult::Inserted) } } diff --git a/site/src/job_queue/mod.rs b/site/src/job_queue/mod.rs index 7343c9659..a61bddebe 100644 --- a/site/src/job_queue/mod.rs +++ b/site/src/job_queue/mod.rs @@ -56,12 +56,12 @@ async fn create_benchmark_request_master_commits( log::info!("Inserting master benchmark request {benchmark:?}"); match conn.insert_benchmark_request(&benchmark).await { - Ok(BenchmarkRequestInsertResult::AlreadyQueued) => { + Ok(BenchmarkRequestInsertResult::NothingInserted) => { log::error!( "Failed to insert master benchmark request, request for PR`#{pr}` already exists", ); } - Ok(BenchmarkRequestInsertResult::Queued) => {} + Ok(BenchmarkRequestInsertResult::Inserted) => {} Err(e) => { log::error!("Failed to insert master benchmark request: {e:?}"); } @@ -95,12 +95,12 @@ async fn create_benchmark_request_releases( log::info!("Inserting release benchmark request {release_request:?}"); match conn.insert_benchmark_request(&release_request).await { - Ok(BenchmarkRequestInsertResult::AlreadyQueued) => { + Ok(BenchmarkRequestInsertResult::NothingInserted) => { log::error!( "Failed to insert release benchmark request, release with tag `{name}` already exists" ); } - Ok(BenchmarkRequestInsertResult::Queued) => {} + Ok(BenchmarkRequestInsertResult::Inserted) => {} Err(e) => { log::error!("Failed to insert release benchmark request: {e}"); } diff --git a/site/src/request_handlers/github.rs b/site/src/request_handlers/github.rs index 25e81d357..551c86282 100644 --- a/site/src/request_handlers/github.rs +++ b/site/src/request_handlers/github.rs @@ -90,34 +90,26 @@ fn get_awaiting_on_bors_message() -> String { /// of this commit existing. The DB ensures that there is only one non-completed /// try benchmark request per `pr`. async fn record_try_benchmark_request_without_artifacts( - client: &client::Client, conn: &dyn database::pool::Connection, pr: u32, backends: &str, -) -> ServerResult { +) -> String { let try_request = BenchmarkRequest::create_try_without_artifacts(pr, backends, ""); log::info!("Inserting try benchmark request {try_request:?}"); match conn.insert_benchmark_request(&try_request).await { - Ok(BenchmarkRequestInsertResult::AlreadyQueued) => { - log::error!( + Ok(BenchmarkRequestInsertResult::NothingInserted) => { + log::info!( "Failed to insert try benchmark request, a request for PR`#{pr}` already exists" ); - client.post_comment(pr, format!("Failed to insert try benchmark request, a request for PR`#{pr}` already exists")).await; - } - Ok(BenchmarkRequestInsertResult::Queued) => { - client - .post_comment(pr, get_awaiting_on_bors_message()) - .await; + format!("This pull request was already queued before and is awaiting a try build to finish.") } + Ok(BenchmarkRequestInsertResult::Inserted) => get_awaiting_on_bors_message(), Err(e) => { log::error!("Failed to insert release benchmark request: {e}"); - client - .post_comment(pr, "Something went wrong! This is most likely an internal failure, please message on Zulip".to_string()) - .await; + "Something went wrong! This is most likely an internal failure, please let us know on [Zulip](https://rust-lang.zulipchat.com/#narrow/channel/247081-t-compiler.2Fperformance)".to_string() } } - Ok(github::Response) } async fn handle_rust_timer( @@ -152,13 +144,12 @@ async fn handle_rust_timer( let conn = ctxt.conn().await; if should_use_job_queue(issue.number) { - return record_try_benchmark_request_without_artifacts( - main_client, + record_try_benchmark_request_without_artifacts( &*conn, issue.number, cmd.params.backends.unwrap_or(""), ) - .await; + .await } else { conn.queue_pr( issue.number, @@ -168,8 +159,8 @@ async fn handle_rust_timer( cmd.params.backends, ) .await; + get_awaiting_on_bors_message() } - get_awaiting_on_bors_message() } Err(error) => { format!("Error occurred while parsing comment: {error}") @@ -201,8 +192,7 @@ async fn handle_rust_timer( let conn = ctxt.conn().await; for command in &valid_build_cmds { if should_use_job_queue(issue.number) { - return record_try_benchmark_request_without_artifacts( - main_client, + record_try_benchmark_request_without_artifacts( &*conn, issue.number, command.params.backends.unwrap_or(""), From c17be95dd1347d0c4b7babad207ef0a2d714f39f Mon Sep 17 00:00:00 2001 From: James Barford-Evans Date: Tue, 18 Nov 2025 10:06:14 +0000 Subject: [PATCH 3/5] Add doc comment --- database/src/lib.rs | 4 ++++ site/src/request_handlers/github.rs | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/database/src/lib.rs b/database/src/lib.rs index 02cc4bef4..053e941c2 100644 --- a/database/src/lib.rs +++ b/database/src/lib.rs @@ -1039,9 +1039,13 @@ impl BenchmarkRequest { } } +/// Result of inserting into the database #[derive(Debug, Clone, PartialEq)] pub enum BenchmarkRequestInsertResult { + /// The request was inserted into the database and is a unique instance Inserted, + /// The request was not inserted into the database as something else already + /// existed that clashed with the unique clause NothingInserted, } diff --git a/site/src/request_handlers/github.rs b/site/src/request_handlers/github.rs index 551c86282..a874831f4 100644 --- a/site/src/request_handlers/github.rs +++ b/site/src/request_handlers/github.rs @@ -102,7 +102,8 @@ async fn record_try_benchmark_request_without_artifacts( log::info!( "Failed to insert try benchmark request, a request for PR`#{pr}` already exists" ); - format!("This pull request was already queued before and is awaiting a try build to finish.") + "This pull request was already queued before and is awaiting a try build to finish." + .to_string() } Ok(BenchmarkRequestInsertResult::Inserted) => get_awaiting_on_bors_message(), Err(e) => { From 577493bca0f6b0f08681825724668f0829558531 Mon Sep 17 00:00:00 2001 From: James Barford-Evans Date: Tue, 18 Nov 2025 10:48:15 +0000 Subject: [PATCH 4/5] PR Feedback: Use `execute` and row count, change zulip link to infra --- database/src/pool/postgres.rs | 9 ++++----- site/src/request_handlers/github.rs | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/database/src/pool/postgres.rs b/database/src/pool/postgres.rs index c54030f29..173d763c7 100644 --- a/database/src/pool/postgres.rs +++ b/database/src/pool/postgres.rs @@ -1634,9 +1634,9 @@ where &self, benchmark_request: &BenchmarkRequest, ) -> anyhow::Result { - let rows = self + let row_insert_count = self .conn() - .query( + .execute( r#" INSERT INTO benchmark_request( tag, @@ -1650,8 +1650,7 @@ where commit_date ) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9) - ON CONFLICT DO NOTHING - RETURNING id; + ON CONFLICT DO NOTHING; "#, &[ &benchmark_request.tag(), @@ -1667,7 +1666,7 @@ where ) .await .context("Failed to insert benchmark request")?; - if rows.is_empty() { + if row_insert_count == 0 { // Allows us to handle duplicated cases without the database auto // erroring Ok(BenchmarkRequestInsertResult::NothingInserted) diff --git a/site/src/request_handlers/github.rs b/site/src/request_handlers/github.rs index a874831f4..ec8a9976c 100644 --- a/site/src/request_handlers/github.rs +++ b/site/src/request_handlers/github.rs @@ -108,7 +108,7 @@ async fn record_try_benchmark_request_without_artifacts( Ok(BenchmarkRequestInsertResult::Inserted) => get_awaiting_on_bors_message(), Err(e) => { log::error!("Failed to insert release benchmark request: {e}"); - "Something went wrong! This is most likely an internal failure, please let us know on [Zulip](https://rust-lang.zulipchat.com/#narrow/channel/247081-t-compiler.2Fperformance)".to_string() + "Something went wrong! This is most likely an internal failure, please let us know on [Zulip]( https://rust-lang.zulipchat.com/#narrow/channel/242791-t-infra)".to_string() } } } From b3bbd3706813e4c2084d403ff92791b74a84d681 Mon Sep 17 00:00:00 2001 From: James Barford-Evans Date: Tue, 18 Nov 2025 11:18:11 +0000 Subject: [PATCH 5/5] PR feedback: remove whitespace --- site/src/request_handlers/github.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/src/request_handlers/github.rs b/site/src/request_handlers/github.rs index ec8a9976c..122218f82 100644 --- a/site/src/request_handlers/github.rs +++ b/site/src/request_handlers/github.rs @@ -108,7 +108,7 @@ async fn record_try_benchmark_request_without_artifacts( Ok(BenchmarkRequestInsertResult::Inserted) => get_awaiting_on_bors_message(), Err(e) => { log::error!("Failed to insert release benchmark request: {e}"); - "Something went wrong! This is most likely an internal failure, please let us know on [Zulip]( https://rust-lang.zulipchat.com/#narrow/channel/242791-t-infra)".to_string() + "Something went wrong! This is most likely an internal failure, please let us know on [Zulip](https://rust-lang.zulipchat.com/#narrow/channel/242791-t-infra)".to_string() } } }