I agree. Thanks for pointing out that this is a behavioural change, which should not happen.
I should be doing something like this:
I should be doing something like this:
if (virFileReadAllQuiet(path, 1024, &buf) < 0 ) {
if (errno != ENOENT) {
virReportSystemError(errno,
_("unable to read: %s"), path);
}
goto cleanup;
}
On Wed, Mar 22, 2017 at 1:56 PM, Peter Krempa <pkrempa@xxxxxxxxxx> wrote:
Hmm, So you want to avoid the error message altogether. So in that caseOn Wed, Mar 22, 2017 at 09:14:41 +0100, Peter Krempa wrote:
> On Wed, Mar 22, 2017 at 01:02:18 -0700, Prerna Saxena wrote:
> > Sample from current logs:
> > error : virFileReadAll:1290 : Failed to open file '/sys/class/net/tap3/operstate': No such file or directory
> > error : virNetDevGetLinkInfo:1895 : unable to read: /sys/class/net/tap3/operstate: No such file or directory
> >
> > These have no useful data point and are redundant.
> >
> > Signed-off-by: Prerna Saxena <saxenap.ltc@xxxxxxxxx>
> > ---
> > src/util/virnetdev.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c
> > index d123248..3e2f962 100644
> > --- a/src/util/virnetdev.c
> > +++ b/src/util/virnetdev.c
> > @@ -1874,7 +1874,7 @@ virNetDevGetLinkInfo(const char *ifname,
> > if (virNetDevSysfsFile(&path, ifname, "operstate") < 0)
> > goto cleanup;
> >
> > - if (virFileReadAll(path, 1024, &buf) < 0) {
> > + if (virFileReadAllQuiet(path, 1024, &buf) < 0 && errno != ENOENT) {
> > virReportSystemError(errno,
> > _("unable to read: %s"),
> > path);
>
> Remove this message here instead of switching to virFileReadAllQuiet.
> virFileReadAll reports messages according to the failure itself.
you should rather call virFileAccess and also note what happens in an
comment.
Additionally since that would be a semantic change you need to mention
it in the commit message and also make sure that all callers would
ignore such failure. Otherwise you may cause a regression where we'd
report an "unknown error" in cases where it was actually necessary.
Since I found at least one code path that propagates the error
(nodeDeviceGetXMLDesc) you should re-evaluate your approach.
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list