From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Campbell Subject: Re: [PATCH for-4.5] xl: print message to stdout when (!debug && dryrun) Date: Mon, 15 Dec 2014 10:47:30 +0000 Message-ID: <1418640450.16425.82.camel@citrix.com> References: <1418489645-7689-1-git-send-email-wei.liu2@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1418489645-7689-1-git-send-email-wei.liu2@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Wei Liu Cc: tlviewer@yahoo.com, M A Young , xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org On Sat, 2014-12-13 at 16:54 +0000, Wei Liu wrote: > In commit d36a3734a ("xl: fix migration failure with xl migrate > --debug"), message is printed to stderr for both debug mode > and dryrun mode. That caused rdname() in xendomains fails to parse > domain name since it's expecting input from xl's stdout. > > So this patch separates those two cases. If xl is running in debug mode, > then message is printed to stderr; if xl is running in dryrun mode and > debug is not enabled, message is printed to stdout. This will fix > xendomains and other scripts that use "xl create --dryrun", as well as > not re-introducing the old bug fixed in d36a3734a. > > Reported-by: Mark Pryor > Signed-off-by: Wei Liu > Cc: M A Young > Cc: Ian Campbell > Cc: Konrad Wilk > --- > This is a regression, and this bug is so subtle that's a bit hard to > debug from user's point of view. So I think this should go into 4.5. Agreed. > Mark posted a workaround in > <104017455.78913.1418434454763.JavaMail.yahoo@jws10624.mail.bf1.yahoo.com> > but to be honest I don't think it's nice to have everyone patch their > scripts in order to work around this. Right. > --- > tools/libxl/xl_cmdimpl.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c > index 3737c7e..0a5f7c8 100644 > --- a/tools/libxl/xl_cmdimpl.c > +++ b/tools/libxl/xl_cmdimpl.c > @@ -2472,8 +2472,10 @@ static uint32_t create_domain(struct domain_create *dom_info) > } > } > > - if (debug || dom_info->dryrun) > + if (debug) > printf_info(default_output_format, -1, &d_config, stderr); > + if (!debug && dom_info->dryrun) else if ( dom_info->dry-run ) is the same (right?) and less thinking for the reader. Or the whole thing could be just: if (debug || dom_info->dryrun) printf_info(default_output_format, -1, &d_config, debug ? stderr : stdout); Less repetitive. Ian.