From 348eaac81bc4398e9432edaceff33c35b1d65454 Mon Sep 17 00:00:00 2001 From: Peter Crosthwaite Date: Sat, 20 Jun 2026 07:51:18 +1000 Subject: [PATCH] Added config options for setting timeouts on mysql/mariadb --- src/domain/mariadb/backup.rs | 2 +- src/domain/mysql/backup.rs | 3 +++ src/services/config.rs | 9 +++++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/domain/mariadb/backup.rs b/src/domain/mariadb/backup.rs index a4b59e6..5c8526e 100644 --- a/src/domain/mariadb/backup.rs +++ b/src/domain/mariadb/backup.rs @@ -50,7 +50,7 @@ pub async fn run( .arg("--skip-add-drop-table") .arg("--compress") .arg("--verbose") - .arg("--max-allowed-packet=512M") + .arg(format!("--max-allowed-packet={}", cfg.max_allowed_packet)) .arg("--net-buffer-length=16K") .arg("--default-character-set=utf8mb4") .arg(&cfg.database) diff --git a/src/domain/mysql/backup.rs b/src/domain/mysql/backup.rs index ebadcc2..17e3647 100644 --- a/src/domain/mysql/backup.rs +++ b/src/domain/mysql/backup.rs @@ -48,6 +48,9 @@ pub async fn run( .arg("--skip-add-drop-table") .arg("--no-create-db") .arg("--default-character-set=utf8mb4") + .arg(format!("--net-read-timeout={}", cfg.net_read_timeout)) + .arg(format!("--net-write-timeout={}", cfg.net_write_timeout)) + .arg(format!("--max-allowed-packet={}", cfg.max_allowed_packet)) .arg(&cfg.database) .arg("-r").arg(&file_path) .envs(env) diff --git a/src/services/config.rs b/src/services/config.rs index 2a9d350..625c565 100644 --- a/src/services/config.rs +++ b/src/services/config.rs @@ -54,6 +54,9 @@ pub struct DatabaseConfig { pub host: String, pub generated_id: String, pub path: String, + pub net_read_timeout: u32, + pub net_write_timeout: u32, + pub max_allowed_packet: String, } #[allow(dead_code)] @@ -75,6 +78,9 @@ pub struct InputDatabaseConfig { pub host: Option, pub generated_id: String, pub path: Option, + pub net_read_timeout: Option, + pub net_write_timeout: Option, + pub max_allowed_packet: Option, } #[allow(dead_code)] @@ -224,6 +230,9 @@ impl ConfigService { port, generated_id: db.generated_id, path: path_val, + net_read_timeout: db.net_read_timeout.unwrap_or(3600), + net_write_timeout: db.net_write_timeout.unwrap_or(3600), + max_allowed_packet: db.max_allowed_packet.unwrap_or_else(|| "512M".to_string()), }); }