From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34151) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aaKtS-0001Qc-5l for qemu-devel@nongnu.org; Mon, 29 Feb 2016 05:17:35 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aaKtO-0004qV-Va for qemu-devel@nongnu.org; Mon, 29 Feb 2016 05:17:34 -0500 Received: from mail-wm0-x232.google.com ([2a00:1450:400c:c09::232]:33669) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aaKtO-0004qP-LM for qemu-devel@nongnu.org; Mon, 29 Feb 2016 05:17:30 -0500 Received: by mail-wm0-x232.google.com with SMTP id l68so29694570wml.0 for ; Mon, 29 Feb 2016 02:17:30 -0800 (PST) Sender: Paolo Bonzini 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> From: Paolo Bonzini Message-ID: <56D41AB5.2030803@redhat.com> Date: Mon, 29 Feb 2016 11:17:25 +0100 MIME-Version: 1.0 In-Reply-To: <20160229100406.GA3325@dnr.brq.redhat.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit 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: =?UTF-8?Q?J=c3=a1n_Tomko?= Cc: qemu-devel@nongnu.org, Dimitris Aragiorgis On 29/02/2016 11:04, Ján Tomko wrote: > On Mon, Feb 29, 2016 at 10:07:47AM +0100, Paolo Bonzini wrote: >> >> >> On 29/02/2016 09:57, Ján Tomko wrote: >>> qemu-system-x86_64 -S -no-user-config -nodefaults -nographic -M none >>> -qmp unix:/var/lib/libvirt/qemu/capabilities.monitor.sock,server,nowait >>> -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_buffers) >> #ifdef CONFIG_TRACE_LOG >> qemu_loglevel |= LOG_TRACE; >> #endif >> - if ((qemu_loglevel || is_daemonized()) && !qemu_logfile) { >> + if (!qemu_logfile && >> + (qemu_loglevel || (is_daemonized() && logfilename)) { >> if (logfilename) { >> qemu_logfile = fopen(logfilename, log_append ? "a" : "w"); >> if (!qemu_logfile) { >> >> Thanks, > > Still hangs, > > (gdb) list > 54 { > 55 qemu_loglevel = log_flags; > 56 #ifdef CONFIG_TRACE_LOG > 57 qemu_loglevel |= LOG_TRACE; > 58 #endif > 59 sleep(10); > 60 if (!qemu_logfile && > 61 (qemu_loglevel || (is_daemonized() && logfilename))) { > 62 if (logfilename) { > 63 qemu_logfile = fopen(logfilename, log_append ? "a" : "w"); > (gdb) p qemu_logfile > $1 = (FILE *) 0x0 > (gdb) p qemu_loglevel > $2 = 32768 > (gdb) p logfilename > $3 = 0x0 > (gdb) call is_daemonized() > $4 = true Second attempt: 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_buffers) #ifdef CONFIG_TRACE_LOG qemu_loglevel |= LOG_TRACE; #endif - if ((qemu_loglevel || is_daemonized()) && !qemu_logfile) { + if (!qemu_logfile && + (is_daemonized() ? logfilename : qemu_loglevel)) { if (logfilename) { qemu_logfile = fopen(logfilename, log_append ? "a" : "w"); if (!qemu_logfile) { @@ -72,6 +73,7 @@ void do_qemu_set_log(int log_flags, bool use_own_buffers) } } else { /* Default to stderr if no log file specified */ + assert(!is_daemonized()); qemu_logfile = stderr; } /* must avoid mmap() usage of glibc by setting a buffer "by hand" */ Paolo