[SERVER-83522] absl::hash doesn't guarantee hashing values of different C++ types the same but we rely on that in SBE Created: 21/Nov/23 Updated: 28/Nov/23 Resolved: 28/Nov/23 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Irina Yatsenko (Inactive) | Assignee: | Backlog - Query Execution |
| Resolution: | Duplicate | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||
| Assigned Teams: |
Query Execution
|
||||||||||||||||
| Operating System: | ALL | ||||||||||||||||
| Participants: | |||||||||||||||||
| Description |
|
Absail's hash.h states that the hash might depend on the C++ type and gives as an example that int and double might not hash the same. patrick.freed@mongodb.com has found that in the latest abseil equal values of int32 and int64 types might produce different hashes. Note: in value::hashValue we already hash as int64_t doubles and decimals that can be represented as int64_t (and presumably those that cannot be represented as such won't compare equal to any int64_t values). |
| Comments |
| Comment by Ivan Fefer [ 28/Nov/23 ] |
|
This will be fixed as a part of absl upgrade, no separate ticket necessary. |