From 4840ddecf961f3cb39fb2f252bf5c9e120519355 Mon Sep 17 00:00:00 2001 From: Aiden McClelland <3732071+dr-bonez@users.noreply.github.com> Date: Wed, 22 Dec 2021 11:53:47 -0700 Subject: [PATCH] retry failed pause (#985) --- appmgr/src/manager/mod.rs | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/appmgr/src/manager/mod.rs b/appmgr/src/manager/mod.rs index d45ca0462..1e2ef8828 100644 --- a/appmgr/src/manager/mod.rs +++ b/appmgr/src/manager/mod.rs @@ -569,11 +569,24 @@ async fn start(shared: &ManagerSharedState) -> Result<(), Error> { #[instrument(skip(shared))] async fn pause(shared: &ManagerSharedState) -> Result<(), Error> { - shared - .ctx - .docker - .pause_container(&shared.container_name) - .await?; + let mut res = Ok(()); + for _retry in 0..5 { + res = shared + .ctx + .docker + .pause_container(&shared.container_name) + .await; + if !matches!( + res, + Err(bollard::errors::Error::DockerResponseServerError { + status_code: 500, + .. + }), + ) { + break; + } + } + res?; shared .status .store(Status::Paused as usize, std::sync::atomic::Ordering::SeqCst);