-
Type:
Task
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
Replication
-
Fully Compatible
-
Repl 2026-03-30, Repl 2026-04-13, Repl 2026-04-27, Repl 2026-05-11
-
200
-
None
-
None
-
None
-
None
-
None
-
None
-
None
We should invariant that these vectors have size > i instead of using std::vector::at(). Invarianting and using operator[] instead of std::vector::at() ensures observability of out-of-bounds errors, whereas an exception thrown by std::vector::at() can be inadvertently suppressed by Pokémon exception handling, leading to UB occurring regardless.
Also, we should replace vectors like these in the oplog application path with references, since they should logically never be nullptr.