Skip to content

Commit afa8a6f

Browse files
authored
Merge pull request #2316 from Kobzol/remove-request-index
Always load the benchmark request index
2 parents 73cd4c7 + d42788e commit afa8a6f

File tree

2 files changed

+13
-44
lines changed

2 files changed

+13
-44
lines changed

site/src/job_queue/mod.rs

Lines changed: 12 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ async fn create_benchmark_request_master_commits(
3434
ctxt: &SiteCtxt,
3535
conn: &dyn database::pool::Connection,
3636
index: &BenchmarkRequestIndex,
37-
) -> anyhow::Result<bool> {
37+
) -> anyhow::Result<()> {
3838
let now = Utc::now();
3939

4040
let master_commits = ctxt.get_master_commits();
@@ -44,7 +44,6 @@ async fn create_benchmark_request_master_commits(
4444
.iter()
4545
.filter(|c| now.signed_duration_since(c.time) < chrono::Duration::days(29));
4646

47-
let mut inserted = false;
4847
for master_commit in master_commits {
4948
if !index.contains_tag(&master_commit.sha) && conn.pr_of(&master_commit.sha).await.is_none()
5049
{
@@ -59,12 +58,10 @@ async fn create_benchmark_request_master_commits(
5958

6059
if let Err(error) = conn.insert_benchmark_request(&benchmark).await {
6160
log::error!("Failed to insert master benchmark request: {error:?}");
62-
} else {
63-
inserted = true;
6461
}
6562
}
6663
}
67-
Ok(inserted)
64+
Ok(())
6865
}
6966

7067
/// Store the latest release commits or do nothing if all of them are
@@ -73,7 +70,7 @@ async fn create_benchmark_request_master_commits(
7370
async fn create_benchmark_request_releases(
7471
conn: &dyn database::pool::Connection,
7572
index: &BenchmarkRequestIndex,
76-
) -> anyhow::Result<bool> {
73+
) -> anyhow::Result<()> {
7774
let releases: String = reqwest::get("https://static.rust-lang.org/manifests.txt")
7875
.await?
7976
.text()
@@ -85,20 +82,17 @@ async fn create_benchmark_request_releases(
8582
.filter_map(parse_release_string)
8683
.take(20);
8784

88-
let mut inserted = false;
8985
for (name, commit_date) in releases {
9086
if !index.contains_tag(&name) && conn.artifact_by_name(&name).await.is_none() {
9187
let release_request = BenchmarkRequest::create_release(&name, commit_date);
9288
log::info!("Inserting release benchmark request {release_request:?}");
9389

9490
if let Err(error) = conn.insert_benchmark_request(&release_request).await {
9591
log::error!("Failed to insert release benchmark request: {error}");
96-
} else {
97-
inserted = true;
9892
}
9993
}
10094
}
101-
Ok(inserted)
95+
Ok(())
10296
}
10397

10498
/// Sorts try and master requests that are in the `ArtifactsReady` status and return them in the
@@ -431,23 +425,18 @@ async fn perform_queue_tick(ctxt: &SiteCtxt) -> anyhow::Result<()> {
431425
return Ok(());
432426
}
433427

434-
let index = ctxt.known_benchmark_requests.load();
435-
436-
let mut requests_inserted = false;
428+
let index = conn
429+
.load_benchmark_request_index()
430+
.await
431+
.context("Failed to load benchmark request index")?;
437432

438433
// Put the master commits into the `benchmark_requests` queue
439-
match create_benchmark_request_master_commits(ctxt, &*conn, &index).await {
440-
Ok(inserted) => requests_inserted |= inserted,
441-
Err(error) => {
442-
log::error!("Could not insert master benchmark requests into the database: {error:?}");
443-
}
434+
if let Err(error) = create_benchmark_request_master_commits(ctxt, &*conn, &index).await {
435+
log::error!("Could not insert master benchmark requests into the database: {error:?}");
444436
}
445437
// Put the releases into the `benchmark_requests` queue
446-
match create_benchmark_request_releases(&*conn, &index).await {
447-
Ok(inserted) => requests_inserted |= inserted,
448-
Err(error) => {
449-
log::error!("Could not insert release benchmark requests into the database: {error:?}");
450-
}
438+
if let Err(error) = create_benchmark_request_releases(&*conn, &index).await {
439+
log::error!("Could not insert release benchmark requests into the database: {error:?}");
451440
}
452441

453442
let mut completed_benchmarks = vec![];
@@ -467,22 +456,6 @@ async fn perform_queue_tick(ctxt: &SiteCtxt) -> anyhow::Result<()> {
467456
);
468457
}
469458

470-
// If some change happened, reload the benchmark request index
471-
if requests_inserted {
472-
match conn
473-
.load_benchmark_request_index()
474-
.await
475-
.context("Failed to load benchmark request index")
476-
{
477-
Ok(index) => {
478-
ctxt.known_benchmark_requests.store(Arc::new(index));
479-
}
480-
Err(error) => {
481-
result = combine_result(result, Err(error));
482-
}
483-
};
484-
}
485-
486459
// Propagate the error
487460
result
488461
}

site/src/load.rs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ use serde::{Deserialize, Serialize};
1414
use crate::self_profile::SelfProfileCache;
1515
use collector::compile::benchmark::category::Category;
1616
use collector::{Bound, MasterCommit};
17+
use database::Pool;
1718
pub use database::{ArtifactId, Benchmark, Commit};
18-
use database::{BenchmarkRequestIndex, Pool};
1919
use database::{CommitType, Date};
2020

2121
#[derive(Debug, PartialEq, Eq, Clone, Serialize, Deserialize)]
@@ -128,8 +128,6 @@ pub struct SiteCtxt {
128128
pub landing_page: ArcSwap<Option<Arc<crate::api::graphs::Response>>>,
129129
/// Index of various common queries
130130
pub index: ArcSwap<database::Index>,
131-
/// Index of all benchmark requests that we have in the DB
132-
pub known_benchmark_requests: ArcSwap<BenchmarkRequestIndex>,
133131
/// Cached master-branch Rust commits
134132
pub master_commits: Arc<ArcSwap<MasterCommitCache>>, // outer Arc enables mutation in background task
135133
/// Cache for self profile data
@@ -162,7 +160,6 @@ impl SiteCtxt {
162160

163161
let mut conn = pool.connection().await;
164162
let index = database::Index::load(&mut *conn).await;
165-
let benchmark_request_index = conn.load_benchmark_request_index().await?;
166163

167164
let config = if let Ok(s) = fs::read_to_string("site-config.toml") {
168165
toml::from_str(&s)?
@@ -180,7 +177,6 @@ impl SiteCtxt {
180177
Ok(Self {
181178
config,
182179
index: ArcSwap::new(Arc::new(index)),
183-
known_benchmark_requests: ArcSwap::new(Arc::new(benchmark_request_index)),
184180
master_commits: Arc::new(ArcSwap::new(Arc::new(master_commits))),
185181
pool,
186182
landing_page: ArcSwap::new(Arc::new(None)),

0 commit comments

Comments
 (0)