Uploaded image for project: 'Tapestry 5'
  1. Tapestry 5
  2. TAP5-1650

On a cold start with a large number of incoming requests, Tapestry can deadlock inside PlasticClassLoader/PlasticClassPool

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Critical
    • Resolution: Fixed
    • 5.3
    • 5.3
    • plastic

    Description

      Discovered during load testing; the scenario is a cold start for the application then hitting it with large numbers of concurrent requests with no ramp up. The deadlocks involve two methods:

      PlasticClassLoader.loadClass()
      PlasticClassPool.getClassInstantiator()

      A proper solution would to make these methods share a single explicit Lock, rather than be synchronized.

      Attachments

        1. tapestry-deadlock-fix-1.patch
          1 kB
          Douglas Hauge

        Issue Links

          Activity

            People

              hlship Howard Lewis Ship
              hlship Howard Lewis Ship
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: