16.08.2019 15:33, Markus Armbruster wrote:
> Kevin Wolf <kw...@redhat.com> writes:
>> Am 15.08.2019 um 21:24 hat Markus Armbruster geschrieben:
> [...]
>>> Let's assume all libvirt ever does with deprecation notices is logging
>>> them.  Would that solve the problem of reliably alerting libvirt
>>> developers to deprecation issues?  Nope.  But it could help
>>> occasionally.
>> I'm not saying that deprecation notices would hurt, just that they
>> probably won't solve problem alone.
> No argument.
>> Crashing if --future is given and logging otherwise seems reasonable
>> enough to me. Whether we need to wire up a new deprecation mechanism in
>> QMP for the logging or if we can just keep printing to stderr is
>> debatable. stderr already ends up in a log file, a QMP extension would
>> require new libvirt code. If libvirt would log deprecation notices more
>> prominently, or use the information for tainting or any other kind of
>> processing, a dedicated QMP mechanism could be justified.
> I'd like to start with two tasks:
> * A CLI option to configure what to do on use of a deprecated feature.
>    We currently warn.  We want to be able to crash instead.  Silencing
>    the warnings might be useful.  Turning them into errors might be
>    useful.
>    The existing ad hoc warnings need to be replaced by a call of a common
>    function that implements the configurable behavior.
> * QAPI feature flag "deprecated", for introspectable deprecation, and
>    without ad hoc code.
> Then see whether our users need more.

Crashing is useful for libvirt developers, it's obvious, just enable 
on all testing environments and most probably we will not miss such a case.

For qapi I doubt is it really needed. Implementing code in libvirt which will 
check for command
(or it's parameter, or it's parameter "optionality" is deprecated) ? It's hard 
and what libvirt
should report to final user? It becomes a kind of synthetic error in libvirt 
code, like

log_error("We are going to divide by zero. It's a bug, please report it to 
x = a / 0;

It's simpler to fix second line than implement special mechanism including 
protocol specification
to report such a case.

I exaggerate of course with this example, but I doubt that implementing a 
special protocol
for it worth doing. And I think notifying libvirt by email (as Peter said) and 
providing option
"crash-on-deprecated" in Qemu are enough for libvirt developers to prevent and 
to fix using
deprecated things.

In other words, I don't see why reporting deprecated feature usage is better in 
libvirt than in
Qemu (by warning, error or crash), and in Qemu it's much more simple and don't 
need QAPI protocol

(I'm sorry if I'm repeating already written arguments, I've not read the whole 

Best regards,

Reply via email to