core: close Stream after Connection.Invoke 24/33824/3
authorVladimir Popov <vladimir.popov@xored.com>
Mon, 27 Sep 2021 04:21:20 +0000 (11:21 +0700)
committerVladimir Popov <vladimir.popov@xored.com>
Mon, 27 Sep 2021 04:44:11 +0000 (04:44 +0000)
Fixes core.Stream leaking on every core.(*Connection).Invoke()
https://lists.fd.io/g/govpp-dev/topic/govpp_is_leaking_channels_on/85836420

Signed-off-by: Vladimir Popov <vladimir.popov@xored.com>
Change-Id: I8d5bcb3c3aa40ccda3fb249ee80bb82809f284b1

core/stream.go

index 363cc9f..2f639b0 100644 (file)
@@ -70,6 +70,7 @@ func (c *Connection) Invoke(ctx context.Context, req api.Message, reply api.Mess
        if err != nil {
                return err
        }
+       defer func() { _ = stream.Close() }()
        if err := stream.SendMsg(req); err != nil {
                return err
        }