Uploaded image for project: 'Jackrabbit Content Repository'
  1. Jackrabbit Content Repository
  2. JCR-2746

Sleep in possibly endless loop in ObservationDispatcher

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 2.0, 2.1, 2.1.1
    • 2.2
    • None

    Description

      The rate-limitation code we added in JCR-2402 to prevent the observation queue from growing too large was a good idea, but the current implementation is a bit troublesome since it blocks the thread while it still holds the journal lock, the SISM reader lock, and the SessionState lock. This can cause a deadlock under heavy workloads if any of the observation listeners attempts to reuse the session (not recommended/supported, but can still happen) or write to the repository (quite likely).

      To solve this problem we should move the rate-limiter code to outside the scope of any internal locks.

      Attachments

        1. JCR-2746.patch
          9 kB
          Jukka Zitting
        2. JCR-2746.patch
          9 kB
          Jukka Zitting
        3. TestObservationEndlessLoop.java
          2 kB
          Thomas Mueller

        Issue Links

          Activity

            People

              thomasm Thomas Mueller
              jukkaz Jukka Zitting
              Votes:
              1 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: