diff options
author | gVisor bot <gvisor-bot@google.com> | 2020-11-06 02:22:09 +0000 |
---|---|---|
committer | gVisor bot <gvisor-bot@google.com> | 2020-11-06 02:22:09 +0000 |
commit | e844ce9bbbde56be78de05d705ba375e9b3f8bc8 (patch) | |
tree | e96334984bee70f0580d77ee5534b6377289ae40 /runsc | |
parent | 3b834db676622ed640193be6b500c7467b57e8f5 (diff) | |
parent | 62b0e845b7301da7d0c75eb812e9cd75ade05b74 (diff) |
Merge release-20201030.0-36-g62b0e845b (automated)
Diffstat (limited to 'runsc')
-rw-r--r-- | runsc/cmd/events.go | 9 | ||||
-rw-r--r-- | runsc/container/container.go | 7 |
2 files changed, 12 insertions, 4 deletions
diff --git a/runsc/cmd/events.go b/runsc/cmd/events.go index 5211ad4ce..3836b7b4e 100644 --- a/runsc/cmd/events.go +++ b/runsc/cmd/events.go @@ -85,7 +85,12 @@ func (evs *Events) Execute(ctx context.Context, f *flag.FlagSet, args ...interfa ev, err := c.Event() if err != nil { log.Warningf("Error getting events for container: %v", err) + if evs.stats { + return subcommands.ExitFailure + } } + log.Debugf("Events: %+v", ev) + // err must be preserved because it is used below when breaking // out of the loop. b, err := json.Marshal(ev) @@ -101,11 +106,9 @@ func (evs *Events) Execute(ctx context.Context, f *flag.FlagSet, args ...interfa if err != nil { return subcommands.ExitFailure } - break + return subcommands.ExitSuccess } time.Sleep(time.Duration(evs.intervalSec) * time.Second) } - - return subcommands.ExitSuccess } diff --git a/runsc/container/container.go b/runsc/container/container.go index 435d866f5..4aa139c88 100644 --- a/runsc/container/container.go +++ b/runsc/container/container.go @@ -587,7 +587,12 @@ func (c *Container) SandboxPid() int { // and wait returns immediately. func (c *Container) Wait() (syscall.WaitStatus, error) { log.Debugf("Wait on container, cid: %s", c.ID) - return c.Sandbox.Wait(c.ID) + ws, err := c.Sandbox.Wait(c.ID) + if err == nil { + // Wait succeeded, container is not running anymore. + c.changeStatus(Stopped) + } + return ws, err } // WaitRootPID waits for process 'pid' in the sandbox's PID namespace and |