fix(reembed): set a busy timeout so it can run beside the live server

The tool opened a bare connection, so an UPDATE that met the server's
watcher holding the write lock failed at once (SQLITE_BUSY) and aborted
the whole run. Wait up to 15 s instead, like the server's own pool.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Cameron CordesandClaude Opus 5.5 committed 2026-11-03 14:41:55 -05:00
1 parent 5e1519fa80
commit 118bd6904c
1 file changed
+7
+7
View File
@@ -286,6 +286,13 @@ async fn main() -> Result<()> {
let mut conn = SqliteConnection::establish(&database_url) let mut conn = SqliteConnection::establish(&database_url)
.with_context(|| format!("connecting to {}", database_url))?; .with_context(|| format!("connecting to {}", database_url))?;
// Run beside the live server: its watcher writes the same file, and
// without a busy timeout one contended UPDATE fails the whole run.
{
use diesel::connection::SimpleConnection;
conn.batch_execute("PRAGMA busy_timeout = 15000;")
.context("setting busy_timeout")?;
}
// This tool exists to move the corpus to the configured contract, so it // This tool exists to move the corpus to the configured contract, so it
// embeds even while the stored one differs (#189). // embeds even while the stored one differs (#189).