Notifications

611 views

Description

When trying to perform Delete recovery from the "sys_delete_recovery" table and the recovery may fail. One of these errors below may be encountered

RollbackExecutor:Rollback is not in a 'recorded' state: actual state=[reverting]

RollbackExecutor: Another rollback is currently being reverted:c11c8....

Recovery execution may not have finished successfully, skipping finalization: 00fg66......

Sample Error message #1 (sys_rollback_run record)

Sample Error message #2

Sample Error message #3

Release or Environment

London, Madrid. Not applicable for Kingston or earlier releases.

Cause

A record was deleted either from a fix script/background script/delete UI Action. When trying to rollback the transaction by navigating to the sys_delete_recovery module, it fails. This is due to PRB1308489

Resolution

 

1. Go to "sys_delete_recovery" table and choose the record intended for recovery that is failing. Copy the value from the field "Rollback Context" (starts with BAK)

2. Go to the "sys_rollback_context" table and filter Number = <BAK# copied in previous step>. Backup the record as XML. Also, copy the sys_id of this record.

3. Go to the "sys_rollback_run" table and filter Number = <BAK# copied in previous step 1>. Find the record that still has the value State=Running.  Backup the record as XML. Also, copy the sys_id of this record.

4. Execute the below script substituting the sys_ids copied from step #2 and step #3

var context_sysID = 'ENTER_SYS_ID_FROM_STEP_2';
var run_sysID = 'ENTER_SYS_ID_FROM_STEP_3';

// Nothing below this line needs to be modified

fixContextState(context_sysID); 
function fixContextState(context) { 
   var gr1 = new GlideRecord('sys_rollback_context');
   if (gr1.get(context)) {
       gr1.state = 'recorded';
       gr1.update();
   } 



fixRollbackState(run_sysID); 
function fixRollbackState(run) { 
   var gr2 = new GlideRecord('sys_rollback_run');
   if (gr2.get(run)) {
       gr2.state = 'finished';
       gr2.update();
   }


5. After this step please go to the "sys_progress_worker" table and filter out State = Running for the corresponding rollback context. Set the state to "Cancelled'. A sample screenshot below:           

Additional Information

Sometimes the error messages that pop up in the UI are not helpful (ex:Sample Error message #3 screenshot). There is another Problem created to make the error messages more meaningful: PRB1328037 - "When an attempted rollback from "delete recovery" module fails it does not show a meaningful error message"

 

Article Information

Last Updated:2019-12-11 12:42:43
Published:2019-12-11