diff options
author | Valentin Rothberg <rothberg@redhat.com> | 2020-05-27 13:51:48 +0200 |
---|---|---|
committer | Valentin Rothberg <rothberg@redhat.com> | 2020-05-27 13:51:48 +0200 |
commit | 3cef598fc2b2d75ceb02ea8546327b03bc927b55 (patch) | |
tree | e29f0111c611f87870213129f29cd4ab3c30f73a /pkg/domain/infra | |
parent | 119e13d4bcc3e8da903da33b291f2795b0e76e71 (diff) | |
download | podman-3cef598fc2b2d75ceb02ea8546327b03bc927b55.tar.gz podman-3cef598fc2b2d75ceb02ea8546327b03bc927b55.tar.bz2 podman-3cef598fc2b2d75ceb02ea8546327b03bc927b55.zip |
container stats: fix --no-stream race
Fix a race in `podman container stats` by waiting for the client to
consume the data in the channel. This requires a `sync.WaitGroup` (or
semaphore) in the client and to also close the channel the backend.
Fixes: #6405
Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
Diffstat (limited to 'pkg/domain/infra')
-rw-r--r-- | pkg/domain/infra/abi/containers.go | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/pkg/domain/infra/abi/containers.go b/pkg/domain/infra/abi/containers.go index b4e38ca23..e982c7c11 100644 --- a/pkg/domain/infra/abi/containers.go +++ b/pkg/domain/infra/abi/containers.go @@ -1087,6 +1087,7 @@ func (ic *ContainerEngine) Shutdown(_ context.Context) { } func (ic *ContainerEngine) ContainerStats(ctx context.Context, namesOrIds []string, options entities.ContainerStatsOptions) error { + defer close(options.StatChan) containerFunc := ic.Libpod.GetRunningContainers switch { case len(namesOrIds) > 0: |