qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 3/5] qemu-nbd: Do not close stderr


From: Max Reitz
Subject: [Qemu-devel] [PATCH 3/5] qemu-nbd: Do not close stderr
Date: Tue, 7 May 2019 20:36:08 +0200

We kept old_stderr specifically so we could keep emitting error message
on stderr.  However, qemu_daemon() closes stderr.  Therefore, we need to
dup() stderr to old_stderr before invoking qemu_daemon().

Signed-off-by: Max Reitz <address@hidden>
---
As I hinted at in the cover letter, I am not sure whether this is truly
a bug or whether the current behavior is intentional.  So if you
disagree with me on this patch, you are welcome to suggest an
alternative.

I personally can see two:
(1) Add a --log option for a file to store the server's messages in.
    Seems a bit cumbersome to me.

(2) Add a --keep-stderr option, which specifically enables this behavior
    here.  Without this option we keep the old behavior.
---
 qemu-nbd.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/qemu-nbd.c b/qemu-nbd.c
index 7e48154f44..3805324153 100644
--- a/qemu-nbd.c
+++ b/qemu-nbd.c
@@ -1015,10 +1015,11 @@ int main(int argc, char **argv)
             exit(EXIT_FAILURE);
         } else if (pid == 0) {
             close(stderr_fd[0]);
+
+            old_stderr = dup(STDERR_FILENO);
             ret = qemu_daemon(1, 0);
 
             /* Temporarily redirect stderr to the parent's pipe...  */
-            old_stderr = dup(STDERR_FILENO);
             dup2(stderr_fd[1], STDERR_FILENO);
             if (ret < 0) {
                 error_report("Failed to daemonize: %s", strerror(errno));
-- 
2.20.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]