diff options
author | Matthew Heon <matthew.heon@gmail.com> | 2019-01-10 15:31:15 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-10 15:31:15 -0500 |
commit | 6e8aeab472154e2b1eff92683803d16af06d2b30 (patch) | |
tree | 8fb39e30a07beccc72ea2bc0ac7fe110461efaff | |
parent | b3428d028c5c1bc5444a4f4d66d0b244e54e6c55 (diff) | |
parent | 97f5af717904709cc1f47d30ad388a3b43be3470 (diff) | |
download | podman-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.go | 3 | ||||
-rw-r--r-- | libpod/lock/shm/shm_lock.go | 4 | ||||
-rw-r--r-- | libpod/lock/shm/shm_lock_test.go | 8 | ||||
-rw-r--r-- | libpod/lock/shm_lock_manager_linux.go | 8 |
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 } |