runtime: clh: Enforce to call 'cleanupVM' for 'stopSandbox'

We should always cleanup the vm directory when doing `stopSandbox`,
while we are skipping the cleanup process on some error code paths when
using cloud-hypervisor driver.

Fixes: #1098

Signed-off-by: Bo Chen <chen.bo@intel.com>
This commit is contained in:
Bo Chen 2020-12-01 17:23:54 -08:00
parent 095dace7d6
commit 647331ace6

View File

@ -764,7 +764,14 @@ func (clh *cloudHypervisor) terminate() (err error) {
pidRunning = false
}
clh.Logger().WithField("PID", pid).Info("Stopping Cloud Hypervisor")
defer func() {
clh.Logger().Debug("cleanup VM")
if err1 := clh.cleanupVM(true); err1 != nil {
clh.Logger().WithError(err1).Error("failed to cleanupVM")
}
}()
clh.Logger().Debug("Stopping Cloud Hypervisor")
if pidRunning {
clhRunning, _ := clh.isClhRunning(clhStopSandboxTimeout)
@ -808,11 +815,12 @@ func (clh *cloudHypervisor) terminate() (err error) {
return errors.New("virtiofsd config is nil, failed to stop it")
}
if err := clh.cleanupVM(true); err != nil {
return err
clh.Logger().Debug("stop virtiofsd")
if err = clh.virtiofsd.Stop(); err != nil {
clh.Logger().Error("failed to stop virtiofsd")
}
return clh.virtiofsd.Stop()
return
}
func (clh *cloudHypervisor) reset() {