summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Heon <matthew.heon@gmail.com>2019-01-10 15:31:15 -0500
committerGitHub <noreply@github.com>2019-01-10 15:31:15 -0500
commit6e8aeab472154e2b1eff92683803d16af06d2b30 (patch)
tree8fb39e30a07beccc72ea2bc0ac7fe110461efaff
parentb3428d028c5c1bc5444a4f4d66d0b244e54e6c55 (diff)
parent97f5af717904709cc1f47d30ad388a3b43be3470 (diff)
downloadpodman-6e8aeab472154e2b1eff92683803d16af06d2b30.tar.gz
podman-6e8aeab472154e2b1eff92683803d16af06d2b30.tar.bz2
podman-6e8aeab472154e2b1eff92683803d16af06d2b30.zip
Merge pull request #2134 from containers/revert-2083-shm_locking_fixes
Revert "Address lingering review comments from SHM locking PR"
-rw-r--r--libpod/lock/lock.go3
-rw-r--r--libpod/lock/shm/shm_lock.go4
-rw-r--r--libpod/lock/shm/shm_lock_test.go8
-rw-r--r--libpod/lock/shm_lock_manager_linux.go8
4 files changed, 6 insertions, 17 deletions
diff --git a/libpod/lock/lock.go b/libpod/lock/lock.go
index 1f94171fe..73c1fdcf7 100644
--- a/libpod/lock/lock.go
+++ b/libpod/lock/lock.go
@@ -43,9 +43,6 @@ type Locker interface {
// encounters a fatal error.
// All errors must be handled internally, as they are not returned. For
// the most part, panicking should be appropriate.
- // Some lock implementations may require that Lock() and Unlock() occur
- // within the same goroutine (SHM locking, for example). The usual Go
- // Lock()/defer Unlock() pattern will still work fine in these cases.
Lock()
// Unlock unlocks the lock.
// All errors must be handled internally, as they are not returned. For
diff --git a/libpod/lock/shm/shm_lock.go b/libpod/lock/shm/shm_lock.go
index 87d28e5c1..be5e5148f 100644
--- a/libpod/lock/shm/shm_lock.go
+++ b/libpod/lock/shm/shm_lock.go
@@ -36,7 +36,7 @@ type SHMLocks struct { // nolint
// size used by the underlying implementation.
func CreateSHMLock(path string, numLocks uint32) (*SHMLocks, error) {
if numLocks == 0 {
- return nil, errors.Wrapf(syscall.EINVAL, "number of locks must be greater than 0")
+ return nil, errors.Wrapf(syscall.EINVAL, "number of locks must greater than 0 0")
}
locks := new(SHMLocks)
@@ -65,7 +65,7 @@ func CreateSHMLock(path string, numLocks uint32) (*SHMLocks, error) {
// segment was created with.
func OpenSHMLock(path string, numLocks uint32) (*SHMLocks, error) {
if numLocks == 0 {
- return nil, errors.Wrapf(syscall.EINVAL, "number of locks must be greater than 0")
+ return nil, errors.Wrapf(syscall.EINVAL, "number of locks must greater than 0")
}
locks := new(SHMLocks)
diff --git a/libpod/lock/shm/shm_lock_test.go b/libpod/lock/shm/shm_lock_test.go
index 594eb5d8e..0f3a96cca 100644
--- a/libpod/lock/shm/shm_lock_test.go
+++ b/libpod/lock/shm/shm_lock_test.go
@@ -256,13 +256,13 @@ func TestLockSemaphoreActuallyLocks(t *testing.T) {
// Ensures that runtime.LockOSThread() is doing its job
func TestLockAndUnlockTwoSemaphore(t *testing.T) {
runLockTest(t, func(t *testing.T, locks *SHMLocks) {
- err := locks.LockSemaphore(5)
+ err := locks.LockSemaphore(0)
assert.NoError(t, err)
- err = locks.LockSemaphore(6)
+ err = locks.LockSemaphore(1)
assert.NoError(t, err)
- err = locks.UnlockSemaphore(6)
+ err = locks.UnlockSemaphore(1)
assert.NoError(t, err)
// Now yield scheduling
@@ -272,7 +272,7 @@ func TestLockAndUnlockTwoSemaphore(t *testing.T) {
// And unlock the last semaphore
// If we are in a different OS thread, this should fail.
// However, runtime.UnlockOSThread() should guarantee we are not
- err = locks.UnlockSemaphore(5)
+ err = locks.UnlockSemaphore(0)
assert.NoError(t, err)
})
}
diff --git a/libpod/lock/shm_lock_manager_linux.go b/libpod/lock/shm_lock_manager_linux.go
index 94dfd7dd7..3e8f4f3d2 100644
--- a/libpod/lock/shm_lock_manager_linux.go
+++ b/libpod/lock/shm_lock_manager_linux.go
@@ -3,10 +3,7 @@
package lock
import (
- "syscall"
-
"github.com/containers/libpod/libpod/lock/shm"
- "github.com/pkg/errors"
)
// SHMLockManager manages shared memory locks.
@@ -63,11 +60,6 @@ func (m *SHMLockManager) RetrieveLock(id uint32) (Locker, error) {
lock.lockID = id
lock.manager = m
- if id >= m.locks.GetMaxLocks() {
- return nil, errors.Wrapf(syscall.EINVAL, "lock ID %d is too large - max lock size is %d",
- id, m.locks.GetMaxLocks()-1)
- }
-
return lock, nil
}