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

Compare output between listCollections and $listCatalog for the same database and verify equivalence in testing

    • Type: Icon: Engineering Test Engineering Test
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Catalog
    • Catalog and Routing
    • Fully Compatible
    • CAR Team 2024-08-19, CAR Team 2024-09-02, CAR Team 2024-09-16, CAR Team 2024-09-30, CAR Team 2024-10-14, CAR Team 2024-10-28, CAR Team 2024-11-11, CAR Team 2024-11-25
    • 200
    • 2

      The listCollections command is the public interface for listing the collections and their collection options. The listCollections command is used by systems designed to sync data such as

      • logical initial sync
      • chunk migration
      • resharding (and moveCollection, unshardCollection)
      • mongodump

      It is problematic if there are collection options which aren't included in the listCollections output which upon creating the collection would result in the new instance of the collection not correctly responding to all future read and write requests.

      To detect gaps in what is reported in the public listCollections interface I'd propose adding logic to jstests/hooks/validate_collections.js (which is already run by resmoke fixtures after each test and mongo shell fixtures on shutdown) to compare the output between it and the $listCatalog interface. This would almost have surely caught SERVER-90243.

            Assignee:
            joan.bruguera-mico@mongodb.com Joan Bruguera Micó
            Reporter:
            max.hirschhorn@mongodb.com Max Hirschhorn
            Votes:
            1 Vote for this issue
            Watchers:
            12 Start watching this issue

              Created:
              Updated: