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