fix race where podman events exits to early

In order to display all events we have to read until the event channel
is closed.

Signed-off-by: Paul Holzinger <pholzing@redhat.com>
This commit is contained in:
Paul Holzinger 2022-09-12 14:22:27 +02:00
parent b3212a6802
commit 2ae4ce7999
No known key found for this signature in database
GPG Key ID: EB145DD938A3CAF2
2 changed files with 12 additions and 5 deletions

View File

@ -101,12 +101,12 @@ func eventsCmd(cmd *cobra.Command, _ []string) error {
for {
select {
case err := <-errChannel:
return err
case event := <-eventChannel:
case event, ok := <-eventChannel:
if !ok {
// channel was closed we can exit
return nil
}
switch {
case event == nil:
// no-op
case doJSON:
jsonStr, err := event.ToJSONString()
if err != nil {
@ -121,6 +121,12 @@ func eventsCmd(cmd *cobra.Command, _ []string) error {
default:
fmt.Println(event.ToHumanReadable(!noTrunc))
}
case err := <-errChannel:
// only exit in case of an error,
// otherwise keep reading events until the event channel is closed
if err != nil {
return err
}
}
}
}

View File

@ -74,6 +74,7 @@ load helpers
.*image tag $imageID $tag
.*image untag $imageID $tag:latest
.*image tag $imageID $tag
.*image untag $imageID $IMAGE
.*image untag $imageID $tag:latest
.*image remove $imageID $imageID" \
"podman events"