diff --git a/src/runtime/virtcontainers/container.go b/src/runtime/virtcontainers/container.go index dace7d725..6e8e1ba90 100644 --- a/src/runtime/virtcontainers/container.go +++ b/src/runtime/virtcontainers/container.go @@ -1415,8 +1415,6 @@ func (c *Container) cgroupsCreate() (err error) { return fmt.Errorf("Could not create cgroup for %v: %v", c.state.CgroupPath, err) } - c.config.Resources = resources - // Add shim into cgroup if c.process.Pid > 0 { if err := cgroup.Add(cgroups.Process{Pid: c.process.Pid}); err != nil { diff --git a/src/runtime/virtcontainers/sandbox.go b/src/runtime/virtcontainers/sandbox.go index a9370e0d5..8efac441d 100644 --- a/src/runtime/virtcontainers/sandbox.go +++ b/src/runtime/virtcontainers/sandbox.go @@ -1099,15 +1099,11 @@ func (s *Sandbox) addContainer(c *Container) error { // This should be called only when the sandbox is already created. // It will add new container config to sandbox.config.Containers func (s *Sandbox) CreateContainer(ctx context.Context, contConfig ContainerConfig) (VCContainer, error) { - // Create the container object, add devices to the sandbox's device-manager: - c, err := newContainer(ctx, s, &contConfig) - if err != nil { - return nil, err - } - // Update sandbox config to include the new container's config s.config.Containers = append(s.config.Containers, contConfig) + var err error + defer func() { if err != nil { if len(s.config.Containers) > 0 { @@ -1117,6 +1113,12 @@ func (s *Sandbox) CreateContainer(ctx context.Context, contConfig ContainerConfi } }() + // Create the container object, add devices to the sandbox's device-manager: + c, err := newContainer(ctx, s, &s.config.Containers[len(s.config.Containers)-1]) + if err != nil { + return nil, err + } + // create and start the container err = c.create(ctx) if err != nil { @@ -1434,9 +1436,9 @@ func (s *Sandbox) createContainers(ctx context.Context) error { span, ctx := s.trace(ctx, "createContainers") defer span.End() - for _, contConfig := range s.config.Containers { + for i := range s.config.Containers { - c, err := newContainer(ctx, s, &contConfig) + c, err := newContainer(ctx, s, &s.config.Containers[i]) if err != nil { return err }