Uploaded image for project: 'Documentation'
  1. Documentation
  2. DOCS-12990

Investigate changes in SERVER-41947: Disallow using the "system.views" collection name as the source or target names in the rename command

    XMLWordPrintable

Details

    • Task
    • Status: Closed
    • Major - P3
    • Resolution: Gone away
    • None
    • 4.3.1, 4.2.1
    • manual
    • None

    Description

      Description

      Downstream Change Summary

      renaming "system.views" or renaming any collection to "system.views" via command is not allowed.

      Description of Linked Ticket

      This is a bug fix for a build failure where the following scenario leads to a deadlock:

      T1: Rename command is renaming 'test.coll' to 'test.system.views', so it has the MODE_IX on 'test' and MODE_X on both 'coll' and 'system.views'. The next step is to check if 'coll' is a view by calling the ViewCatalog::lookup() and waiting to acquire the ViewCatalog mutex which is currently held by T2.

      T2: Running CountCmd on a collection that didn't exist, but in AutoGetCollection we check if it could be a view and call ViewCatalog::lookup(), here we see that the ViewCatalog is invalidated, so we call _reloadIfNeeded. Now _reloadIfNeeded() uses the DurableViewCatalog::iterate but that requires the MODE_IS lock on the 'test.system.views' collection which is currently held by T1.

      So we have a deadlock where:
      T1 has MODE_X on 'test.system.views' but is waiting for ViewCatalog mutex.
      T2 has ViewCatalog mutex during reload and needs MODE_IS on 'test.system.views'.

      Scope of changes

      Impact to Other Docs

      MVP (Work and Date)

      Resources (Scope or Design Docs, Invision, etc.)

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              backlog-server-pm Backlog - Core Eng Program Management Team
              Kay Kim Kay Kim (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:
                2 years, 50 weeks, 4 days ago