-
Type: Bug
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
Fully Compatible
-
ALL
-
v5.0, v4.9
-
Service Arch 2021-06-14
Introduce a stdx::erase_if that properly handles absl::node_hash_map, which has the peculiar semantics that erase(pos) doesn't return an iterator but also doesn't change traversal order.
Call this erase_if function to repair range based for loops where an element can be erased from the range, and similar code.
This work must be done on its own merits as the codebase is currently suffering UB from these erased iterators, but it also unblocks abseil upgrade SERVER-51476.
Similar to the fix in SERVER-57267.
Abseil at head actually already has absl::erase_if overloads for the containers so we can bring that into stdx later.
- is caused by
-
SERVER-49965 Add apiVersion metrics to serverStatus and remove stale metrics
- Closed
- is depended on by
-
SERVER-51476 Upgrade Abseil to 20210324.1
- Closed
- related to
-
SERVER-57480 Invalid iterator access in api_version_metrics.cpp
- Closed