Notice: In order to edit this ticket you need to be either: a Product Owner, The owner or the reporter of the ticket, or, in case of a Task not yet assigned, a team_member"

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

(In [8267]) Failing test for SOFT data loss (See #3031, #3032)

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 [8270]) Recursive calls to savepoint/rollback refactored into DeleteIds (Fix #3032)

Note: See TracTickets for help on using tickets. You may also have a look at Agilo extensions to the ticket.

1.3.13-PRO © 2008-2011 Agilo Software all rights reserved (this page was served in: 0.80888 sec.)

We're Hiring!