From e0b7d070208df5f52a9933c2c9761ebb2b0ad65d Mon Sep 17 00:00:00 2001 From: Matthew Chiaravalloti Date: Mon, 10 Sep 2018 10:40:06 -0400 Subject: [PATCH] Add deferred call to close DocumentResult's cursor GODRIVER-373 Change-Id: I7addfb359952a5abfccd40c59bf294d3e30be16a --- .errcheck-excludes | 1 + mongo/document_result.go | 1 + 2 files changed, 2 insertions(+) diff --git a/.errcheck-excludes b/.errcheck-excludes index bf21036bb0..1fafa0ca60 100644 --- a/.errcheck-excludes +++ b/.errcheck-excludes @@ -4,6 +4,7 @@ (*github.com/mongodb/mongo-go-driver/core/topology.Server).Close (*github.com/mongodb/mongo-go-driver/core/connection.pool).closeConnection (github.com/mongodb/mongo-go-driver/core/wiremessage.ReadWriteCloser).Close +(github.com/mongodb/mongo-go-driver/mongo.Cursor).Close (net.Conn).Close encoding/pem.Encode fmt.Fprintf diff --git a/mongo/document_result.go b/mongo/document_result.go index 9e0aced5b7..e73a06dd5a 100644 --- a/mongo/document_result.go +++ b/mongo/document_result.go @@ -40,6 +40,7 @@ func (dr *DocumentResult) Decode(v interface{}) error { } return bson.Unmarshal(dr.rdr, v) case dr.cur != nil: + defer dr.cur.Close(context.TODO()) if !dr.cur.Next(context.TODO()) { if err := dr.cur.Err(); err != nil { return err