Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 17 Dec 2019 11:55:18 +0000
From:      bugzilla-noreply@freebsd.org
To:        ports-bugs@FreeBSD.org
Subject:   [Bug 242684] sysutils/vm-bhyve: service vm stop
Message-ID:  <bug-242684-7788@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D242684

            Bug ID: 242684
           Summary: sysutils/vm-bhyve: service vm stop
           Product: Ports & Packages
           Version: Latest
          Hardware: amd64
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: Individual Port(s)
          Assignee: ports-bugs@FreeBSD.org
          Reporter: bernhard@blberger.de
                CC: churchers@gmail.com
             Flags: maintainer-feedback?(churchers@gmail.com)
                CC: churchers@gmail.com

I found a problem with VM-BHYVE.

VM-BHYVE provides a service vm which starts /stop the VM's on system startup
and on system stop.=20

The problem is with shutdown of the host system. The script in
/usr/local/etc/rc.d/vm uses "vm stopall" to terminate the VM's.=20
vm stopall sends the VM's the signal to shut down the system. if "vm stopal=
l"
is done, the script "/usr/local/etc/rc.d/vm" is done, too, so that the shut=
down
process of the host is continued and this is the problem, because "vm stopa=
ll"
does not wait until the VM's are really finished and the shutdown processes=
 of
the host are continued, the VM's which are not finished with the schutdown =
will
be aborted. This leads to broken file systems in the VM's -> fatal

they can easily verify that. Start a VM in a shell a: vm -f start test and =
now
stop the VM: vm stop test in another shell b and you will see that the comm=
and
in shell b is finished faster and the VM in shell a is still in the shutdown
process.=20=20

My suggestion:
In the script:
/usr/local/lib/vm-bhyve/vm-core=20
in the function core::stopall() or core::stop()

to add a check function that waits with the continuation until the VM's are
actually finished. so the task: bhyve <vm-name> has disappeared.

This way you can make sure that when the host system is stopped, all VM's a=
re
really stopped.

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-242684-7788>