[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2] vl: defuse PID file path resolve error
From: |
Fiona Ebner |
Subject: |
Re: [PATCH v2] vl: defuse PID file path resolve error |
Date: |
Wed, 15 Mar 2023 09:52:20 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 |
Am 24.01.23 um 14:55 schrieb Fiona Ebner:
> Am 31.10.22 um 10:47 schrieb Fiona Ebner:
>> Commit 85c4bf8aa6 ("vl: Unlink absolute PID file path") introduced a
>> critical error when the PID file path cannot be resolved. Before this
>> commit, it was possible to invoke QEMU when the PID file was a file
>> created with mkstemp that was already unlinked at the time of the
>> invocation. There might be other similar scenarios.
>>
>> It should not be a critical error when the PID file unlink notifier
>> can't be registered, because the path can't be resolved. If the file
>> is already gone from QEMU's perspective, silently ignore the error.
>> Otherwise, only print a warning.
>>
>> Fixes: 85c4bf8aa6 ("vl: Unlink absolute PID file path")
>> 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>
>> ---
>>
>> v1 -> v2:
>> * Ignore error if errno == ENOENT.
>>
>> softmmu/vl.c | 9 +++++----
>> 1 file changed, 5 insertions(+), 4 deletions(-)
>>
>> diff --git a/softmmu/vl.c b/softmmu/vl.c
>> index b464da25bc..cf2c591ba5 100644
>> --- a/softmmu/vl.c
>> +++ b/softmmu/vl.c
>> @@ -2432,10 +2432,11 @@ static void qemu_maybe_daemonize(const char
>> *pid_file)
>>
>> 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) {
>
> Ping
>
Ping again. While it's not a critical patch, it's also not a big one :)
Best Regards,
Fiona
- Re: [PATCH v2] vl: defuse PID file path resolve error,
Fiona Ebner <=