
Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru> writes:
On 04.04.25 09:20, Markus Armbruster wrote:
Vladimir Sementsov-Ogievskiy <vsementsov@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!