Skip to content

Commit

Permalink
Merge pull request AliyunContainerService#1340 from ZouRui89/race_off
Browse files Browse the repository at this point in the history
bugfix: move IO part behind to ensure execConfig result assignment before IO closes
  • Loading branch information
YaoZengzeng authored May 17, 2018
2 parents 19c956b + 6b2a8b4 commit 521ca7c
Showing 1 changed file with 11 additions and 12 deletions.
23 changes: 11 additions & 12 deletions daemon/mgr/container.go
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ type ContainerMgr interface {
// Remove removes a container, it may be running or stopped and so on.
Remove(ctx context.Context, name string, option *types.ContainerRemoveOptions) error

// 2. The following five functions is related to containr exec.
// 2. The following five functions is related to container exec.

// CreateExec creates exec process's environment.
CreateExec(ctx context.Context, name string, config *types.ExecCreateConfig) (string, error)
Expand Down Expand Up @@ -1674,16 +1674,6 @@ func (mgr *ContainerManager) exitedAndRelease(id string, m *ctrd.Message) error
// execExitedAndRelease be register into ctrd as a callback function, when the exec process in a container
// exited, "ctrd" will call it to release resource and so on.
func (mgr *ContainerManager) execExitedAndRelease(id string, m *ctrd.Message) error {
if io := mgr.IOs.Get(id); io != nil {
if err := m.RawError(); err != nil {
fmt.Fprintf(io.Stdout, "%v\n", err)
}

// close io
io.Close()
mgr.IOs.Remove(id)
}

v, ok := mgr.ExecProcesses.Get(id).Result()
if !ok {
return errors.Wrap(errtypes.ErrNotfound, "to be exec process: "+id)
Expand All @@ -1696,7 +1686,16 @@ func (mgr *ContainerManager) execExitedAndRelease(id string, m *ctrd.Message) er
execConfig.Running = false
execConfig.Error = m.RawError()

// TODO: GC invalid mgr.ExecProcess.
if io := mgr.IOs.Get(id); io != nil {
if err := m.RawError(); err != nil {
fmt.Fprintf(io.Stdout, "%v\n", err)
}

// close io
io.Close()
mgr.IOs.Remove(id)
}

return nil
}

Expand Down

0 comments on commit 521ca7c

Please sign in to comment.