summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com>2019-01-06 23:16:55 -0800
committerGitHub <noreply@github.com>2019-01-06 23:16:55 -0800
commit1e4db4b0b8504e93e826d02b6c03cf78f41dcf7a (patch)
tree6efd8b7d8baf3344412b9d23b875cca1dbddccf4
parentb83b07cb4748f983c21b08b2ba015561cf664989 (diff)
parenta76256834a0a409dfb53943e04fd2458c7782361 (diff)
downloadpodman-1e4db4b0b8504e93e826d02b6c03cf78f41dcf7a.tar.gz
podman-1e4db4b0b8504e93e826d02b6c03cf78f41dcf7a.tar.bz2
podman-1e4db4b0b8504e93e826d02b6c03cf78f41dcf7a.zip
Merge pull request #2089 from rhatdan/locks
Rootless with shmlocks was not working.
-rw-r--r--libpod/lock/shm/shm_lock.go4
-rw-r--r--libpod/runtime.go7
2 files changed, 6 insertions, 5 deletions
diff --git a/libpod/lock/shm/shm_lock.go b/libpod/lock/shm/shm_lock.go
index 3372a8c71..be5e5148f 100644
--- a/libpod/lock/shm/shm_lock.go
+++ b/libpod/lock/shm/shm_lock.go
@@ -48,7 +48,7 @@ func CreateSHMLock(path string, numLocks uint32) (*SHMLocks, error) {
lockStruct := C.setup_lock_shm(cPath, C.uint32_t(numLocks), &errCode)
if lockStruct == nil {
// We got a null pointer, so something errored
- return nil, syscall.Errno(-1 * errCode)
+ return nil, errors.Wrapf(syscall.Errno(-1*errCode), "failed to create %d locks in %s", numLocks, path)
}
locks.lockStruct = lockStruct
@@ -77,7 +77,7 @@ func OpenSHMLock(path string, numLocks uint32) (*SHMLocks, error) {
lockStruct := C.open_lock_shm(cPath, C.uint32_t(numLocks), &errCode)
if lockStruct == nil {
// We got a null pointer, so something errored
- return nil, syscall.Errno(-1 * errCode)
+ return nil, errors.Wrapf(syscall.Errno(-1*errCode), "failed to open %d locks in %s", numLocks, path)
}
locks.lockStruct = lockStruct
diff --git a/libpod/runtime.go b/libpod/runtime.go
index fcc1c6d82..ab8d02a4f 100644
--- a/libpod/runtime.go
+++ b/libpod/runtime.go
@@ -1,6 +1,7 @@
package libpod
import (
+ "fmt"
"io/ioutil"
"os"
"os/exec"
@@ -695,7 +696,7 @@ func makeRuntime(runtime *Runtime) (err error) {
var manager lock.Manager
lockPath := DefaultSHMLockPath
if rootless.IsRootless() {
- lockPath = DefaultRootlessSHMLockPath
+ lockPath = fmt.Sprintf("%s_%d", DefaultRootlessSHMLockPath, rootless.GetRootlessUID())
}
if doRefresh {
// If SHM locks already exist, delete them and reinitialize
@@ -705,12 +706,12 @@ func makeRuntime(runtime *Runtime) (err error) {
manager, err = lock.NewSHMLockManager(lockPath, runtime.config.NumLocks)
if err != nil {
- return errors.Wrapf(err, "error creating SHM locks for libpod")
+ return err
}
} else {
manager, err = lock.OpenSHMLockManager(lockPath, runtime.config.NumLocks)
if err != nil {
- return errors.Wrapf(err, "error opening libpod SHM locks")
+ return err
}
}
runtime.lockManager = manager