mirror of
https://github.com/containers/podman.git
synced 2025-06-29 15:08:09 +08:00
pkg/machine: ignore gvproxy pidfile not exists error
When gvproxy exits it will delete the pidfile itself so we need to account for that and juts ignore the case, it just means gvproxy was able to exit successfully on its own. Also remove the useless defer and return the error so we can get an error exit code not just a print on stderr. Currently it shows this error which is not helpful to any user: unable to clean up gvproxy: "unable to read gvproxy pid file /run/user/1000/podman/gvproxy.pid: open /run/user/1000/podman/gvproxy.pid: no such file or directory" [NO NEW TESTS NEEDED] TODO: make machine tests check stderr for such things. Signed-off-by: Paul Holzinger <pholzing@redhat.com>
This commit is contained in:
@ -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 {
|
||||
|
@ -341,12 +341,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)
|
||||
return fmt.Errorf("unable to clean up gvproxy: %w", err)
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
||||
return nil
|
||||
|
Reference in New Issue
Block a user