[pve-devel] applied: [PATCH container] fix #2086: change process checking mechanism in vmstatus
Wolfgang Bumiller
w.bumiller at proxmox.com
Wed Feb 13 10:15:51 CET 2019
applied
On Mon, Feb 11, 2019 at 03:51:06PM +0100, Oguz Bektas wrote:
> vmstatus checked if the container was running by looking at the pid,
> which was not an indicator of the process being completely stopped, as
> the command socket in /proc/net/unix stays a little while after the
> process is dead according to lxc-info.
>
> this resulted in destroy_vm and similar functions which use
> /proc/net/unix command socket based checking mechanism to fail when
> executed too fast after the vm_status reported the process as stopped.
>
> this changes vm_status to use the same kind of command socket based
> mechanism in order to avoid reporting the container as being stopped too
> early.
>
> Signed-off-by: Oguz Bektas <o.bektas at proxmox.com>
> ---
> src/PVE/LXC.pm | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/PVE/LXC.pm b/src/PVE/LXC.pm
> index 8f560c5..0e584f6 100644
> --- a/src/PVE/LXC.pm
> +++ b/src/PVE/LXC.pm
> @@ -186,7 +186,7 @@ sub vmstatus {
> eval { $d->{pid} = find_lxc_pid($vmid) if defined($active_hash->{$vmid}); };
> warn $@ if $@; # ignore errors (consider them stopped)
>
> - $d->{status} = $d->{pid} ? 'running' : 'stopped';
> + $d->{status} = $active_hash->{$vmid} ? 'running' : 'stopped';
>
> my $cfspath = PVE::LXC::Config->cfs_config_path($vmid);
> my $conf = PVE::Cluster::cfs_read_file($cfspath) || {};
> --
> 2.11.0
More information about the pve-devel
mailing list