Remove lock existence checks when creating pods/containers

Given that we don't have a good way of cleaning up locks, these
could potential cause issues if we ever reuse a container or pod
ID

Also changes locks dir to use tmpfs, as we can't directly clean
up locks

Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #138
Approved by: rhatdan
This commit is contained in:
Matthew Heon 2017-12-14 09:19:00 -05:00 committed by Atomic Bot
parent 6d29768864
commit bf0d359047
3 changed files with 1 additions and 12 deletions

View File

@ -430,11 +430,6 @@ func newContainer(rspec *spec.Spec, lockDir string) (*Container, error) {
// Path our lock file will reside at
lockPath := filepath.Join(lockDir, ctr.config.ID)
// Ensure there is no conflict - file does not exist
_, err := os.Stat(lockPath)
if err == nil || !os.IsNotExist(err) {
return nil, errors.Wrapf(ErrCtrExists, "lockfile for container ID %s already exists", ctr.config.ID)
}
// Grab a lockfile at the given path
lock, err := storage.GetLockfile(lockPath)
if err != nil {

View File

@ -1,7 +1,6 @@
package libpod
import (
"os"
"path/filepath"
"github.com/containers/storage"
@ -57,11 +56,6 @@ func newPod(lockDir string) (*Pod, error) {
// Path our lock file will reside at
lockPath := filepath.Join(lockDir, pod.id)
// Ensure there is no conflict - file does not exist
_, err := os.Stat(lockPath)
if err == nil || !os.IsNotExist(err) {
return nil, errors.Wrapf(ErrCtrExists, "lockfile for pod ID %s already exists", pod.id)
}
// Grab a lockfile at the given path
lock, err := storage.GetLockfile(lockPath)
if err != nil {

View File

@ -138,7 +138,7 @@ func NewRuntime(options ...RuntimeOption) (runtime *Runtime, err error) {
}
// Make a directory to hold container lockfiles
lockDir := filepath.Join(runtime.config.StaticDir, "lock")
lockDir := filepath.Join(runtime.config.TmpDir, "lock")
if err := os.MkdirAll(lockDir, 0755); err != nil {
// The directory is allowed to exist
if !os.IsExist(err) {