-
Notifications
You must be signed in to change notification settings - Fork 10.3k
[Blazor] Workaround linker regression #45028
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
Conversation
Hi @javiercn. Please make sure you've updated the PR description to use the Shiproom Template. Also, make sure this PR is not marked as a draft and is ready-to-merge. To learn more about how to prepare a servicing PR click here. |
The associated linker issue in the runtime is dotnet/linker#3110 |
src/Components/WebAssembly/WebAssembly.Authentication/src/ILLink.Descriptors.xml
Show resolved
Hide resolved
Hi @javiercn. This PR was just approved to be included in the upcoming servicing release. Somebody from the @dotnet/aspnet-build team will get it merged when the branches are open. Until then, please make sure all the CI checks pass and the PR is reviewed. |
@dotnet/aspnet-build can I get some help here? Seems that one leg is failing to restore |
Should be fixed in the target branch. Right @wtgodbe❔ |
/azp run |
Azure Pipelines successfully started running 3 pipeline(s). |
@wtgodbe can you help so that this does not miss the train? |
@mmitche we're still seeing the AbandonedMutexException despite azp run-ing after the Arcade update: #44972 |
I'm just force-merging this since the failure is unrelated |
If these failures are persistent we should un-revert the |
[JsonSerializable(typeof(JsonElement))] | ||
internal partial class InteractiveRequestOptionsSerializerContext : JsonSerializerContext | ||
{ | ||
public IEnumerable<string> Scopes { get; set; } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Microsoft framework guidelines say you should use ICollection
instead of IEnumerable
.
|
||
public InteractionType Interaction { get; set; } | ||
|
||
public Dictionary<string, object> AdditionalRequestParameters { get; set; } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should use IDictionary
instead of Dictionary
.
The linker seems to be incorrectly trimming the getters for one of our types. This PR includes a descriptor to ensure that the members of the exchange type are never serialized out and avoids using a serialization context as that breaks serialization for user provided data types.
Description
The linker is linking out the getters for one of our exchange types. This is the link output in 7.0

This is the link output in 6.0

Fixes #44973
Customer Impact
Breaks the ability to return to the original page after the user is redirected for authentication purposes as well as the ability to pass options to control the login process.
Workaround
Add this to your csproj
And this is TrimmerRootDescriptor.xml:
Regression?
6.0
Risk
The fix uses a linker descriptor to explicitly prevent the members for that type from being trimmed away.
Verification
Packaging changes reviewed?
When servicing release/2.1