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

Optimistic concurrency in REST server is not using atomic operations

    Details

      Description

      The REST server's optimistic currency control is not atomic. The sequence in e.g. a PUT request goes like this:

      • request.evaluatePreconditions
      • cache.put (if preconditions met)

      Which is not inside any lock (that would make it pessimistic, anyway), in other words, a race condition.

      This applies to the optimistic variants, i.e. requests carrying 'If-Match' or any of the other 'If-*' preconditions, of PUT, POST, and DELETE requests.

        Gliffy Diagrams

          Attachments

            Activity

              People

              • Assignee:
                galder.zamarreno Galder Zamarreño
                Reporter:
                eugendueck Eugen Dück
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: