-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Catalog and Routing
-
None
-
None
-
None
-
None
-
None
-
None
-
None
ShardRef currently implements operator< which compares internal _ref values. This operator is used in various places to sort shard lists before processing loops (e.g. marking shards for removal).
The concern raised in code review https://github.com/10gen/mongo/pull/54935 is that ShardRef may hold either a shard name (string) or a UUID, depending on the source — shard handles come from config.shards, while placement info provides shard refs. If both types are mixed in a sorted collection, the ordering guarantees are weak and potentially meaningless.