mirror of https://github.com/containers/podman.git
Use runtime lockDir in BoltDB state
Instead of storing the runtime's file lock dir in the BoltDB state, refer to the runtime inside the Bolt state instead, and use the path stored in the runtime. This is necessary since we moved DB initialization very far up in runtime init, before the locks dir is properly initialized (and it must happen before the locks dir can be created, as we use the DB to retrieve the proper path for the locks dir now). Signed-off-by: Matthew Heon <mheon@redhat.com>
This commit is contained in:
parent
795fbba769
commit
e3882cfa2d
|
@ -18,7 +18,6 @@ type BoltState struct {
|
|||
dbLock sync.Mutex
|
||||
namespace string
|
||||
namespaceBytes []byte
|
||||
lockDir string
|
||||
runtime *Runtime
|
||||
}
|
||||
|
||||
|
@ -51,10 +50,9 @@ type BoltState struct {
|
|||
// containers/storage do not occur.
|
||||
|
||||
// NewBoltState creates a new bolt-backed state database
|
||||
func NewBoltState(path, lockDir string, runtime *Runtime) (State, error) {
|
||||
func NewBoltState(path string, runtime *Runtime) (State, error) {
|
||||
state := new(BoltState)
|
||||
state.dbPath = path
|
||||
state.lockDir = lockDir
|
||||
state.runtime = runtime
|
||||
state.namespace = ""
|
||||
state.namespaceBytes = nil
|
||||
|
|
|
@ -266,7 +266,7 @@ func (s *BoltState) getContainerFromDB(id []byte, ctr *Container, ctrsBkt *bolt.
|
|||
}
|
||||
|
||||
// Get the lock
|
||||
lockPath := filepath.Join(s.lockDir, string(id))
|
||||
lockPath := filepath.Join(s.runtime.lockDir, string(id))
|
||||
lock, err := storage.GetLockfile(lockPath)
|
||||
if err != nil {
|
||||
return errors.Wrapf(err, "error retrieving lockfile for container %s", string(id))
|
||||
|
@ -302,7 +302,7 @@ func (s *BoltState) getPodFromDB(id []byte, pod *Pod, podBkt *bolt.Bucket) error
|
|||
}
|
||||
|
||||
// Get the lock
|
||||
lockPath := filepath.Join(s.lockDir, string(id))
|
||||
lockPath := filepath.Join(s.runtime.lockDir, string(id))
|
||||
lock, err := storage.GetLockfile(lockPath)
|
||||
if err != nil {
|
||||
return errors.Wrapf(err, "error retrieving lockfile for pod %s", string(id))
|
||||
|
|
|
@ -494,7 +494,7 @@ func makeRuntime(runtime *Runtime) (err error) {
|
|||
case BoltDBStateStore:
|
||||
dbPath := filepath.Join(runtime.config.StaticDir, "bolt_state.db")
|
||||
|
||||
state, err := NewBoltState(dbPath, runtime.lockDir, runtime)
|
||||
state, err := NewBoltState(dbPath, runtime)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
@ -52,8 +52,9 @@ func getEmptyBoltState() (s State, p string, p2 string, err error) {
|
|||
runtime := new(Runtime)
|
||||
runtime.config = new(RuntimeConfig)
|
||||
runtime.config.StorageConfig = storage.StoreOptions{}
|
||||
runtime.lockDir = lockDir
|
||||
|
||||
state, err := NewBoltState(dbPath, lockDir, runtime)
|
||||
state, err := NewBoltState(dbPath, runtime)
|
||||
if err != nil {
|
||||
return nil, "", "", err
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue