Uploaded image for project: 'Apache Ozone'
  1. Apache Ozone
  2. HDDS-3118

Possible deadlock in LockManager

    XMLWordPrintableJSON

Details

    Description

      LockManager has a possible deadlock.

      1. Number of locks is limited by using a GenericObjectPool. If N locks are already acquired, new requestors need to wait. This wait in getLockForLocking happens in a callback executed from ConcurrentHashMap#compute while holding a lock on a map entry.
      2. While releasing a lock, decrementActiveLockCount implicitly requires a lock on an entry in ConcurrentHashMap.

      Attachments

        1. repro.log
          89 kB
          Attila Doroszlai
        2. repro.patch
          2 kB
          Attila Doroszlai

        Activity

          People

            bharat Bharat Viswanadham
            adoroszlai Attila Doroszlai
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0h
                0h
                Logged:
                Time Spent - 40m
                40m