aggregate() namespace resolution and collMod are not synchronized (anymore)

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Gone away
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Querying
    • None
    • ALL
    • Execution Team 2020-04-06
    • 24
    • None
    • 3
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      Since we no longer take a DB MODE_X lock for collMod (see SERVER-46865), the code for resolving namespaces in aggregate(), which takes a DB MODE_IS lock, does not necessarily see a consistent "view" of the view catalog. See link.

      This means that aggregate() can execute a pipeline on a set of view definitions that are not valid/nonsensical and possibly even contain a cycle.

      One potential fix would be to have the view resolution in run_aggregate be performed while holding a collection IS lock on system.views. I believe this will fix the issue as long as collMod continues taking a collection X lock (see here).

              Assignee:
              Gregory Noma
              Reporter:
              Ian Boros
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated:
                Resolved: