public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: "Michael Köppl" <m.koeppl@proxmox.com>
To: "Fiona Ebner" <f.ebner@proxmox.com>, <pve-devel@lists.proxmox.com>
Subject: Re: [PATCH container v6 25/26] migration: intra-cluster: check config can be parsed on target node
Date: Wed, 11 Nov 2026 16:41:01 +0100	[thread overview]
Message-ID: <DMSHUH4MBVAR.305LKWWBK86QS@proxmox.com> (raw)
In-Reply-To: <20261103124831.139399-26-f.ebner@proxmox.com>

On Tue Nov 3, 2026 at 1:48 PM CET, Fiona Ebner wrote:

[snip]

> index d243d90..4793c5e 100644
> --- a/src/PVE/LXC/Migrate.pm
> +++ b/src/PVE/LXC/Migrate.pm
> @@ -159,6 +159,39 @@ sub prepare {
>          my $cmd = [@{ $self->{rem_ssh} }, '/bin/true'];
>          eval { $self->cmd_quiet($cmd); };
>          die "Can't connect to destination address using public key\n" if $@;
> +
> +        if (!$self->{opts}->{'skip-config-check'}) {
> +            if (PVE::Cluster::node_pvecfg_version_at_least($self->{node}, 9, 2, 26)) {
> +                # Fork a short-lived tunnel for checking the config. Later, the proper tunnel with
> +                # SSH forwarding info is forked.
> +                my $tunnel = PVE::Tunnel::fork_ssh_tunnel(
> +                    $self->{rem_ssh},
> +                    ['pct', 'mtunnel'],
> +                    undef,
> +                    sub {
> +                        my ($level, $msg) = @_;
> +                        $self->log($level, $msg);
> +                    },
> +                );
> +                eval {
> +                    my $nodename = PVE::INotify::nodename();
> +                    PVE::Tunnel::write_tunnel($tunnel, 30, "config $vmid $nodename");
> +                };
> +                my $err = $@;
> +
> +                eval { PVE::Tunnel::finish_tunnel($tunnel); };
> +                $self->log('warn', "failed to finish tunnel in prepare() - $@") if $@;
> +
> +                if ($err) {
> +                    chomp($err);
> +                    die "$err - use 'skip-config-check' flag to migrate regardless\n";
> +                }
> +            } else {
> +                $self->log('info', "skipping config check - target pve-manager version < 9.2.26");
> +            }
> +        } else {
> +            $self->log('info', "skipping config check - override option is set");
> +        }

suggestion: since this block only differs from the qemu-server one by
how the tunnel is forked, could this perhaps be moved to
pve-guest-common? Could be done in PVE::AbstractMigrate and
fork_tunnel() could there exist as an abstract that only has to be
implemented in pve-container as well, since qemu-server already has it.

>      }
>
>      # in restart mode, we shutdown the container before migrating






  reply	other threads:[~2026-11-11 15:41 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-11-03 12:47 [PATCH-SERIES many v6 00/26] migration: strict config check for intra-cluster migration Fiona Ebner
2026-11-03 12:47 ` [PATCH common v6 01/26] rest handler: handle: respect schema's 'type-property' when resolving type Fiona Ebner
2026-11-03 12:47 ` [PATCH cluster v6 02/26] cluster: add more convenience helpers for checking node versions Fiona Ebner
2026-11-03 12:47 ` [PATCH ha-manager v6 03/26] manager: add missing PVE::HA::Resources import Fiona Ebner
2026-11-03 12:47 ` [PATCH ha-manager v6 04/26] update crm commands: align logging with next state started/stopped Fiona Ebner
2026-11-03 12:47 ` [PATCH ha-manager v6 05/26] manager: factor out helper to check if requested resource motion is valid Fiona Ebner
2026-11-11 15:39   ` Michael Köppl
2026-11-03 12:47 ` [PATCH ha-manager v6 06/26] next state stopped: align logging for motion command with next_state_started() Fiona Ebner
2026-11-11 15:39   ` Michael Köppl
2026-11-03 12:47 ` [PATCH ha-manager v6 07/26] next state {stopped,started}: factor out helper to handle motion command Fiona Ebner
2026-11-03 12:48 ` [PATCH ha-manager v6 08/26] lrm: resource migration: support extra migration options Fiona Ebner
2026-11-03 12:48 ` [PATCH ha-manager v6 09/26] change service state: support hash as a parameter value Fiona Ebner
2026-11-03 12:48 ` [PATCH ha-manager v6 10/26] next state: handle motion command: support migration options Fiona Ebner
2026-11-03 12:48 ` [PATCH ha-manager v6 11/26] resources: add migrate_json_properties() method Fiona Ebner
2026-11-03 12:48 ` [PATCH ha-manager v6 12/26] queue resource motion: support migration options Fiona Ebner
2026-11-03 12:48 ` [PATCH ha-manager v6 13/26] crm command: support JSON-style migrate command Fiona Ebner
2026-11-03 12:48 ` [PATCH ha-manager v6 14/26] api: resources: migration: support additional migration options Fiona Ebner
2026-11-03 12:48 ` [PATCH ha-manager v6 15/26] test: add test for " Fiona Ebner
2026-11-03 12:48 ` [PATCH qemu-server v6 16/26] helpers: move get_node_pvecfg_version() version helper to pve-cluster Fiona Ebner
2026-11-11 15:39   ` Michael Köppl
2026-11-03 12:48 ` [PATCH qemu-server v6 17/26] api: migrate: allow forwarding certain migration properties to HA Fiona Ebner
2026-11-11 15:40   ` Michael Köppl
2026-11-03 12:48 ` [PATCH qemu-server v6 18/26] fix #7053: api: migrate: pass 'with-conntrack-state' flag to HA migration Fiona Ebner
2026-11-03 12:48 ` [PATCH qemu-server v6 19/26] qm: mtunnel: reply when a command is unknown Fiona Ebner
2026-11-03 12:48 ` [PATCH qemu-server v6 20/26] qm: mtunnel: add 'conf' command to do strict configuration parsing Fiona Ebner
2026-11-03 12:48 ` [PATCH qemu-server v6 21/26] migration: intra-cluster: check config can be parsed on target node Fiona Ebner
2026-11-11 15:40   ` Michael Köppl
2026-11-03 12:48 ` [PATCH container v6 22/26] api: migrate: allow forwarding certain migration properties to HA Fiona Ebner
2026-11-03 12:48 ` [PATCH container v6 23/26] pct: introduce mtunnel command Fiona Ebner
2026-11-03 12:48 ` [PATCH container v6 24/26] d/control: bump versioned build dependency for libpve-common-perl to 9.0.12 Fiona Ebner
2026-11-03 12:48 ` [PATCH container v6 25/26] migration: intra-cluster: check config can be parsed on target node Fiona Ebner
2026-11-11 15:41   ` Michael Köppl [this message]
2026-11-03 12:48 ` [PATCH manager v6 26/26] ui: migrate: add checkbox to allow skipping newly enforced config check Fiona Ebner
2026-11-08 23:35 ` applied: (subset) [PATCH-SERIES many v6 00/26] migration: strict config check for intra-cluster migration Thomas Lamprecht
2026-11-11 15:41 ` Michael Köppl
2026-11-11 15:51   ` Michael Köppl

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=DMSHUH4MBVAR.305LKWWBK86QS@proxmox.com \
    --to=m.koeppl@proxmox.com \
    --cc=f.ebner@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