[pve-devel] [PATCH container v2] Fix #576: Cancelling move disk does not leave useless files anymore
Thomas Lamprecht
t.lamprecht at proxmox.com
Wed Jun 12 07:59:55 CEST 2019
On 6/6/19 11:52 AM, Dominic Jäger wrote:
> When cancelling the move disk operation for containers the partly
> finished destination and thus useless files now get removed.
I really do not understand the commit message, could you please
describe here how/why that happens now?
Also, this is probably only OK as it is called through "run_unshared"
which unshares the mount name-space, so you normally do not fuser'
someone innocent, or?
@Wolfgang, are you OK with this or is there some run_command option
comming up for reaping rsync's children? (I've some feeling we talked
about this, but I'm not to sure anymore, sorry)
>
> Co-developed-by: Wolfgang Bumiller <w.bumiller at proxmox.com>
> Signed-off-by: Dominic Jäger <d.jaeger at proxmox.com>
> ---
> After a quick offline feedback there is now a v2
> v2: System call is not a single string anymore
>
> src/PVE/LXC.pm | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/src/PVE/LXC.pm b/src/PVE/LXC.pm
> index 62b6b8c..4922fb0 100644
> --- a/src/PVE/LXC.pm
> +++ b/src/PVE/LXC.pm
> @@ -2024,8 +2024,13 @@ my $copy_volume = sub {
> "--bwlimit=$bwlimit", "$src/", $dest]);
> };
> my $err = $@;
> +
> + # Wait for rsync's children to release dest so that
> + # consequent file operations (umount, remove) are possible
> + while ((system {"fuser"} "fuser", "-s", $dest) == 0) {sleep 1};
> +
> foreach my $mount (reverse @mounted) {
> - eval { PVE::Tools::run_command(['/bin/umount', '--lazy', $mount], errfunc => sub{})};
> + eval { PVE::Tools::run_command(['/bin/umount', $mount], errfunc => sub{})};
> warn "Can't umount $mount\n" if $@;
> }
>
>
More information about the pve-devel
mailing list