Skip to content

Commit f33b946

Browse files
committed
Fix StandBy mode bug
1 parent 4f5da41 commit f33b946

File tree

3 files changed

+21
-24
lines changed

3 files changed

+21
-24
lines changed

src/WebJobs.Script.WebHost/App_Start/WebHostResolver.cs

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -124,29 +124,17 @@ private void EnsureInitialized(WebHostSettings settings)
124124
{
125125
if (_standbyHostManager == null)
126126
{
127-
_standbyScriptHostConfig = CreateStandbyScriptHostConfiguration(settings);
128-
StandbyManager.Initialize(_standbyScriptHostConfig);
127+
_standbyScriptHostConfig = CreateScriptHostConfiguration(settings, true);
129128
_standbyHostManager = new WebScriptHostManager(_standbyScriptHostConfig, _secretManagerFactory, _eventManager, _settingsManager, settings);
130129
_standbyReceiverManager = new WebHookReceiverManager(_standbyHostManager.SecretManager);
130+
131131
InitializeFileSystem();
132+
StandbyManager.Initialize(_standbyScriptHostConfig);
132133
}
133134
}
134135
}
135136

136-
internal static ScriptHostConfiguration CreateStandbyScriptHostConfiguration(WebHostSettings settings)
137-
{
138-
settings.ScriptPath = Path.Combine(Path.GetTempPath(), "Functions", "Standby");
139-
140-
var scriptHostConfig = CreateScriptHostConfiguration(settings);
141-
142-
scriptHostConfig.FileLoggingMode = FileLoggingMode.Always;
143-
scriptHostConfig.HostConfig.StorageConnectionString = null;
144-
scriptHostConfig.HostConfig.DashboardConnectionString = null;
145-
146-
return scriptHostConfig;
147-
}
148-
149-
internal static ScriptHostConfiguration CreateScriptHostConfiguration(WebHostSettings settings)
137+
internal static ScriptHostConfiguration CreateScriptHostConfiguration(WebHostSettings settings, bool inStandbyMode = false)
150138
{
151139
var scriptHostConfig = new ScriptHostConfiguration
152140
{
@@ -158,6 +146,14 @@ internal static ScriptHostConfiguration CreateScriptHostConfiguration(WebHostSet
158146
LoggerFactoryBuilder = settings.LoggerFactoryBuilder
159147
};
160148

149+
if (inStandbyMode)
150+
{
151+
scriptHostConfig.RootScriptPath = Path.Combine(Path.GetTempPath(), "Functions", "Standby");
152+
scriptHostConfig.FileLoggingMode = FileLoggingMode.DebugOnly;
153+
scriptHostConfig.HostConfig.StorageConnectionString = null;
154+
scriptHostConfig.HostConfig.DashboardConnectionString = null;
155+
}
156+
161157
scriptHostConfig.HostConfig.HostId = Utility.GetDefaultHostId(_settingsManager, scriptHostConfig);
162158

163159
return scriptHostConfig;

test/WebJobs.Script.Tests.Integration/Host/StandbyManagerTests.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -116,10 +116,8 @@ public async Task StandbyMode_EndToEnd()
116116

117117
await Task.Delay(2000);
118118

119-
// verify host logs
120-
string hostLogDirectory = Path.Combine(webHostSettings.LogPath, "Host");
121-
string hostLogFilePath = Directory.EnumerateFiles(hostLogDirectory).First();
122-
string[] logLines = File.ReadAllLines(hostLogFilePath);
119+
// verify logs
120+
string[] logLines = traceWriter.Traces.Select(p => p.Message).ToArray();
123121
Assert.Equal(2, logLines.Count(p => p.Contains("Host is in standby mode")));
124122
Assert.Equal(1, logLines.Count(p => p.Contains("Stopping Host")));
125123
Assert.Equal(2, logLines.Count(p => p.Contains("Executed 'Functions.WarmUp' (Succeeded")));

test/WebJobs.Script.Tests/WebHostResolverTests.cs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,13 +44,16 @@ public void GetScriptHostConfiguration_SetsHostId()
4444
}
4545

4646
[Fact]
47-
public void CreateStandbyScriptHostConfiguration_StandbyMode_ReturnsExpectedConfiguration()
47+
public void CreateScriptHostConfiguration_StandbyMode_ReturnsExpectedConfiguration()
4848
{
49-
var settings = new WebHostSettings();
49+
var settings = new WebHostSettings
50+
{
51+
IsSelfHost = true
52+
};
5053

51-
var config = WebHostResolver.CreateStandbyScriptHostConfiguration(settings);
54+
var config = WebHostResolver.CreateScriptHostConfiguration(settings, true);
5255

53-
Assert.Equal(FileLoggingMode.Always, config.FileLoggingMode);
56+
Assert.Equal(FileLoggingMode.DebugOnly, config.FileLoggingMode);
5457
Assert.Null(config.HostConfig.StorageConnectionString);
5558
Assert.Null(config.HostConfig.DashboardConnectionString);
5659
Assert.Equal(Path.Combine(Path.GetTempPath(), "Functions", "Standby"), config.RootScriptPath);

0 commit comments

Comments
 (0)