[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:
Fix
is fixed by SERVER-74523 Upgrade abseil to 2023-08-02 LTS Closed
Related
is related to SERVER-82618 Replace usages of absl::hash_internal Backlog
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. 

Generated at Thu Feb 08 06:52:26 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.