If rsync must be restarted due to an exit code of 12 or 13,
create_rsync_argv() was called even if the old rsync_argv should
be reused in this case. This (correctly) triggers the assertion
assert(!name_of_reference_snapshot);
in create_rsync_argv(). Fix this by not calling create_rsync_argv()
if there is a reference snapshot.
case HS_POST_RUNNING:
continue;
case HS_PRE_SUCCESS:
- free_rsync_argv(rsync_argv);
- create_rsync_argv(&rsync_argv, ¤t_snapshot_creation_time);
+ if (!name_of_reference_snapshot) {
+ free_rsync_argv(rsync_argv);
+ create_rsync_argv(&rsync_argv, ¤t_snapshot_creation_time);
+ }
/* fall through */
case HS_NEEDS_RESTART:
if (!next_snapshot_is_due())