On Tue, Oct 10, 2017 at 03:46:56PM -0700, Carlos Cardenas wrote:
> Remove terminate_vm/vm_remove logic from vmm_dispatch_parent. This
> logic is present in vmm_sighdlr when a VM process has signaled
> SIGCHLD for proper cleanup.
>
> diff --git usr.sbin/vmd/vmm.c usr.sbin/vmd/vmm.c
> index ccd7680b479..8cc1c15157a 100644
> --- usr.sbin/vmd/vmm.c
> +++ usr.sbin/vmd/vmm.c
> @@ -170,15 +170,13 @@ vmm_dispatch_parent(int fd, struct privsep_proc *p,
> struct imsg *imsg)
> else
> res = 0;
> } else {
> - /* in the process of shutting down... */
> - log_debug("%s: performing a forced shutdown",
> - __func__);
> + /*
> + * VM is currently being shutdown.
> + * Check to see if the VM process is still
> + * active. If not, return VMD_VM_STOP_INVALID.
> + */
> vtp.vtp_vm_id = vm_vmid2id(vm->vm_vmid, vm);
> - /* ensure vm_id isn't 0 */
> - if (vtp.vtp_vm_id != 0) {
> - res = terminate_vm(&vtp);
> - vm_remove(vm);
> - } else {
> + if (vtp.vtp_vm_id == 0) {
> log_debug("%s: no vm running anymore",
> __func__);
> res = VMD_VM_STOP_INVALID;
> --
> 2.14.2
>
committed thanks!