Task #3032 (closed)
Opened 9 years ago
Closed 9 years ago
SOFT deletes can lead to loss of data
| Reported by: | jamoore | Owned by: | jamoore |
|---|---|---|---|
| Priority: | blocker | Milestone: | OMERO-Beta4.2.1 |
| Component: | Services | Version: | n.a. |
| Keywords: | n.a. | Cc: | wmoore, jburel, cxallan, cblackburn |
| Resources: | n.a. | Referenced By: | n.a. |
| References: | n.a. | Remaining Time: | 0.0d |
| Sprint: | 2010-09-30 (17) |
Description
As seen while testing #3031, it's possible that some deletable subpaths of a "SOFT" delete which fails will still be removed, which is highly unacceptable.
Change History (4)
comment:1 Changed 9 years ago by jmoore
comment:2 Changed 9 years ago by jmoore
- Status changed from new to assigned
comment:3 Changed 9 years ago by jmoore
- Cc cblackburn added
The only solution I see for this at the moment is to introduce nested savepoints. Each time a step is made down in the graph, a new savepoint is created which can be rolled back with all the changes made for that node.
That way, if some point high up in the graph is SOFT and some lower delete marked HARD fails, all the intermediate deletes can be rolled back.
This also requires the logic for the rollbacks to be moved to DeleteIds in order to maintain a linked list of savepoint contexts which can be discarded if a rollback is called anywhere in along the graph.
This should prevent the loss of binary data mentioned in #2946
comment:4 Changed 9 years ago by jmoore
- Remaining Time changed from 0.5 to 0
- Resolution set to fixed
- Status changed from assigned to closed
(In [8267]) Failing test for SOFT data loss (See #3031, #3032)