[SERVER-21476] ChunkVersion assumes little-endian byte order Created: 16/Nov/15 Updated: 22/Feb/16 Resolved: 05/Feb/16 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Portability |
| Affects Version/s: | None |
| Fix Version/s: | 3.3.2 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Bryan Chan | Assignee: | Mira Carey |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Backwards Compatibility: | Fully Compatible |
| Operating System: | ALL |
| Sprint: | Platforms 10 (02/19/16) |
| Participants: |
| Description |
|
The _minor and _major fields in ChunkVersion are unioned with a 64-bit _combined field, which are used for fast reads/writes and comparisons in little-endian order. This doesn't work on big-endian systems and causes failures in ChunkManagerTests that can be worked around by providing slower but portable versions of the accessor methods and comparison operators when MONGO_CONFIG_BYTE_ORDER == 4321. |
| Comments |
| Comment by Githook User [ 05/Feb/16 ] |
|
Author: {u'username': u'hanumantmk', u'name': u'Jason Carey', u'email': u'jcarey@argv.me'}Message: Alter ChunkVersion to rely on bit arithmetic on a 64 bit unsigned, |