Threads getting stuck in HitTrackingLocalCache, possible synchronisation problem

XMLWordPrintable

      Highly concurrent use (including reads) of our default cache wrapper, HitTrackingLocalCache, seems to send a thread into an infinite loop. This wrapper is designed to track cache usage to provide statistics on the Cache Administration page.

      We need to either fix the synchronisation on the hit-tracking map, or use a different data structure for storing the information (such as a single hit counter per cache).

      The only workaround currently is to restart Confluence if this situation occurs. The problem can be seen in a thread dump with the following lines:

      "TP-Processor10" daemon prio=6 tid=0x68a66e58 nid=0x13b8 runnable [0x6ab9c000..0x6ab9fa6c]
      at java.util.HashMap$EntryIterator.next(HashMap.java:883)
      at java.util.HashMap$EntryIterator.next(HashMap.java:881)
      at java.util.AbstractMap.hashCode(AbstractMap.java:557)
      at com.tangosol.util.SafeHashMap$Entry.hashCode(SafeHashMap.java:1048)
      at java.util.HashMap.hash(HashMap.java:292)
      at java.util.WeakHashMap.get(WeakHashMap.java:340)
      at com.atlassian.confluence.cache.tangosol.HitTrackingLocalCache.getEntry(HitTrackingLocalCache.java:55)
      at com.tangosol.net.cache.OldCache.get(OldCache.java:177)
      at com.tangosol.net.cache.LocalCache.get(LocalCache.java:196)

              Assignee:
              Unassigned
              Reporter:
              Matt Ryall
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated:
                Resolved: