The strategy used by Infinispan Embedded to increment IDs is not safe against concurrent updates

Description

Infinispan does not respect the semantics of boolean ConcurrentMap#replace(K key, V oldValue, V newValue);
specifically, it will return true if two different threads (or different clients) will attempt to write the same newValue, as both operations will be seen as "successfully replaced into newValue", i.e. a different semantics for replace which breaks our strategy to generate unique increment values.

See also:

Environment

None

Status

Assignee

Fabio Massimo Ercoli

Reporter

Sanne Grinovero

Labels

None

Worked in

None

Feedback Requested

None

Feedback Requested By

None

backPortable

None

Community Help Wanted

None

Suitable for new contributors

None

Requires Release Note

None

Pull Request

None

backportDecision

None

backportReEvaluate

None

Components

Fix versions

Affects versions

5.1.0.Beta1

Priority

Critical