From c05244cda928c94c25dc17bc9f8c6211106ded9a Mon Sep 17 00:00:00 2001
From: BrennanConroy <brecon@microsoft.com>
Date: Thu, 23 May 2019 14:46:32 -0700
Subject: [PATCH] More docker resiliency for tests (#10425)

---
 src/SignalR/server/StackExchangeRedis/test/Docker.cs | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/SignalR/server/StackExchangeRedis/test/Docker.cs b/src/SignalR/server/StackExchangeRedis/test/Docker.cs
index c5f613461e9..cdcbe9bfccf 100644
--- a/src/SignalR/server/StackExchangeRedis/test/Docker.cs
+++ b/src/SignalR/server/StackExchangeRedis/test/Docker.cs
@@ -81,6 +81,9 @@ namespace Microsoft.AspNetCore.SignalR.StackExchangeRedis.Tests
             {
                 logger.LogError(ex, "Error starting redis docker container, retrying.");
                 Thread.Sleep(1000);
+
+                // Call stop just in case the container somehow started after the timeout so our retry logic doesn't fail
+                RunProcessAndWait(_path, $"stop {_dockerContainerName}", "docker stop", logger, TimeSpan.FromSeconds(15), out var _);
                 Run();
             }
 
@@ -90,7 +93,7 @@ namespace Microsoft.AspNetCore.SignalR.StackExchangeRedis.Tests
                 // use static name 'redisTestContainer' so if the container doesn't get removed we don't keep adding more
                 // use redis base docker image
                 // 30 second timeout to allow redis image to be downloaded, should be a rare occurrence, only happening when a new version is released
-                RunProcessAndThrowIfFailed(_path, $"run --rm -p 6379:6379 --name {_dockerContainerName} -d redis", "redis", logger, TimeSpan.FromSeconds(30));
+                RunProcessAndThrowIfFailed(_path, $"run --rm -p 6379:6379 --name {_dockerContainerName} -d redis", "redis", logger, TimeSpan.FromMinutes(1));
             }
         }
 
-- 
GitLab