Uh oh!
There was an error while loading. Please reload this page.
[release/8.0] Revert performance optimization resulting in incorrect lookups in certain case insensitive frozen collections - #94685
Conversation
ghost
commented
Nov 13, 2023
Tagging subscribers to this area: @dotnet/area-system-collections Issue DetailsBackport of #94667 to release/8.0 Customer impactAddresses a customer reported issue where under certain circumstances, frozen collections produce erroneous lookup results when keyed on case-insensitive strings. After a lot deliberation, we have decided to revert the particular performance optimization that was causing the bug. While this change will result in perf regression, we are fine with this since
TestingAdded unit testing covering the impacted scenario. RiskLow. Makes targeted changes in the
|
carlossanlop
commented
Nov 13, 2023
Friendly reminder: If you'd like this to be included in the December release, please merge it before Tuesday November 14th EOD (Code Complete). |
jeffhandley
commented
Nov 14, 2023
@carlossanlop Should this target the |
eiriktsarpalis
commented
Nov 14, 2023
Approved over email. |
…ivity in FrozenCollections (dotnet#94667) * Add failing tests * Fix incorrect case sensitivity in FrozenDictionary and FrozenSet for some cases fixesdotnet#93974 * When hashing the entire string, case sensitivity of hash and equals should be the same * Address code review comments * Only ignore case insensitivity if entire string is ASCII non-letters * Code review comments * Undo some new lines * Fixed tests - incorrect leftover from previous PR
e72d5e1 to
5fd9852Compareeiriktsarpalis
commented
Nov 14, 2023
Build errors are known issues. |
Backport of #94667 to release/8.0
Customer impact
Addresses a customer reported issue where under certain circumstances, frozen collections produce erroneous lookup results when keyed on case-insensitive strings. After a lot deliberation, we have decided to revert the particular performance optimization that was causing the bug. While this change will result in perf regression, we are fine with this since
Testing
Added unit testing covering the impacted scenario.
Risk
Low. Makes targeted changes in the
KeyAnalyzercomponent disabling the optimization for the cases where it isn't valid.