-
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/7.0] Fix loading app-local ICU #77118
Conversation
Tagging subscribers to this area: @dotnet/area-system-globalization Issue DetailsBackport of #77065 to release/7.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.
|
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.
LGTM, thank you!
Backport of #77065 to release/7.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
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 have 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.
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.