Skip to content
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/9.0] Fix string case-insensitive comparisons in Globalization invariant mode #107311

Merged
merged 1 commit into from
Sep 4, 2024

Conversation

github-actions[bot]
Copy link
Contributor

@github-actions github-actions bot commented Sep 3, 2024

Fixes #106828

Backport of #107268 to release/9.0

/cc @tarekgh

Customer Impact

  • Customer reported
  • Found internally

[Select one or both of the boxes. Describe how this issue impacts customers, citing the expected and actual behaviors and scope of the issue. If customer-reported, provide the issue number.]

We release containers which enable Globalization invariant mode by default. When comparing string in general, the rule of if s1 < s2 and s2 < s3, then s1 < s3 should hold true either using case-sensitive or insensitive comparison. We had a bug when comparing strings as insensitive in invariant mode which can return wrong result. The attached issue gives an example of that. Customers run into this issue and causing them to work around it for their customers too. Here is example of the customer comment #106828 (comment). This issue may meet the bar of 8.0 servicing too.

Regression

  • Yes
  • No

[If yes, specify when the regression was introduced. Provide the PR or commit if known.]

Testing

[How was the fix verified? How was the issue missed previously? What tests were added?]

Passed all regression tests in addition to adding a new test to cover the failing case.

Risk

Low, the fix is scoped to the Globalization Invariant mode and when using case insensitive comparison. We have not changed any logic more than returning the correct integer value from the comparison (positive, negative, or zero value).

[High/Medium/Low. Justify the indication by mentioning how risks were measured and addressed.]

IMPORTANT: If this backport is for a servicing release, please verify that:

  • The PR target branch is release/X.0-staging, not release/X.0.

  • If the change touches code that ships in a NuGet package, you have added the necessary package authoring and gotten it explicitly reviewed.

Copy link
Contributor

Tagging subscribers to this area: @dotnet/area-system-globalization
See info in area-owners.md if you want to be subscribed.

@tarekgh tarekgh added this to the 9.0.0 milestone Sep 3, 2024
@tarekgh tarekgh self-assigned this Sep 3, 2024
@tarekgh tarekgh added the Servicing-consider Issue for next servicing release review label Sep 3, 2024
@tarekgh
Copy link
Member

tarekgh commented Sep 3, 2024

CC @artl93 @ericstj

@artl93 artl93 added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Sep 3, 2024
@ericstj ericstj merged commit 31528d0 into release/9.0 Sep 4, 2024
149 of 153 checks passed
@jkotas jkotas deleted the backport/pr-107268-to-release/9.0 branch September 5, 2024 16:37
@github-actions github-actions bot locked and limited conversation to collaborators Oct 6, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants