Improve safety and observability in oplog application code

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Fixed
    • Priority: Major - P3
    • 9.0.0-rc0
    • 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.

            Assignee:
            Joseph Obaraye
            Reporter:
            Joseph Obaraye
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: