summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAditya Rajan <arajan@redhat.com>2021-09-30 15:45:32 +0530
committerAditya Rajan <arajan@redhat.com>2021-09-30 22:38:13 +0530
commit642d6829982e299ff5e9b764a5494b9c6668ac5e (patch)
treeae8505c4bb5c9ff63a8d50e23d774c136e1b49fd
parentb187dfef20df5cd853b46fe7f56d7cfae4ea0bf5 (diff)
downloadpodman-642d6829982e299ff5e9b764a5494b9c6668ac5e.tar.gz
podman-642d6829982e299ff5e9b764a5494b9c6668ac5e.tar.bz2
podman-642d6829982e299ff5e9b764a5494b9c6668ac5e.zip
machine: silently cleanup dangling sockets before rm if possible
Try to cleanup dandling pid and machine socket if possible silently before `rm`. [NO TESTS NEEDED] Signed-off-by: Aditya Rajan <arajan@redhat.com>
-rw-r--r--pkg/machine/qemu/machine.go16
1 files changed, 16 insertions, 0 deletions
diff --git a/pkg/machine/qemu/machine.go b/pkg/machine/qemu/machine.go
index 09078fbfb..d64dec07b 100644
--- a/pkg/machine/qemu/machine.go
+++ b/pkg/machine/qemu/machine.go
@@ -460,6 +460,22 @@ func (v *MachineVM) Remove(name string, opts machine.RemoveOptions) (string, fun
for _, msg := range files {
confirmationMessage += msg + "\n"
}
+
+ // Get path to socket and pidFile before we do any cleanups
+ qemuSocketFile, pidFile, errSocketFile := v.getSocketandPid()
+ //silently try to delete socket and pid file
+ //remove socket and pid file if any: warn at low priority if things fail
+ if errSocketFile == nil {
+ // Remove the pidfile
+ if err := os.Remove(pidFile); err != nil && !errors.Is(err, os.ErrNotExist) {
+ logrus.Debugf("Error while removing pidfile: %v", err)
+ }
+ // Remove socket
+ if err := os.Remove(qemuSocketFile); err != nil && !errors.Is(err, os.ErrNotExist) {
+ logrus.Debugf("Error while removing podman-machine-socket: %v", err)
+ }
+ }
+
confirmationMessage += "\n"
return confirmationMessage, func() error {
for _, f := range files {