From: "Fabian Grünbichler" <f.gruenbichler@proxmox.com>
To: Proxmox VE development discussion <pve-devel@lists.proxmox.com>
Subject: Re: [pve-devel] [PATCH v2 container 2/2] clear /etc/machine-id also after container clone
Date: Thu, 27 May 2021 07:37:04 +0200 [thread overview]
Message-ID: <1622093373.x7tzw9zrev.astroid@nora.none> (raw)
In-Reply-To: <20210526141840.1450325-3-o.bektas@proxmox.com>
On May 26, 2021 4:18 pm, Oguz Bektas wrote:
> pass $clone=1 to avoid removing the file. instead we truncate it to an
> empty file
>
> Signed-off-by: Oguz Bektas <o.bektas@proxmox.com>
> ---
>
> src/PVE/API2/LXC.pm | 19 ++++++++++++++++++-
> 1 file changed, 18 insertions(+), 1 deletion(-)
>
> diff --git a/src/PVE/API2/LXC.pm b/src/PVE/API2/LXC.pm
> index a9ea3a6..413f466 100644
> --- a/src/PVE/API2/LXC.pm
> +++ b/src/PVE/API2/LXC.pm
> @@ -1594,7 +1594,24 @@ __PACKAGE__->register_method({
> };
>
> PVE::Firewall::clone_vmfw_conf($vmid, $newid);
> - return $rpcenv->fork_worker('vzclone', $vmid, $authuser, $realcmd);
> +
> + my $task = eval {
> + return $rpcenv->fork_worker('vzclone', $vmid, $authuser, $realcmd);
this forks the task worker that does the actual cloning of
mountpoints/volumes, so after this point that code ($realcmd) will run
concurrent to the rest of the API worker itself handling the request.
doing anything after forking the task worker is almost always wrong.
> + };
> + if (my $err = $@) {
> + warn $@ if $@;
> + die $err;
> + }
> +
> + my $lastconf = PVE::LXC::Config->load_config($newid);
this config might or might not contain any of the updated/cloned
volumes, this is entirely up to the speed of cloning
> + my $rootdir = PVE::LXC::mount_all($newid, $storecfg, $lastconf, 1);
so this might or might not mount anything?
> + my $lxc_setup = PVE::LXC::Setup->new($lastconf, $rootdir);
> + $lxc_setup->clear_machine_id($lastconf, 1);
> + PVE::LXC::umount_all($newid, $storecfg, $lastconf, 1);
in which case this might or might not do anything
> +
> + return $task;
why do you not simply clear the machine ID at the end of the task
worker?
> +
> +
> }});
>
>
> --
> 2.20.1
>
>
> _______________________________________________
> pve-devel mailing list
> pve-devel@lists.proxmox.com
> https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
>
>
>
prev parent reply other threads:[~2021-05-27 5:37 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-05-26 14:18 [pve-devel] SPAM: [PATCH v2 container 0/2] fix #3443: unique machine-id for containers Oguz Bektas
2021-05-26 14:18 ` [pve-devel] [PATCH container 1/2] setup: clear /etc/machine-id for newly created containers Oguz Bektas
2021-05-26 14:18 ` [pve-devel] [PATCH v2 container 2/2] clear /etc/machine-id also after container clone Oguz Bektas
2021-05-27 5:37 ` Fabian Grünbichler [this message]
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=1622093373.x7tzw9zrev.astroid@nora.none \
--to=f.gruenbichler@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.