[libvirt] [PATCH] Unify *ReportError logic

Cole Robinson crobinso at redhat.com
Wed Oct 8 18:13:47 UTC 2008


Daniel P. Berrange wrote:
> On Thu, Oct 02, 2008 at 04:12:10PM -0400, Cole Robinson wrote:
>> Daniel P. Berrange wrote:
>>>
>>> Basically a good idea - we've discussed doing exactly this in the past.
>>> You can do further though, and kill off the 'dom' and 'net' parameters
>>> here too. Those are deprecated and should always be left NULL these
>>> days. 
>> Sounds good.
> 
> Actually, lets go one step further than this. Just change the signature
> of virRaiseError itself, rather than creating a virRaiseErrorHelper.
> No caller in libvirt uses all these parameter it has, so might as well
> just remove them and have it set those fields to NULL/0 as directly.
> 

I held off on doing this for my latest version of the patch.
Some files call RaiseError directly so changing the arguments
will be some extra work. There are a few places a couldn't
quickly remove the custom error functions either, so I'll
send a later patch that cleans up the sticky situations.

For now, I think using the helper is okay, it will be easy
to swap out for an updated __virRaiseError at a later time.

>> Hmm, I kind of like the idea of having this info by default,
>> rather than offloading it to the error message. We could
>> for example append filename:lineno to all error messages if
>> debugging is enabled, or stick the data as extra string or
>> int info to RaiseError.
>>
>> I know there have been times when, using virt-manager/
>> virtinst, libvirt prints some generic lookup error msg,
>> yet nothing seems to fail. It would be nice to get a
>> definitive line number of the culprit just by using
>> LIBVIRT_DEBUG.
> 
> That's an interesting idea - I can't remember offhand though whether the
> __FILE__ expands to the full file path, or just the final filename without
> directory separator. I'd only want this compiled in by default if it is
> the latter - we don't want another 500 K of long strings from full directory
> paths in every  build.
> 
> Daniel

A test program and 'strings' indicates that only the
file basename is stored, so it shouldn't be a problem.

I'm about to post a complete version of this patch,
fyi.

Thanks,
Cole




More information about the libvir-list mailing list