2022-10-28 11:22:21 +03:00
|
|
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
|
|
From: Fiona Ebner <f.ebner@proxmox.com>
|
|
|
|
Date: Fri, 28 Oct 2022 10:09:46 +0200
|
|
|
|
Subject: [PATCH] init: daemonize: defuse PID file resolve error
|
|
|
|
|
|
|
|
When proxmox-file-restore invokes QEMU, the PID file is a (temporary)
|
|
|
|
file that's already unlinked, so resolving the absolute path here
|
|
|
|
failed.
|
|
|
|
|
|
|
|
It should not be a critical error when the PID file unlink handler
|
|
|
|
can't be registered, because the path can't be resolved for whatever
|
|
|
|
reason. If the file is already gone from QEMU's perspective (i.e.
|
|
|
|
errno is ENOENT), silently ignore the error. Otherwise, print a
|
|
|
|
warning.
|
|
|
|
|
|
|
|
Reported-by: Dominik Csapak <d.csapak@proxmox.com>
|
|
|
|
Suggested-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
|
|
|
Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
|
|
|
|
---
|
|
|
|
softmmu/vl.c | 9 +++++----
|
|
|
|
1 file changed, 5 insertions(+), 4 deletions(-)
|
|
|
|
|
|
|
|
diff --git a/softmmu/vl.c b/softmmu/vl.c
|
2022-12-14 17:16:32 +03:00
|
|
|
index 5115221efe..5f7f6ca981 100644
|
2022-10-28 11:22:21 +03:00
|
|
|
--- a/softmmu/vl.c
|
|
|
|
+++ b/softmmu/vl.c
|
2022-12-14 17:16:32 +03:00
|
|
|
@@ -2460,10 +2460,11 @@ static void qemu_maybe_daemonize(const char *pid_file)
|
2022-10-28 11:22:21 +03:00
|
|
|
|
|
|
|
pid_file_realpath = g_malloc0(PATH_MAX);
|
|
|
|
if (!realpath(pid_file, pid_file_realpath)) {
|
|
|
|
- error_report("cannot resolve PID file path: %s: %s",
|
|
|
|
- pid_file, strerror(errno));
|
|
|
|
- unlink(pid_file);
|
|
|
|
- exit(1);
|
|
|
|
+ if (errno != ENOENT) {
|
|
|
|
+ warn_report("not removing PID file on exit: cannot resolve PID "
|
|
|
|
+ "file path: %s: %s", pid_file, strerror(errno));
|
|
|
|
+ }
|
|
|
|
+ return;
|
|
|
|
}
|
|
|
|
|
|
|
|
qemu_unlink_pidfile_notifier = (struct UnlinkPidfileNotifier) {
|