Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-7696

RemoveExpired could be called with updated value

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • 9.1.0.Final
    • 9.0.0.Final
    • Core
    • None

    Description

      In ClusterExpirationManager.handleLifespanExpireEntry the value for removeExpired is retrieved in the Runnable, which is not executed under synchronized
      block. There is a comment in CEM.handleInMemoryExpiration about the need
      for synchronization, but it seems to me that the Cache.removeExpired
      does not get the value we're checking the metadata for - there is a
      window when the value can change after we've checked the expiration.

      The value should stored in local variable while under synchronization, and captured in the Runnable/lambda.

      Attachments

        Activity

          People

            wburns@redhat.com Will Burns
            rvansa1@redhat.com Radim Vansa (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: