diff options
author | Daniel J Walsh <dwalsh@redhat.com> | 2019-01-09 14:46:33 -0500 |
---|---|---|
committer | Daniel J Walsh <dwalsh@redhat.com> | 2019-01-09 14:57:24 -0500 |
commit | 8c25a645accbd5039b55d3b73c18768967f63074 (patch) | |
tree | 122263c3285fd8fec1ca17e1d757f828df030812 | |
parent | c37f73159609b203545ca6fe54c86b9deacfca21 (diff) | |
download | podman-8c25a645accbd5039b55d3b73c18768967f63074.tar.gz podman-8c25a645accbd5039b55d3b73c18768967f63074.tar.bz2 podman-8c25a645accbd5039b55d3b73c18768967f63074.zip |
If you fail to open shm lock then attempt to create it
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
-rw-r--r-- | libpod/runtime.go | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/libpod/runtime.go b/libpod/runtime.go index ab8d02a4f..c9471247c 100644 --- a/libpod/runtime.go +++ b/libpod/runtime.go @@ -692,25 +692,19 @@ func makeRuntime(runtime *Runtime) (err error) { } } - // Set up the lock manager - var manager lock.Manager lockPath := DefaultSHMLockPath if rootless.IsRootless() { lockPath = fmt.Sprintf("%s_%d", DefaultRootlessSHMLockPath, rootless.GetRootlessUID()) } - if doRefresh { - // If SHM locks already exist, delete them and reinitialize - if err := os.Remove(filepath.Join("/dev/shm", lockPath)); err != nil && !os.IsNotExist(err) { - return errors.Wrapf(err, "error deleting existing libpod SHM segment %s", lockPath) - } - - manager, err = lock.NewSHMLockManager(lockPath, runtime.config.NumLocks) - if err != nil { - return err - } - } else { - manager, err = lock.OpenSHMLockManager(lockPath, runtime.config.NumLocks) - if err != nil { + // Set up the lock manager + manager, err := lock.OpenSHMLockManager(lockPath, runtime.config.NumLocks) + if err != nil { + if os.IsNotExist(errors.Cause(err)) { + manager, err = lock.NewSHMLockManager(lockPath, runtime.config.NumLocks) + if err != nil { + return err + } + } else { return err } } |