From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47336) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aaLdq-0001Pn-Cg for qemu-devel@nongnu.org; Mon, 29 Feb 2016 06:05:31 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aaLdk-00010U-67 for qemu-devel@nongnu.org; Mon, 29 Feb 2016 06:05:30 -0500 Received: from mx1.redhat.com ([209.132.183.28]:46968) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aaLdj-00010N-VO for qemu-devel@nongnu.org; Mon, 29 Feb 2016 06:05:24 -0500 Date: Mon, 29 Feb 2016 12:05:16 +0100 From: =?iso-8859-1?B?SuFu?= Tomko Message-ID: <20160229110516.GB3325@dnr.brq.redhat.com> References: <1456320461-26756-1-git-send-email-pbonzini@redhat.com> <1456320461-26756-15-git-send-email-pbonzini@redhat.com> <20160229085711.GA26830@dnr.brq.redhat.com> <56D40A63.2060302@redhat.com> <20160229100406.GA3325@dnr.brq.redhat.com> <56D41AB5.2030803@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <56D41AB5.2030803@redhat.com> Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PULL 14/19] log: Redirect stderr to logfile if deamonized List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini Cc: qemu-devel@nongnu.org, Dimitris Aragiorgis On Mon, Feb 29, 2016 at 11:17:25AM +0100, Paolo Bonzini wrote: >=20 >=20 > On 29/02/2016 11:04, J=C3=A1n Tomko wrote: > > On Mon, Feb 29, 2016 at 10:07:47AM +0100, Paolo Bonzini wrote: > >> > >> > >> On 29/02/2016 09:57, J=C3=A1n Tomko wrote: > >>> qemu-system-x86_64 -S -no-user-config -nodefaults -nographic -M non= e > >>> -qmp unix:/var/lib/libvirt/qemu/capabilities.monitor.sock,server,n= owait > >>> -pidfile /var/lib/libvirt/qemu/capabilities.pidfile -daemonize > >> > >> Can you test this patch? > >> > >> diff --git a/util/log.c b/util/log.c > >> index 4dff00b..9402880 100644 > >> --- a/util/log.c > >> +++ b/util/log.c > >> @@ -56,7 +56,8 @@ void do_qemu_set_log(int log_flags, bool use_own_b= uffers) > >> #ifdef CONFIG_TRACE_LOG > >> qemu_loglevel |=3D LOG_TRACE; > >> #endif > >> - if ((qemu_loglevel || is_daemonized()) && !qemu_logfile) { > >> + if (!qemu_logfile && > >> + (qemu_loglevel || (is_daemonized() && logfilename)) { > >> if (logfilename) { > >> qemu_logfile =3D fopen(logfilename, log_append ? "a" : = "w"); > >> if (!qemu_logfile) { > >> > >> Thanks, > >=20 > > Still hangs, > >=20 > > (gdb) list > > 54 { > > 55 qemu_loglevel =3D log_flags; > > 56 #ifdef CONFIG_TRACE_LOG > > 57 qemu_loglevel |=3D LOG_TRACE; > > 58 #endif > > 59 sleep(10); > > 60 if (!qemu_logfile && > > 61 (qemu_loglevel || (is_daemonized() && logfilename))) = { > > 62 if (logfilename) { > > 63 qemu_logfile =3D fopen(logfilename, log_append ? = "a" : "w"); > > (gdb) p qemu_logfile > > $1 =3D (FILE *) 0x0 > > (gdb) p qemu_loglevel > > $2 =3D 32768 > > (gdb) p logfilename > > $3 =3D 0x0 > > (gdb) call is_daemonized() > > $4 =3D true >=20 > Second attempt: >=20 > diff --git a/util/log.c b/util/log.c > index 4dff00b..1530a60 100644 > --- a/util/log.c > +++ b/util/log.c > @@ -56,7 +56,8 @@ void do_qemu_set_log(int log_flags, bool use_own_buff= ers) > #ifdef CONFIG_TRACE_LOG > qemu_loglevel |=3D LOG_TRACE; > #endif > - if ((qemu_loglevel || is_daemonized()) && !qemu_logfile) { > + if (!qemu_logfile && > + (is_daemonized() ? logfilename : qemu_loglevel)) { > if (logfilename) { > qemu_logfile =3D fopen(logfilename, log_append ? "a" : "w"= ); > if (!qemu_logfile) { > @@ -72,6 +73,7 @@ void do_qemu_set_log(int log_flags, bool use_own_buff= ers) > } > } else { > /* Default to stderr if no log file specified */ > + assert(!is_daemonized()); > qemu_logfile =3D stderr; > } > /* must avoid mmap() usage of glibc by setting a buffer "by ha= nd" */ >=20 >=20 This works for me, but produces a warning: CC util/log.o util/log.c: In function =E2=80=98do_qemu_set_log=E2=80=99: util/log.c:60:40: error: pointer/integer type mismatch in conditional exp= ression [-Werror] (is_daemonized() ? logfilename : qemu_loglevel)) { Jan > Paolo