Skip to content

Commit 73a1d4e

Browse files
committed
Revert "Switching worker indexing feature flag from opt-in to opt-out (#8864)"
1 parent b8627a1 commit 73a1d4e

File tree

9 files changed

+29
-32
lines changed

9 files changed

+29
-32
lines changed

src/WebJobs.Script/Host/WorkerFunctionMetadataProvider.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,20 +20,20 @@ namespace Microsoft.Azure.WebJobs.Script
2020
internal class WorkerFunctionMetadataProvider : IWorkerFunctionMetadataProvider
2121
{
2222
private readonly Dictionary<string, ICollection<string>> _functionErrors = new Dictionary<string, ICollection<string>>();
23-
private readonly IOptions<ScriptApplicationHostOptions> _scriptApplicationHostOptions;
23+
private readonly IOptions<ScriptJobHostOptions> _scriptOptions;
2424
private readonly ILogger _logger;
2525
private readonly IEnvironment _environment;
2626
private readonly IWebHostRpcWorkerChannelManager _channelManager;
2727
private string _workerRuntime;
2828
private ImmutableArray<FunctionMetadata> _functions;
2929

3030
public WorkerFunctionMetadataProvider(
31-
IOptions<ScriptApplicationHostOptions> scriptOptions,
31+
IOptions<ScriptJobHostOptions> scriptOptions,
3232
ILogger<WorkerFunctionMetadataProvider> logger,
3333
IEnvironment environment,
3434
IWebHostRpcWorkerChannelManager webHostRpcWorkerChannelManager)
3535
{
36-
_scriptApplicationHostOptions = scriptOptions;
36+
_scriptOptions = scriptOptions;
3737
_logger = logger;
3838
_environment = environment;
3939
_channelManager = webHostRpcWorkerChannelManager;
@@ -95,7 +95,7 @@ public async Task<FunctionMetadataResult> GetFunctionMetadataAsync(IEnumerable<R
9595
_logger.FunctionMetadataProviderFunctionFound(_functions.IsDefault ? 0 : _functions.Count());
9696

9797
// Validate if the app has functions in legacy format and add in logs to inform about the mixed app
98-
_ = Task.Delay(TimeSpan.FromMinutes(1)).ContinueWith(t => ValidateFunctionAppFormat(_scriptApplicationHostOptions.Value.ScriptPath, _logger, _environment));
98+
_ = Task.Delay(TimeSpan.FromMinutes(1)).ContinueWith(t => ValidateFunctionAppFormat(_scriptOptions.Value.RootScriptPath, _logger, _environment));
9999

100100
break;
101101
}

src/WebJobs.Script/ScriptConstants.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ public static class ScriptConstants
121121
public const string FeatureFlagEnableDiagnosticEventLogging = "EnableDiagnosticEventLogging";
122122
public const string FeatureFlagDisableDiagnosticEventLogging = "DisableDiagnosticEventLogging";
123123
public const string FeatureFlagDisableMergedWebHostScriptHostConfiguration = "DisableMergedConfiguration";
124-
public const string FeatureFlagDisableWorkerIndexing = "DisableWorkerIndexing";
124+
public const string FeatureFlagEnableWorkerIndexing = "EnableWorkerIndexing";
125125
public const string FeatureFlagEnableDebugTracing = "EnableDebugTracing";
126126
public const string FeatureFlagEnableMultiLanguageWorker = "EnableMultiLanguageWorker";
127127
public const string FeatureFlagEnableProxies = "EnableProxies";

src/WebJobs.Script/Utility.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -926,9 +926,12 @@ public static void ValidateRetryOptions(RetryOptions
926926

927927
public static bool CanWorkerIndex(IEnumerable<RpcWorkerConfig> workerConfigs, IEnvironment environment)
928928
{
929-
if (!FeatureFlags.IsEnabled(ScriptConstants.FeatureFlagDisableWorkerIndexing, environment)
930-
&& workerConfigs != null
931-
&& !environment.IsMultiLanguageRuntimeEnvironment())
929+
if (!FeatureFlags.IsEnabled(ScriptConstants.FeatureFlagEnableWorkerIndexing, environment))
930+
{
931+
return false;
932+
}
933+
934+
if (workerConfigs != null && !environment.IsMultiLanguageRuntimeEnvironment())
932935
{
933936
var workerRuntime = environment.GetEnvironmentVariable(EnvironmentSettingNames.FunctionWorkerRuntime);
934937
var workerConfig = workerConfigs.FirstOrDefault(c => c.Description?.Language != null && c.Description.Language.Equals(workerRuntime, StringComparison.InvariantCultureIgnoreCase));

test/WebJobs.Script.Tests.Integration/WebHostEndToEnd/EndToEndTestFixture.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -122,9 +122,6 @@ string GetDestPath(int counter)
122122
string logPath = Path.Combine(Path.GetTempPath(), @"Functions");
123123
if (!string.IsNullOrEmpty(_functionsWorkerRuntime))
124124
{
125-
string currentFeatureFlags = Environment.GetEnvironmentVariable(EnvironmentSettingNames.AzureWebJobsFeatureFlags);
126-
var featureFlags = string.IsNullOrEmpty(currentFeatureFlags) ? ScriptConstants.FeatureFlagDisableWorkerIndexing : $"{currentFeatureFlags}, {ScriptConstants.FeatureFlagDisableWorkerIndexing}";
127-
Environment.SetEnvironmentVariable(EnvironmentSettingNames.AzureWebJobsFeatureFlags, featureFlags);
128125
Environment.SetEnvironmentVariable(RpcWorkerConstants.FunctionWorkerRuntimeSettingName, _functionsWorkerRuntime);
129126
Environment.SetEnvironmentVariable(RpcWorkerConstants.FunctionsWorkerProcessCountSettingName, _workerProcessCount.ToString());
130127
}

test/WebJobs.Script.Tests.Shared/TestHostBuilderExtensions.cs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33

44
using System;
55
using System.Collections.Generic;
6-
using System.Collections.Immutable;
7-
using System.Threading.Tasks;
86
using Microsoft.Azure.WebJobs;
97
using Microsoft.Azure.WebJobs.Host.Storage;
108
using Microsoft.Azure.WebJobs.Script;
@@ -103,13 +101,11 @@ private static IServiceCollection AddFunctionMetadataManager(this IServiceCollec
103101
var optionsMonitor = new OptionsMonitor<ScriptApplicationHostOptions>(factory, changeTokens, factory);
104102

105103
var metadataProvider = new HostFunctionMetadataProvider(optionsMonitor, NullLogger<HostFunctionMetadataProvider>.Instance, metricsLogger);
106-
107-
var workerProvider = new Mock<IWorkerFunctionMetadataProvider>();
108-
workerProvider.Setup(m => m.GetFunctionMetadataAsync(It.IsAny<IEnumerable<RpcWorkerConfig>>(), false)).Returns(Task.FromResult(new FunctionMetadataResult(true, ImmutableArray<FunctionMetadata>.Empty)));
109-
var defaultProvider = new FunctionMetadataProvider(NullLogger<FunctionMetadataProvider>.Instance, workerProvider.Object, metadataProvider);
104+
var defaultProvider = new FunctionMetadataProvider(NullLogger<FunctionMetadataProvider>.Instance, null, metadataProvider);
110105
var metadataManager = TestFunctionMetadataManager.GetFunctionMetadataManager(new OptionsWrapper<ScriptJobHostOptions>(new ScriptJobHostOptions()), defaultProvider, new List<IFunctionProvider>(), new OptionsWrapper<HttpWorkerOptions>(new HttpWorkerOptions()), new NullLoggerFactory(), new TestOptionsMonitor<LanguageWorkerOptions>(TestHelpers.GetTestLanguageWorkerOptions()));
111106
services.AddSingleton<IFunctionMetadataManager>(metadataManager);
112107
services.AddSingleton<IFunctionMetadataProvider>(defaultProvider);
108+
113109
return services;
114110
}
115111
}

test/WebJobs.Script.Tests/FunctionMetadataProviderTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ public void GetFunctionMetadataAsync_HostIndexing()
8484
functionMetadataCollection.Add(GetTestFunctionMetadata());
8585

8686
var workerConfigs = TestHelpers.GetTestWorkerConfigs().ToImmutableArray();
87-
workerConfigs.ToList().ForEach(config => config.Description.WorkerIndexing = "false");
87+
workerConfigs.ToList().ForEach(config => config.Description.WorkerIndexing = "true");
8888
var scriptjobhostoptions = new ScriptJobHostOptions();
8989
scriptjobhostoptions.RootScriptPath = Path.Combine(Environment.CurrentDirectory, @"..", "..", "..", "..", "..", "sample", "node");
9090

test/WebJobs.Script.Tests/ScriptStartupTypeDiscovererTests.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -601,6 +601,7 @@ void CopyToBin(string path)
601601
tempOptions.WorkerConfigs.Add(workerConfig);
602602

603603
var languageWorkerOptions = new TestOptionsMonitor<LanguageWorkerOptions>(tempOptions);
604+
Environment.SetEnvironmentVariable(EnvironmentSettingNames.AzureWebJobsFeatureFlags, ScriptConstants.FeatureFlagEnableWorkerIndexing);
604605
Environment.SetEnvironmentVariable(EnvironmentSettingNames.FunctionWorkerRuntime, "python");
605606
var discoverer = new ScriptStartupTypeLocator(directory.Path, testLogger, mockExtensionBundleManager.Object, mockFunctionMetadataManager, testMetricsLogger, languageWorkerOptions);
606607

test/WebJobs.Script.Tests/UtilityTests.cs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -852,17 +852,17 @@ public void GetFunctionAppContentEditingState_Returns_Expected(bool isFileSystem
852852
}
853853

854854
[Theory]
855-
[InlineData(true, true, false)]
856-
[InlineData(true, false, false)]
855+
[InlineData(false, true, false)]
857856
[InlineData(false, false, false)]
858-
[InlineData(false, true, true)]
859-
public void VerifyWorkerIndexingDecisionLogic(bool disableWorkerIndexingFeatureFlag, bool workerIndexingConfigProperty, bool expected)
857+
[InlineData(true, false, false)]
858+
[InlineData(true, true, true)]
859+
public void VerifyWorkerIndexingDecisionLogic(bool workerIndexingFeatureFlag, bool workerIndexingConfigProperty, bool expected)
860860
{
861861
var testEnv = new TestEnvironment();
862862
testEnv.SetEnvironmentVariable(EnvironmentSettingNames.FunctionWorkerRuntime, RpcWorkerConstants.PythonLanguageWorkerName);
863-
if (disableWorkerIndexingFeatureFlag)
863+
if (workerIndexingFeatureFlag)
864864
{
865-
testEnv.SetEnvironmentVariable(EnvironmentSettingNames.AzureWebJobsFeatureFlags, ScriptConstants.FeatureFlagDisableWorkerIndexing);
865+
testEnv.SetEnvironmentVariable(EnvironmentSettingNames.AzureWebJobsFeatureFlags, ScriptConstants.FeatureFlagEnableWorkerIndexing);
866866
}
867867
RpcWorkerConfig workerConfig = new RpcWorkerConfig() { Description = TestHelpers.GetTestWorkerDescription("python", "none", workerIndexingConfigProperty) };
868868
bool workerShouldIndex = Utility.CanWorkerIndex(new List<RpcWorkerConfig>() { workerConfig }, testEnv);
@@ -876,9 +876,9 @@ public void WorkerIndexingDecisionLogic_NullConfig(bool workerIndexingFeatureFla
876876
{
877877
var testEnv = new TestEnvironment();
878878
testEnv.SetEnvironmentVariable(EnvironmentSettingNames.FunctionWorkerRuntime, RpcWorkerConstants.PythonLanguageWorkerName);
879-
if (!workerIndexingFeatureFlag)
879+
if (workerIndexingFeatureFlag)
880880
{
881-
testEnv.SetEnvironmentVariable(EnvironmentSettingNames.AzureWebJobsFeatureFlags, ScriptConstants.FeatureFlagDisableWorkerIndexing);
881+
testEnv.SetEnvironmentVariable(EnvironmentSettingNames.AzureWebJobsFeatureFlags, ScriptConstants.FeatureFlagEnableWorkerIndexing);
882882
}
883883
bool workerShouldIndex = Utility.CanWorkerIndex(null, testEnv);
884884
Assert.Equal(expected, workerShouldIndex);
@@ -891,9 +891,9 @@ public void WorkerIndexingDecisionLogic_NullConfigDescription(bool workerIndexin
891891
{
892892
var testEnv = new TestEnvironment();
893893
testEnv.SetEnvironmentVariable(EnvironmentSettingNames.FunctionWorkerRuntime, RpcWorkerConstants.PythonLanguageWorkerName);
894-
if (!workerIndexingFeatureFlag)
894+
if (workerIndexingFeatureFlag)
895895
{
896-
testEnv.SetEnvironmentVariable(EnvironmentSettingNames.AzureWebJobsFeatureFlags, ScriptConstants.FeatureFlagDisableWorkerIndexing);
896+
testEnv.SetEnvironmentVariable(EnvironmentSettingNames.AzureWebJobsFeatureFlags, ScriptConstants.FeatureFlagEnableWorkerIndexing);
897897
}
898898
RpcWorkerConfig workerConfig = new RpcWorkerConfig();
899899
bool workerShouldIndex = Utility.CanWorkerIndex(new List<RpcWorkerConfig>() { workerConfig }, testEnv);
@@ -907,9 +907,9 @@ public void WorkerIndexingDecisionLogic_NullWorkerIndexingProperty(bool workerIn
907907
{
908908
var testEnv = new TestEnvironment();
909909
testEnv.SetEnvironmentVariable(EnvironmentSettingNames.FunctionWorkerRuntime, RpcWorkerConstants.PythonLanguageWorkerName);
910-
if (!workerIndexingFeatureFlag)
910+
if (workerIndexingFeatureFlag)
911911
{
912-
testEnv.SetEnvironmentVariable(EnvironmentSettingNames.AzureWebJobsFeatureFlags, ScriptConstants.FeatureFlagDisableWorkerIndexing);
912+
testEnv.SetEnvironmentVariable(EnvironmentSettingNames.AzureWebJobsFeatureFlags, ScriptConstants.FeatureFlagEnableWorkerIndexing);
913913
}
914914
RpcWorkerConfig workerConfig = new RpcWorkerConfig()
915915
{

test/WebJobs.Script.Tests/Workers/Rpc/RpcFunctionInvocationDispatcherTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -646,9 +646,9 @@ private static RpcFunctionInvocationDispatcher GetTestFunctionDispatcher(int max
646646
{
647647
testEnv.SetEnvironmentVariable(EnvironmentSettingNames.FunctionWorkerRuntime, runtime);
648648
}
649-
if (!workerIndexing)
649+
if (workerIndexing)
650650
{
651-
testEnv.SetEnvironmentVariable(EnvironmentSettingNames.AzureWebJobsFeatureFlags, ScriptConstants.FeatureFlagDisableWorkerIndexing);
651+
testEnv.SetEnvironmentVariable(EnvironmentSettingNames.AzureWebJobsFeatureFlags, ScriptConstants.FeatureFlagEnableWorkerIndexing);
652652
}
653653
if (placeholder)
654654
{

0 commit comments

Comments
 (0)