mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-21 13:34:40 +03:00
Replace incomplete pvmove activation failure recovery code with a message.
As it stands, the recovery code can make things worse sometimes so it's better to insist on a proper 'pvmove --abort' cleanup.
This commit is contained in:
parent
1c26860d82
commit
74e72bd75d
@ -1,5 +1,6 @@
|
||||
Version 2.02.89 -
|
||||
==================================
|
||||
Replace incomplete pvmove activation failure recovery code with a message.
|
||||
Abort if _finish_pvmove suspend_lvs fails instead of cleaning up incompletely.
|
||||
Change suspend_lvs to call vg_revert internally.
|
||||
Change vg_revert to void and remove superfluous calls after failed vg_commit.
|
||||
|
@ -390,22 +390,9 @@ static int _update_metadata(struct cmd_context *cmd, struct volume_group *vg,
|
||||
}
|
||||
|
||||
/*
|
||||
* Nothing changed yet, try to revert pvmove.
|
||||
* FIXME This error path is incomplete and unsafe.
|
||||
* FIXME Run --abort internally here.
|
||||
*/
|
||||
log_error("Temporary pvmove mirror activation failed.");
|
||||
|
||||
/* Ensure that temporary mrror is deactivate even on other nodes. */
|
||||
/* FIXME Unsafe to proceed if this fails without checking explicitly that no pvmove LVs are still active */
|
||||
(void)deactivate_lv(cmd, lv_mirr);
|
||||
|
||||
/* Revert metadata */
|
||||
/* FIXME Use --abort code instead? */
|
||||
if (!_detach_pvmove_mirror(cmd, lv_mirr) ||
|
||||
!lv_remove(lv_mirr) ||
|
||||
!vg_write(vg) || !vg_commit(vg))
|
||||
log_error("ABORTING: Restoring original configuration "
|
||||
"before pvmove failed. Run pvmove --abort.");
|
||||
log_error("ABORTING: Temporary pvmove mirror activation failed. Run pvmove --abort.");
|
||||
goto_out;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user