Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-81980

Make PreImagesTruncateManager avoid calling abandonSnapshot while holding a Collection Snapshot

    • Type: Icon: Improvement Improvement
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 8.0.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • Fully Compatible
    • Execution EMEA Team 2023-10-30, CAR Team 2023-11-13, CAR Team 2023-11-27, CAR Team 2023-12-11, CAR Team 2023-12-25, CAR Team 2024-01-08, Execution Team 2024-02-19, CAR Team 2024-01-22, CAR Team 2024-02-05
    • 120

      The pre image truncate marker initialization code relies on abandonSnapshot() to provide an updated view of the pre-images collection, and update the highest seen recordId and wall time for each nsUUID.

      However, (1) the code passes a CollectionAcquisition reference whose underlying collection pointer could be invalidated by calling abandonSnapshot() if there were a concurrent DDL operation.

      At this time, the uses of abandonSnapshot() are called while holding the collection lock, which prevents DDL operations from coming in and invalidating the Collection snapshot.

            Assignee:
            haley.connelly@mongodb.com Haley Connelly
            Reporter:
            haley.connelly@mongodb.com Haley Connelly
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: