Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru> writes:

> On 04.04.25 09:20, Markus Armbruster wrote:
>> Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru> writes:

[...]

>>> +
>>> +``block-job-finalize`` (since 10.1)
>>> +''''''''''''''''''''''''''''''''''
>>> +
>>> +Use ``job-finalize`` instead.
>>> +
>> 
>> block-job-finalize's doc comment:
>> 
>>      # Once a job that has manual=true reaches the pending state, it can be
>>      # instructed to finalize any graph changes and do any necessary
>>      # cleanup via this command.  [...]
>> 
>> There is no member @manual anywhere in the QAPI schema.  I figure this
>> should be @auto-finalize.
>> 
>> job-finalize's doc comment:
>> 
>>      # Instructs all jobs in a transaction (or a single job if it is not
>>      # part of any transaction) to finalize any graph changes and do any
>>      # necessary cleanup.  This command requires that all involved jobs are
>>      # in the PENDING state.
>> 
>> Nothing on @auto-finalize.
>> 
>> @auto-finalize defaults to true for jobs that support controlling it.
>> These are exactly the ones that support @auto-dismiss.
>> 
>> I figure @auto-dismiss is always false for the other jobs, but that
>> doesn't seem to be documented anywhere.
>> 
>> The only other bits related to @auto-dismiss and @auto-finalize seem to
>> be two states in JobStatus:
>> 
>>      # @pending: The job has finished its work, but has finalization steps
>>      #     that it needs to make prior to completing.  These changes will
>>      #     require manual intervention via @job-finalize if auto-finalize
>>      #     was set to false.  These pending changes may still fail.
>>      [...]
>>      # @concluded: The job has finished all work.  If auto-dismiss was set
>>      #     to false, the job will remain in the query list until it is
>>      #     dismissed via @job-dismiss.
>> 
>> 
>> Is it possible to observe @concluded via QMP when @auto-dismiss is on?
>
> Seems not.
>
>> 
>> What about @pending?
>
> Hmm probably, if we have a transaction of several jobs (actually only backups 
> may be joined to transactions), where some have auto-finalize and some not, 
> the whole transaction would be pending, including jobs that has 
> auto-finalize=true. Still, it's a strange case.

So, auto-finalize=true is silently ignored when another job in the same
transaction has auto-finalize=false?

>> Aside: getting rid of auto-dismiss and auto-finalize some day would be
>> nice.
>> 
>
> Hmm.. You mean, deprecated "true" value, and finally drop the fields, making 
> "false" the default? May be.

May or may not be practical.

> I'll resend, with additional patch to touch-up the documentation.

Thanks!


Reply via email to