Skip to content

Hosting DirectSettingsOverrideConfigurationSetting and ConfigurationSettingCanInfluenceEnvironment test failures in CI #79453

Description

@eerhardt

It looks like #79242 introduced a flakey test. From reading the test and the logs, it appears that a bad appsettings.json file is getting written to the %TEMP% directory while this test is running, causing the test to fail.

We should update the test to control the temp directory being used so the test runs deterministically.

cc @halter73

Logs:
https://dev.azure.com/dnceng-public/public/_build/results?buildId=106763&view=logs&j=bc8f69e2-91b3-518c-84f8-466a04c1af40&t=0864dbdb-cb3f-5f82-b0b6-057b78db53e2&l=101

https://helixre107v0xdeko0k025g8.blob.core.windows.net/dotnet-runtime-refs-pull-79425-merge-95c0735a07484698ac/Microsoft.Extensions.Hosting.Unit.Tests/1/console.bbd2f5df.log?helixlogtype=result

https://helixre107v0xdeko0k025g8.blob.core.windows.net/dotnet-runtime-refs-pull-79425-merge-95c0735a07484698ac/Microsoft.Extensions.Hosting.Unit.Tests/1/console.bbd2f5df.log?helixlogtype=result

Console log: 'Microsoft.Extensions.Hosting.Unit.Tests' from job 95c0735a-0748-4698-ac74-d6309cd71ba3 workitem 82b9b807-eb65-4255-9ca7-5fa7c7b270a1 (ubuntu.1804.amd64.open.rt) executed on machine a0061VF running Linux-5.4.0-1095-azure-x86_64-with-Ubuntu-18.04-bionic
+ ./RunTests.sh --runtime-path /datadisks/disk1/work/9E0C08EE/p
----- start Fri Dec 9 01:31:23 UTC 2022 =============== To repro directly: =====================================================
pushd .
/datadisks/disk1/work/9E0C08EE/p/dotnet exec --runtimeconfig Microsoft.Extensions.Hosting.Unit.Tests.runtimeconfig.json --depsfile Microsoft.Extensions.Hosting.Unit.Tests.deps.json xunit.console.dll Microsoft.Extensions.Hosting.Unit.Tests.dll -xml testResults.xml -nologo -nocolor -notrait category=IgnoreForCI -notrait category=OuterLoop -notrait category=failing 
popd
===========================================================================================================
/datadisks/disk1/work/9E0C08EE/w/A981094B/e /datadisks/disk1/work/9E0C08EE/w/A981094B/e
  Discovering: Microsoft.Extensions.Hosting.Unit.Tests (method display = ClassAndMethod, method display options = None)
  Discovered:  Microsoft.Extensions.Hosting.Unit.Tests (found 144 of 145 test cases)
  Starting:    Microsoft.Extensions.Hosting.Unit.Tests (parallel test collections = on, max threads = 2)
    Microsoft.Extensions.Hosting.Tests.HostApplicationBuilderTests.DirectSettingsOverrideConfigurationSetting(disableDefaults: False) [FAIL]
      System.IO.InvalidDataException : Failed to load configuration from file '/datadisks/disk1/work/9E0C08EE/t/appsettings.json'.
      ---- System.FormatException : Could not parse the JSON file.
      -------- System.Text.Json.JsonReaderException : The input does not contain any JSON tokens. Expected the input to start with a valid JSON token, when isFinalBlock is true. LineNumber: 0 | BytePositionInLine: 0.
      Stack Trace:
        /_/src/libraries/Microsoft.Extensions.Configuration.FileExtensions/src/FileConfigurationProvider.cs(151,0): at Microsoft.Extensions.Configuration.FileConfigurationProvider.HandleException(ExceptionDispatchInfo info)
        /_/src/libraries/Microsoft.Extensions.Configuration.FileExtensions/src/FileConfigurationProvider.cs(108,0): at Microsoft.Extensions.Configuration.FileConfigurationProvider.Load(Boolean reload)
        /_/src/libraries/Microsoft.Extensions.Configuration.FileExtensions/src/FileConfigurationProvider.cs(127,0): at Microsoft.Extensions.Configuration.FileConfigurationProvider.Load()
        /_/src/libraries/Microsoft.Extensions.Configuration/src/ConfigurationManager.cs(122,0): at Microsoft.Extensions.Configuration.ConfigurationManager.AddSource(IConfigurationSource source)
        /_/src/libraries/Microsoft.Extensions.Configuration/src/ConfigurationManager.cs(189,0): at Microsoft.Extensions.Configuration.ConfigurationManager.ConfigurationSources.Add(IConfigurationSource source)
        /_/src/libraries/Microsoft.Extensions.Configuration/src/ConfigurationManager.cs(88,0): at Microsoft.Extensions.Configuration.ConfigurationManager.Microsoft.Extensions.Configuration.IConfigurationBuilder.Add(IConfigurationSource source)
        /_/src/libraries/Microsoft.Extensions.Configuration.Abstractions/src/ConfigurationExtensions.cs(26,0): at Microsoft.Extensions.Configuration.ConfigurationExtensions.Add[TSource](IConfigurationBuilder builder, Action`1 configureSource)
        /_/src/libraries/Microsoft.Extensions.Configuration.Json/src/JsonConfigurationExtensions.cs(91,0): at Microsoft.Extensions.Configuration.JsonConfigurationExtensions.AddJsonFile(IConfigurationBuilder builder, Action`1 configureSource)
        /_/src/libraries/Microsoft.Extensions.Configuration.Json/src/JsonConfigurationExtensions.cs(74,0): at Microsoft.Extensions.Configuration.JsonConfigurationExtensions.AddJsonFile(IConfigurationBuilder builder, IFileProvider provider, String path, Boolean optional, Boolean reloadOnChange)
        /_/src/libraries/Microsoft.Extensions.Configuration.Json/src/JsonConfigurationExtensions.cs(52,0): at Microsoft.Extensions.Configuration.JsonConfigurationExtensions.AddJsonFile(IConfigurationBuilder builder, String path, Boolean optional, Boolean reloadOnChange)
        /_/src/libraries/Microsoft.Extensions.Hosting/src/HostingHostBuilderExtensions.cs(241,0): at Microsoft.Extensions.Hosting.HostingHostBuilderExtensions.ApplyDefaultAppConfiguration(HostBuilderContext hostingContext, IConfigurationBuilder appConfigBuilder, String[] args)
        /_/src/libraries/Microsoft.Extensions.Hosting/src/HostApplicationBuilder.cs(143,0): at Microsoft.Extensions.Hosting.HostApplicationBuilder..ctor(HostApplicationBuilderSettings settings)
        /_/src/libraries/Microsoft.Extensions.Hosting/tests/UnitTests/HostApplicationBuilderTests.cs(289,0): at Microsoft.Extensions.Hosting.Tests.HostApplicationBuilderTests.DirectSettingsOverrideConfigurationSetting(Boolean disableDefaults)
           at InvokeStub_HostApplicationBuilderTests.DirectSettingsOverrideConfigurationSetting(Object, Object, IntPtr*)
           at System.Reflection.MethodInvoker.Invoke(Object obj, IntPtr* args, BindingFlags invokeAttr)
        ----- Inner Stack Trace -----
        /_/src/libraries/Microsoft.Extensions.Configuration.Json/src/JsonConfigurationProvider.cs(34,0): at Microsoft.Extensions.Configuration.Json.JsonConfigurationProvider.Load(Stream stream)
        /_/src/libraries/Microsoft.Extensions.Configuration.FileExtensions/src/FileConfigurationProvider.cs(99,0): at Microsoft.Extensions.Configuration.FileConfigurationProvider.Load(Boolean reload)
        ----- Inner Stack Trace -----
        /_/src/libraries/System.Text.Json/src/System/Text/Json/ThrowHelper.cs(310,0): at System.Text.Json.ThrowHelper.ThrowJsonReaderException(Utf8JsonReader& json, ExceptionResource resource, Byte nextByte, ReadOnlySpan`1 bytes)
        /_/src/libraries/System.Text.Json/src/System/Text/Json/Reader/Utf8JsonReader.cs(285,0): at System.Text.Json.Utf8JsonReader.Read()
        /_/src/libraries/System.Text.Json/src/System/Text/Json/Document/JsonDocument.cs(923,0): at System.Text.Json.JsonDocument.Parse(ReadOnlySpan`1 utf8JsonSpan, JsonReaderOptions readerOptions, MetadataDb& database, StackRowStack& stack)
        /_/src/libraries/System.Text.Json/src/System/Text/Json/Document/JsonDocument.Parse.cs(692,0): at System.Text.Json.JsonDocument.Parse(ReadOnlyMemory`1 utf8Json, JsonReaderOptions readerOptions, Byte[] extraRentedArrayPoolBytes, PooledByteBufferWriter extraPooledByteBufferWriter)
        /_/src/libraries/System.Text.Json/src/System/Text/Json/Document/JsonDocument.Parse.cs(261,0): at System.Text.Json.JsonDocument.Parse(ReadOnlyMemory`1 json, JsonDocumentOptions options)
        /_/src/libraries/System.Text.Json/src/System/Text/Json/Document/JsonDocument.Parse.cs(321,0): at System.Text.Json.JsonDocument.Parse(String json, JsonDocumentOptions options)
        /_/src/libraries/Microsoft.Extensions.Configuration.Json/src/JsonConfigurationFileParser.cs(31,0): at Microsoft.Extensions.Configuration.Json.JsonConfigurationFileParser.ParseStream(Stream input)
        /_/src/libraries/Microsoft.Extensions.Configuration.Json/src/JsonConfigurationFileParser.cs(20,0): at Microsoft.Extensions.Configuration.Json.JsonConfigurationFileParser.Parse(Stream input)
        /_/src/libraries/Microsoft.Extensions.Configuration.Json/src/JsonConfigurationProvider.cs(30,0): at Microsoft.Extensions.Configuration.Json.JsonConfigurationProvider.Load(Stream stream)
    Microsoft.Extensions.Hosting.Tests.HostApplicationBuilderTests.ConfigurationSettingCanInfluenceEnvironment(disableDefaults: False) [FAIL]
      System.IO.InvalidDataException : Failed to load configuration from file '/datadisks/disk1/work/9E0C08EE/t/appsettings.json'.
      ---- System.FormatException : Could not parse the JSON file.
      -------- System.Text.Json.JsonReaderException : The input does not contain any JSON tokens. Expected the input to start with a valid JSON token, when isFinalBlock is true. LineNumber: 0 | BytePositionInLine: 0.
      Stack Trace:
        /_/src/libraries/Microsoft.Extensions.Configuration.FileExtensions/src/FileConfigurationProvider.cs(151,0): at Microsoft.Extensions.Configuration.FileConfigurationProvider.HandleException(ExceptionDispatchInfo info)
        /_/src/libraries/Microsoft.Extensions.Configuration.FileExtensions/src/FileConfigurationProvider.cs(108,0): at Microsoft.Extensions.Configuration.FileConfigurationProvider.Load(Boolean reload)
        /_/src/libraries/Microsoft.Extensions.Configuration.FileExtensions/src/FileConfigurationProvider.cs(127,0): at Microsoft.Extensions.Configuration.FileConfigurationProvider.Load()
        /_/src/libraries/Microsoft.Extensions.Configuration/src/ConfigurationManager.cs(122,0): at Microsoft.Extensions.Configuration.ConfigurationManager.AddSource(IConfigurationSource source)
        /_/src/libraries/Microsoft.Extensions.Configuration/src/ConfigurationManager.cs(189,0): at Microsoft.Extensions.Configuration.ConfigurationManager.ConfigurationSources.Add(IConfigurationSource source)
        /_/src/libraries/Microsoft.Extensions.Configuration/src/ConfigurationManager.cs(88,0): at Microsoft.Extensions.Configuration.ConfigurationManager.Microsoft.Extensions.Configuration.IConfigurationBuilder.Add(IConfigurationSource source)
        /_/src/libraries/Microsoft.Extensions.Configuration.Abstractions/src/ConfigurationExtensions.cs(26,0): at Microsoft.Extensions.Configuration.ConfigurationExtensions.Add[TSource](IConfigurationBuilder builder, Action`1 configureSource)
        /_/src/libraries/Microsoft.Extensions.Configuration.Json/src/JsonConfigurationExtensions.cs(91,0): at Microsoft.Extensions.Configuration.JsonConfigurationExtensions.AddJsonFile(IConfigurationBuilder builder, Action`1 configureSource)
        /_/src/libraries/Microsoft.Extensions.Configuration.Json/src/JsonConfigurationExtensions.cs(74,0): at Microsoft.Extensions.Configuration.JsonConfigurationExtensions.AddJsonFile(IConfigurationBuilder builder, IFileProvider provider, String path, Boolean optional, Boolean reloadOnChange)
        /_/src/libraries/Microsoft.Extensions.Configuration.Json/src/JsonConfigurationExtensions.cs(52,0): at Microsoft.Extensions.Configuration.JsonConfigurationExtensions.AddJsonFile(IConfigurationBuilder builder, String path, Boolean optional, Boolean reloadOnChange)
        /_/src/libraries/Microsoft.Extensions.Hosting/src/HostingHostBuilderExtensions.cs(241,0): at Microsoft.Extensions.Hosting.HostingHostBuilderExtensions.ApplyDefaultAppConfiguration(HostBuilderContext hostingContext, IConfigurationBuilder appConfigBuilder, String[] args)
        /_/src/libraries/Microsoft.Extensions.Hosting/src/HostApplicationBuilder.cs(143,0): at Microsoft.Extensions.Hosting.HostApplicationBuilder..ctor(HostApplicationBuilderSettings settings)
        /_/src/libraries/Microsoft.Extensions.Hosting/tests/UnitTests/HostApplicationBuilderTests.cs(248,0): at Microsoft.Extensions.Hosting.Tests.HostApplicationBuilderTests.ConfigurationSettingCanInfluenceEnvironment(Boolean disableDefaults)
           at InvokeStub_HostApplicationBuilderTests.ConfigurationSettingCanInfluenceEnvironment(Object, Object, IntPtr*)
           at System.Reflection.MethodInvoker.Invoke(Object obj, IntPtr* args, BindingFlags invokeAttr)
        ----- Inner Stack Trace -----
        /_/src/libraries/Microsoft.Extensions.Configuration.Json/src/JsonConfigurationProvider.cs(34,0): at Microsoft.Extensions.Configuration.Json.JsonConfigurationProvider.Load(Stream stream)
        /_/src/libraries/Microsoft.Extensions.Configuration.FileExtensions/src/FileConfigurationProvider.cs(99,0): at Microsoft.Extensions.Configuration.FileConfigurationProvider.Load(Boolean reload)
        ----- Inner Stack Trace -----
        /_/src/libraries/System.Text.Json/src/System/Text/Json/ThrowHelper.cs(310,0): at System.Text.Json.ThrowHelper.ThrowJsonReaderException(Utf8JsonReader& json, ExceptionResource resource, Byte nextByte, ReadOnlySpan`1 bytes)
        /_/src/libraries/System.Text.Json/src/System/Text/Json/Reader/Utf8JsonReader.cs(285,0): at System.Text.Json.Utf8JsonReader.Read()
        /_/src/libraries/System.Text.Json/src/System/Text/Json/Document/JsonDocument.cs(923,0): at System.Text.Json.JsonDocument.Parse(ReadOnlySpan`1 utf8JsonSpan, JsonReaderOptions readerOptions, MetadataDb& database, StackRowStack& stack)
        /_/src/libraries/System.Text.Json/src/System/Text/Json/Document/JsonDocument.Parse.cs(692,0): at System.Text.Json.JsonDocument.Parse(ReadOnlyMemory`1 utf8Json, JsonReaderOptions readerOptions, Byte[] extraRentedArrayPoolBytes, PooledByteBufferWriter extraPooledByteBufferWriter)
        /_/src/libraries/System.Text.Json/src/System/Text/Json/Document/JsonDocument.Parse.cs(261,0): at System.Text.Json.JsonDocument.Parse(ReadOnlyMemory`1 json, JsonDocumentOptions options)
        /_/src/libraries/System.Text.Json/src/System/Text/Json/Document/JsonDocument.Parse.cs(321,0): at System.Text.Json.JsonDocument.Parse(String json, JsonDocumentOptions options)
        /_/src/libraries/Microsoft.Extensions.Configuration.Json/src/JsonConfigurationFileParser.cs(31,0): at Microsoft.Extensions.Configuration.Json.JsonConfigurationFileParser.ParseStream(Stream input)
        /_/src/libraries/Microsoft.Extensions.Configuration.Json/src/JsonConfigurationFileParser.cs(20,0): at Microsoft.Extensions.Configuration.Json.JsonConfigurationFileParser.Parse(Stream input)
        /_/src/libraries/Microsoft.Extensions.Configuration.Json/src/JsonConfigurationProvider.cs(30,0): at Microsoft.Extensions.Configuration.Json.JsonConfigurationProvider.Load(Stream stream)
info: Microsoft.Extensions.Hosting.Tests.HostTests[0]
      Request starting
    Microsoft.Extensions.Hosting.Tests.HostTests.CreateDefaultBuilder_DoesNotChangeContentRootIfCurrentDirectoryIsWindowsSystemDirectory [SKIP]
      Condition(s) not met: "IsWindowsAndRemotExecutorIsSupported"
  Finished:    Microsoft.Extensions.Hosting.Unit.Tests
=== TEST EXECUTION SUMMARY ===
   Microsoft.Extensions.Hosting.Unit.Tests  Total: 157, Errors: 0, Failed: 2, Skipped: 1, Time: 5.308s
/datadisks/disk1/work/9E0C08EE/w/A981094B/e
----- end Fri Dec 9 01:31:30 UTC 2022 ----- exit code 1 ----------------------------------------------------------
ulimit -c value: unlimited
Waiting a few seconds for any dump to be written..
cat /proc/sys/kernel/core_pattern: /home/helixbot/dotnetbuild/dumps/core.%u.%p
cat /proc/sys/kernel/core_uses_pid: 0
cat: /proc/sys/kernel/coredump_filter: No such file or directory
cat /proc/sys/kernel/coredump_filter:
Looking around for any Linux dump..
... found no dump in /datadisks/disk1/work/9E0C08EE/w/A981094B/e
+ export _commandExitCode=0
+ /usr/bin/python3 /datadisks/disk1/work/9E0C08EE/p/reporter/run.py https://dev.azure.com/dnceng-public/ public 2281940 eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Im9PdmN6NU1fN3AtSGpJS2xGWHo5M3VfVjBabyJ9.eyJuYW1laWQiOiJjNzczZjJjMi01MTIwLTQyMDctYWZlMi1hZmFmMzVhOGJjMGEiLCJzY3AiOiJhcHBfdG9rZW4iLCJhdWkiOiIwNTAxMmJjOS1hNzUzLTQ0OWUtOTBmOS1hMDk0MDI3NGRjNTAiLCJzaWQiOiI2NTkwOTdkOS1iMWFiLTQzMGYtODRhNi1kZGRjNjRiNjM4N2EiLCJCdWlsZElkIjoiY2JiMTgyNjEtYzQ4Zi00YWJiLTg2NTEtOGNkY2I1NDc0NjQ5OzEwNjc2MyIsInBwaWQiOiJ2c3RmczovLy9CdWlsZC9CdWlsZC8xMDY3NjMiLCJvcmNoaWQiOiIyMmM0NGNhMS1lMjA5LTQ1NDQtODA1YS0xYzc4ZTQyN2E4ZGMuYnVpbGQubGlicmFyaWVzX3Rlc3RfcnVuX3JlbGVhc2VfY29yZWNscl9saW51eF94NjRfZGVidWcuX19kZWZhdWx0IiwicmVwb0lkcyI6IiIsImlzcyI6ImFwcC52c3Rva2VuLnZpc3VhbHN0dWRpby5jb20iLCJhdWQiOiJhcHAudnN0b2tlbi52aXN1YWxzdHVkaW8uY29tfHZzbzo2ZmNjOTJlNS03M2E3LTRmODgtOGQxMy1kOTA0NWI0NWZiMjciLCJuYmYiOjE2NzA1NDc2NTUsImV4cCI6MTY3MDU1Nzg1NH0.Zl3OzuumC15xBjpc8rSbTOEMHvXTDr8t-6a8TR572NPtJL1lD8Zt8kg2iAKSv3Yl-dkAZ6UW866TVcO6n6MQNxCVzaCueQnJsPwPzxqQSsYDeXFMqHVs3ef3qI7-6qxfUFvFWJj9bxA8aWTjKzgB7Ghb7WuUmJQyP9VAreXleDN5may0j5Bi7oOREJwEfco3ehDAgiPMJ0DxQDxIMWwe_4cberMhD6LkfrELmh9Ak5J5sDZwr1E-aECjSY9lH_BKwH-g4FOiBBHUkP-1lO69kw-KrB4hp1Ge3X2evGjZwuq8-l81HOL40ikXgptkvDOMzRwTV_8i4TzTrQT9TZrtnQ
2022-12-09T01:31:40.727Z	INFO   	run.py	run(48)	main	Beginning reading of test results.
2022-12-09T01:31:40.727Z	INFO   	run.py	__init__(42)	read_results	Searching '/datadisks/disk1/work/9E0C08EE/w/A981094B/e' for test results files
2022-12-09T01:31:40.728Z	INFO   	run.py	__init__(48)	read_results	Found results file /datadisks/disk1/work/9E0C08EE/w/A981094B/e/testResults.xml with format xunit
2022-12-09T01:31:40.730Z	INFO   	run.py	__init__(42)	read_results	Searching '/datadisks/disk1/work/9E0C08EE/w/A981094B/uploads' for test results files
2022-12-09T01:31:40.730Z	INFO   	run.py	packing_test_reporter(30)	report_results	Packing 157 test reports to '/datadisks/disk1/work/9E0C08EE/w/A981094B/e/__test_report.json'
2022-12-09T01:31:40.730Z	INFO   	run.py	packing_test_reporter(33)	report_results	Packed 61022 bytes
+ /usr/bin/python3 /datadisks/disk1/work/9E0C08EE/p/gen-debug-dump-docs.py -buildid 106763 -workitem Microsoft.Extensions.Hosting.Unit.Tests -jobid 95c0735a-0748-4698-ac74-d6309cd71ba3 -outdir /datadisks/disk1/work/9E0C08EE/w/A981094B/uploads -templatedir /datadisks/disk1/work/9E0C08EE/p -dumpdir /home/helixbot/dotnetbuild/dumps -productver 8.0.0
Did not find dumps, skipping dump docs generation.
+ exit 0
['Microsoft.Extensions.Hosting.Unit.Tests' END OF WORK ITEM LOG: Command exited with 0]

Error Message

Fill the error message using known issues guidance.

{
  "ErrorMessage": "Microsoft.Extensions.Hosting.Tests.HostApplicationBuilderTests.DirectSettingsOverrideConfigurationSetting",
  "BuildRetry": false
}

Report

Build Definition Step Name Console log Pull Request
122981 dotnet/runtime Send to Helix Log #79046
122828 dotnet/runtime Send to Helix Log #80099
122779 dotnet/runtime Send to Helix Log #80105
Build Definition Test Pull Request
122981 dotnet/runtime Microsoft.Extensions.Hosting.Tests.HostApplicationBuilderTests.DirectSettingsOverrideConfigurationSetting #79046
122779 dotnet/runtime Microsoft.Extensions.Hosting.Tests.HostApplicationBuilderTests.DirectSettingsOverrideConfigurationSetting #80105

Summary

24-Hour Hit Count 7-Day Hit Count 1-Month Count
5 5 5

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Known Build ErrorUse this to report build issues in the .NET Helix tabarea-Extensions-Hostingblocking-clean-ciBlocking PR or rolling runs of 'runtime' or 'runtime-extra-platforms'

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions