Skip to content

Commit

Permalink
Updated cleanup code to be more explicit about ignoring errors.
Browse files Browse the repository at this point in the history
Errors are shown as being ignored by assigning to the blank identifier.

PiperOrigin-RevId: 218103819
Change-Id: I7cc7b9d8ac503a03de5504ebdeb99ed30a531cf2
  • Loading branch information
ianlewis authored and shentubot committed Oct 22, 2018
1 parent d7c11c7 commit c2c0f9c
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 3 deletions.
4 changes: 3 additions & 1 deletion runsc/cgroup/cgroup.go
Expand Up @@ -190,7 +190,9 @@ func (c *Cgroup) Install(res *specs.LinuxResources) error {
// Mark that cgroup resources are owned by me.
log.Debugf("Creating cgroup %q", c.Name)
c.Own = true
clean := specutils.MakeCleanup(func() { c.Uninstall() })
// The Cleanup object cleans up partially created cgroups when an error occurs.
// Errors occuring during cleanup itself are ignored.
clean := specutils.MakeCleanup(func() { _ = c.Uninstall() })
defer clean.Clean()

for key, ctrl := range controllers {
Expand Down
6 changes: 5 additions & 1 deletion runsc/container/container.go
Expand Up @@ -262,7 +262,9 @@ func Create(id string, spec *specs.Spec, conf *boot.Config, bundleDir, consoleSo
Status: Creating,
Owner: os.Getenv("USER"),
}
cu := specutils.MakeCleanup(func() { c.Destroy() })
// The Cleanup object cleans up partially created containers when an error occurs.
// Any errors occuring during cleanup itself are ignored.
cu := specutils.MakeCleanup(func() { _ = c.Destroy() })
defer cu.Clean()

// If the metadata annotations indicate that this container should be
Expand Down Expand Up @@ -424,6 +426,8 @@ func Run(id string, spec *specs.Spec, conf *boot.Config, bundleDir, consoleSocke
if err != nil {
return 0, fmt.Errorf("error creating container: %v", err)
}
// Clean up partially created container if an error ocurrs.
// Any errors returned by Destroy() itself are ignored.
defer c.Destroy()

if err := c.Start(conf); err != nil {
Expand Down
4 changes: 3 additions & 1 deletion runsc/sandbox/sandbox.go
Expand Up @@ -68,7 +68,9 @@ type Sandbox struct {
// sandbox.
func Create(id string, spec *specs.Spec, conf *boot.Config, bundleDir, consoleSocket, userLog string, ioFiles []*os.File) (*Sandbox, error) {
s := &Sandbox{ID: id}
c := specutils.MakeCleanup(func() { s.destroy() })
// The Cleanup object cleans up partially created sandboxes when an error occurs.
// Any errors occuring during cleanup itself are ignored.
c := specutils.MakeCleanup(func() { _ = s.destroy() })
defer c.Clean()

if cg, ok := cgroup.New(spec); ok {
Expand Down

0 comments on commit c2c0f9c

Please sign in to comment.