8. Auto Backup

There are session restore and auto backup features on state machine level which are enabled by default and which can be used to backup and restore your work. These features can be enabled/disabled by the parameter SESSION_RESTORE_ENABLED and AUTO_BACKUP_ENABLED in the GUI config.

The session restore uses the backup of state machines and other GUI information to restore your open state machine tabs and respective selection situation.

If the state machine auto backup is enabled RAFCON creates temporary backups of your open state machines. You can find these after a crash of RAFCON on your computer in $RUNTIME_BACKUP_PATH = /tmp/rafcon-$USER/$PID/runtime_backup/. $USER is your user name and $PID was/is the process id of your RAFCON instance. If a state machine hasn’t been saved before, it will be located at $RUNTIME_BACKUP_PATH/not_stored_$SM_ID, whereby $SM_ID is the ID of the state machine. If your state-machine has already been stored, the state machine backup path is $RUNTIME_BACKUP_PATH/$SM_BASE_PATH, whereas $SM_BASE_PATH is the path to your state machine.

The automatic backup can either be disabled or enabled. If enabled either a fixed forced or dynamic interval can be set. Respective parameters are described in Configuration and start with AUTO_BACKUP_*.

In case of a fixed forced interval it is checked every duration T if there was a change to the state-machine. This means that a modification can maximal not been backuped for T. T is specified by AUTO_BACKUP_FORCED_STORAGE_INTERVAL.

In case of dynamic auto-backup it is tried to avoid user disturbances by waiting for a time-interval T*, within which the user has not modified the state-machine, to trigger the auto-backup while still using T as a hard limit. This means that a modification is possibly backup-ed every T* and forced after T. T* is specified by the config value AUTO_BACKUP_DYNAMIC_STORAGE_INTERVAL.

8.1. Auto Recovery

With the release 0.7.5 lock files for state machines and rafcon instances are introduced in the $RUNTIME_BACKUP_PATH. State machines which were not proper stored can be identified and recovered on a formal way (dialog window) if the parameters AUTO_RECOVERY_LOCK_ENABLED and AUTO_RECOVERY_CHECK are set to True. By default those parameters are set False. In more detail AUTO_RECOVERY_LOCK_ENABLED results in the creation of a lock file and AUTO_RECOVERY_CHECK=True triggers a check on lock files for the whole /tmp/rafcon-$USER folder and will offer optional recovery of respective state machines. So it is possible to enable lock file generation and only enable the check on lock files if explicitly needed.

An auto recovery of whole crashed sessions including their open state machines and tab states is currently not supported. Nevertheless, sessions can be restored if RAFCON was closed correctly and the config value SESSION_RESTORE_ENABLED is set to True.