Uploaded image for project: 'Puppet'
  1. Puppet
  2. PUP-10959

Lock loaders using a single central lock

    XMLWordPrintable

Details

    • Improvement
    • Status: Resolved
    • Normal
    • Resolution: Fixed
    • None
    • PUP 7.6.0
    • None
    • Froyo
    • 5
    • Froyo - 03/24/2021, Froyo - 04/7/2021
    • Not Needed
    • Needs Assessment

    Description

      Currently, we lock each individual loader object with its own lock. This can result in deadlocks, when loaders call into other loaders in the process of loading.

      Instead, we want to try a single, central, high-level lock, perhaps in the base load function, that is tied to the environment/loaders object. So only one thing can be loaded for a given environment at a time. This should avoid deadlocks.

      We'll probably want to try profiling this a little, but it should avoid the issue that is currently making multithreaded with environment caching unusable. See SERVER-2860 and PE-30479.

      This solution is an alternative to PUP-10958.

      Attachments

        Issue Links

          Activity

            People

              patrick Patrick Carlisle
              maggie Maggie Dreyer
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Zendesk Support