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

CheckForUpdatesFilter can cause deadlock

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 5.0.5
    • 5.0.5
    • tapestry-core
    • 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

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

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment