Uploaded image for project: 'JBoss Enterprise Application Platform'
  1. JBoss Enterprise Application Platform
  2. JBEAP-23085

(7.4.z) ISPN-13549 - Data race in EntryWrappingInterceptor handling expired entries

XMLWordPrintable

    • False
    • False
    • +
    • Hide
      If caches are used by applications the underlying Infinispan code is not working correctly.
      This will happen if expiration is used in combination with *All (put get) cache access.
      Show
      If caches are used by applications the underlying Infinispan code is not working correctly. This will happen if expiration is used in combination with *All (put get) cache access.

      EntryWrappingInterceptor.visitPutMapCommand processes the potential expiration of keys in the input map in parallel, and wraps the entries in the context in the threads that processed the expiration response.

      But NonTxInvocationContext is not thread-safe, as it uses a HashMap internally. When a PutMapCommand affects 2 or more entries can can both expire, and their keys map to the same HashMap bucket, one of the updates may be lost and the distribution interceptor will later fail with an IllegalStateException: Entry should be always wrapped!.

              thofman Tomas Hofman
              rhn-support-wfink Wolf Fink
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated:
                Resolved: