[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 03/10] qga: treat get-guest-fsinfo as "best effort"
From: |
John Snow |
Subject: |
Re: [PATCH v2 03/10] qga: treat get-guest-fsinfo as "best effort" |
Date: |
Thu, 16 Jun 2022 10:43:11 -0400 |
On Thu, Jun 16, 2022 at 10:36 AM Marc-André Lureau
<marcandre.lureau@gmail.com> wrote:
>
> Hi
>
> On Thu, Jun 16, 2022 at 6:27 PM John Snow <jsnow@redhat.com> wrote:
>>
>> In some container environments, there may be references to block devices
>> witnessable from a container through /proc/self/mountinfo that reference
>> devices we simply don't have access to in the container, and could not
>> provide information about.
>>
>> Instead of failing the entire fsinfo command, return stub information
>> for these failed lookups.
>>
>> This allows test-qga to pass under docker tests, which are in turn used
>> by the CentOS VM tests.
>>
>> Signed-off-by: John Snow <jsnow@redhat.com>
>> ---
>> qga/commands-posix.c | 8 +++++++-
>> 1 file changed, 7 insertions(+), 1 deletion(-)
>>
>> diff --git a/qga/commands-posix.c b/qga/commands-posix.c
>> index 0469dc409d4..5989d4dca9d 100644
>> --- a/qga/commands-posix.c
>> +++ b/qga/commands-posix.c
>> @@ -1207,7 +1207,13 @@ static void build_guest_fsinfo_for_device(char const
>> *devpath,
>>
>> syspath = realpath(devpath, NULL);
>> if (!syspath) {
>> - error_setg_errno(errp, errno, "realpath(\"%s\")", devpath);
>> + if (errno == ENOENT) {
>> + /* This devpath may not exist because of container config, etc.
>> */
>> + fprintf(stderr, "realpath(%s) returned NULL/ENOENT\n", devpath);
>
>
> qga uses g_critical() (except for some win32 code paths atm)
Whoops, this is a debugging thing that I left in by accident. I was
just so excited that after testing overnight, everything worked. :)
>
>>
>> + fs->name = g_strdup("??\?-ENOENT");
>
>
> Hmm, maybe we should make the field optional instead.
Does that harm compatibility in a meaningful way? I'm happy to do
whatever QGA maintainers want me to do. I just did something quick and
dirty to get it working at all as a conversation starter. O:-)
>
>>
>> + } else {
>> + error_setg_errno(errp, errno, "realpath(\"%s\")", devpath);
>> + }
>> return;
>> }
>>
>> --
>> 2.34.3
>>
>>
>
>
> --
> Marc-André Lureau
[PATCH v2 02/10] tests/qemu-iotests: skip 108 when FUSE is not loaded, John Snow, 2022/06/16
[PATCH v2 04/10] tests/vm: use 'cp' instead of 'ln' for temporary vm images, John Snow, 2022/06/16
[PATCH v2 06/10] tests/vm: switch centos.aarch64 to CentOS 8 Stream, John Snow, 2022/06/16
[PATCH v2 07/10] tests/vm: update sha256sum for ubuntu.aarch64, John Snow, 2022/06/16
[PATCH v2 05/10] tests/vm: switch CentOS 8 to CentOS 8 Stream, John Snow, 2022/06/16