On Tue, Nov 23, 2010 at 09:29:52AM -0700, Eric Blake wrote:
On 11/23/2010 08:03 AM, Eric Blake wrote:
> On 11/23/2010 03:23 AM, Daniel P. Berrange wrote:
>>> This logs at VIR_LOG_ERROR if level is ever out of range (not one of the
>>> 3 defined virErrorLevel values). Can we ever get virErrorLevel set from
>>> external input, or would an out-of-range enum value represent a bug in
>>> our code? If the former, then it may still be worth keeping this
>>> function, and only mapping the three known levels to VIR_LOG_INFO while
>>> keeping all other values as VIR_LOG_ERROR. If the latter, then this
>>> patch seems fine to me.
>>
>> The levels only ever come from our code. In addition every single
>> usage is just VIR_ERR_ERROR, except for 3 places in libvirt.c
>> As such the error levels have no real useful information and it
>> is simplest to ignore them
>
> Sounds reasonable. Patches that remove more than they add are always
> fun to justify.
>
> ACK.
Hmm; this patch causes 'make check' to fail qemuxml2argvtest and
nwfilterxml2xmltest, because the default logging (warn and error) is no
longer triggered by logging at level info, so virtTestLogContentAndReset
no longer captures any failures when it was expected to catch a warning.
I'm not sure whether the fix is to revert this patch, or to teach the
testsuite to catch all messages (info included), since that might result
in noise from other tests where info messages were previously undetected.
Any test suite that is looking at the log output to decide success
is broken. If it wants to check for whether an error was raised,
it should check that virError is set, not that a message was
logged. Log messages are purely for debugging and not to be relied
on for any actions.
Regards,
Daniel