From e4cbc38bfdbb63ae2be579151b84b9357106f445 Mon Sep 17 00:00:00 2001 From: Aiden McClelland Date: Mon, 7 Dec 2020 17:40:39 -0700 Subject: [PATCH] appmgr: fix locking for app status repair --- appmgr/src/control.rs | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/appmgr/src/control.rs b/appmgr/src/control.rs index 1a6434e26..8934c1d72 100644 --- a/appmgr/src/control.rs +++ b/appmgr/src/control.rs @@ -207,6 +207,18 @@ pub async fn resume_app(name: &str) -> Result<(), Error> { } pub async fn repair_app_status() -> Result<(), Error> { + let lock = crate::util::lock_file( + format!( + "{}", + Path::new(crate::PERSISTENCE_DIR) + .join("apps") + .join(name) + .join("control.lock") + .display() + ), + true, + ) + .await?; let running: Vec = if let Some(mut f) = PersistencePath::from_ref("running.yaml") .maybe_read(false) .await @@ -217,22 +229,10 @@ pub async fn repair_app_status() -> Result<(), Error> { Vec::new() }; for name in running { - let lock = crate::util::lock_file( - format!( - "{}", - Path::new(crate::PERSISTENCE_DIR) - .join("apps") - .join(&name) - .join("control.lock") - .display() - ), - true, - ) - .await?; if crate::apps::status(&name, false).await?.status == crate::apps::DockerStatus::Stopped { start_app(&name, true).await?; } - crate::util::unlock(lock).await?; } + crate::util::unlock(lock).await?; Ok(()) }