From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:47169) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TdB0B-0003ce-BX for qemu-devel@nongnu.org; Mon, 26 Nov 2012 21:34:24 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TdB0A-0007es-3G for qemu-devel@nongnu.org; Mon, 26 Nov 2012 21:34:23 -0500 Received: from mail7.hitachi.co.jp ([133.145.228.42]:44860) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TdB09-0007eC-Jj for qemu-devel@nongnu.org; Mon, 26 Nov 2012 21:34:22 -0500 Message-ID: <50B426D5.2070106@hitachi.com> Date: Tue, 27 Nov 2012 11:35:01 +0900 From: Tomoki Sekiyama MIME-Version: 1.0 References: <20121122021535.9852.40353.stgit@melchior2.sdl.hitachi.co.jp> <20121122021549.9852.73727.stgit@melchior2.sdl.hitachi.co.jp> <20121122140343.18a911fe@doriath.home> <50B3573D.8070705@hitachi.com> <20121126104001.01d68e50@doriath.home> In-Reply-To: <20121126104001.01d68e50@doriath.home> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v4 2/2] qemu-ga: sample fsfreeze hooks List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: lcapitulino@redhat.com Cc: qemu-devel@nongnu.org, mdroth@linux.vnet.ibm.com On 2012/11/26 21:40, Luiz Capitulino wrote: > On Mon, 26 Nov 2012 20:49:17 +0900 > Tomoki Sekiyama wrote: > >> On 2012/11/23 1:03, Luiz Capitulino wrote: >>> On Thu, 22 Nov 2012 11:15:49 +0900 >>> Tomoki Sekiyama wrote: >>> >>>> Adds sample hook scripts for --fsfreeze-hook option of qemu-ga. >>>> - fsfreeze-hook : execute scripts in fsfreeze-hook.d/ >>>> - fsfreeze-hook.d.sample/mysql-flush.sh : quiesce MySQL before snapshot >> >>>> +# Iterate executables in directory "fsfreeze-hook.d" with the specified args >>>> +[ ! -d "$FSFREEZE_D" ] && exit 1 >>>> +for file in "$FSFREEZE_D"/* ; do >>>> + is_ignored_file "$file" && continue >>>> + [ -x "$file" ] || continue >>>> + echo "$(date): execute $file $@" >>$LOGFILE >>>> + "$file" "$@" >>$LOGFILE 2>&1 >>>> + STATUS=$? >>>> + echo "$(date): $file finished with status=$STATUS" >>$LOGFILE >>>> +done >>> >>> execute_fsfreeze_hook() will fail the freeze process if this script fails. Two >>> comments: >>> >>> 1. Do we want to fail the freeze process if one of the sub-scripts fails? >>> If yes, then we have to exit 1 in the first failure >> >> I originally thought the hooks are optional; even they failed, filesystem-level >> consistency are still kept in the snapshot. >> However, if we are going to fail fsfreeze process by one of sub-scripts' >> failure, we also need to notify scripts which already succeeded to pre-freeze >> to thaw (or abort) freezing, before exit 1 here. > > Right, which makes things more complex. I vote for doing it the simpler way > for now then, which is to ignore subscripts exit status. But then you should > add exit 0 after the loop to avoid this: I agree this way. >>> 2. The exit status of the script will echo's exit status. I doubt we want that >> >> Do you mean $STATUS (not $status) is specialized in some shell environments? > > No, what I meant is that (afaik) when the script finishes, its return status to > qemu-ga is actually going to be the latest call echo exit status because it's > the last command executed in the loop. If echo fails (say no space) then > the script will fail. > > We either, ignore any failures in qemu-ga itself (although we should at least > print a warning there) and/or add exit 0 as the last line of the script. Now I got the point. I will fix this at the next version. Thanks, -- Tomoki Sekiyama Linux Technology Center Hitachi, Ltd., Yokohama Research Laboratory