Uploaded image for project: 'Tapestry'
  1. Tapestry
  2. TAPESTRY-1571

CheckForUpdatesFilter can cause deadlock

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 5.0.5
    • Fix Version/s: 5.0.5
    • Component/s: tapestry-core
    • Labels:
      None

      Description

      CheckForUpdatesFilter will cause a deadlock in the following circumstances.
      1) Initial request is received and processing starts (CheckForUpdatesFilter read lock obtained)
      2) Request processing triggers another http request to the same application
      3) Nested request is received
      4) CheckForUpdatesFilter determines it is time to check for file updates
      5) CheckForUpdatesFilter tries to obtain write lock
      6) Deadlock: Nested request is blocked waiting for read lock held by parent request to be released.

      This is an unusual situation, generally I wouldn't try to to access a page via http whilst trying to process another request. However I ran across this problem whilst using a third party library (JasperReports) that referenced resources via http links.

      Although uncommon, I believe Tapestry should be able to handle this without deadlocking

        Attachments

        1. TAP-1571.patch
          17 kB
          Ben Sommerville

          Activity

            People

            • Assignee:
              hlship Howard M. Lewis Ship
              Reporter:
              bpsommerville Ben Sommerville
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: