[MAGNOLIA-6560] Isolation level of MarkNodeAsDeleted is not sufficient - Possible data loss Created: 22/Feb/16 Updated: 09/Feb/17 Resolved: 09/Oct/16 |
|
| Status: | Closed |
| Project: | Magnolia |
| Component/s: | None |
| Affects Version/s: | 5.3.12 |
| Fix Version/s: | 5.5 |
| Type: | Improvement | Priority: | Major |
| Reporter: | Thim Anneessens | Assignee: | Ilgun Ilgun |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | support | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||||||
| Template: |
|
||||||||||||||||||||
| Acceptance criteria: |
Empty
|
||||||||||||||||||||
| Task DoD: |
[ ]*
Doc/release notes changes? Comment present?
[ ]*
Downstream builds green?
[ ]*
Solution information and context easily available?
[ ]*
Tests
[ ]*
FixVersion filled and not yet released
[ ] 
Architecture Decision Record (ADR)
|
||||||||||||||||||||
| Release notes required: |
Yes
|
||||||||||||||||||||
| Documentation update required: |
Yes
|
||||||||||||||||||||
| Date of First Response: | |||||||||||||||||||||
| Sprint: | Basel 65 | ||||||||||||||||||||
| Story Points: | 21 | ||||||||||||||||||||
| Description |
|
MarkNodeAsDeleted action recursively delete the content of the node from top to bottom. Before deleting the content a version of the node is created so to be able to restore in a latter change. However this process is done with very little isolation, each node being deleted is then persisted one by one. This means that operation on nodes could still be performed during the deletion. Worst, given that the nodes are marked as deleted one after the other, the recursive restore of the nodes can be launched before the entire recursive delete process is over. This in turn could overtake the delete process and restore nodes before deleting them, causing permanent data loss. In order to avoid data loss, delete operation should block any changes on the node structure during the delete operation. |