Notifications

262 views

Symptoms


When you try to perform Delete recovery from the "sys_delete_recovery" table and the recovery may fail. You may encounter one of these errors from below

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......

Attaching some screenshots

Sample Error message #1 (sys_rollback_run record)

Sample Error message #2

Sample Error message #3

Release


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


 This article documents all the steps needed to follow to proceed with the recovery

 

  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

    fixContextState(); 
    function fixContextState() { 
    var gr1 = new GlideRecord('sys_rollback_context'); 
    gr1.get('ENTER_SYS_ID_FROM_STEP_2'); 
    gr1.state = 'recorded'; 
    gr1.update(); 


    fixRollbackState(); 
    function fixRollbackState() { 
    var gr2 = new GlideRecord('sys_rollback_run'); 
    gr2.get('ENTER_SYS_ID_FROM_STEP_3'); 
    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-05-21 11:55:05
Published:2019-03-25
rollback_run_ss.pngScreen Shot 2019-02-21 at 4.16.07 PM.pngScreen Shot 2019-02-21 at 5.15.05 PM.pngScreen Shot 2019-02-22 at 12.40.54 PM.pngScreen Shot 2019-02-25 at 3.08.14 PM.pngScreen Shot 2019-02-25 at 3.12.17 PM.png