Merge pull request #21786 from Luap99/machine-gvproxy-cleanup

pkg/machine: ignore gvproxy pidfile not exists error
This commit is contained in:
openshift-merge-bot[bot]
2024-02-22 16:13:41 +00:00
committed by GitHub
2 changed files with 11 additions and 7 deletions

View File

@ -1,7 +1,9 @@
package machine
import (
"errors"
"fmt"
"io/fs"
"strconv"
"github.com/containers/podman/v5/pkg/machine/define"
@ -11,7 +13,12 @@ import (
func CleanupGVProxy(f define.VMFile) error {
gvPid, err := f.Read()
if err != nil {
return fmt.Errorf("unable to read gvproxy pid file %s: %v", f.GetPath(), err)
// The file will also be removed by gvproxy when it exits so
// we need to account for the race and can just ignore it here.
if errors.Is(err, fs.ErrNotExist) {
return nil
}
return fmt.Errorf("unable to read gvproxy pid file: %v", err)
}
proxyPid, err := strconv.Atoi(string(gvPid))
if err != nil {

View File

@ -342,12 +342,9 @@ func Stop(mc *vmconfigs.MachineConfig, mp vmconfigs.VMProvider, dirs *machineDef
if err != nil {
return err
}
defer func() {
if err := machine.CleanupGVProxy(*gvproxyPidFile); err != nil {
logrus.Errorf("unable to clean up gvproxy: %q", err)
}
}()
if err := machine.CleanupGVProxy(*gvproxyPidFile); err != nil {
return fmt.Errorf("unable to clean up gvproxy: %w", err)
}
}
return nil