public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Fiona Ebner <f.ebner@proxmox.com>
To: Daniel Kral <d.kral@proxmox.com>,
	Proxmox VE development discussion <pve-devel@lists.proxmox.com>
Subject: Re: [pve-devel] [PATCH qemu-server 1/1] api: migration preconditions: add node affinity as blocking cause
Date: Tue, 20 Jan 2026 10:07:05 +0100	[thread overview]
Message-ID: <6aab2d9f-1c2b-4478-8edd-9ac813383f8f@proxmox.com> (raw)
In-Reply-To: <DFSQ22FOSHRJ.7AL2EY3GF18K@proxmox.com>

Am 19.01.26 um 5:54 PM schrieb Daniel Kral:
> On Mon Jan 19, 2026 at 4:00 PM CET, Fiona Ebner wrote:
>> Am 15.12.25 um 4:54 PM schrieb Daniel Kral:
>>> Signed-off-by: Daniel Kral <d.kral@proxmox.com>
>>> ---
>>> Needs a version bump for pve-ha-manager.
>>>
>>
>> Such a bump is only required in the sense that the enum variant cannot
>> actually happen before new ha-manager is installed. The patch here could
>> be applied without such a bump, upgraded and nothing would break.
>>
>> But technically, it's a breaking change in the other direction. New HA
>> manager might cause old qemu-server to return something that was not
>> declared in the return schema. I guess it won't be a huge issue in
>> practice though. API clients already need to be prepared for new
>> variants being returned and the issue would only manifest if the API
>> client checks the correctness of the result against the installed, old
>> qemu-server API schema.
> 
> Well this threw me in an unexpected rabbit hole ;)
> 
> I only added the bump here because I noticed that we do check the
> correctness of the return value of the API handler at the CLI (e.g. if
> `ha-manager migrate vm:100 node1` returns 'node-affinity' as a blocking
> cause), then it will fail
> 
> ```
> # ha-manager migrate vm:100 node1
> 400 Result verification failed
> blocking-resources[0].cause: value 'node-affinity' does not have a value in the enumeration 'resource-affinity'
> ha-manager crm-command migrate <sid> <node>
> ```
> 
> and indeed we verify the result at every CLI invocation [0] (the third
> parameter toggles result verification in [1]).
> 
> One could enable result verification on a case-by-case basis when
> calling the API method directly via the package (e.g.
> PVE::API2::Example->method({ param: "something"}, 1)) [2], but otherwise
> we do not validate the response with pvesh nor the HTTP server [3] [4]
> [5], so this is indeed fine without as bump!

What you are describing here is the breaking change in the other
direction: new ha-manager breaks qemu-server without this patch when
result verification is used.

The bump would technically still not be needed even if we used result
verification everywhere: new qemu-server extends the schema but is
completely fine with old ha-manager, it's just that the new variant
cannot happen then.

> 
> Sorry for going off on a tangent here, I was curious where that
> happened.

That's perfectly fine :)

> 
> [0] https://git.proxmox.com/?p=pve-common.git;a=blob;f=src/PVE/RESTHandler.pm;h=cc82fe8df56a429d64094209d264621de3d4e89e;hb=refs/heads/master#l1019
> [1] https://git.proxmox.com/?p=pve-common.git;a=blob;f=src/PVE/RESTHandler.pm;h=cc82fe8df56a429d64094209d264621de3d4e89e;hb=refs/heads/master#l486
> [2] https://git.proxmox.com/?p=pve-common.git;a=blob;f=src/PVE/RESTHandler.pm;h=cc82fe8df56a429d64094209d264621de3d4e89e;hb=refs/heads/master#l340
> [3] https://git.proxmox.com/?p=pve-common.git;a=blob;f=src/PVE/RESTHandler.pm;h=cc82fe8df56a429d64094209d264621de3d4e89e;hb=refs/heads/master#l232
> [4] https://git.proxmox.com/?p=pve-common.git;a=blob;f=src/PVE/RESTHandler.pm;h=cc82fe8df56a429d64094209d264621de3d4e89e;hb=refs/heads/master#l413
> [5] https://git.proxmox.com/?p=pve-manager.git;a=blob;f=PVE/HTTPServer.pm;h=bb8052e3b428f9b8d11d63f7c7e9d45f40344dca;hb=HEAD#l192
> 
>>
>>>  src/PVE/API2/Qemu.pm | 2 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/src/PVE/API2/Qemu.pm b/src/PVE/API2/Qemu.pm
>>> index 190878de..5c4f6eb3 100644
>>> --- a/src/PVE/API2/Qemu.pm
>>> +++ b/src/PVE/API2/Qemu.pm
>>> @@ -5196,7 +5196,7 @@ __PACKAGE__->register_method({
>>>                                      type => 'string',
>>>                                      description => "The reason why the HA"
>>>                                          . " resource is blocking the migration.",
>>> -                                    enum => ['resource-affinity'],
>>> +                                    enum => ['node-affinity', 'resource-affinity'],
>>>                                  },
>>>                              },
>>>                          },
> 



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


  reply	other threads:[~2026-01-20  9:07 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-15 15:52 [pve-devel] [PATCH-SERIES container/ha-manager/manager/qemu-server 00/12] HA node affinity blockers (#1497) Daniel Kral
2025-12-15 15:52 ` [pve-devel] [PATCH ha-manager 1/9] ha: put source files on individual new lines Daniel Kral
2025-12-15 15:52 ` [pve-devel] [PATCH ha-manager 2/9] d/pve-ha-manager.install: remove duplicate Config.pm Daniel Kral
2025-12-15 15:52 ` [pve-devel] [PATCH ha-manager 3/9] config: group and sort use statements Daniel Kral
2025-12-15 15:52 ` [pve-devel] [PATCH ha-manager 4/9] manager: " Daniel Kral
2025-12-15 15:52 ` [pve-devel] [PATCH ha-manager 5/9] manager: report all reasons when resources are blocked from migration Daniel Kral
2025-12-15 15:52 ` [pve-devel] [PATCH ha-manager 6/9] config, manager: factor out resource motion info logic Daniel Kral
2026-01-19 15:00   ` Fiona Ebner
2026-01-19 15:24     ` Daniel Kral
2026-01-20  9:25       ` Daniel Kral
2026-01-20  9:35         ` Fiona Ebner
2026-01-20 10:37           ` Daniel Kral
2025-12-15 15:52 ` [pve-devel] [PATCH ha-manager 7/9] tests: add test cases for migrating resources with node affinity rules Daniel Kral
2026-01-19 15:00   ` Fiona Ebner
2025-12-15 15:52 ` [pve-devel] [PATCH ha-manager 8/9] handle strict node affinity rules in manual migrations Daniel Kral
2025-12-15 15:52 ` [pve-devel] [PATCH ha-manager 9/9] handle node affinity rules with failback " Daniel Kral
2026-01-19 15:00   ` Fiona Ebner
2026-01-19 15:41     ` Daniel Kral
2026-01-20  9:52       ` Fiona Ebner
2025-12-15 15:52 ` [pve-devel] [PATCH qemu-server 1/1] api: migration preconditions: add node affinity as blocking cause Daniel Kral
2026-01-19 15:00   ` Fiona Ebner
2026-01-19 16:55     ` Daniel Kral
2026-01-20  9:07       ` Fiona Ebner [this message]
2025-12-15 15:52 ` [pve-devel] [PATCH container " Daniel Kral
2025-12-15 15:52 ` [pve-devel] [PATCH manager 1/1] ui: migrate: display precondition messages for ha node affinity Daniel Kral
2026-01-19 15:00 ` [pve-devel] [PATCH-SERIES container/ha-manager/manager/qemu-server 00/12] HA node affinity blockers (#1497) Fiona Ebner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6aab2d9f-1c2b-4478-8edd-9ac813383f8f@proxmox.com \
    --to=f.ebner@proxmox.com \
    --cc=d.kral@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal