From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27609 invoked by alias); 27 Sep 2011 17:29:36 -0000 Received: (qmail 27591 invoked by uid 9447); 27 Sep 2011 17:29:34 -0000 Date: Tue, 27 Sep 2011 17:29:00 -0000 Message-ID: <20110927172934.27589.qmail@sourceware.org> From: agk@sourceware.org To: lvm-devel@redhat.com, lvm2-cvs@sourceware.org Subject: LVM2 ./WHATS_NEW tools/pvmove.c Mailing-List: contact lvm2-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: lvm2-cvs-owner@sourceware.org X-SW-Source: 2011-09/txt/msg00143.txt.bz2 CVSROOT: /cvs/lvm2 Module name: LVM2 Changes by: agk@sourceware.org 2011-09-27 17:29:34 Modified files: . : WHATS_NEW tools : pvmove.c Log message: 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. Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.2141&r2=1.2142 http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/tools/pvmove.c.diff?cvsroot=lvm2&r1=1.88&r2=1.89 --- LVM2/WHATS_NEW 2011/09/27 17:09:42 1.2141 +++ LVM2/WHATS_NEW 2011/09/27 17:29:33 1.2142 @@ -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. --- LVM2/tools/pvmove.c 2011/09/27 17:09:43 1.88 +++ LVM2/tools/pvmove.c 2011/09/27 17:29:33 1.89 @@ -390,22 +390,9 @@ } /* - * 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; } }