-
-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Repro serializer issue #1116
Repro serializer issue #1116
Conversation
Update to preview 1 of .NET 9.
* Update .NET SDK Update .NET SDK to version 9.0.100-preview.2.24157.14. --- updated-dependencies: - dependency-name: Microsoft.NET.Sdk dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: costellobot <102549341+costellobot@users.noreply.github.com> * Bump .NET NuGet packages Bumps .NET dependencies to their latest versions for the .NET 9.0.100-preview.2.24157.14 SDK. Bumps Microsoft.AspNetCore.WebUtilities from 9.0.0-preview.1.24081.5 to 9.0.0-preview.2.24128.4. Bumps Microsoft.Extensions.Configuration.Binder from 9.0.0-preview.1.24080.9 to 9.0.0-preview.2.24128.5. Bumps Microsoft.Extensions.Configuration.EnvironmentVariables from 9.0.0-preview.1.24080.9 to 9.0.0-preview.2.24128.5. Bumps Microsoft.Extensions.Configuration.Json from 9.0.0-preview.1.24080.9 to 9.0.0-preview.2.24128.5. Bumps Microsoft.Extensions.DependencyInjection from 9.0.0-preview.1.24080.9 to 9.0.0-preview.2.24128.5. Bumps Microsoft.Extensions.Http from 9.0.0-preview.1.24080.9 to 9.0.0-preview.2.24128.5. Bumps Microsoft.Extensions.Http.Diagnostics from 9.0.0-preview.1.24108.1 to 9.0.0-preview.2.24157.4. Bumps Microsoft.Extensions.Http.Resilience from 9.0.0-preview.1.24108.1 to 9.0.0-preview.2.24157.4. Bumps Microsoft.Extensions.Logging.Console from 9.0.0-preview.1.24080.9 to 9.0.0-preview.2.24128.5. Bumps Microsoft.Extensions.Telemetry from 9.0.0-preview.1.24108.1 to 9.0.0-preview.2.24157.4. Bumps System.Text.Json from 9.0.0-preview.1.24080.9 to 9.0.0-preview.2.24128.5. --- updated-dependencies: - dependency-name: Microsoft.AspNetCore.WebUtilities dependency-type: direct:production update-type: version-update:semver-major - dependency-name: Microsoft.Extensions.Configuration.Binder dependency-type: direct:production update-type: version-update:semver-major - dependency-name: Microsoft.Extensions.Configuration.EnvironmentVariables dependency-type: direct:production update-type: version-update:semver-major - dependency-name: Microsoft.Extensions.Configuration.Json dependency-type: direct:production update-type: version-update:semver-major - dependency-name: Microsoft.Extensions.DependencyInjection dependency-type: direct:production update-type: version-update:semver-major - dependency-name: Microsoft.Extensions.Http dependency-type: direct:production update-type: version-update:semver-major - dependency-name: Microsoft.Extensions.Http.Diagnostics dependency-type: direct:production update-type: version-update:semver-major - dependency-name: Microsoft.Extensions.Http.Resilience dependency-type: direct:production update-type: version-update:semver-major - dependency-name: Microsoft.Extensions.Logging.Console dependency-type: direct:production update-type: version-update:semver-major - dependency-name: Microsoft.Extensions.Telemetry dependency-type: direct:production update-type: version-update:semver-major - dependency-name: System.Text.Json dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: costellobot <102549341+costellobot@users.noreply.github.com> --------- Signed-off-by: costellobot <102549341+costellobot@users.noreply.github.com>
Use `AllowOutOfOrderMetadataProperties` to re-introduce polymorphsim. Effectively reverts 83eb76f.
Add a deserialization test that uses `SourceGeneratorLambdaJsonSerializer`.
Add a serializer that logs the JSON before attempting to deserialize it.
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #1116 +/- ##
==========================================
- Coverage 92.97% 92.85% -0.12%
==========================================
Files 45 49 +4
Lines 612 616 +4
Branches 62 59 -3
==========================================
+ Hits 569 572 +3
- Misses 23 24 +1
Partials 20 20
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
/deploy dev |
|
Set `LAMBDA_NET_SERIALIZER_DEBUG=true` to get the built-in logging too(?).
/deploy dev |
|
Specify `AllowOutOfOrderMetadataProperties=true` to customise the options the Lambda serializer uses.
/deploy dev |
|
Try to fix the JSON being split onto multiple lines.
/deploy dev |
|
Polymorphism issue resolved by customizing the AWS Lambda serializer to set That's then exposed a new AoT-related issue: {
"EventId": 1,
"LogLevel": "Error",
"Category": "MartinCostello.LondonTravel.Skill.AlexaSkill",
"Message": "Failed to handle request for session amzn1.echo-api.session.LAMBDA-TEST-DEV.",
"Exception": "System.MissingMethodException: Constructor on type 'Polly.Registry.ResiliencePipelineRegistryOptions`1[Microsoft.Extensions.Http.Resilience.Internal.HttpKey]' not found.\n at System.Activator.CreateInstance[T]() + 0x88\n at Microsoft.Extensions.Options.OptionsFactory`1.Create(String) + 0x38\n at Microsoft.Extensions.Options.UnnamedOptionsManager`1.get_Value() + 0xbc\n at Polly.PollyServiceCollectionExtensions.<>c__6`1.<AddResiliencePipelineRegistry>b__6_0(IServiceProvider serviceProvider) + 0x3c\n at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitFactory(FactoryCallSite, RuntimeResolverContext) + 0x1c\n at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite, RuntimeResolverContext) + 0x74\n at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite, TArgument) + 0xb8\n at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite, ServiceProviderEngineScope) + 0x34\n at Microsoft.Extensions.DependencyInjection.ServiceProvider.CreateServiceAccessor(ServiceIdentifier) + 0x130\n at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(ServiceIdentifier, ServiceProviderEngineScope) + 0x384\n at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider, Type) + 0xc8\n at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider) + 0x30\n at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitFactory(FactoryCallSite, RuntimeResolverContext) + 0x1c\n at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite, RuntimeResolverContext) + 0x74\n at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite, TArgument) + 0xb8\n at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite, ServiceProviderEngineScope) + 0x34\n at Microsoft.Extensions.DependencyInjection.ServiceProvider.CreateServiceAccessor(ServiceIdentifier) + 0x130\n at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(ServiceIdentifier, ServiceProviderEngineScope) + 0x384\n at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider, Type) + 0xc8\n at Microsoft.Extensions.DependencyInjection.ResilienceHttpClientBuilderExtensions.CreatePipelineSelector(IServiceProvider, String) + 0x48\n at Microsoft.Extensions.DependencyInjection.ResilienceHttpClientBuilderExtensions.<>c__DisplayClass6_0.<AddResilienceHandler>b__0(IServiceProvider serviceProvider) + 0x20\n at Microsoft.Extensions.DependencyInjection.HttpClientBuilderExtensions.<>c__DisplayClass3_0.<AddHttpMessageHandler>b__1(HttpMessageHandlerBuilder) + 0x24\n at Microsoft.Extensions.Http.DefaultHttpClientFactory.<>c__DisplayClass17_0.<CreateHandlerEntry>g__Configure|0(HttpMessageHandlerBuilder) + 0x78\n at Microsoft.Extensions.Http.MetricsFactoryHttpMessageHandlerFilter.<>c__DisplayClass2_0.<Configure>b__0(HttpMessageHandlerBuilder) + 0x28\n at Microsoft.Extensions.Http.LoggingHttpMessageHandlerBuilderFilter.<>c__DisplayClass6_0.<Configure>b__0(HttpMessageHandlerBuilder) + 0x30\n at Microsoft.Extensions.Http.DefaultHttpClientFactory.CreateHandlerEntry(String) + 0x258\n at System.Lazy`1.ViaFactory(LazyThreadSafetyMode) + 0x50\n--- End of stack trace from previous location ---\n at System.Lazy`1.CreateValue() + 0xdc\n at Microsoft.Extensions.Http.DefaultHttpClientFactory.CreateHandler(String) + 0x58\n at Microsoft.Extensions.Http.DefaultHttpClientFactory.CreateClient(String) + 0x2c\n at Microsoft.Extensions.DependencyInjection.HttpClientBuilderExtensions.AddTransientHelper[TClient](IServiceProvider, IHttpClientBuilder) + 0x3c\n at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitFactory(FactoryCallSite, RuntimeResolverContext) + 0x1c\n at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitDisposeCache(ServiceCallSite, RuntimeResolverContext) + 0x20\n at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite, TArgument) + 0x154\n at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite, RuntimeResolverContext) + 0x88\n at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitDisposeCache(ServiceCallSite, RuntimeResolverContext) + 0x20\n at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite, TArgument) + 0x154\n at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite, ServiceProviderEngineScope) + 0x34\n at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(ServiceIdentifier, ServiceProviderEngineScope) + 0x344\n at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider, Type) + 0xc8\n at MartinCostello.LondonTravel.Skill.IntentFactory.Create(Intent) + 0x278\n at MartinCostello.LondonTravel.Skill.AlexaSkill.<OnIntentAsync>d__5.MoveNext() + 0x38\n--- End of stack trace from previous location ---\n at MartinCostello.LondonTravel.Skill.FunctionHandler.<HandleRequestAsync>d__4.MoveNext() + 0x198",
"State": {
"Message": "{OriginalFormat}=Failed to handle request for session {SessionId}.,SessionId=amzn1.echo-api.session.LAMBDA-TEST-DEV",
"{OriginalFormat}": "Failed to handle request for session {SessionId}.",
"SessionId": "amzn1.echo-api.session.LAMBDA-TEST-DEV"
}
} |
Remove the payload logging.
Changes to attempt to repro issue with polymorphism in .NET 9 preview 2.
#1039 (comment)