Merge pull request #2115 from rhatdan/shm

If you fail to open shm lock then attempt to create it
This commit is contained in:
OpenShift Merge Robot
2019-01-09 13:41:07 -08:00
committed by GitHub

View File

@ -692,25 +692,19 @@ func makeRuntime(runtime *Runtime) (err error) {
} }
} }
// Set up the lock manager
var manager lock.Manager
lockPath := DefaultSHMLockPath lockPath := DefaultSHMLockPath
if rootless.IsRootless() { if rootless.IsRootless() {
lockPath = fmt.Sprintf("%s_%d", DefaultRootlessSHMLockPath, rootless.GetRootlessUID()) lockPath = fmt.Sprintf("%s_%d", DefaultRootlessSHMLockPath, rootless.GetRootlessUID())
} }
if doRefresh { // Set up the lock manager
// If SHM locks already exist, delete them and reinitialize manager, err := lock.OpenSHMLockManager(lockPath, runtime.config.NumLocks)
if err := os.Remove(filepath.Join("/dev/shm", lockPath)); err != nil && !os.IsNotExist(err) { if err != nil {
return errors.Wrapf(err, "error deleting existing libpod SHM segment %s", lockPath) if os.IsNotExist(errors.Cause(err)) {
}
manager, err = lock.NewSHMLockManager(lockPath, runtime.config.NumLocks) manager, err = lock.NewSHMLockManager(lockPath, runtime.config.NumLocks)
if err != nil { if err != nil {
return err return err
} }
} else { } else {
manager, err = lock.OpenSHMLockManager(lockPath, runtime.config.NumLocks)
if err != nil {
return err return err
} }
} }