Hi

On Thu, Jun 16, 2022 at 6:27 PM John Snow <js...@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 <js...@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)


> +            fs->name = g_strdup("??\?-ENOENT");
>

Hmm, maybe we should make the field optional instead.


> +        } else {
> +            error_setg_errno(errp, errno, "realpath(\"%s\")", devpath);
> +        }
>          return;
>      }
>
> --
> 2.34.3
>
>
>

-- 
Marc-André Lureau

Reply via email to