Handle "lost update" issues with some entities during simultaneous updates

Description

[Story was previously named "investigate transactions with deleting modeshape entities", which was a duplicate of KYLO-2431]

In most cases entities are not greatly affected by a simultaneous update except in cases where the entity has a multi-valued property. Given JCR's limited property update API it is possible for to transactions to conflict with each other.

This problem was found when two feeds from the same template were deleted simultaneously and the template's feeds property still contained a reference to one of the deleted feed. This caused a corruption in the metadata and broke the template and feed listing REST APIs.

The best fix is to introduce selective locking, which is supported by ModeShape, and to implement transaction retry in our session management framework.

A simple workaround that could be put in point releases could be to filter multi-valued reference property values during access to not include the bad references. This would only prevent the kind of breakage like the feed deletion case above and would not be ideal.

Status

Assignee

Sean Felten

Reporter

Scott Reisdorf

Labels

Reviewer

None

Story Points

5

Components

Sprint

None

Fix versions

Priority

High
Configure