server: Serialize container/pod creation with updates
Interleaving asynchronous updates with pod or container creations can lead to unrecoverable races and corruptions of the pod or container hash tables. This is fixed by serializing update against pod or container creation operations, while pod and container creation operations can run in parallel. Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
This commit is contained in:
parent
d1006fdfbc
commit
be5084387c
3 changed files with 11 additions and 0 deletions
|
@ -65,6 +65,9 @@ func (s *Server) runContainer(container *oci.Container, cgroupParent string) err
|
|||
|
||||
// RunPodSandbox creates and runs a pod-level sandbox.
|
||||
func (s *Server) RunPodSandbox(ctx context.Context, req *pb.RunPodSandboxRequest) (resp *pb.RunPodSandboxResponse, err error) {
|
||||
s.updateLock.RLock()
|
||||
defer s.updateLock.RUnlock()
|
||||
|
||||
logrus.Debugf("RunPodSandboxRequest %+v", req)
|
||||
var processLabel, mountLabel, netNsPath, resolvPath string
|
||||
// process req.Name
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue