[pve-devel] [PATCH container v6 1/4] fix #3711: lxc: print warning if storage for mounted volume does not exist anymore
Fiona Ebner
f.ebner at proxmox.com
Tue May 20 15:33:36 CEST 2025
Am 20.05.25 um 11:08 schrieb Michael Köppl:
> An explicit check for the existence of the storage is added to print a
> warning and continue with the removal of the container without deleting
> the mount point in case the storage does not exist anymore. For other
> errors, the function should still die.
>
> Originally-by: Stefan Hrdlicka <s.hrdlicka at proxmox.com>
Nit: Ideally, you also describe the changes to the original patch here.
For how this is usually done, see e.g.
https://git.proxmox.com/?p=pve-container.git;a=commit;h=ee81952f4fc8faf01ed4eda5b8962d1a82d5425d
> Signed-off-by: Michael Köppl <m.koeppl at proxmox.com>
> ---
> src/PVE/LXC.pm | 12 +++++++++++-
> 1 file changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/src/PVE/LXC.pm b/src/PVE/LXC.pm
> index 2b9f0cf..6a1ce92 100644
> --- a/src/PVE/LXC.pm
> +++ b/src/PVE/LXC.pm
> @@ -953,7 +953,17 @@ sub destroy_lxc_container {
> return if $volids->{$volume};
> $volids->{$volume} = 1;
>
> - delete_mountpoint_volume($storage_cfg, $vmid, $volume);
> + # explicitly check if storage still exists to avoid failing during
> + # deletion of the mountpoint volume. instead, only a warning is
> + # printed and destroying the container continues.
> + my ($storeid) = PVE::Storage::parse_volume_id($volume);
> + eval { PVE::Storage::storage_config($storage_cfg, $storeid) };
> + my $err = $@;
> + PVE::RESTEnvironment::log_warn("failed to delete $volume, $err") if $err;
> +
> + if (!$err) {
> + delete_mountpoint_volume($storage_cfg, $vmid, $volume);
> + }
Can we instead just surround the delete_mountpoint_volume() call itself
with an eval + printing warning? That also catches other situations
where deletion fails and is simpler.
> };
> PVE::LXC::Config->foreach_volume_full($conf, {include_unused => 1}, $remove_volume);
>
More information about the pve-devel
mailing list