[Libosinfo] [libosinfo] Don't fail when there's an error loading the user DB
Christophe Fergeau
cfergeau at redhat.com
Tue Mar 19 10:29:36 UTC 2013
On Tue, Mar 19, 2013 at 10:18:04AM +0000, Daniel P. Berrange wrote:
> On Tue, Mar 19, 2013 at 11:05:21AM +0100, Christophe Fergeau wrote:
> > osinfo_loader_process_default_path() currently returns an error if
> > there was a problem when parsing the user database. This leads
> > application to error out when an invalid XML file is dropped in
> > ~/.config/libosinfo/db/
> > As the stricter behaviour can be achieved using public libosinfo API,
> > we can change osinfo_loader_process_default_path() to be less strict
> > and more useful to applications.
> > ---
> > osinfo/osinfo_loader.c | 6 ++++--
> > 1 file changed, 4 insertions(+), 2 deletions(-)
> >
> > diff --git a/osinfo/osinfo_loader.c b/osinfo/osinfo_loader.c
> > index 467af3f..bc17a2e 100644
> > --- a/osinfo/osinfo_loader.c
> > +++ b/osinfo/osinfo_loader.c
> > @@ -1892,8 +1892,10 @@ void osinfo_loader_process_default_path(OsinfoLoader *loader, GError **err)
> > goto error;
> >
> > osinfo_loader_process_user_path(loader, &error);
> > - if (error)
> > - goto error;
> > + if (error) {
> > + g_warning("Error loading libosinfo user data: %s", error->message);
> > + g_clear_error(&error);
> > + }
>
> It would be nice if we defined an error code for the "Directory does not exist"
> error scenario, so we can skip that gracefully, but still report an fatal error
> for parser problems.
This still means applications need to be aware that they need to check
_process_default_path() error and ignore some errors (which imho is what
you want to do most of the time), so this patch makes things better for
this use case.
However I agree that silently ignoring errors (+ an ugly g_warning()) is
not great, so I'm fine with going with the approach you suggest.
Christophe
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libosinfo/attachments/20130319/0350b253/attachment.sig>
More information about the Libosinfo
mailing list