-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
[release/6.0] Fix loading app-local ICU #77117
Conversation
Tagging subscribers to this area: @dotnet/area-system-globalization Issue DetailsBackport of #77065 to release/6.0 /cc @tarekgh Customer ImpactTestingRiskIMPORTANT: Is this backport for a servicing release? If so and this change touches code that ships in a NuGet package, please make certain that you have added any necessary package authoring and gotten it explicitly reviewed.
|
net48 test failures need to be addressed |
It is an interesting failure. Looks like something is wrong with the infrastructure. I'll look at how I can avoid that failure.
|
This is approved offline by @SteveMCarroll. Just discussing when this is going to be released. |
Backport of #77065 to release/6.0
/cc @tarekgh
Customer Impact
Apps using the app-local feature will experience a crash when loading the app. This issue is reported by some user already.
Details
This issue is regression in the
6.0
servicing release. Early in .NET 7.0 cycle we have fixed an issue which was causing a hard build break. The build broke because ICU obsoleted one of the APIs and was generating compilation error if the code was using this API. We fixed this by dynamically binding to the correct API at runtime (as we support different ICU versions). This fix works fine in the main scenario case but missed initialize this API pointer when apps opt-in using the app-local feature which causes the crash. Recently, this change was ported to .NET 6.0 servicing #75294 by @lewing as it looks .NET 6.0 was running into similar build breaks.Testing
We have manually tested the fix using app-local feature and ensured the crash is gone and the apps behave correctly. We have added a completely new test to test the app-local feature to avoid such regressions in the future.
Risk
The risk is low because the change is only adding a call to the API pointer initialization in the app-local feature code path. Such initialization calls already existed and exercised in the mainstream cases when using the system ICU version.