Skip to content

Commit

Permalink
Auto merge of #617 - Mark-Simulacrum:opt, r=Mark-Simulacrum
Browse files Browse the repository at this point in the history
Wait for up to a second for existing database lock to clear

This lets users queue new builds and otherwise schedule work while an ongoing
run is proceeding (with lots of record-progress hits). Arguably we want to
prioritize user-initiated commands to take effect and cancel ongoing
record-progress operations (and other automated work), but that will need more
care.

Should fix cases like rust-lang/rust#94775 (comment),
or at least make them much more rare (individual database operations should very rarely take >1s,
though our logs do suggest it is not entirely infrequent today. (That's something that's worth looking into,
just haven't had time yet).

```
[2022-03-10T16:08:38Z DEBUG crater::db] sql query "INSERT INTO results (experiment, crate, toolchain, result, log, encoding) VALUES (?1, ?2, ?3, ?4, ?5, ?6);" executed in 5.009915144s
[2022-03-10T16:08:43Z DEBUG crater::db] sql query "INSERT INTO results (experiment, crate, toolchain, result, log, encoding) VALUES (?1, ?2, ?3, ?4, ?5, ?6);" executed in 5.009725792s
[2022-03-10T16:08:46Z DEBUG crater::db] sql query "INSERT INTO results (experiment, crate, toolchain, result, log, encoding) VALUES (?1, ?2, ?3, ?4, ?5, ?6);" executed in 3.235525973s
```
  • Loading branch information
bors committed Mar 10, 2022
2 parents 6386c67 + 3802622 commit 1691543
Showing 1 changed file with 1 addition and 0 deletions.
1 change: 1 addition & 0 deletions src/db/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ struct ConnectionCustomizer;
impl CustomizeConnection<Connection, ::rusqlite::Error> for ConnectionCustomizer {
fn on_acquire(&self, conn: &mut Connection) -> Result<(), ::rusqlite::Error> {
conn.execute("PRAGMA foreign_keys = ON;", [])?;
conn.execute("PRAGMA busy_timeout = 1000;", [])?;
Ok(())
}
}
Expand Down

0 comments on commit 1691543

Please sign in to comment.