summaryrefslogtreecommitdiffhomepage
path: root/runsc
diff options
context:
space:
mode:
authorgVisor bot <gvisor-bot@google.com>2020-11-06 02:22:09 +0000
committergVisor bot <gvisor-bot@google.com>2020-11-06 02:22:09 +0000
commite844ce9bbbde56be78de05d705ba375e9b3f8bc8 (patch)
treee96334984bee70f0580d77ee5534b6377289ae40 /runsc
parent3b834db676622ed640193be6b500c7467b57e8f5 (diff)
parent62b0e845b7301da7d0c75eb812e9cd75ade05b74 (diff)
Merge release-20201030.0-36-g62b0e845b (automated)
Diffstat (limited to 'runsc')
-rw-r--r--runsc/cmd/events.go9
-rw-r--r--runsc/container/container.go7
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