[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